[ Home | Changes | Documentation | About | Ideas | Authors ]

Ideas for blog4y.

Document version.

For blog4y version: 0.4.0.

Source files are at revision: f4a39f2ce57d.

Package is at release state.

Build date: 2013-02-25.

About.

This document hold ideas of blog4y project. It is in free form without strong structure.

Requirements.

  • Command line interface.
  • Emacs/Vim/NetBeans integration.
  • Support for multiple weblogs.
  • Use RST/MarkDown/HTML/Textile/Typogrify and other source format for articles.
  • Storing images with sources.
  • Ability to generate static site.
  • Aility to publish static files through ftp/sftp/scp.
  • Ability to build offline book from all articles (pdf/chm/epub/moby).
  • Ability to customise publication URL (like year/month/day/title.html or UID/title.html or UID.html).
  • Feeds (RSS/Atom) by publication date.
  • Feeds (RSS/Atom) by separate tags (for planet-like feed aggregators).
  • Archive by date: per years, per months, per weeks.
  • Per years, per months, per weeks statistics with links to archive.
  • Templating with: M4, Jinja2.
  • Article translations.
  • Supoorts for drafts and article updates.

Implementation notes.

  • Setting the browser/editor.
  • Date formats/timezone for posts.
  • Encoding for title/tags/articles.
  • Setting the mime types.
  • Setting the web address for blogs and articles.
  • Setting stylesheets and templates.
  • Setting favorite icon.
  • sitemap.xml/robots.txt.
  • Authors...
  • Limits for web (article count on main page, by tags, in feed).
  • Default encoding - UTF-8.

Additional features.

  • Put some useful JS code to calculate how old post (1 year 3 months like string).
  • Example of using LessCSS.

Tags.

If mark each article with tag, like this:

tag:blog4y.sf.net,2013:UID

it is easy to find article clones under Internet and refer to it when original hosting provided will be gone from operation. Easy way to mark article is just put tag into article body...

See:

http://www.ietf.org/rfc/rfc4151.txt
The 'tag' URI Scheme.
http://www.taguri.org/
Tag URI.
http://en.wikipedia.org/wiki/Tag_URI
Tag URI.

Python libraries.

We will use:

  • docutils, for supporting reStructuredText as an input format:

    apt-get install python-docutils
    
  • markdown, for supporting Markdown as an input format:

    apt-get install python-markdown
    

Another interesting libraries:

  • feedgenerator, to generate the Atom feeds
  • jinja2, for templating support
  • pygments, for syntax highlighting
  • typogrify, for typographical enhancements
http://pyasn1.sourceforge.net/
ASN.1 in Python. python-pyasn1 in Debian.
http://www.gnu.org/software/libtasn1/
Libtasn1 is the ASN.1 library used by GnuTLS.

HTML as article format.

Static blog engine.

Complete:

Incomplete:

Blogs about static blog engine.

Complete:

Incomplete:

  • Python XML.

pydoc xml.dom.minidom pydoc xmlrpclib pydoc lxml

http://www.python.org/community/sigs/current/xml-sig/ http://pyxml.sourceforge.net/topics/

Comparing:

  • Any blog and Python.

http://code.google.com/p/python-blogger/ http://blogtk.jayreding.com/

  • LiveJornal and Python.

http://pyljclient.sourceforge.net/ http://only.mawhrin.net/~mss/thingies/ljpy/ http://ljcharm.sourceforge.net/manual.html

http://only.mawhrin.net/~mss/thingies/ljpy/

  • Wordpress and Python.

http://code.google.com/p/wordpress-library/ https://github.com/maxcutler/python-wordpress-xmlrpc https://github.com/charlax/wordpresslib

  • blogging systems

http://www.blogger.com/ http://wordpress.org/ http://wiki.blojsom.com/wiki/display/blojsom/About%20blojsom http://www.drupal.org/ http://www.movabletype.org/ http://www.nucleuscms.org/ http://www.typepad.com/

Blogger.com Atom API Typepad Atom API MovableType xml-rpc MetaWeblog xml-rpc LiveJournal LJ xml-rpc Blogger v1 xml-rpc Blogger v2 xml-rpc

Minimal Blogger template.

<html>
<head>
<b:skin></b:skin>
</head>
<body>
<b:section class='main' id='main'>
 <b:widget id='Header1' locked='true' title='Test Blog (Header)'
type='Header'/>
 <b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog'/>
 <b:widget id='BlogArchive1' locked='false' title='Blog Archive'
type='BlogArchive'/>
 <b:widget id='Attribution1' locked='false' title=''
type='Attribution'/>
</b:section>
</body>
</html>

Adding "read more" via Blogger api.

Content that appears before the Read More link... &lt;!-- more --&gt; Content that appears only when the user clicks on the Read More link.