blob: 272070e066918f9ce9b62c41a62f350847c76912 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# gema_texto
`gema_texto` parses gemtext and renders html.
This library powers [blog](https://r.bdr.sh/blog.html) and
[page](https://r.bdr.sh/page.html), 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`
|