- Rust 100%
| src | adding image support with proper alt texts | |
| .gitignore | adding the base of the library to convert markdown to gemini format | |
| Cargo.lock | adding the base of the library to convert markdown to gemini format | |
| Cargo.toml | adding the base of the library to convert markdown to gemini format | |
| README.md | fixing typo | |
Markdown to gemini converter
This project is meant to become an effecient and complete markdown to gemini converter both as a Rust crate and as a CLI tool to use in scripts.
At the moment when I write this, this is still very early so there's not much working here.
The ultimate goal with this project would be to be able to plug this into a static website/capsule generator. And also potentially serve as a basis/be extended to also support the same level of conversion to the gopher format to easliy create all in one website+gemini capsule+gopherhole using a single markdown input.
An even better solution would be to support more formats but I think this is a bit out of scope for now, as markdown is probably one of the most popular format, I'll let you use pandoc to convert whatever format you want to markdown and use this tool to then convert it to gemini or gopher.
Roadmap of markdown compliance
I might forget to update this, but if you want to know the up-to-date version, simply check the todo!() lying around in src/lib.rs and check the failing tests by running cargo test.
- Paragraph
- Heading
- BlockQuote
- CodeBlock
- HtmlBlock → ignored
- Ordered List
- Unordered List
- Nested lists
- Item
- FootnoteDefinition
- DefinitionList
- DefinitionListTitle
- DefinitionListDefinition
- Table
- TableHead
- TableRow
- TableCell
- Emphasis
- Strong
- Strikethrough
- Superscript
- Subscript
- Link (inline, block, multiple in one paragraph, and in other elements)
- Image
- MetadataBlock → ignored
- Text
- Code
- InlineMath
- DisplayMath
- Html → ignored
- InlineHtml → display content without tags
- FootnoteReference
- SoftBreak
- HardBreak
- Rule
- TaskListMarker
Roadmap of other stuff
- General setup with
pulldown-cmarkand unit testing - Reafactoring to avoid overly long functions and indentation
- Setting the project up as a proper crate
- Setting up "clap" and using the convert function from stdin to stdout and using -i and -o for input and output of files
- Probably update this readme with more details
- Create a "markdown torture test" to create integration test of the library and add example of conversion in the repo (linked in readme)