Skip to main content

ReStructured Manuscripts (RSM) markup language

Project description

Readable Science Markup (RSM)

tests docs

The web-first authoring software for scientific manuscripts.

RSM is a suite of tools that aims to change the way scientific manuscripts are published and shared using modern web technology. Currently, most scientific publications are made with LaTeX and published in PDF format. While the capabilities of LaTeX and related software are undeniable, there are many pitfalls. RSM aims to cover this gap by allowing authors to create web-first manuscripts that enjoy the benefits of the modern web.

One of the main aims of the RSM suite is to provide scientists with tools to author scientific manuscripts in a format that is web-ready in a transparent, native way that is both easy to use and easy to learn. In particular, RSM is a suite of tools that allow the user to write a plain text file (in a special .rsm format) and convert the file into a web page (i.e. a set of .html, .css, and .js files). These files can then be opened natively by any web browser on any device.

Contributing

This project is under constant development and contributions are very much welcome! Please develop your feature or fix in a branch and submit a PR.

Rebuilding the Standalone JS Bundle

The file rsm/static/rsm-standalone.js is a pre-built bundle of all RSM JavaScript for standalone HTML files (files that can be opened directly from file:// URLs).

If you modify any JS files in rsm/static/, you must regenerate this bundle:

npx esbuild rsm/static/onload.js --bundle --format=iife --global-name=RSM --outfile=rsm/static/rsm-standalone.js

This bundles onload.js and all its dependencies into a single IIFE that exposes RSM.onload() and RSM.onrender(). The bundle is committed to the repo so there's no runtime dependency on esbuild.

Development Setup

Prerequisites

  • Python 3.10 or higher
  • uv - Fast Python package installer
  • just - Command runner

Installation

Install uv

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Or with pip
pip install uv

Install just

# macOS
brew install just

# Linux
cargo install just

# Windows
scoop install just

Clone and install rsm-markup

git clone --recurse-submodules https://github.com/leotrs/rsm.git
cd rsm
just install

Common Tasks

just                  # List all available commands
just test             # Run fast tests
just test-all         # Run all tests including slow ones
just lint             # Format code and run linter
just check            # Run lint + tests (quality gate)
just docs-serve       # Serve docs with live reload

For Grammar Development

If you need to modify the tree-sitter grammar:

# Install with local grammar in editable mode
just install-local

# After modifying grammar.js in tree-sitter-rsm/
just build-grammar

Publishing

This project uses uv for dependency management and just for task automation.

To release a new version to PyPI:

  1. Update version in pyproject.toml
  2. Create a git tag: git tag v0.3.3 && git push origin v0.3.3
  3. Publish: just publish

Or use the GitHub Actions workflow by creating a release on GitHub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rsm_markup-0.3.3.tar.gz (256.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rsm_markup-0.3.3-py3-none-any.whl (247.9 kB view details)

Uploaded Python 3

File details

Details for the file rsm_markup-0.3.3.tar.gz.

File metadata

  • Download URL: rsm_markup-0.3.3.tar.gz
  • Upload date:
  • Size: 256.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for rsm_markup-0.3.3.tar.gz
Algorithm Hash digest
SHA256 f44a67dfc9a2581960a52e4e397dd2b8b432c4652823781c49ba6a0b177bf7b7
MD5 d7c3be6899f80cc5b332232ec17d4c28
BLAKE2b-256 cd1b012e9a08a9b607c69df10fad33055820f8b634d5ee891b75bad8451642d6

See more details on using hashes here.

File details

Details for the file rsm_markup-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: rsm_markup-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 247.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for rsm_markup-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3c38ec2248129e281dbbf59ce15a27c5bc3268836b3bb184457df8b39f68e93b
MD5 5adf8a71446e0ea5d7938f3da2558b7a
BLAKE2b-256 eb35b5b702e7aa29c1ec900d5e295d44de109265c52f3e9e52e876b59a8ede43

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page