gema_texto

Crates.iogema_texto
lib.rsgema_texto
version1.0.3
created_at2025-01-04 22:30:36.435791+00
updated_at2025-03-06 19:52:40.77856+00
descriptionLibrary to parse gemtext and render HTML
homepagehttps://git.sr.ht/~rbdr/gema_texto
repository
max_upload_size
id1504282
size58,673
Rubén Beltrán del Río (rbdr)

documentation

README

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> and .gmi files are changed to .html unless the URL starts with gemini:
  • 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

Commit count: 0

cargo fmt