aboutsummaryrefslogtreecommitdiff
path: root/README.md
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`