Markdown to HTML Parser in Rust
A simple, lightweight library for converting Markdown to HTML, written in pure, safe Rust. This project aims to provide a straightforward and easy-to-use package for your Rust applications
✨ Features
Currently, the following Markdown syntax is supported:
- Headings (
#,##,###, etc.) - Bold text (
**text**) - Italic text (
*text*) - Links (
[display text](url)) - Unordered Lists (
- list item) - Code Blocks (
- codeblock item)
📦 Installation
To use mark-html in your project, you can add it to your Cargo.toml file:
[]
= "0.2.0"
Alternatively, you can use the cargo add command:
🚀 Usage
Once the crate is added to your project, you can use the to_html function in your code:
// main.rs
extern crate mark-html;
🏛️ Architecture
The conversion process happens in three main stages:
- Lexing: The input Markdown string is scanned and broken down into a sequence of "tokens". For example,
**hello**becomes[BoldStart, Text("hello"), BoldEnd]. - Parsing: The sequence of tokens is converted into a hierarchical structure called an Abstract Syntax Tree (AST). This tree represents the document's structure (e.g., a paragraph containing bold text).
- Rendering: The AST is traversed, and for each node in the tree, the corresponding HTML is generated.
What's New in 0.2.0
- Added support for code blocks.
Examples
Here are a few examples of the conversion in action.
Input:
This is a paragraph with **bold** and *italic* text. Here is a [link to GitHub](https://github.com/Shivrajsoni).
- -
Output:
Main Title
This is a paragraph with bold and italic text. Here is a link to GitHub.
First list item
Second list item
🤝 Contributing
This project is under active development. Contributions, issues, and feature requests are welcome!