Skip to content

A Rust library for converting LaTeX-formatted text into HTML with minimal styling.

License

Notifications You must be signed in to change notification settings

LunaStev/late2htm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LaTeX to HTML

LaTeX to HTML is a Rust library that converts LaTeX-formatted text into equivalent HTML.

This crate is designed to help developers transform LaTeX documents or fragments into structured HTML. Styling is intentionally kept minimal—developers are encouraged to apply custom CSS or integrate this library into a broader styling pipeline.


✨ Features

  • ✅ Lightweight LaTeX parsing and conversion to HTML

  • ✅ Supports the following LaTeX commands:

    • Document structure: \section, \subsection, \subsubsection, \paragraph, \subparagraph
    • Text formatting: \textbf, \textit, \underline, \emph
    • Extended commands: \textcolor, \fontsize (planned)
    • Math mode: $...$, \[...\], \begin{equation} (planned)
    • Lists: itemize, enumerate, description (planned)
    • Tables: tabular (planned)
    • Figures: figure, \includegraphics (planned)
    • References and citations: \label, \ref, \cite, \footnote (planned)
    • Bibliography: thebibliography, \bibitem (planned)
    • Custom macros: \newcommand, \renewcommand (planned)
    • Fallback handler for unknown LaTeX commands: RawLatex

Note: Features marked (planned) are on the roadmap but not yet implemented.


🚀 Usage

use late2htm::convert_latex_to_html;

fn main() {
    let latex_code = r"\\section{Hello}This is \\textbf{bold}.";
    let html = convert_latex_to_html(latex_code);
    println!("{}", html);
}

Additional Test Example

use late2htm::convert_latex_to_html;

fn main() {
    let input = r"\section{Main}\subsection{Sub}\subsubsection{SubSub}\paragraph{Para}\subparagraph{SubPara}Text \textbf{bold} and \textit{italic} and \underline{under} and \emph{emph}.";
    let html = convert_latex_to_html(input);
    println!("{}", html);
}

🎖️ Crate Structure

  • parser — Parses LaTeX code into an AST (LatexNode enum).
  • htmlgen — Converts AST into HTML.
  • ast — Defines the LaTeX abstract syntax tree (LatexNode).

🎯 Project Goals

  • 🧠 Simple and intuitive API for converting LaTeX to HTML
  • 🧩 Clean and semantic HTML output, ready for custom CSS
  • 🔌 Modular architecture for easy feature extension
  • 🔍 Fallback support for unknown LaTeX commands (raw output)

📜 License

This project is licensed under the MPL-2.0 License.


🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to fork and submit pull requests.

About

A Rust library for converting LaTeX-formatted text into HTML with minimal styling.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Languages