|Home||Switchboard||Unix Administration||Red Hat||TCP/IP Networks||Neoliberalism||Toxic Managers|
May the source be with you, but remember the KISS principle ;-)
Bigger doesn't imply better. Bigger often is a sign of obesity, of lost control, of overcomplexity, of cancerous cells
|Content management||Recommended Links||Nikola||ttree|
|Templer||Beautifiers and Pretty Printers||Compilers Algorithms||Best Compiler Construction Books||Lexical analysis|
|Recursive Descent Parsing||A symbol table||Programming Language Processors in Java: Compilers and Interpreters||XML|
|Program Generators with XML and Java||Generative Programming Methods, Tools, and Applications||Code Generation in Action||Humor||Etc|
Most "modern" websites are dynamic in the sense that the contents of the site live in a database, and are converted into presentation-ready HTML only when a user wants to see the page. That's great. However, it presents some minor issues that static site generators try to solve.
In a static site, the whole site, every page, everything, is created before the first user even sees it and uploaded to the server as a simple folder full of HTML files (and images, CSS, etc).
So, let's see some reasons for using static sites:
Dynamic sites are prone to experience security issues. The solution for that is constant vigilance, keeping the software behind the site updated, and plain old good luck. The stack of software used to provide a static site, like those Nikola generates, is much smaller (Just a web server).
A smaller software stack implies less security risk.
If you create a site using (for example) WordPress, what happens when WordPress releases a new version? You have to update your WordPress. That is not optional, because of security and support issues. If I release a new version of Nikola, and you don't update, nothing happens. You can continue to use the version you have now forever, no problems.
Also, in the longer term, the very foundations of dynamic sites shift. Can you still deploy a blog software based on Django 0.96? What happens when your host stops supporting the php version you rely on? And so on.
You may say those are long term issues, or that they won't matter for years. Well, I believe things should work forever, or as close to it as we can make them. Nikola's static output and its input files will work as long as you can install a Python > 2.6 in a Linux, Windows, or Mac and can find a server that sends files over HTTP. That's probably 10 or 15 years at least.
Also, static sites are easily handled by the Internet Archive.
On dynamic sites, every time a reader wants a page, a whole lot of database queries are made. Then a whole pile of code chews that data, and HTML is produced, which is sent to the user. All that requires CPU and memory.
On a static site, the highly optimized HTTP server reads the file from disk (or, if it's a popular file, from disk cache), and sends it to the user. You could probably serve a bazillion (technical term) pageviews from a phone using static sites.
On server-side blog platforms, sometimes you can't export your own data, or it's in strange formats you can't use in other services. I have switched blogging platforms from Advogato to PyCs to two homebrew systems, to Nikola, and have never lost a file, a URL, or a comment. That's because I have always had my own data in a format of my choice.
If you are using static generator of web site of blog you own your files, and you can do anything with them.
See below news section for more examples and discussion.
Feb 15, 2017 | www.cyberciti.bizrequires multiple VMs , CDN for static assets , caching engine such as memcached , PHP, mysql database, comment moderation, and on going updates. A growing trend is to keep your blog simple by avoiding CMS and use static HTML generators that offers the following benefits:
- No more complex setups i.e. no databases/php/caching engines required.
- No more comment moderation.
- Pesky updates.
- Static files are more secure.
- Easy to scale or cache on edge/CDN nodes.
- Provides all the blog-aware visual bells and whistles such as categories, pages, posts, Permalinks, and custom layouts.
Operating system : Cross-platform Purpose : Blogging system Targets : Bloggers who wish to follow KISS principal . License : MIT License Download url : jekyllrb.com Similar apps: Haskell based Hakyll , Ruby based nanoc , Python based Pelican .
Ramakrishna Reddy, Principal Software Engineer @ ... (more) Principal Software Engineer @ Red Hat, Problem Solver, I18N and L10N developer.
Best available could be different for different users perspective, as of today there are quite a few static blog generators in Python. The popular ones seem to be or based on the following projects ::
Pelican :: http://getpelican.com
Mynt :: http://mynt.mirroredwhite
Wok :: http://wok.mythmon.com/
Sphinx :: http://sphinx.pocoo.org/
Frozen Flask :: http://packages.python.or
Hyde :: http://hyde.github.com/
Tinkerer :: http://tinkerer.bitbucket
Nikola :: Nikola | Nikola
Though sphinx would be an overkill just to run a static blog generator, but with little tweaks it could the job done.
- Blogofile - (Mako, Jinja2)-based generator with supports for (reStructuredText, Markdown, Textile), Git, Disqus, RSS feeds, plugins, and S3, very nice license with human touch.
- Clay - Jinja2 for easy site prototyping, MIT.
- Complexity - A refreshingly simple static site generator, for those who like to work in HTML.
- Cyrax - poetic Jinja2 engine, used for osgameclones.
- Hyde - Jinja2-based static web site generator, MIT, source
- Mynt - Static website generator based on Markdown and Jinja2. BSD-3.
- Nikola - Generator supporting reST, Markdown, IPyNB et al.; using Mako and Jinja2 for templates; supports multilingual sites, galleries, RSS feeds, DISQUS et al. for comments. Incremental builds. MIT license.
Sharmila G Sivakumar
There is oak (Which I'm going to try) https://github.com/marc0s/oak/tr...
mynt http://mynt.mirroredwhite.com/ which is very good, except for the fact that, it does not support, pages in markdown (only html)
http://tinkerer.bitbucket.org/ which based on sphinx and reStructuredText. It is very good and neat. But you loose a little control over your installation. Perfect choice if you are going to start a new blog. A bit painful if you are going to port an existing one.
Note: The updated version of this list now lives here.
Sometimes, all a geek needs is a quick way to generate a static site and put it up on a server or hosting service like Amazon S3 or GitHub Pages. We've compiled a list of static website generators that can be used for exactly this purpose:
- Blatter: Simple tool for developing and publishing static web sites built from templates.
- Blogofile: A static website compiler and blog engine, written and extended in Python.
- Bonsai: Static web site generator. Provides a tiny HTML5, mustache driven template set.
- Chisel: A simple Python static blog generation utility.
- Dynamicmatic: Sinatra extension that integrates Sinatra with StaticMatic. Allows most of your site to be static while having a few dynamic pages that can use StaticMatic layouts and partials.
- Frank: Inspired by Sinatra's simplicity and ease of use, Frank lets you build static sites using your favorite libs.
- Hobix: Commandline blogging, static pages & ruby.
- Hyde: Static website generator powered by Python & Django. Hyde supports all the Django template tags & filters and has a built-in web server + auto-generator.
- ikiwiki: Ikiwiki is a wiki compiler. It converts wiki pages into HTML pages suitable for publishing on a website.
- Jekyll: A simple, blog aware, static site generator.
- Jinja: Jinja2 is a full featured template engine for Python. It has full unicode support, an optional integrated sandboxed execution environment, widely used and BSD licensed.
- Korma: Git based blog.
- Lanyon: Static site generator written in Python and licensed under the BSD license.
- Mako: Template library written in Python.
- Markdoc: Markdown-based wiki system. Allows you to create and manage wikis as quickly and easily as possible.
- Middleman: Static site generator utilizing Haml, Sass, Less & Coffee Script and providing JS/CSS compression, image compression and cache busting.
- nanoc: Ruby web publishing system for building small to medium-sized websites.
- Pagegen: Creates web sites from flat text files and directories. Great for managing sites from the command line.
- Stacey: Lightweight content management system. No database setup or installation files, simply drop the application on a server and it runs.
- Tahchee: Tool for developers and Web designers that makes it possible to easily build a static Web site using the Cheetah template system.
- Templeet: Allows you to create photo galleries, news systems, personal sites, blogs, etc. generating HTML, CSS, SVG pictures, SMIL, and any kind of text files.
- Toto: Git-powered, minimalist blog engine for the hackers of Oz. Wizards? Hackers. Wizards. No? Yes, hackers!
- ttree: Template-toolkit based solution.
- Pelican: Weblog generator, written in python with a cli-tool to (re)generate the site. Completely static output, so easy to host anywhere.
- Poole: Markdown driven static website generator with basic support for content generation by embedding Python code in page source files.
- Pubtal: Supports the authoring of web page content in several formats (e.g. text files, OpenOffice), uses templates written in TAL, and builds static HTML files.
- Sphinx: Creates HTML (including Windows HTML Help), LaTeX (for printable PDF versions), manual pages, plain text.
- StaticMatic: Static websites, the modern way.
- Static: Write plain HTML sites.
- Vee: Command line blog tool that is very portable across Unix systems.
- Webby: Let's you choose your favorite templating language: ERB, Textile, Markdown, HAML or SASS. Just HTML, no special server requirements.
- Webgen: Free (GPL-licensed) command line application for generating static websites.
Let us know in the comments if you know any other static site generators and we will add it to the above list.
This list was compiled from the following sources:
Best Static Website Generator[+67]  Nick Retallack
[2008-10-09 07:43:44][ web-development static ]
[ http://stackoverflow.com/questions/186290] [DELETED]
In the age of dynamic websites built with layouts and templates, nobody wants to write plain old repetitive static html anymore. But now that you can outsource dynamic features to services like Disqus , and you could get slashdotted/dugg/reddited at any moment, sometimes a static website is best for scalability.
There are quite a few static website generators out there that let you use templates, layouts, alternative markup languages, and other new age stuff. So this question is a bit of a survey. Which do you think is the best, and why?
Here are a few examples to start us off:
- WebGen 
- StaticMatic 
- Static 
(4) Community Wiki? - Greg B(2) Done. I still can't decide which of these things to use. - Nick Retallack
(3) My criteria are 1) It leaves your data where it is, in the format you choose. 2) You can edit the basic site and page layout just as you would for normal HTML (no magic Layout definition language) and 3) It plays well with the rest of your tool chain. - AndyT[+29] [2009-04-15 15:02:08] barry
StaticMatic  and Static  are lesser known. There are more done in Ruby...
- nanoc 
- Webby 
- Jekyll  (which was "ported" to Python/aym-cms as Hyde )
- Hobix  - done by why the lucky stiff sometime ago (it still works)
I just used nanoc for a little project and it was pretty nice.
Don't forget aym-cms (Python), and the others in Perl that have existed since the dawn of time (like the aforementioned WML). http://staticmatic.rubyforge.org/
(2) But does anyone have a recommendation? Should we split suggestions into separate answers so people can vote on them? - Adrian MouatAgreed with Adrian. Also, Hyde has its own website now: ringce.com/hyde - Cawas
(1) +1 for nanoc. That thing is stupid easy to use, it's flexible, and has excellent documentation. - Dan Esparza1
[+6] [2010-03-02 10:14:54] Oben Sonne
Poole  is another one. Conceptually it's something in between plain Markdown to HTML conversion and more sophisticated site generators like Hyde .
Poole uses one global HTML skeleton file to inject the HTML versions of Markdown source pages into. Poole has basic support for generating content by embedding Python code in page source files. This is a dirty merge of content and logic but a pragmatic solution to get things done fast for simple sites. No need to learn a template or preprocessing engine.
Poole may be a good choice if you are familiar with Markdown and Python and if you want to build a rather simple site with only a spot of generated content. http://bitbucket.org/obensonne/poole
2[+5] [2008-10-09 08:04:08] Greg Hewgill
I use ikiwiki  as my wiki software, which in contrast with most wiki software generates a static view of the wiki. Whenever you make a change, it reruns the generator program that generates new versions of any static pages that need to change. It's not designed for huge installations like Wikipedia, but certainly for small to medium size wikis it works well. http://ikiwiki.info
3[+4] [2008-10-09 12:15:42] Tometzky
Here is another example: Bricolage 
A static web page is also much more secure than a dynamic one. Nobody would be able to deface one. There is no need for security updates either. Go static! http://bricolage.cc/
4[+4] [2009-11-04 19:57:02] igotmumps
I'd like to add CityDesk  from FogCreek Software.
Though no longer being updated, it is an incredibly easy to use little system that lets you crank out static websites at a pretty quick pace. Some of the features are a bit dated, but I like the simplicity of it's scripting language and templating system.
5[+4] [2010-04-13 08:57:28] Oliver Haag
For simle static Site I can reccomend nanoc.
I've done such a static site with nanoc about 2 years ago. The documentation was good and I got it done quite fast. I had to handle a little problem with the directory structure, but as far as I can see this is solved in the current version anyway.
An alternative may be jekyll. ruby-toolbox says  that this is the the most popular ruby site generating tool. But jekyll seems to be more complicated and overkill if you don't need blog features.
Anyway ruby-toolbox is a good starting point to look for alternative solutions. http://ruby-toolbox.com/categories/static_website_generation.html
6[+4] [2010-09-27 20:27:02] Alain O'Dea
--baseto relativize links) or
If you already have a working site written in CMS that has a RESTful interface (like Zotonic) you can make a static snapshot of it with
(4) This solution is ghetto fabulous - Nick Retallack7
[+3] [2010-11-26 02:11:37] Matt Helmick
Two excellent new static site generators are Middleman: https://github.com/tdreyno/middleman and Frank: https://github.com/blahed/frank
Both of them are based on the Sinatra Ruby Framework.
I can recommend Frank. Some rough edges but all in all a great tool - asymmetric8
[+3] [2009-05-28 06:50:40] thedz
If it's a simple blog, a while back I wrote a quick Python utility that would generate static pages:
My primary goal was to make it easy to extend and edit, hence the relative few number of basic page types it generates.
9[+3] [2010-04-21 15:41:15] David Dorward
I swear by ttree  http://template-toolkit.org/docs/tools/ttree.html
10[+2] [2011-02-07 18:13:53] David
The thread is a bit old, but it looks like it's still being updated. When I search Google for "static site generator" it's one of the top links listed! So ...
I've been looking for a PHP-based static site generator. (The Ruby ones seem to be flavour-of-the-month!) About the only one I've found is Stacey . I'm not even sure there is much be way of alternative in the PHP world. I would be interested to know of others, though.
Meanwhile, I hope Stacey is a worthy addition to this list. http://www.staceyapp.com/
Another option will be Phrozn - static site generator in PHP. I just recently pushed first public release, but it is already worth checking. - Victor Farazdagi11
[+2] [2011-03-04 16:01:53] AndyT
It's a late addition to the crowd, but WebDibbler (http://www.webdibbler.com) is a Java package with GUI font end that adds templating tags (include, loop, conditional, expression evaluation, multi-pass rendering) to standard HTML. It makes no constraint on the type of page being generated, and simply allows more complex websites to be built up from smaller fragments.
Plans include Ant task and direct Java API integration, as well as a number of markup/data source extensions.
12[+2] [2010-04-21 15:38:20] nwah
Frank  it has cool helpers for prototyping fast. http://github.com/blahed/frank
13[+2] [2009-05-28 06:42:00] Vihang D
If you are looking for python based tool check out Tahchee . It uses Cheetah template system. http://www.ivy.fr/tahchee/
14[+1] [2008-10-09 12:30:26] timday
"Website Meta Language"  (often confusingly shortened to WML, despite being absolutely nothing to do with WAP) works well for me. apt-gettable on Debian . http://www.thewml.org/
<offtopic> And it has nothing to do with yet another WML (wesnoth.org/wiki/ReferenceWML). </offtopic> - jetxee15
[+1] [2009-11-06 04:24:10] Nomad Coder
After searching around for a static site generator (I only wanted to use Ruby, which essentially limited the scope), I had a very positive experience with Webby. I made a "really-static" site with it ( playcode.nl ), as well as a blog (not-so-static, with the source code kept on github - blog.writelesscode.com ). What I liked about it is extended set of features. For example, you can combine filters for the same page (no problem to use ERB together with Markdown). Nested layouts? No problem. Code highlighting worked well, too. And after all, the source code is pretty readable (although it feels a bit Java-ish to my opinion) - so, I could easily add a feature that I was missing (which was extracting excerpts from posts on the index page of the blog). http://playcode.nl
16[+1] [2009-11-08 19:54:51] ak
Two python based ones: blatter  and lanyon . http://bitbucket.org/jek/blatter/
17[+1] [2010-12-01 21:18:38] Nick Retallack [ACCEPTED]
Mako  and Jinja  include all you really need to generate a static site. http://www.makotemplates.org/
18[+1] [2010-04-21 16:05:51] cato_minor
Ages ago, I used filepp  for quickly including content. It looks like a generalised C preprocessor. It still works, and is still available in Debian. http://www.cabaret.demon.co.uk/filepp/
19[+1] [2010-08-24 15:16:05] Antony
let me recommend you templeet  makes it real easy to build static sites without imposing any structure combined with the ability to integrate php code/routines and a large set of tools to deal easily with authentication and database integration. To build a website from small to large, is still what I'd recommend because it can be as simple as building a static website with the ability to call any php when ever you need generating at the end a static website. http://templeet.org/
20[+1] [2009-08-17 20:40:22] community_owned
I've got a little project going on that tries allow focus on writing content and designing nice HTML/CSS. All pages are flat text files, I like to think of it as website by config files:) http://pagegen.phnd.net
21 [2011-03-29 23:02:02] Stephan Eggermont
Seaside in smalltalk. Because it doesn't use templates, but a fluent interface.
22 [2010-12-19 18:29:06] Arturo Herrero
Another minimalist blog engine like Jekyll is toto . toto is a git-powered blog engine. The articles are stored as .txt files, with embeded metadata (in yaml format) and are processed through a markdown converter. http://cloudhead.io/toto
23 [2011-01-05 13:23:27] Skami 18
If it's a simple blog, a while back I wrote a quick Python utility that would generate static pages:
My primary goal was to make it easy to extend and edit, hence the relative few number of basic page types it generates.
Good work: The code is very easy to understand and this is the example I needed! Thanks !
24 [2009-06-11 21:11:02] community_owned
maybe take a look at growl  ... http://github.com/xfire/growl/tree
dead link, please update - SamGoody25
 [2009-11-08 20:01:21] Ben
Don't forget that there are lots of good full-scale CMSes out there that create static files. Movable Type  and WordPress  have great communities built up around them, with lots of plugins and support. http://www.movabletype.org/
Google matched content
Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers : Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism : The Iron Law of Oligarchy : Libertarian Philosophy
War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda : SE quotes : Language Design and Programming Quotes : Random IT-related quotes : Somerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose Bierce : Bernard Shaw : Mark Twain Quotes
Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 : Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law
Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds : Larry Wall : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOS : Programming Languages History : PL/1 : Simula 67 : C : History of GCC development : Scripting Languages : Perl history : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history
The Peter Principle : Parkinson Law : 1984 : The Mythical Man-Month : How to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite
Most popular humor pages:
Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor
The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D
Copyright © 1996-2018 by Dr. Nikolai Bezroukov. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) in the author free time and without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.
This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...
|You can use PayPal to make a contribution, supporting development of this site and speed up access. In case softpanorama.org is down you can use the at softpanorama.info|
The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.
Last modified: December, 26, 2017