From d94a0c554948253d2a7ac73e00185d91e3983503 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Wed, 27 Oct 2021 16:41:28 +0200 Subject: initial draft --- DEVELOP.md | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 DEVELOP.md diff --git a/DEVELOP.md b/DEVELOP.md new file mode 100644 index 0000000..83f9d49 --- /dev/null +++ b/DEVELOP.md @@ -0,0 +1,93 @@ +# Designing types of website hosting + +Sustainable website hosting is a balancing act +among multiple qualities and tools. + + +# Qualities + +## content reading + +## content search + +Ideal would be for hosting tools to pre-compute static search index +and serve e.g. [Lunr.js] for dynamic client-rendered result page. + +Additionally, larger sites should offer and advertise server-rendered search, +compliant with the [OpenSearch] API. + +[Lunr.js]: + "Lunr.js - small, full-text search library for use in the browser" + +[OpenSearch]: + "OpenSearch - collection of simple formats for the sharing of search results" + + +## content editing + +Hosting tools should ideally support the open [Micropub] standard API, +offer a web-based client for inline use, +and encourage use of alternative native [Micropub clients]. + +[Micropub]: + "Micropub - open API standard (W3C Recommendation) for creating, editing, and deleting posts on websites" + +[Micropub clients]: + "Micropub clients - sites and client applications that publish to servers via Micropub" + + +## content markup + +## Plain source files + +## Change tracking + +# Tools + + +## MoinMoin + + * [-] read: dynamic server-rendered pages + static media + * [-] inline-search: dynamic server-rendered result page + * [-] remote-search: unsupported + * [-] inline-edit: proprietary WSGI-based editing form + * [-] remote-edit: unsupported + * [-] markup: proprietary creole + * [x] source: plaintext files and plain media files + * [-] tracking: proprietary revision control system + + +## Ikiwiki + + * [x] read: static server-pre-rendered pages and media + * [-] inline-search: dynamic server-rendered result page + * [-] remote-search: unsupported + * [-] inline-edit: proprietary CGI-based editing form + * [x] remote-edit: git hook + * [x] markup: semi-standard Markdown with proprietary macros + * [x] source: plaintext files and plain media files + * [x] tracking: git, content optionally separated and/or layered + + +## MkDocs + + * [x] read: static server-pre-rendered pages and media + * [x] inline-search: static pre-computed index + dynamic client-rendered result page + * [-] remote-search: unsupported + * [-] inline-edit: unsupported + * [x] remote-edit: git hook + * [x] markup: semi-standard Markdown with proprietary macros + * [x] source: plaintext files and plain media files + * [x] tracking: git, content optionally separated and/or layered + + +## Ideal + + * [x] read: static server-pre-rendered pages and media + * [x] inline-search: static pre-computed index + dynamic client-rendered result page + * [x] remote-search: static pre-computed index + dynamic server-rendered OpenSearch API + * [x] inline-edit: Micropub interface + web-based Micropub client + * [x] remote-edit: Micropub interface + native Micropub client, and git hook + * [x] markup: standard Commonmark with YAML or TOML metadata header + * [x] source: plaintext files and plain media files + * [x] tracking: git, content optionally separated and/or layered -- cgit v1.2.3