“Make” as a Static Site Generator

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • karl.berlin

    My blog and homepage at karl.berlin, as well as the minimal blog engine used to create the pages.

  • > I found his GEMINI approach quite funny - it strips out most of the formatting with a regexp.

    Do you mean the regexp in https://github.com/karlb/karl.berlin/blob/master/blog.sh#L4 ? It doesn't remove the formatting, just HTML comments (because they would show up on the page, otherwise) and rel="me" attributes (because they don't work with md2gemini). Feel free to read the blog post about adding Gemini support for more details: https://www.karl.berlin/gemini-blog.html

  • shite

    The little hot-reloadin' static site maker from shell.

  • I love the code [1]. Mine [2] is a bit over engineered because I wanted hot-reloading (without JS), and it was a delightful yak shave.

    But the basic idea is the same --- heredocs for templating, using a plaintext -> html compiler (pandoc in my case), an intermediate CSV for index generation.

    Very nice!

    [1] https://github.com/karlb/karl.berlin/blob/master/blog.sh

    [2] https://github.com/adityaathalye/shite

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • utterson

    a minimal static blog generator written using old-school unix tools (make, ksh, m4, awk, procmail and a pinch of elisp)

  • utterson https://github.com/stef/utterson/tree/master is generating blogs using make for a 14 years now...

  • pages-gem

    A simple Ruby Gem to bootstrap dependencies for setting up and maintaining a local Jekyll environment in sync with GitHub Pages

  • It's a neat idea, though I have to point out that if you're already pushing to Github, you could just push the source and Github will publish your markdown as a hosted page: https://pages.github.com/

  • static-page-generators

    Static Page Generator Experiments

  • I did some similar experiments some time ago. It includes Makefiles, Rakefiles, SASS, Ruby erb, Jade, m4, and a few other tools.

    https://github.com/W4RH4WK/static-page-generators

    Over all, I quite like Ruby since it comes with rake and erb.

  • Middleman

    Hand-crafted frontend development

  • Most of the Static Site Generators default to generating blog from markdown, which is not feasible for company websites etc. For such projects I like Middleman (https://middlemanapp.com) which provides layouts/partials and things like haml templates.

  • xml2

    This is a git clone of the xml2 sources at http://dan.egnor.name/xml2/ (by cryptorick)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • just

    🤖 Just a command runner

  • My number one reason to use make is to have a single centralized location for project commands. If I see a Makefile at the root, I can quickly scan it and have an overview of what high level actions I might execute.

    Note that I have recently switched to Just (https://github.com/casey/just). While not technically the exact feature set as make, it covers all of the ground for what I typically do. It gets the benefit of history and discards a lot of make cruft to make a more predictable experience.

  • naif-blog-engine

    A static blog generator powered by GNU Make, Node.js & SQLite. Includes support for podcast feeds & FTS (full text search)

  • I check for orphan files in 'build' only before doing deploy. It's easy enough:

    * save a sorted list of targets in file A

    * save a sorted list of files from an output dir in file B

    * diff -u A B

    an example: https://github.com/gromnitsky/naif-blog-engine/blob/58c55497...

  • minblog

  • As long as we're sharing our own projects...

    One of the things I did during the pandemic lockdown was work on the simplest possible blog in a single html file. Something that requires essentially no technical knowledge beyond typing text into a file. I recently dusted it off and yesterday I posted the most recent iteration.

    Demo: https://bachmeil.github.io/minblog/blog.html

    Source: https://github.com/bachmeil/minblog/blob/main/blog.html

    There's very little styling, but that's not the objective (and it'd be trivial to add).

  • askiiart

    Config files for my GitHub profile.

  • Update: I made it into a bash script, and now it only runs on changed or new files. Far more efficient, both because it's just bash, and because it only runs on what's needed.

    https://github.com/askiiart/askiiart.github.io/blob/main/md2... or https://git.askiiart.net/askiiart/askiiart-net/src/branch/ma...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts