From: Victor Wagner Date: Mon, 13 Jan 2014 14:18:45 +0000 (+0400) Subject: new description X-Git-Url: http://wagner.pp.ru/gitweb/?a=commitdiff_plain;h=HEAD;p=oss%2Fvjournal.git new description --- diff --git a/activity b/activity deleted file mode 100644 index a37a135..0000000 --- a/activity +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -while true; do sudo netstat -tp --numeric-ports ; done |awk -W interactive '/:80/&&$7!="-" { -if (!( ($4,$5) in a) ) { -print $4,$5,$7,$8; -a[$4,$5] = $7; -} -}' >log diff --git a/journal.txt b/journal.txt new file mode 100644 index 0000000..2ea289c --- /dev/null +++ b/journal.txt @@ -0,0 +1,122 @@ +Project of the mini-blog serivice (tornado-based). + +1. All the blog entries and tapes are stored as plain html files and +served via StaticFileHandler (or even frontend httpd such as nginx). + +2. Comments from any OpenID authenticatied user is allowed (unless this +user or corresponding openid-provider is banned). + +Comments are stored within POST page. + +3. Post and editing is allowed for openid-authenticated blog owner. OpenID provider +with support for email and avatar should be incorporated. + +4. There can be more than one blog on the same physical instance of +application. Blogs can be distinguihed by URI prefix and hostname. +All blogs on the same physical instance share cache of authenticated +users, including their avatars. + +5. There should be support for rotatable tape of recent posts. + +6. Post could have multiple tags. Each tag has a page with list of +recent (rotatable) posts with same tags. When post is edited and list of +tags is changed, post is removed from the tapes which are no longer +relevant + +7. There can be cuts in the post. Cut is implemented as block with +display:none and javascript to hide/unhide. + +8. Comment submit form is included into post (and possbile tape) pages +and open clicking "Reply" link using javascript. + +9. All templates (for post, comment etc) are pure html files where +elements to be edited upon posting are marked with special classes. + +10. There should be an installer which genrates secret for tornado +securie cookie and provides default configuration for apache and nginx +frontends. + +11. There should be no client-server database. If there is +persistent state which +cannot be represented as publically available files (hmtl. images) on +the filesystem (such as cached user session) they should be iplemented +as persistent dictionary using shelve standard module. + +12. There should be commenter preferences URL, which would allow user to +specify e-mail address and avatar. + +URL specification + +${prefix}/index.html - main tape of recent posts +${prefix}/prevNNNN.html - rotated parts of recent posts tape +${prefix}/tag/index.html list of tags. +${prefix}/tag/tagname.html list of recent posts with given tag +${prefix}/nnnn/nn/index.html list of posts, posted during year nnnn, +month nn +${prefix}/nnnn/nn/user-specified-name.html - individual post with +discusson\ +${prefix}/avatars - cached user avatars +${prefix}/login - login page handled by tornado.auth.OpenIDMixin +${prefix}/post - page to create new post +${prefix}/edit/nnnn/nn/user-specified-name.html - page to edit/delete existing post +${prefix}/comment/nnnn/nnn/user-specified-name.html?id=comment-id - page +to add comment +${prefix}/ban?user=email - url to ban openid-user +${prefix}/ban?site=hostname - url to ban entire openid provider. +${prefix}/templates - static templates for all pages are stored. +${prefix}/friend?add=identity-url - add an RSS feed from your friend +blog to the friend tape +${prefix}/friend?del=identity-url - remove RSS feed from friend tape +Template classes and editing. +${prefix}/user/identity-url - allows to specify identity avatar. + +Prefix is not contained into distributive templates. It is added there +when new page created from the template + +Post information is stored into the following html elements + +1. title and h1.title - title of the post +2. .date - date of the posting +3. .tags .tag a - url and names of tag. If there is more than one tag +block with class .tag is replicated neccessary number of times. +4. .body (should be block element) - body of post +5. img.authorpic - choosen author userpic if several are possible. + +post information in the tape (recent post, calendar and tag) page + +1. .posts .post h1.title or .posts .post h1 a.title title of the post + In second case href attribute is replaced by post url + .post .post a.postlink - href is replaced by post url +2. .date - date + .posts .post a.date href replaced with link to the month directory +3. +4. +5. -as above + + +Comment information + +.comment block can have nested .comments list. IF so, comments which are +responses to this commend are added to the comments list of this comment +block. + +Otherwise if there is an element in the .comment block with class .level and directly +specified width: style, or the .comment block itself has inline +margin-left property, this style value would be multiplied accorde +comment is inserted just before next comment of same level as parent. + +If neither criteria met, comment is insertied at the end of discussion. + +.comment a.parent@href set to the #id where id is value of id attribute +of parent comment. + +.comment .author set to display name of author +.comment a.author@href set to identity url of author +.comment img.avatar@src set to the url of locally cached author's avatar +.comment .text set to the text of comment +.comment a.reply@href set to the link to the commenting URL +.comment a.edit@href set to the link of comment editing/deleting URL. + + + +Friends tape - RSS aggregator based on cron job.