X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=Documentation%2Fdesign_www.txt;h=92897043ed85d80ae13578447b848bfe10bb889e;hb=43c0f38b8dc27254deb10204cf97d7af7e49d368;hp=f6ed26a790b405b9f17e7358c76d013ca033046f;hpb=8d20886bd0638561ddd677a4e19a4f01022bdfde;p=public-inbox.git diff --git a/Documentation/design_www.txt b/Documentation/design_www.txt index f6ed26a7..92897043 100644 --- a/Documentation/design_www.txt +++ b/Documentation/design_www.txt @@ -1,12 +1,64 @@ URL naming ---------- -/$LISTNAME/?before=$GIT_COMMIT -> HTML only -/$LISTNAME/all.html?before=$GIT_COMMIT -> HTML only, includes replies -/$LISTNAME/index.atom.xml -> Atom feed -/$LISTNAME/all.atom.xml -> Atom feed, includes replies -/$LISTNAME/mid/$MESSAGE_ID.html -> HTML content -/$LISTNAME/mid/$MESSAGE_ID.txt -> raw text +### Unstable endpoints +/$LISTNAME/?r=$GIT_COMMIT -> HTML only +/$LISTNAME/atom.xml -> Atom feed + +#### Optional, relies on Search::Xapian +/$LISTNAME/t/$MESSAGE_ID.html -> HTML content of thread + +### Stable endpoints +/$LISTNAME/m/$MESSAGE_ID.html -> HTML content (short quotes) +/$LISTNAME/m/$MESSAGE_ID.txt -> raw original +/$LISTNAME/m/$MESSAGE_ID -> 301 to .html version +/$LISTNAME/f/$MESSAGE_ID.html -> HTML content (full quotes) +/$LISTNAME/f/$MESSAGE_ID -> 301 to .html version +/$LISTNAME/f/$MESSAGE_ID.txt -> 301 to ../m/$MESSAGE_ID.txt + +FIXME: we must refactor/cleanup/add tests for most of our CGI before +adding more endpoints and features. + +Maybe TODO (these might be expensive) +------------------------------------- +/$LISTNAME/t/$MESSAGE_ID.mbox -> mbox content of thread We use file name suffixes on all of these (except /) so URLs may easily cached/memoized using a static file server. + +Encoding notes +-------------- + +Raw HTML and XML should only contain us-ascii characters which render +to UTF-8. + +Plain text (raw message) endpoints display in the original encoding(s) +of the original email. + +Guidelines for using limited HTML +--------------------------------- +We mainly use HTML for linking pages together with . +We also set to make window management easier. + +We favor <pre>-formatted text since public-inbox is intended as a place +to share and discuss patches and code. Unfortunately, long paragraphs +tends to be less readable with fixed-width serif fonts which GUI +browsers default to. So perhaps we will add different endpoints for +variable-width fonts. + +* No graphics, images, or icons at all. We tolerate, but do not + encourage the use of GUIs. + +* No setting colors or font sizes, power to users to decide those. + +* No JavaScript. JS is historically too buggy and insecure, and we will + never expect our readers to do either of the following: + a) read and audit all our code for on every single page load + b) trust us and and run code without reading it + +* We only use CSS for one reason: wrapping pre-formatted text + This is necessary because unfortunate GUI browsers tend to be + prone to layout widening. w3m is fine here without CSS :) + No other CSS is allowed, especially with scary things like: + + http://thejh.net/misc/website-terminal-copy-paste