Hacker News new | ask | show | jobs
by swiftcoder 657 days ago
That's a pretty cool re-use of existing tooling. Always interested to see the custom static site generators folks have come up with.
4 comments

Well, you asked:

https://extrastatic.dev/svekyll/svekyll-cli

I wrote a post about embeddings that uses some fun Svelte animations. You can scroll to the bottom and click view source. That'll show you the markdown for some very complex visualisation in Svelte. Then, click on the download button and download that post entirely, which can be built into a single HTML file with two commands: "npm i && npm build".

https://webiphany.com/2024-04-29-distance-sean-shawn

I started mine more specifically for pagination of my blog, but it turned into good practice for character and file manipulation. I've been thinking of giving it a go to create a markdown interpreter. Right now the source files are just html

https://github.com/daniel-Jones/websitegenerator

Is this basically a different twist on building a static site via a Makefile? I glanced through it and that was my impression but maybe it's more? Not trying to diminish this, just wondering if it's a fair comparison.
Not familiar with Erlang, but from reading I imagine that rebar3 understands those `{% extends ... %}`, and uses them to determine what needs to be updated. With a Makefile, you'd express those dependencies in the Makefile rather than each file.

Although, one can probably write a Makefile such that it loops through each file, greps or otherwise obtains the `extends` and generates the Makefile rules that way.

> Although, one can probably write a Makefile such that it loops through each file, greps or otherwise obtains the `extends` and generates the Makefile rules that way.

You can do it with grep and what nots, but it gets icky fast. Much better is to have the compilers output dependency information while they're compiling, and use that. The compilers have to know the actual dependencies, because they're opening them, and reasonable compilers have options to save it for you.

> have the compilers output dependency information while they're compiling, and use that.

It'd be moot after they've been compiled. You're saying compile to get the information to decide if you should compile.

The information is for the next invocation.

If you compiled it and it used these files and none of those changed, you don't need to compile it again.

When you add a new file, it clearly doesn't have an output file, so it needs to be compiled. Where it gets a little less clear is when you've got something that depends on all the input files --- if you just use the compiler's dependencies, when you add a new input file, Make (or whatever) wouldn't care, because last time it compiled (or linked), that file wasn't used, because it didn't exist.

So you still need some rules that are based on directory scans, if that's how you want to roll.