firstpost
ok! third times the charm! haha.
if youre keeping score at home this is the third time ive started development on this website, each time with a different static site generator: first hugo, then 11ty, and finally #metalsmith. the 11ty version was pretty short-lived, it never even made it online ... but im really glad i kept trying different ones.
building the site in the first place in hugo really helped me get some good ideas together about structure and how i want my files laid out and organized - everything is a bundle of resources ! the file structure is the site structure ! - but it was ultimately a little too opinionated, even if the opinions were by and large very good and i learned a lot from them. specifically its the hierarchy - like, "list pages" cant themselves be tagged to be included in other list pages. it's very intent on being a tree and i had to give up trying to twist it into a rhizome.
and then even just getting 11ty set up and everything i got exposed to all this neat node.js stuff im using now, like i think i found metalsmith in the first place from looking at the github page for gray-matter because it's 11ty's frontmatter parser. and then i just found as i looked deeper into it that 11ty is probably too large and powerful for what i need, and i was still finding myself trying to kind of bend it to my will and feeling some resistance, and digging in to its constituent parts ...
so here we are at, knock on wood, a solution that feels really good. metalsmith feels like it's just handing me tools and letting me loose, and im having a hella fun weekend getting my hands dirty. i'm most of the way done implementing the thing ive been trying to do since hugo gave me the idea and then immediately hard-refused to execute it, which is just "every page is a tag page" ... like, every page will list other pages tagged with its own title (or user-defined tagslug) if they exist ... like, automatically, in the templates, without me doing anything .. and any page can be tagged with a tag, "even" list pages (all pages are list pages, its just that some of them list zero things...) and also it auto-generates tag pages for tags that don't have associated pages. and also probably inline tag links and adding the metadata based on inline tags.
anyway, ill figure out how to write about that in a way that makes more sense at some point, but its pretty much done ! and its my tooling and it works just how i want, and its just written to run on my machine and stuff ... and really what i like about it is that it gives me the feeling that, later, when i have other ideas, i can sort of "just do" those as well. i like how it feels like the main thing restricting me is my own code at this point. so im really glad i stuck it out finding the tools that worked for me and my project !
but its also interesting that part about it being my tooling for me and stuff .. like, im doing filesystem things (and even metalsmith stuff..) that refers to the birthtime of the file and stuff, and just not even worrying at all about if its cross-platform or not ... and its cool, in a way, cause its like, im making this for me to use here on my laptop, i know why it works like that, i can change it if i need to use it somewhere else ... its a really nice and freeing way to work. but i also, when i was making this in hugo, theres a strong idea over there of a theme, and i was excited about like, publishing the theme ... and im still kind of excited about the idea of making some of this tooling ~ available ~ down the line as well. so thats kind of an interesting rub ... i think, characteristically, its going to wind up coming down to something like "modularity..." like, theres stuff thats just for me, but stuff that might be kinda useful too, and maybe the whole thing is there to just paw thru, but the good stuff is also available to pull out bit by bit ...
the plugin structure of metalsmith, intially, i was so averse to, cause i was like .. its the ultimate "node thing," it does nothing at all itself and just strings plugins together you know, everything relies on something else, and i was already getting frustrated at that time trying to track down dependencies and junk using 11ty ... but like, now that i understand the fact that
- metalsmith is actually really cool and does pretty much everything itself actually, it just organizes itself into "core plugins" but like, metalsmith is publishing those, thats the toolset, the generator and the set of core plugins, and that toolset is really amazing ... but also that
- that pluggy structure is its strength, and allows you to really selectively include other good vetted things at your own discretion, as well as manipulating the overall flow of data and inserting tooling you build yourself really intuitively ........
idunno. its just fun! im having fun! good tool. metalsmith! bye