A simple library for parsing the Gemtext markup language
Project description
gemtext - A simple library for parsing the Gemtext markup language
Introduction
gemtext is a small and simple library that provides code for parsing the
hypertext markup language of the Gemini
project.
Installation
gemtext is available from pypi and
can be installed with your package installer of choice.
With pip:
pip install gemtext
With uv:
uv add gemtext
Quick start
The library provides a single main parsing class called Gemtext. It is
initialised with a text of gemtext and the content property provides a
list of lines, typed with their parsed type, each having its own relevant
properties.
A very minimal parser might look like this:
import fileinput
from gemtext import Gemtext
def parse_input() -> None:
for gem_line in Gemtext("".join(fileinput.input())).content:
print(f"{gem_line!r}")
The library contains a simple test command line tool, which can be accessed
either via the Python -m switch, or depending on your environment, via the
gemtext command. For example, given this content of a file called example.gmi:
# This is a heading
## This is a sub-heading
### This is a sub-sub-heading
=> gemini://davep.gemcities.com/ Dave's test capsule
> This is a deep and meaningful quote
```
Here is some pre-formatted text.
Here's some more of that text.
```
* One
* Two
* Three
The gemtext command (or python -m gemtext) would produce:
$ gemtext example.gmi
Heading(content='This is a heading', level=1)
Paragraph(content='')
Heading(content='This is a sub-heading', level=2)
Paragraph(content='')
Heading(content='This is a sub-sub-heading', level=3)
Paragraph(content='')
Link(content="Dave's test capsule", uri='gemini://davep.gemcities.com/')
Paragraph(content='')
Quote(content='This is a deep and meaningful quote')
Paragraph(content='')
PreFormatted(content="Here is some pre-formatted text.\n\nHere's some more of that text.")
Paragraph(content='')
ListItem(content='One')
ListItem(content='Two')
ListItem(content='Three')
See the main documentation for the full API.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gemtext-0.1.0.tar.gz.
File metadata
- Download URL: gemtext-0.1.0.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
763657c45e5fe5c681011bac248c7b502ed2d5b961c1ffb27547905b2fba8509
|
|
| MD5 |
4cbdff123bff7de153b94fcb7bfb56a1
|
|
| BLAKE2b-256 |
f4b654ce34d9cb2fdb1cd85e732e4a7f4564178fbd5299527e53ffdb19d119ef
|
File details
Details for the file gemtext-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gemtext-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d0965dad895216b4655a95b88e13fc672ee2a08497a3395348812ed26e4ae83
|
|
| MD5 |
5a7a5f97a5de9218bbd342386c4ded4b
|
|
| BLAKE2b-256 |
ade3ce14e923e5e181200738421df2fe84c0af04553aadc1332e0a37fdb729bc
|