aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralex <alex@pdp7.net>2026-02-21 21:39:23 +0100
committeralex <alex@pdp7.net>2026-02-21 21:39:23 +0100
commit6b774fd35259aee3851c144b375c63d47b37f022 (patch)
treeb178d02a126ddccce889b239396562f812625d27
parentfb45a0401894b43ccebebb824d69ab56314ae440 (diff)
Extend READMEcoppewebite
-rw-r--r--README.md56
1 files changed, 54 insertions, 2 deletions
diff --git a/README.md b/README.md
index 3aa79bd..b2c3c7c 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,60 @@
Coppewebite is a project exploring interactions between the [Gemini protocol](https://geminiprotocol.net/) and the web.
-* [`gemini-to-web`](gemini-to-web): Python library and command-line tools to convert Gemini to web formats.
+* [`gemini-to-web`](gemini-to-web): Python library and command-line tools to convert Gemini to web formats, including generating RSS from subscribable gemtext pages.
* [`apache-configuration`](apache-configuration.md): documentation for configuring Apache httpd to make serve Gemtext as an alternative negotiated content type.
* [`gemini-from-http`](gemini-from-http): a Gemini proxy server that proxies all content to an http or https server.
-`gemini-from-http` is particularly useful paired with an Apache httpd server configured to serve Gemtext as an alternative negotiated content type.
+`gemini-from-http` is particularly useful paired with an Apache httpd server configured to serve Gemtext as an alternative negotiated content type, with HTML content generated by `gemini-to-web`.
+
+## Simple authoring of subscribable websites and Gemini capsules
+
+Making simple websites is not as simple as it seems.
+
+HTML is tedious, requiring nested tags and verbose markup.
+
+Markdown uses lighter markup that is sufficient for text content.
+
+However, both using HTML and Markdown, you will likely require some software to enable features such as RSS feeds.
+(Writing RSS feeds by hand is inconvenient.)
+
+gemtext has a companion specification for subscribing to gemtext pages that follow a specific format.
+If a gemtext page contains links with dates, then Gemini software can infer a subscription from the links.
+
+`gemini-to-web` follows this specification.
+When converting a subscribable gemtext content, `gemini-to-web` generates an RSS feed and links it from the generated HTML page.
+
+## MultiViews and URLs
+
+Apache httpd supports the MultiViews feature.
+
+With this feature, a URL `https://example.com/foo` can serve both `foo.html` for clients that support HTML, and `foo.gmi` for clients that support the Gemini protocol.
+
+If you don't create links to `foo.html` nor `foo.gmi` but to `foo`, then the same content works well for both content types.
+
+## A process for authoring content in Gemini
+
+Write all the website content following the gemtext format, with files with the `.gmi` extension.
+In gemtext, make internal links without the extension.
+
+Follow the gemtext subscription specification for pages like blogs that you want to enable people to subscribe to updates for.
+
+Convert all `.gmi` files to `.html` using `gemini-to-web`.
+
+Configure Apache httpd to serve the `.gmi` and `.html` files using the MultiViews file.
+
+Configure the `gemini-from-http` Gemini proxy to serve content from Apache httpd.
+
+By following the previous steps:
+
+* You only author gemtext pages that are simpler than HTML.
+* Readers can access all content both using the Gemini protocol and traditional web browsers.
+* Readers can subscribe to frequently updated pages both using Gemini software and traditional RSS subscription software.
+
+## Additional benefits
+
+Because gemtext is such a simple format, many traditional authoring techniques become easier.
+
+For example, adding a header or a footer to many pages can be done by plain text file concatenation.
+
+`gemini-to-web` includes an indexer that can generate a reverse-chronological list of articles automatically to simplify maintenance of a blog-like site.