Site Map - skip to main content

Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes every weekday Monday through Friday.
This page was generated by The HPR Robot at


hpr2557 :: Styx -- The Purely Functional Static Site Generator

For the Fractalide web site, we are using Styx as a site generator. Here's a bit of how and why.

<< First, < Previous, , Latest >>

Thumbnail of clacke
Hosted by clacke on Tuesday, 2018-05-22 is flagged as Clean and is released under a CC-BY-SA license.
nix, styx, static site generator. 3.
The show is available on the Internet Archive at: https://archive.org/details/hpr2557

Listen in ogg, spx, or mp3 format. Play now:

Duration: 00:13:52

general.

I switched phones, and complained about the microphone. It probably made a greater difference that I was recording in 16 kHz Vorbis, because I was on a fresh install of Audio Recorder. Always double-check your settings, and apologies for the quality.


I am currently in the process of converting our website from Hugo to Styx.

Styx is s static site generator written entirely in the Nix language. It is able to figure out exactly what pages need to be rebuilt depending on what you changed in your page source and data sources, and all intermediate results are stored in the Nix store.

The parsing of AsciiDoc and (multi)Markdown is done by external tools, but the templating and layouts is all Nix.

I thought I may have dreamed the bit about carnix or buildRustPackage parsing TOML within Nix, because I couldn’t find any evidence of them ever having done that. But then I discovered it was in nixpkgs-mozilla I had seen it! That’s Mozilla’s overlay for nixpkgs, which makes Rust Nightly always available in Nix, so it’s kind of Nix’s rustup equivalent. So yeah, I guess I had dreamed who did it, but not that somebody did it. :-)


Comments

Subscribe to the comments RSS feed.

Comment #1 posted on 2018-04-06 06:19:41 by clacke

Addendum: Styx was written by Eric Sagnes

I neglected to name the author, because his name wasn't on my mind at the time.

Styx was written by Eric Sagnes, and if you look at his repositories on github[0], it's not really surprising that he would be the one to write a site generator in Nix. :-)

[0] https://github.com/ericsagnes?tab=repositories

Comment #2 posted on 2018-06-15 14:41:21 by clacke

Killer feature

I forgot to mention the killer feature, which is why we use Styx, apart from our great love for Nix: The ability to easily include content from remote sources.

As Styx uses Nix for getting its inputs, it's just as easy to build a page off a file in your local repository as getting a file from a remote repository, http URL, a whole bunch of files, or anything you can compute or get from a network, really.

In fact, even the default templates in Styx are fetched this way: If you never use them, they never touch your computer, but if you include the standard templates in your site definition, Styx knows to go out and fetch them and put them in the right places.

We use this to get documentation and changelog from our code repository into our web site.

Comment #3 posted on 2018-09-18 05:31:55 by clacke

Update re: TOML in Nix

With Nix 2.1 ( https://nixos.org/nix/manual/#ssec-relnotes-2.1 ) reading TOML files has become a builtin function in Nix, just builtins.fromTOML /path/to/the/file.toml .

I can't imagine this being unrelated to Mozilla's implementation in Nix.

Leave Comment

Note to Verbose Commenters
If you can't fit everything you want to say in the comment below then you really should record a response show instead.

Note to Spammers
All comments are moderated. All links are checked by humans. We strip out all html. Feel free to record a show about yourself, or your industry, or any other topic we may find interesting. We also check shows for spam :).

Provide feedback
Your Name/Handle:
Title:
Comment:
Anti Spam Question: What does the letter P in HPR stand for?
Are you a spammer?
Who is the host of this show?
What does HPR mean to you?