diff options
author | Jonas Smedegaard <dr@jones.dk> | 2022-04-23 20:09:58 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2022-04-23 20:09:58 +0200 |
commit | 9a8478e6b1300664442cbdff48bf3ae93b9cd495 (patch) | |
tree | 24c64710b4398f3b20d1b12eb2f7a8d71be1b4aa | |
parent | 6997eaa142dc2f77675144323bb93034f9cb3027 (diff) |
-rw-r--r-- | TODO.md | 87 |
1 files changed, 7 insertions, 80 deletions
@@ -17,78 +17,14 @@ None of them however fit our needs * must support [article](https://indieweb.org/article) posts * must support updating existing posts +A [project] has therefore been initiated +to develop a Micropub proxy service. + [Micropub services]: <https://indieweb.org/Micropub/Servers> "Overview of Micropub server implementations" - -### Develop server from scratch - -We will create a proxy service from scratch, -using [indieweb] and [git2]. - -[indieweb]: <https://crates.io/crates/indieweb> - "indieweb - rust crate implementing utilities for working with the IndieWeb" - -[git2]: <https://crates.io/crates/git2> - "git2 - rust bindings to libgit2 for interoperating with git repositories" - -#### Minimal Viable Product - -* implement only MUSTs in [Microsub server spec] -* cover Micropub post [entry] *article* - (fail if POST contains any other data than that) -* store received post as file - (fail if already exists) -* add created post file in git - (fail if `git add ...` or `git commit ...` fails) - -[Microsub server spec]: <https://www.w3.org/TR/micropub/#publishing-clients-li-1=> - "requirements for server implementations of Micropub" - -[entry]: <https://indieweb.org/Microsub-spec#entry> - "definition of Microsub post entry types" - - -#### addition: edit - -* cover Micropub scopes *read* and *update* -* when requested to read dir, return list of existing files in git -* when requested to read file, return content of file in git -* when requested to update file, replace existing file in git - (fail if unable to do that) - - -### addition: parse data - -* convert POST content from html to CommonMark -* convert GET content from CommonMark to html - - -### addition: parse metadata - -* convert html with [microformats] to [CommonMark-RDF] -* convert [CommonMark-RDF] to html with [microformats] - -[CommonMark-RDF]: <https://source.jones.dk/commonmark-rdf-spec/tree/README.md?h=master> - "CommonMark-RDF - draft spec for CommonMark with semantic hints" - -[microformats]: <https://indieweb.org/microformats2> - "microformats - Indieweb semantic markup" - - -### addition: media reference - -* cover referencing existing media at a [Media Endpoint] - -[Media Endpoint]: <https://www.w3.org/TR/micropub/#media-endpoint> - "Media Endpoint - images or videos potentially stored elsewhere" - - -### addition: media upload - -* cover accepting upload of new media to local git using git-annex - (fail if `git annex add ...` fails) -* cover acting as Media Endpoint +[project]: <https://salsa.debian.org/tinker-team/website-edit> + "website-edit - Micropub proxy service implemented in Rust" ## Micropub client @@ -105,17 +41,8 @@ which is unlikely to ever be packaged in Debian. [Indigenous]: <https://indigenous.marksuth.dev/> "Indigenous - app to interact with Micropub and Microsub services" - -### Develop client from scratch - -Maybe create a desktop client from scratch, -using [indieweb] and either [tauri] or [millennium]. - -[indieweb]: <https://crates.io/crates/indieweb> - "Rust crate implementing utilities for working with the IndieWeb" +The server proxy [project] might be extended +to also create a desktop client using [tauri]. [tauri]: <https://github.com/tauri-apps/tauri> "tauri - rust framework to build light & secure cross-platform applications with a web-based UI" - -[millennium]: <https://github.com/pykeio/millennium> - "millennium - rust framework to build light & secure cross-platform applications with a web-based UI" |