aboutsummaryrefslogtreecommitdiff
path: root/gemini-to-web/README.md
blob: ad9476c01cd1b7be414d486e4a9d4dbca3385f74 (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# `gemini-to-web`

## Installation

With [uv](https://docs.astral.sh/uv/):

```
uv tool install git+https://ñix.es/cgit/alex/coppewebite.git/#subdirectory=gemini-to-web
```

With [pipx](https://pipx.pypa.io/stable/):

```
pipx install git+https://ñix.es/cgit/alex/coppewebite.git/#subdirectory=gemini-to-web
```

## Usage

```console
$ uv run coppewebite-parse <<EOT
> # Hello
> 
> World.
> EOT
[{"level": 1, "heading_text": "Hello", "type": "HeadingLine"}, {"text": "", "type": "TextLine"}, {"text": "World.", "type": "TextLine"}]
```

```console
$ uv run coppewebite-to-html <<EOT
> # Hello
> 
> World.
> EOT
<html>
  <head>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <title>Hello</title>
  </head>
  <body>
    <h1>Hello</h1>
    <p>World.</p>
  </body>
</html>
```

`coppewebite-indexer` reads from standard input a `\0`-separated list of files (such as the output of `find -print0`).
`coppewebite-indexer` parses all files as gemtext, extracting the first header, and matching the header text as a Gemini page subscription entry element label.
`coppewebite-indexer` outputs a list of gemtext links, sorted in reverse chronological order, suitable for use as a Gemini page subscription.

You can use `coppewebite-indexer` to create a gemlog index automatically.

`coppewebite-to-rss` reads from standard input a gemtext file and produces the equivalent RSS to the gemtext subscription.

Refer to the [`example`](example) directory for an example.