Sedition·com 3.0 routes and design document

Sedition·com 3.0 routes and design document

Wednesday, 23 February 2011—subject to ongoing, unnanounced updates

Modern Perl Modern Perl at Powell’s, Modern Perl at Barnes and Noble, Modern Perl at Amazon.com, or download Modern Perl for free and then recommend it to your friends, write a great review, or otherwise spread the word.

3.0 functionality

ElektrumPress, current candidate/prototype. What’s the matter? Don’t you get it?

Status: draft, deleted, publish; how does this jibe with scheduling and display targets?
Type: article, fragment, asset, comment; with this simple approach nodes can serve any purpose.

Should be some way to extend this so that nodes can serve… Or perhaps the same as the FTL model. No titles at all. Everything is just content. Same side issues though… just conceptually cleaner.

Routes

/
Home page, whatever that will mean.
/n
GET⇢ List of articles.
POST⇢ Create an article.
PUT⇢ Create an article.
/n/{id}
Individual view, including possible follow up comments and discussion.
/n/{id}/preview
Individual view of unpublished node for those with permission.
/n/{id}/edit
/n/{id}/rev
View a list of diffs for a node.
/n/{id}/rev/{¿guid?}
View a particular diff.
/n/{id}/preview/{token}
Individual view of unpublished node by rules associated with token; e.g. timespan, no edits, IP.
/n/random
Visit random node.
/n/tag/{tag};{tag};{tag}
List view of articles by tag(s).
/n/tag/{tag};{tag}/random
Visit random node from tag list.
/n/new
Form which posts to link.
/n/search/{terms}
Search the site. Terms may be passed in as the param q instead.
/user
Index of users? Personal page if signed-in?
/user/{id}
User view.
/user/{id}/edit
User settings and preferences.
/user/register
Form to create or associate account.
Supported account creation–
  • Native.
  • OpenID.
  • …?
/user/confirm/{token}
Confirm a native registration, reset a password, etc, etc, etc.
/user/login
/user/logout
Clears session.
/user/{id}/edit
User settings and preferences.
/sitemap
321
/sitemap.xml
321
/referer
321
/dav
Net::DAV::Server based interface to the root tree.
/chat
Anonymous too.
/admin/config/dump
Dump of the context’s configuration.
/admin/crontab
Not spec’d. Config::Crontab based interface?
/admin/dump
Experimental, dangerous interface for raw SQL content dumps.
/admin/inc
Plain text %INC dump.
/admin/{¿ping?}
Pings alla pingomatic.com.
./atom
Most resources can take this suffix for an Atom feed.
/admin/niceuri
GET⇢ Nice URI index.
POST⇢ new nice URI; redirects to /admin/niceuri/{string}.
/admin/niceuri/{string}
View/edit a nice URI; should validate it’s allowed by checking actions against it.

Authentication realms

OpenID
Native with Eks,Bcrypt

New features from 2.0

Content

  • As much in place editing as possible; sensible.
  • Application dumping of static files on demand, like a 404 page to plug into a web engine.
  • Arbitrary, autocomplete tagging of articles.
  • Token preview URIs so that previews may be shared.
  • Insert table of contents checkbox for view. Parses major tags and perhaps takes a setting for how deep to go.

Monetization

Look into needs for DoubleClick and BlogAds and cater to it.
http://web.blogads.com/publisher_html

Multi-author

Meta features to add/formalize

  • Pod viewer and perldoc interface.
  • Machine introspection.
  • Deployment with Starman or similar tool with web interface.

Static issues…

  • Error docs.
  • cross-domain.xml
  • favicon.ico.
  • 1x1 gif instructions for most servers and optimization where not possible?

508

Deployment

  • Starman could be self-HUPing… How to sanity check that you’re not about to crash your server?

Edit links have token so that you can pop a “This {node} has been edited since you came from this link. Perhaps you should view it to see its current state.”

Functional notes

  • Display name is not unique; this is necessary because the origin of the account can vary and because it’s just reality. Names are duplicated. Local usernames can be constrained.
  • Usernames are not allowed to be purely numeric; this affords /user/{name|id}.
  • Cache clearance should cascade for related nodes.