Fascinating. For those who click to read the comments before the actual article, this is Mr. Preston-Werner's introduction of Jekyll, the Ruby static site generator, to the world. He lays out his reasons for creating the tech:
>>>First, all my writing would be stored in a Git repository. This would ensure that I could try out different ideas and explore a variety of posts all from the comfort of my preferred editor and the command line. I’d be able to publish a post via a simple deploy script or post-commit hook. Complexity would be kept to an absolute minimum, so a static site would be preferable to a dynamic site that required ongoing maintenance. My blog would need to be easily customizable; coming from a graphic design background means I’ll always be tweaking the site’s appearance and layout.
Which are the exact same wishes I had with my own blog, and I assume many other "hacker" types have for theirs, as well. I don't remember why I settled on Pelican (Python) over Jekyll (Ruby), but either tool is a fantastic choice for blogs... and I now understand that's because Jekyll was literally created to support those goals!
I switched to a static site gen and a git repo. I lost the ability to preview. Sure, if I'm at home I can run the build script, launch a simple server, navigate to the page on localhost but it's a long way from say wordpress (previous solution) where it was a much nicer experience to preview.
Adding images into a post was also nicer. Just drag and drop instead of copy into folder, check into git, manaully type urls like it is now.
I use a private repo on github so at least I can add something without having to be at my computer but still no preview or nice UI.
Any static generators have well designed solutions for this?
A markdown-based blog lets you preview, if you're typing into an editor that supports previewing markdown. I do my long-form writing in LibreOffice Writer (because Fedora), then the "blogging"/translating bit in PyCharm in a markdown file. PyCharm has a rich markdown previewer, so I can write short posts in it, without the translation step.
I'm not personally aware of a static site generator that supports drag-and-drop images, but nothing stops such an extension/plugin from existing. When I want to embed an image on my site, it goes into an /images/[year]/ folder and is referenced in the markdown file with the manually-typed partial URL, as you mentioned.
My blog uses many custom features not found in plain markdown so a simple markdown preview found in some editors isn't helpful for verifying the post will work correctly.
Not really. You can keep the local server running and a browser window open. The server can be configured to regenerate the site as changes are made. Simply refresh the page to see your changes.
I have many machines I work from. So no that won't work as easy as a non-static site. Wordpress I can edit and post from my phone. Can't run the static site generator on my phone
I have been playing with both over the past two days and am using Pelican because I couldn't get a functioning enough ruby install put together for Jekyll. Either tool looks about equivalent in actual usage... Which is an incredible improvement on the state of the world 12 years ago when i last cared at all about generating web content.
I often remark that IT in general is a history-less space. I wonder if Tom would have developed Jekyll if he knew about Blosxom? Blosxom had its last release in the same month when Jekyll had its first.
The blog post seems to imply that he came up with the idea and code for Jekyll all by himself. But also as he's a Ruby guy, it's likely he would have ported over the code and concepts to his own project.
I mean that they actually don't know about the history.
You can see this in almost every discussion about computer science topics.
Look for example how many programmers are shit-talking about Java and they have no clue about certain design decisions back in the day.
Java was the language that made byte compilation and VMs mainstream. Together with XML (another heated topic) it liberated us from unnecessary binary data formats.
And even the language itself was a gift from the programming gods at a time when the most viable programming languages were C, C++, or Perl.
I will forever be thankful to Java for saving me from C++.
From my own writing I found that short blogposts have many advantages, it really helps to update the blog more regularly than my previous strategy of writing essays twice a year. The lack of pictures also keeps the time investment low, I am less busy with choosing vague unsplash eye candy since. Seth Godin is my favorite short form writer, at least in terms or style, he really gets to the point.
Jekyll is about taking a few bytes of text and turning them into the multi-megabyte-monstrosity that a website is nowadays expected to be. A real hacker responds to that trend Nancy Reagan style. "Just say no".
No, that only happens if you choose to make it a multi-megabyte monstrosity. My website, which uses Jekyll, has a home page that is under 10 KB uncompressed. It's just a HTML page and two CSS files: https://saagarjha.com
Looking at the source of TFA, it seems it downloads a 5.3kb html file, two css files adding up to 2.9kb, and 11.9kb of javascript. (Including GA, alas)
Not as slim as possible, but pretty darn small. My personal blog, using an even older command-line html templating engine (nanoblogger) weighs in at 3kb html, 1.8kb css, and a princely 13.7kb of js. (All from the code formatter I use)
The nice thing about Jekyll is that you can just find a nice looking theme and then fork it, edit the config.yml file with your specifics, such as name/address/etc and then publish.
Posts go under the posts folder, uploaded as md files. It's very nice and clean. You can host a site on github pages and point your .com to their DNS servers.
It frees you up to focus on writing, and you have the benefit of markdown there if you need it.
Makes you wonder why a simple blog site needs to be interacting with a DB and making mad calls all over the place, with loads of insecure plugins and all the rest of it. Just give me simplicity :)
Jekyll can be used for much more than blogging, too.
Ribose, for example, has a network of sites for its open-source initiatives[0] built on top of Jekyll. Sites are integrated with each other and also with Git repos of relevant software packages, pulling e.g. latest commit times & documentation in AsciiDoc at build time. Each site does have a blog/newsroll, but in the end is much more than that.
The implementation involves a gem-based theme with accompanying helper plugin, which are open source[1].
Going the static site route, on one hand, introduces new constraints—for example, build times become important—but on the other hand allows to build blazing-fast websites without having to worry as much about ongoing server maintenance. (Currently each site gets built on Travis CI and delivered via AWS S3/CF.)
Disclaimer: I work with Ribose currently and participated in Ribose Open development.
True. Zense Dev (we are a student software development group based out of Bangalore, India) uses Jekyll to render its main website[0] which includes a blog, a list of projects, lists of events happening and a list of the members of the group. We even have member pages and the blog posts written by that member show up there.
Jekyll is great. It's what I use to run my site for the last ~4 years with about 250 posts (it's still very fast -- reloads happen in less than 3 seconds).
It really doesn't take too much effort to use existing Jekyll features to add in custom "user features" into your site. You can go so far without needing to write your own plugins.
For example, I just put out a video a few days ago that goes over using "includes" to add 3 unrelated site features (site wide affiliate link notices, a table of contents for blog posts and embedding media): https://nickjanetakis.com/blog/implementing-3-different-webs...
“I love writing. I get a kick out of sharing my thoughts with others. The act of transforming ideas into words is an amazingly efficient way to solidify and refine your thoughts about a given topic. “
So much so that it is quoted on my own Jekyll-based personal website (http://www.andreykurenkov.com/). I have set up 3 additional site since with Jekyll, all hosted on GitHub, and it's super easy every time.
What about Ghost blog? I have been wanting to dive into some of my own blogging and have been trying out Ghost (https://ghost.org/). It has been really fun trying to find a theme that I like and the native apps make it very pleasing to work on.
Lol, I literally used Ghost for a while and used Jekyll to convert it into a static blog. It allowed me to use Markdown to quickly write blog posts. Jekyll would create a static version of my public localhost, and I'd push it to Github.
Recently set up a static gen blog. I went with Hugo over Jekyll. I think its a bit personal preference tbh, but I really liked Hugo's layout, speed, and kinda prefer hacking with Go over Ruby if it comes to that.
>>>First, all my writing would be stored in a Git repository. This would ensure that I could try out different ideas and explore a variety of posts all from the comfort of my preferred editor and the command line. I’d be able to publish a post via a simple deploy script or post-commit hook. Complexity would be kept to an absolute minimum, so a static site would be preferable to a dynamic site that required ongoing maintenance. My blog would need to be easily customizable; coming from a graphic design background means I’ll always be tweaking the site’s appearance and layout.
Which are the exact same wishes I had with my own blog, and I assume many other "hacker" types have for theirs, as well. I don't remember why I settled on Pelican (Python) over Jekyll (Ruby), but either tool is a fantastic choice for blogs... and I now understand that's because Jekyll was literally created to support those goals!