Anybody wanna try a new static site generator?

I just released v0.1.0 of hinoki, my static site generator :)
The README.md should explain usage, and you can also see how I ported my blog to it here.

This project started because I’m not entirely happy with Zola, which does not support customizing page paths much (e.g. /year/month/day/title/index.html style paths) and made some other design decisions that I wanted to explore alternatives to.

You can download the binary from GitHub releases, or cargo install it from git.

Any feedback is appreciated, here or in the GitHub issues!

ssokolow, (edited )
@ssokolow@lemmy.ml avatar

I’ll try to fit in sampling it at some point in the near future as a candidate for building on.

I just decided to finally double down and do the work to switch away from WordPress to GitHub Pages and:

  • Jekyll is still hell to get running locally for testing without erroring out during the install
  • Pelican seems like it’d be more trouble than it’s worth to get what I want
  • I insist that no links be broken in the switchover (Doing this to my standards was a big part of what I wound up procrastinating, since I basically need to install WordPress locally and then write something which spiders the entire site and verifies that each path is also present in the new site and the page’s contents are identical when run through a filter to cut away the site template and normalize any irrelevant rendering differences.)
  • I already have a pulldown-cmark-based CLI that I wrote a couple of years ago to render single documents and it’d be nice to retrofit it (or at least its features) onto something Rust-based for my blog. (Hell, just a couple of days ago, after implementing support for shortcodes, I got carried away implementing a complete set of shortcodes for rendering depictions of gamepad buttons like :btn-l-snes: within passages of text. Bit of a shame, though, that I’d have to either patch pulldown-cmark or maintain the smart punctuation and strikethrough extensions externally, if I want to hook in shortcodes early enough in the pipeline to be able to implement Compose key-inspired ones like :'e:/:e’: → é or :~n:/:n~: → ñ without breaking things.)
  • Since my plans for comments are, to the best of my knowledge, unique, I need something in a language I’m willing to hack on and potentially maintain my own fork of. (Jekyll would have been achieved via a preprocessor.)
  • I want something where I’m at least willing to port the internal broken link detection from one of my old bespoke Python static site generators, which means either Python or Rust. (Ideally, I’ll also re-create the support for performing HTML and CSS validation on the generated output.)
  • Given how many things I either have in my existing single-page renderer (eg. automatic ToC generation with a bespoke scrollspy implementation, Syntect integration, ````svgbobfenced code blocks which produce rendered diagrams,<price></price>` tags which provide currency-conversion estimation tooltips with the exchange rate defined in a central location, etc.) or have plans for (eg. plotters-generated charts with some kind contributed extension equivalent to matplotlib’s xkcd mode because it’s important, Wikipedia-style infobox sidebars, etc.), I want to experiment with a WebAssembly-based plugin API so I’m not throwing the kitchen sink in.
scouten,
@scouten@ericscouten.social avatar

@ssokolow highly recommend Zola (https://getzola.org). All of my sites use it since circa 2021. I have forked it from time to time and rejoined after changes I proposed were accepted.

ssokolow,
@ssokolow@lemmy.ml avatar

Thanks. Being the biggest name, Zola is definitely on my list of things to investigate.

StringPotatoTheory,

Does it / will it support internal backlinks? That’s the reason why I switched from Hugo to Zola.

jplatte,

Zola supports this? I’ve never heard of it and can’t find anything about it in the docs. I’d be interested to find out how it’s implemented there, but it does seem a bit too complex for my liking on first thought.

StringPotatoTheory,

I’m not sure how they implemented it either but it must be tricky (or maybe it’s easy to implement but hard to make it fast?) if Hugo still doesn’t have support for it. I did a search in the Zola repo on github for “backlink” and these are the files that showed up.

You have to link pages using the Zola way (starting with a @/), and all pages and posts have to live under the /content/ folder. So if you had page1.md and page2.md and wanted to link from one to the other, in page2 you’d have [Page 1](@/page1.md). On page2 you’d see the normal link, and on page1 you’d see that page2 links to it.

7heo,
@7heo@lemmy.ml avatar

Usually people use Hugo.

But I would be very interested in a less contrived alternative.

Thanks for doing this.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • rust@lemmy.ml
  • PowerRangers
  • DreamBathrooms
  • InstantRegret
  • magazineikmin
  • cubers
  • mdbf
  • Youngstown
  • osvaldo12
  • slotface
  • rosin
  • everett
  • vwfavf
  • kavyap
  • Durango
  • Leos
  • khanakhh
  • ethstaker
  • cisconetworking
  • GTA5RPClips
  • thenastyranch
  • tacticalgear
  • ngwrru68w68
  • normalnudes
  • anitta
  • modclub
  • tester
  • provamag3
  • megavids
  • All magazines