diff options
author | Jonas Smedegaard <dr@jones.dk> | 2021-10-27 16:41:28 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2021-10-27 16:41:28 +0200 |
commit | d94a0c554948253d2a7ac73e00185d91e3983503 (patch) | |
tree | 748e01e8cc5a0811db8b87cbbbd44b421b64527a |
initial draft
-rw-r--r-- | DEVELOP.md | 93 |
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 |