#dev 2026-05-15

2026-05-15 UTC
#
burgeonlab
thanks artlung, capjamesg!
NegateThis, cotsuka, ax562, vidak, grufwub, fluffy, [daveletorey] and JadedBlueEyes joined the channel; NegateThis left the channel
#
WinnerWind
continuing from #indieweb-random, i'm making my ssg in python and not rust
#
WinnerWind
and yet it makes about 100 markdown files in 400ms which is fast enough for me
#
WinnerWind
its way faster than Quartz which says it finishes in about 400μs but in practice getting npm running itself takes like 3 years
#
WinnerWind
im also using a python based markdown library so i dont get a massive speed benefit
#
[capjamesg]
I use Python too. But there are now Python packages that are implemented in Rust and then offer Python APIs.
#
[capjamesg]
I use https://pyromark.readthedocs.io/en/latest/ for converting markdown to HTML which works really well.
#
WinnerWind
oh im way more comfortable with jinja so ill stick with that
#
WinnerWind
oh this is markdown to HTML, my bad
#
WinnerWind
im using pymdox for that because i rely on some of its extensions so that i dont need to re-code a bunch of things i frankly don't care about (admonitions being one of them)
#
[capjamesg]
Oh yeah extensions can be really helpful.
#
WinnerWind
BTW is your website source written in markdown or jinja? bit confused when im reading your blog
#
[capjamesg]
Both. I write my posts in .md files, and then have jinja2 templates for the layout and components.
#
[capjamesg]
Also congrats on getting your generator to run so fast. WinnerWind++
#
Loqi
WinnerWind has 1 karma in this channel over the last year (7 in all channels)
cotsuka joined the channel
#
WinnerWind
[capjamesg]: i do too! well, i WILL do so
#
WinnerWind
the SSG is basically stable now, i just need to make the templates and point it to my website
#
[capjamesg]
Oooh that’s exciting!
#
WinnerWind
for templates i decided to go with a rule based system so that you can define some folders and some file names to use specific templates (using globstar, so folder/* and *myname* etc.)
#
WinnerWind
[capjamesg]: BTW is the source code for Aurora public?
#
[capjamesg]
It is! I started a re-write this year, which is hosted at https://codeberg.org/capjamesg/aurora-v2/src/branch/main/main.py
#
[capjamesg]
You can ignore the `VariableVisitor` bit right now; I haven’t finished porting it over, which is also why I manually add `["./pages/templates/sitemap.xml"]` at the end of the dependencies to build.
#
WinnerWind
https://git.winnerwind.in/WinnerWind/yaml-static-site-generator <-- that's mine, though i really need a better name for this....
#
WinnerWind
its either SSSG or YSSG
#
WinnerWind
YSSG isn't even accurate, it uses yaml for like some confiuration
#
WinnerWind
[capjamesg]: got it!
#
[capjamesg]
You self host your code -- nice!
#
[capjamesg]
I like the way you do extensions.
#
[capjamesg]
Oohh and the coloured messages too.
#
WinnerWind
[capjamesg]: thanks! still a WIP though, i still need to figure out a niceish methodology to allow extensions to create their own files (say, an index.html extension or something that auto-makes pages from tags and stuff)
#
WinnerWind
rn the only two types of extensions are Analyzers and Modifiers. Analyzers analyse a file and store shared data for other Analyzers or Modifiers to use. Modifiers modify the content of a page in place
#
WinnerWind
[capjamesg]: wouldn't be here if i wasn't self hosting :P
#
WinnerWind
but thanks!
#
WinnerWind
you figured out how to get it to work?
#
[capjamesg]
Figured out the extension thing, or how to use your generator? If the latter I was just skimming through the code.
#
WinnerWind
[capjamesg]: ah okay, im surprised you managed to figure out how all that works from just looking at the code
#
WinnerWind
then again, its about 90 lines long lmao
#
[capjamesg]
Oh haha yeah I don’t understand it that deeply 😄
#
[capjamesg]
But it helps to have short code!
#
WinnerWind
for sure! i do need to clean it up though
#
WinnerWind
speaking of cleaning it up, it just occured to me that it might be worth making the listing itself a plugin so that everythigng becomes modular
#
[capjamesg]
I have got some things to do but this has been a nice chat — it’s always exciting to hear how people build their sites!
#
WinnerWind
see you around!
barnaby and ZodiacalComet joined the channel
#
ZodiacalComet
WinnerWind++ for getting your SSG to an stable state
#
Loqi
WinnerWind has 2 karma in this channel over the last year (8 in all channels)
#
WinnerWind
ZodiacalComet: thanks! still a long way to go haha
#
WinnerWind
its usable but not VERY
btrem joined the channel
#
btrem
I just started using https://github.com/microformats/microformats-parser. When I parse an h-entry, it outputs the p-name as an array. Why is that?
#
jak2k
btrem: Someone or something could have multiple names.
#
btrem
Are there examples of `h-entry`s with more than on `p-name`?
#
btrem
...one...
#
btrem
Stupid fingers.
#
btrem
Because "someone or something" would be represented by an `h-card`, not an `h-entry`, no?
#
ulhar4409
my understanding of it is that if it is *always* an array, you can always safely treat it as an array, whereas if it's an array *only when plural*, code is more likely to break when it assumes singular
#
aaronpk
It's so that the parser can be unaware of the semantic meaning behind the names
ZodiacalComet and srazkvt joined the channel
#
[snarfed]
right. all mf2 elements are multiply valued
ax562 joined the channel
#
[tantek]
Also so that the JSON output structure is more consistent
GuestZero, cotsuka, blacklight and gRegor joined the channel
#
btrem
Thanks aaronpk et. al. for the replies. I'm using `parsedHtml.items[0].properties.name[0]`; I get a little nervous when a variable has that many appendages. But I may come to appreciate the consistency.
#
btrem
Also I have a hard time looking at a json structure and calculating the item I need. I stare and stare, "wait, it's `properties.name`, right? No, `items.properties.name`. Wait, what does that square bracket mean?...." ;-)
Xe joined the channel
#
Zegnat
btrem: there have been some projects that try to address those concerns by taking mf2 parser output and flattening it into some other known structure. But I am not sure there is one in TypeScript/JavaScript land.
#
Zegnat
I am thinking of initiatives like https://indieweb.org/jf2 (standard) and https://indieweb.org/mf2util (library) and https://indieweb.org/XRay (service)
cotsuka, Xe, barnaby and [Sophia_wood] joined the channel
#
[KevinMarks]
jf2 isn't fully converged - the different language libs do it a bit differently.
#
[tantek]
Looking for a new editor for jf2 if anyone is up for stepping up to help tighten up the spec and resolve outstanding spec issues
ax562 and ZodiacalComet joined the channel
#
[KevinMarks]
I can take another pass, but some help would be welcome
[Jo] joined the channel
#
[tantek]
Test cases would help with any implementation inconsistencies
Zob, btrem1 and cotsuka joined the channel
#
btrem
Zegnat++ for the links. I'll have a look. I'm not sure how much work to put into this. I've only ever submitted one bookmark to IndieNews. So far, I've only done a test case and retrieved a p-name. To make this useful, I'd need a fallback for pages without mf. Probably more than one fallback to be honest.
#
btrem
Again, karma didn't work. What's going on with that? Zegnat++
#
Loqi
Zegnat has 1 karma in this channel over the last year (10 in all channels)
#
btrem
Does it only work at the end now? That's new, I think.
cotsuka joined the channel
#
[tantek]
btrem++ test
#
Loqi
btrem has 5 karma in this channel over the last year (7 in all channels)
#
[tantek]
🤷‍♂️
#
btrem
That's strange.
#
btrem
But I got a free karma, so there's that.
#
btrem
All part of my scheme! :-D
#
btrem
Zegnat: as you pointed out, not available in node, alas. Now I wish even a little more that I were on Python. Though I do rather like 11ty.
#
btrem
aaronpk I'm looking at the repo for IndieNews. It appears that you /don't/ retrieve the post title for submitted bookmarks. https://github.com/aaronpk/IndieNews/blob/d965207389aa1893511c6787b8ea8670d0a10741/controllers/webmention.php#L254-L264 Have I read the code correctly?
#
aaronpk
oh rly
#
aaronpk
look at that TODO
#
btrem
But I'm mystified. How did IndieNews get the title of the page I submitted via bookmark? https://news.indieweb.org/en/stephango.com/file-over-app
#
btrem
Oops. It's in my bookmark. Nvm. :-?
#
btrem
My website has the title. I seem to have forgotten that I removed it from my dev site to investigate how to retrieve it from the url.
#
btrem
Now that I think about it, I had some problems submitting it because it was missing the `name` property: https://chat.indieweb.org/meta/2026-01-16
#
btrem
So I was forced to add it. And now don't I feel silly. :-o
Zob, ZodiacalComet and cotsuka joined the channel
#
btrem
Is there a url to test 500 errors? I'd rather not break my own server just to test how my ssg handles fetches to a server that returns 5xx responses.
#
[snarfed]
mock HTTP responses in unit tests?
#
btrem
[snarfed]++ brilliant!
#
Loqi
[snarfed] has 43 karma in this channel over the last year (56 in all channels)
#
btrem
(Don't know what a "mock HTTP unit test." I'm afraid I've never created a unit test, and wouldn't even know where to begin. But the link is just what I need.)
cotsuka, barnaby, blacklight and ax562 joined the channel