there is a :where() selector.

"The :where() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list."

Code example:

/* Selects any paragraph inside a header, main
or footer element that is being hovered */
:where(header, main, footer) p:hover {
color: red;
cursor: pointer;

/* The above is equivalent to the following */
header p:hover,
main p:hover,
footer p:hover {
color: red;
cursor: pointer;

Quarantaine is over. Kid is back at daycare. Wife is at work. My head feels fairly clear again.
Time for a cup nay a pot of , and perhaps some . :)

I like being able to add a new feature to a chat or other project by just adding a couple of lines of code because someone else did the most legwork and provided their library through a package manager.


Been working some more on a for our little group for a channel where we challenge each other to guess the games that match the sets of and posted.

The code is horrible, which has made debugging more troublesome than it should've been, but it's great fun to see people enjoying something you built. :)

Today I learnt a bit more about pages and palettes on the , especially addressed from within the language.

As a result I made some more progress on my fork of Zett Darkstone's tile-drawing editor programme and released build 24, which can now properly save your drawing (and progress) to disk.
(Actually importing it again is future exercise.)

If you want to play around with it, you can load the dsk via WebMSX

Oof... it took longer than I'd hoped, and quite some struggling with a negative look-ahead , but I think I've finally fixed my gemini=move-after-paragraph-$i filter for .

Now I can move blocks one or more paragraphs ahead, to compensate for image floats that needed to be before one or more paragraphs in the original HTML output.

Made a bit more progress cleaning up my to conversion pipeline code, and I think have gotten rid of all of the hardcoded paths that have no place in public code, and replaced it with a more sensible default config that can be overwritten with a local one.

Now I can just push the exact same code to my server and run that with a local config, without having to change any of the actual code first. As it originally was, and as it should be. :)

Still need to have a catchy name for the project though. :blobcatthinksmart:

I've done quite a bit more on my to pipeline scripts in the past couple of days, but most of it is backend stuff that won't be visible to the average user... And most of it hasn't been used yet on public articles, but rather on a draft conversion of an old post of mine that I'm still working on.

Since I frequently have a hard time making out what an is supposed to depict, especially the custom ones, I've added a custom rule for through so emoji get enlarged while hovering over them:

document.styleSheets[document.styleSheets.length - 1].insertRule('.status__content .emojione:hover {width: auto!important; height: 50px!important;}', 0);

Re-iterating to myself: write when implementing (complex) . :)

Show thread
  1. convert another paragraph of my Blogger blog output to
  2. add another conversion rule to my conversion script to deal with an edge-case regarding some float or multiple inline links
  3. goto 1

What do you do when the website frontend of list of outlet products in your local electronics store is impossible to use?

Right, you write your own script that scrapes the data via requests to the the / calls use.

(Webshop in question was loading products page by page, and only then filters the results by your selected local store... meaning you often get only 1 or 2 results added, before you have to trigger the infinite scroll again...)

Progress on my subtitles/captions retrieval tool (long, about 1350 chars) 

Made some more progress on my / retrieval and formatting server script.

Caching of the video metadata and TTML captions works now, which should reduce the amount of calls to the (or other service) servers while testing.

I can now prepend a YouTube URL with my own test server's URL, and I'll get a simple text / markdown file with the video's channel name, title, upload and retrieval date, some other metadata I'm interested in, and most importantly: its manual or automatic captions in as legible plain text format as I can get it.

Once I can't think of any more improvements to add, I'll clean up the code, and publish it in a public repository.

I won't run my own public instance of it unfortunately, as I'd rather not risk my IP getting blacklisted for excessive YouTubeDL calls, but hopefully others will run with it and host their own, similar to .

In addition to a webserver frontend and its command-line interface, I hope to add a standalone graphical user interface too, so you can just run it straight from your desktop too. Though I might need some help with this.

It currently relies on youtube-dl, but I guess it might also be a good idea to add support for the official .

I've updated my / : gemini://

Its content is now converted from source asciidocs with the aforementioned rewrite of my conversion pipeline.

I think all the posts look about the same, but if you see something off, please let me know!

In between the events and while listening to its music, I managed to get a bit more on my done:

The new script is almost on feature parity with the existing set of loose bash and python scripts.

I think I just need to redo the stats parser, prevent conversion when doc is not set to page-published: true, and make it retain the directory structure.

Show thread

I'm usually not a fan on this kind of music, but at parties and with these kinds of visuals, it just works for me; at least when I am already in a party mood.

Definitely enjoying listening and moving to the music while doing a bit of on my , and occasionally looking up at the bigger screen to see what the visuals have transformed into now.

Show thread

Riiight... I can't remember where I left off on my to conversion pipeline script.

Okay, first commits pushed to my new repo on :

For now just the work-in-progress rewrite of my to conversion scripts.

More documentation and other scripts to be added as I clean up the code and write the docs.

Show more

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!