Render README files the same way(ish) as GitHub et al.
Readme to HTML conversion for lib.rs.
Supports:
- Markdown with GitHub's extensions (natively in Rust), reStructuredText (via
rst2html
), and a tiny subset of AsciiDoc. - URL rewriting.
- Filtering out unsafe HTML.
- GitHub Emoji.
- GitHub's hack for light/dark images.
- Supports syntax highlighting using Sublime Text syntax definitions. The markup is color agnostic. Instead of hardcoding colors, it writes scope class names. Actual theme colors are in the style subproject.
- Fuzzy detection of programming languages used in
<code>
tags, tuned for languages mentioned by Rust crates.
Installation
Install docutils
package, so that rst2html
command is available (in PATH
).
It needs to write a file to system's temp directory for rst2html
. If you clear temp while the program is running, rst support may fail.
Making a theme
It generates HTML <span>
class names based on scope names from Sublime Syntax files, but:
- words used in the scopes are abbreviated. See
highlight.rs
for the list of abbreviations. - Only scopes with 2 and 3 levels are added (more specific scopes are truncated to the first 3 words).
Adding more languages
All languages are precompiled from syntaxes/
submodule.
tmLanguage
definitions need to be converted first.