All Projects → pluggdapps → pagd

pluggdapps / pagd

Licence: other
Static site generator in python.

Programming Languages

python
139335 projects - #7 most used programming language
CSS
56736 projects
Makefile
30231 projects

Projects that are alternatives of or similar to pagd

ftd
🚧 (Alpha stage software) FTD: Programming Language For Prose 🚧
Stars: ✭ 18 (-68.42%)
Mutual labels:  static-site-generator
universal-model-vue
Universal Model for Vue
Stars: ✭ 25 (-56.14%)
Mutual labels:  mvc
hugo-initio
Hugo Theme port of Initio bootstrap template by GetTemplate
Stars: ✭ 58 (+1.75%)
Mutual labels:  static-site-generator
presskit.html
Re-implementation of presskit() as a static site generator
Stars: ✭ 250 (+338.6%)
Mutual labels:  static-site-generator
PkgPage.jl
Create a beautiful landing page for your package in less than 10 minutes.
Stars: ✭ 98 (+71.93%)
Mutual labels:  static-site-generator
xperience-training-13
Kentico Xperience 13 training website
Stars: ✭ 18 (-68.42%)
Mutual labels:  mvc
github-pages-vuepress
Build a static website using VuePress and deploy to Github Pages
Stars: ✭ 20 (-64.91%)
Mutual labels:  static-site-generator
nuxt-starter-netlify-cms
Example nuxt + netlify cms project. Nuxt port of Gatsby starter app.
Stars: ✭ 13 (-77.19%)
Mutual labels:  static-site-generator
Slovo
Искони бѣ Слово - already in production at https://слово.бг
Stars: ✭ 17 (-70.18%)
Mutual labels:  mvc
bfmvc
模仿springmvc的轻量级web框架,适合学习和搭建小型web项目使用
Stars: ✭ 86 (+50.88%)
Mutual labels:  mvc
create-harold-app
Static blog/site generator
Stars: ✭ 33 (-42.11%)
Mutual labels:  static-site-generator
moul
The minimalist publishing tool for photographers
Stars: ✭ 147 (+157.89%)
Mutual labels:  static-site-generator
hakyll-bootstrap
Basic Hakyll + Bootstrap site
Stars: ✭ 26 (-54.39%)
Mutual labels:  static-site-generator
kontent-boilerplate-express-apollo
Kontent Boilerplate for development of Express application using Apollo server and GraphQL.
Stars: ✭ 21 (-63.16%)
Mutual labels:  mvc
reslate
Beautiful static documentation for your API
Stars: ✭ 98 (+71.93%)
Mutual labels:  static-site-generator
forty
Forty theme - Hugo theme ported from HTML5UP origrinal theme called Forty.
Stars: ✭ 116 (+103.51%)
Mutual labels:  static-site-generator
cyrax
Static site generator
Stars: ✭ 41 (-28.07%)
Mutual labels:  static-site-generator
nocms
"NO, You don't need a CMS"
Stars: ✭ 13 (-77.19%)
Mutual labels:  static-site-generator
Space
This repository contains sample projects associated with articles I write.
Stars: ✭ 21 (-63.16%)
Mutual labels:  mvc
spear
Spear轻量级微服务框架,高扩展性,目前已支持TCP、HTTP、WebSocket以及GRPC协议,采用Consul/Nacos作为服务注册与发现组件,TCP协议采用DotNetty底层实现,HTTP协议采用ASP.NET CORE MVC实现。
Stars: ✭ 49 (-14.04%)
Mutual labels:  mvc

Overview

Static web site generator, based on well understood MVC - 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.

pagd follows, 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|        +------------+
            +--------+

Features

  • generates static output, hence can be hosted anywhere.
  • pluggable layouts.
    • I am currently using pagd.myblog layout for publishing my blog articles.
    • It is possible to create any number of layout either as part of pagd tool 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 through pagd command 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 to script.py module under pagd package.
  • web-site templates can be designed using tayra 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, uses magnific-popup jquery 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.myblog layout 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.
    • use google-webfonts by configuring CSS links using config.json attribute google_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 license
  • Requires: Linux/OS-X, Python-3.x, Pluggdapps.
    • To interpret markdown text, python-markdown needs to be installed.
    • To interpret rst text, docutils needs to be installed.
    • To interpret raw-html, python-lxml needs to be installed.
    • If you need source code highlighting in your rst text, pygments and docutils needs to be installed.
    • To template with jinja2 or mako corresponding packages need to be installed.
  • Status: Core design stable. Not expected to change.

Refer to glossary and documentation for default layout pagd.myblog.

Related links

pagd is under development - you can hack the code, contribute back with github. Note that the original repository is maintained with mercurial and uses hg-git plugin to publish it on github.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].