2 stable releases

new 1.0.1 Jan 13, 2025
1.0.0 Jan 4, 2025

#250 in Graphics APIs

Download history 148/week @ 2025-01-04

148 downloads per month

AGPL-3.0-or-later

22KB
469 lines

gema_texto

gema_texto parses gemtext and renders html.

This library powers blog and page, so it makes some decisions on for those projects. Here's how each line is handled:

  • Headings and the content under them is wrapped in a <section> tag.
  • All text lines are <p>, even empty ones.
  • URLs are wrapped in a <p>
  • Alt Text is supported for preformatted-toggles, and is written as the aria-label of the <pre> tag.
  • Consecutive list items are wrapped in a <ul> and rendered as <li> tags.
  • Quotes are wrapped in a single <blockquote>

Usage

More in-depth usage docs in the source. This is an overview of the included functionality.

  • gemini_parser deals with parsing the gemini file itself.
  • html_renderer takes a parsed gemini file and renders it to html.

gema_texto::gemini_parser::GeminiLine

An enum that represents the six different types of lines in gemtext.

gema_texto::gemini_parser::parse

Parses a &str of gemtext source and returns a Vec<GeminiLine>.

gema_texto::html_renderer::render_html

Renders a Vec<GeminiLine> into some html String

No runtime deps