Package: pagd
OverviewStatic web site generator, based on well understoodMVC- Model, View,
Controller - design philosophy. The general idea behind MVC from web
application’s perspective is+--------+
                           |template|
                           +--------+
                               |
                               V
+-------+   +----------+    +------+    +-----+
|request|-->|controller|--->|action|<---|model|
+-------+   +----------+    +------+    +-----+
                               |
                               V
                          +---------+
                          |HTML page|
                          +---------+
                               |
                               V
     goes to the client  +-------------+
   <---------------------|http-response|
                         +-------------+The general idea being that,http request reaches web-application’s controller logic.controller resolves request to web-action by parsing request-URL.the action-logic gathers necessary context information from database models
and other sources.a html-template is identified, and the final HTML page is generated using
context information from models and page-layout from one or more template
files.pagdfollows, more or less, a similar principle to build a web-site from a
collection of files organised as a directory tree. Here is a brief idea on how
it is done+------+    +---------+      +-------------+
|layout|--->|generator|<---->|page-iterator|
+------+    +---------+      +-------------+
                 |                  ^
                 |                  |          +------------+
                 V                  +<---------|page-context|
            +---------+             |          +------------+
            |Html-page|             |
            +---------+             |          +-------------+
                 |                  +<---------|page-template|
                 |                  |          +-------------+
                 V            +------------+
            +--------+        |page-content|
            |web-site|        +------------+
            +--------+Featuresgenerates static output, hence can be hosted anywhere.pluggable layouts.I am currently usingpagd.mybloglayout for publishing my blog articles.It is possible to create any number of layout either as part ofpagdtool or as separate package.although layouts are encouraged to follow the Model-View-Controller
concept explained above, it is up to the layout-plugin to define a structure
and meaning of layout’s source directory-tree.everything that needs to get done by pagd is done throughpagdcommand
line interface.command line interface comes with simple sub-commands like,create, to create a new layout.gen, to generate static web site from a source layout.sub-commands are plugins and can be extended by implementing
pagd.interfaces.ICommand interface.to use pagd as python library, refer toscript.pymodule under pagd
package.web-site templates can be designed usingtayra template.experimental feature is available for mako and jinja2. If you face problems
with these templates, kindly let me know.reStructuredText directives,code syntax highlighting.play youtube video within page content.display collection of images as gallery, usesmagnific-popupjquery
plugin. Magnific-popop is a well documented jquery plugin, it is possible
to change its CSS file and/or pagd template script to customize it in
many ways.to embed github gist, entire gist or individual file in a gist.pagd.mybloglayout is loaded with batteries.write blog articles in reStructured text, markdown, plain-text, html or
even as tayra-templates.template your site using tayra templates.configure site generation using JSON file.add context to individual pages are all pages under a sub-directory
through one or more JSON files.usegoogle-webfontsby configuring CSS links usingconfig.jsonattributegoogle_webfonts.integration with disqus commenting system. Comments will be stored in
disqus’ server.integration with git, mercurial repository to gather file’s meta-data like
page’s author, email, created-time, last-modified-time etc…, this is
entirely optional.social sharing with twitter, facebook, hackernews, google+, reddit,
linkedin etc…includes jquery, template can be customized with jquery plugins.learn more -pagd.myblog.only part that cannot be configured, customized or entirely replaced, is
the name of the tool ;)License:GPLv3 licenseRequires:Linux, Python-3.x, Pluggdapps.To interpret markdown text,python-markdownneeds to be installed.To interpret rst text,docutilsneeds to be installed.To interpret raw-html,python-lxmlneeds to be installed.If you need source code highlighting in your rst text,pygmentsanddocutilsneeds to be installed.To template with jinja2 or mako corresponding packages need to be
installed.Status:Core design stable. Not expected to change.Refer toglossaryand documentation for default layoutpagd.myblog.Related linkspackage documentation.changelog.todo.mailing-list- if you have any problem just ask !!pagd is under development - you can hack the code, contribute back withgithub. Note that the original
repository is maintained with mercurial and uses hg-git plugin to publish it
on github.