summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2021-10-27 16:41:28 +0200
committerJonas Smedegaard <dr@jones.dk>2021-10-27 16:41:28 +0200
commitd94a0c554948253d2a7ac73e00185d91e3983503 (patch)
tree748e01e8cc5a0811db8b87cbbbd44b421b64527a
initial draft
-rw-r--r--DEVELOP.md93
1 files changed, 93 insertions, 0 deletions
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]: <https://lunrjs.com/>
+ "Lunr.js - small, full-text search library for use in the browser"
+
+[OpenSearch]: <https://github.com/dewitt/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]: <https://indieweb.org/Micropub>
+ "Micropub - open API standard (W3C Recommendation) for creating, editing, and deleting posts on websites"
+
+[Micropub clients]: <https://indieweb.org/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