views:

9905

answers:

20

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:

  1. WebGen
  2. StaticMatic
  3. Static
+4  A: 

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.

Greg Hewgill
+3  A: 

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!

Tometzky
A: 

"Website Meta Language" (often confusingly shortened to WML, despite being absolutely nothing to do with WAP) works well for me. apt-gettable on Debian.

timday
<offtopic> And it has nothing to do with yet another WML (http://www.wesnoth.org/wiki/ReferenceWML). </offtopic>
jetxee
+19  A: 

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).

barry
But does anyone have a recommendation?Should we split suggestions into separate answers so people can vote on them?
Adrian Mouat
Agreed with Adrian. Also, Hyde has its own website now: http://ringce.com/hyde
Cawas
+1  A: 

If you are looking for python based tool check out Tahchee. It uses Cheetah template system.

Cydork
+3  A: 

If it's a simple blog, a while back I wrote a quick Python utility that would generate static pages:

http://github.com/dz/chisel/tree/master

My primary goal was to make it easy to extend and edit, hence the relative few number of basic page types it generates.

thedz
A: 

maybe take a look at growl ...

dead link, please update
SamGoody
+1  A: 

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

+1  A: 

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.

Michael

igotmumps
+1  A: 

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).

Sergei Kozlov
+1  A: 

Two python based ones: blatter and lanyon.

ak
A: 

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.

Ben
A: 

vee - http://www.0x743.com/vee

B. Estrade
+4  A: 

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.

Oben Sonne
A: 

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.

Oliver Haag
+1  A: 

Frank it has cool helpers for prototyping fast.

nwah
+1  A: 

I swear by ttree

David Dorward
+1  A: 

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.

cato_minor
A: 

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.

Antony
+1  A: 

wget --recursive (with --base to relativize links) or curlmirror.

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 wget --recursive (with --base) or curlmirror.

Alain O'Dea