📜 ⬆️ ⬇️

Static website generators

This note is about several static web page generators. The list of different engines is at the very end.

Jekyll appeared when Tom Preston-Werner , the co-founder of GitHub, tired of blogger platforms like Wordpress or Blogger, asked himself : "What happens if I write to the blog the way I develop software?" Posts in it are created in files in the Textile format and are played through the Liquid template engine. Both are very popular among the rubists.

Jekyll turned out to be very useful for the Donetsk coffee-and-code site . Anyone can write news as files in the repository. Commit to github. The repository with files is checked by cron every half hour. And, if there are updates, the site is updated. Thus, a kind of caching for 30 minutes is obtained. Hosting courtesy of Pasha Reznikov . You can read about the details of work with posts in the memo on the site, but in fact everything is simple there: the file is edited and git push is done.
')
For my purposes I wanted something written in Python. It would be desirable, that pages were written in reStructuredText, records were sorted by last edited, and some more small whims. A discussion on StackOverflow can be a good starting point for those who face similar challenges.

An analogue of Jekyll in Python - Hyde , which grows from AYM CMS , seemed like a kind of "Wasserman vest" - too much, although the ancestor is very lightweight.

Poole caught the eye. It uses Markdown, and in the templates the author made it possible to embed pieces of code in Python. For specifically such purposes, such mixing of code and design seemed appropriate. I liked the fact that initially the whole engine was a single file, which then creates the initial templates.

In the end, he started writing StaPy - his bike based on Poole. There, also, all text files for pages are loaded into dict-like objects, and then pages and capitalized are generated from them. Nevertheless, I decided not to interfere with the code and design, but I abandoned the paradigm of installation - the script is stored together with all the files in the directory and filed for various applications. Django templates are used as templates. The code for the link is laid out only for illustrations - until I assign it even a minor version.

After all the observations on various engines, it now seems to me very logical if the tasks of generating static websites arise, choose your favorite language (Python, Ruby, PHP ...), the most familiar template engine (Django, Liquid, Smarty ...) , the most familiar markup language (reStructureText, Textile, Markdown ...) and jot down your generator based on the available ones. For team goals, averaging preferences, and also take into account what is most common and best documented.

List of engines


Python


AYM CMS
pretty lightweight engine with Django templates
Hyde (old)
An analogue of Jekyll, Django templates, a lot of things are mixed
Hyde (new)
no django active development
Poole
Markdown + templates that support code insertion
Stapy
reStructureText + Django templates
Cyrax
On Jinja2 templates
Pelican
Jinja2, reST, Markdown - description in Russian
Blogofile
Mako patterns, different markup languages

pyblosxom.bluesock.org/ - very ancient by the standards of the Internet, since 2004
nikola.ralsina.com.ar/ - developed
posativ.org/acrylamid/ - simple


Ruby


Jekyll
very popular engine among those who use github
Gollum site
Generates a static wiki site in Gollum format that is used by GitHub (git + Markdown, Textile, reST ...).
Octopress
Add-on Jekyll with a number of plugins and a responsive template.

Php


Staceyapp

Node.js


github.com/sapegin/sweet

miscellanea



bitbucket.org/jek/blatter/
github.com/dz/chisel
markdoc.org/
nanoc.stoneship.org/
inky.github.com/pilcrow/
sphinx.pocoo.org/
ivy.fr/tahchee/

Add to the list in the comments.

Source: https://habr.com/ru/post/93499/


All Articles