Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Wintersmith – a flexible static site generator (wintersmith.io)
63 points by rwinn on May 27, 2013 | hide | past | favorite | 51 comments


I've updated my mini-review of static-site generators to include it:

https://github.com/skx/static-site-generators

Early testing looks good, but like so many existing tools it mishandles symbolic links.


Is Middleman (middlemanapp.com) an intentional omission? (Meaning, did it fail one of your requirements for review?)


I knew I'd heard of that name. THere are a couple of projects listed in the README that I've not yet gotten round to.

A user submitted a bug-report to draw attention to Middleman & Yeoman, but then closed it before I got round to looking at them.

https://github.com/skx/static-site-generators/issues/2

I'll try to find some time soon to add them, and work on the repository some more.


You have reviewed Jekyll but not Hyde(still in todo), that is literally an one sided story :-)


My bias is towards my own tool; the rest were picked at random, based on recommendations and my free time.

No explicit bias intended :)


After trying many, I ended up using Middleman. So I recommend adding its review.


Jekyll was a close second for me, but ended up choosing Middleman as well.


Have you come across any static site generators that would be user-friendly enough to recommend to users currently stuck with iWeb, DreamWeaver, RapidWeaver and the like? I was recently trying to help somebody migrate away from using iWeb (abandoned by Apple), but found that trying to teach something like Hyde* was not a feasible alternative.

In my opinion a user-friendly static site generator would require some kind of minimal GUI, dialogs to handle inserting images, and a smart set of predefined options to generate menus, listings, etc. Maybe even a one-click option to update an S3-hosted site.

If this doesn't exist, perhaps writing a GUI wrapper for an existing generator would be a worthwhile project.

* The Python program, not the CHICKEN Scheme static site generator of the same name.


I've not looked for such a thing, but as you suggest a wrapper rather than yet-another generator is probably the way to go.

Perhaps even a CMS-like thing that could be done online entirely?


You might want to look at Joe Gregorio's Piccolo that he just rewrote in Go.

http://bitworking.org/news/2013/05/piccolo_go



I took a look at your reviews. But can you clarify what you mean with "mishandles symbolic links"? Thank you.


Hard to draw ASCII here, but imagine a symlink from "/js/jquery.js" pointing to "/js/jquery-1.2.3.js".

A good application will write output that has a literal copy of the numbered version, and a symlink point to it.

Bad applications either ignore symlinks entirely, or change them to duplicate copies of files. (Which can be bad if you're considering a large file such as foo-latest-release.tar.gz.)


> Hard to draw ASCII here,

    .__            .___             __            .__  __  .__     
    |__| ____    __| _/____   _____/  |_  __  _  _|__|/  |_|  |__  
    |  |/    \  / __ |/ __ \ /    \   __\ \ \/ \/ /  \   __\  |  \ 
    |  |   |  \/ /_/ \  ___/|   |  \  |    \     /|  ||  | |   Y  \
    |__|___|  /\____ |\___  >___|  /__|     \/\_/ |__||__| |___|  /
            \/      \/    \/     \/                             \/ 
       _____                                             
      /  |  |    _________________    ____  ____   ______
     /   |  |_  /  ___/\____ \__  \ _/ ___\/ __ \ /  ___/
    /    ^   /  \___ \ |  |_> > __ \\  \__\  ___/ \___ \ 
    \____   |  /____  >|   __(____  /\___  >___  >____  >
         |__|       \/ |__|       \/     \/    \/     \/


It looks like you were trying to use ghc 6 to install hakyll... You probably need ghc 7.4 or newer installed. Ghc 6 series is quite old.

If you contact the hakyll maintainer, jasper, for help, I'm sure he'd be more than happy to help you get it installed and usae.


Indeed. As explained on the page I was using Debian's stable release. The new release, Wheezy, contains a package for hakyll. I will retest in the future, once I've upgraded my host(s).


Your comparison actually showed me that my own static site generator does not handle symlinks at all. I'll submit a pull request after I fix this.


You should consider adding nikola to your list. https://github.com/ralsina/nikola


No Octopress? Or do you consider it to Jekyl-like?


"Write rich web applications using the latest technologies without having to host your own node.js servers [...] No matter what plugins you use, the output will always be a static website you can host anywhere."

I don't think that's a very common definition of "rich web application".


Thanks, fixed now.


Why not?


Because it excludes most forms of interactivity.


I disagree, many applications can be defined entirely in client-side code.


After looking it up I see it is commonly used to describe something that adds extra features to a browser, like flash or silverlight.

Previously I took it to mean "rich in interactivity". That's what I meant when I originally wrote that, a static site does not mean you can't have interactive content. IMHO the best way to write webapps is to have a static client that consumes an API provided by a standalone backend.


I know that this makes me look like a grumpy old man, but is there anyone left who didn't write a static site generator yet?


I haven't written one, but I contributed a few patches to nanoc [1]. But if nanoc didn't exist, I probably would have written my own.

And now that you mention it, I have been looking for an excuse to learn Clojure...

[1] http://nanoc.stoneship.org/


I have done some quite significant static site generation without ever having to write a static site generator from scratch - although I did have to make changes to the core of Hakyll to make it use ByteString so I could efficiently process the amount of data I needed (I contributed the changes back and they are now an official part of Hakyll).

Contributing to an existing architecture is definitely the way to go if what is already there is flexible enough to do what you need.


I think it's a good idea for everyone to write one. I wrote one as a sort of hello world project that has a very tangible output.


It's almost like a web 101 test to pass or something.

A proof of some kind of competency with the web stack.


I did, and I'm like the worst programmer ever. So yes.


I did too, and my site is even running on it now.

Though hacker news isn't going to see either anytime soon because both are terrible. Still... it's a good learning experience.


It's the new guestbook.


I got scared when it said node.js, then I saw it was only using node.js for the customization part, not the hosting part and I got relieved. I really think they should emphasize that you can use your own web-server, using node.js to host a static site just doesn't make sense.


The fact that it's static should mean you can host it on any platform that hosts static files. The technology only kicks in when you are writing blogposts and (re)generating your static files before you sync/upload them to your host.


It's titled as a "static site generator", which I think is clear enough.


It seems like just about everyone's written a static site generator. Mine is Kerouac (https://github.com/jaredhanson/kerouac), another Node.js-based generator.

I specifically wanted to apply the middleware concept to generating pages, which turned out to be a decent fit. It ends up being a very similar API to Express, so its instantly familiar to Node.js developers. Check it out.


Really like this little framework, was just checking it out a week ago. To the author or anyone else interested, I'm making a little tool that does something very similar (http://roots.cx) and am aggressively adding functionality in order to make almost anything feasible to build as a static site.

Would love to talk about this stuff any time!


Hit me up on irc, i'm trying to get a wintersmith irc channel started. #wintersmith on freenode. i'm jn


Anyone else find it funny that a language originally designed to add dynamic content to the client side is being used to generate static content on the server side?

Makes sense to me though ... It's a natural fit for a front end dev who knows HTML/CSS/JS and also a good way to learn proper templating.


Who wants a static site these days?


I do! No maintenance, no security risks, blazing speed, cheap hosting. Seems ideal for a blog you don't update that often, for example.


Those of us who found we were spending less time writing material for our Web site and more time upgrading Wordpress!


Error connecting to database


People with static content that they want to put on the web?


I once have the table of posts on a Wordpress site get corrupted. The whole contents of the site has vanished. I managed to restore the table, but that had me thinking about using a such CMS.


What flavour of markdown is this? Can I use pandoc's markdown with a little tinkering?


The default markdown plug uses marked, so gfm. But there is a pandoc plugin: https://github.com/lhagan/wintersmith-pandoc


Thanks, this makes it vastly more useful for me :)


gfm md > plain md


I'm okay with most of the changes, but the treatment of of newlines would be pretty much a dealbreaker for anything beyond a comment or message.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: