Skip to main content
Dublin Library

The Publishing Project

Home

From Markdown to PDF: Pandoc

When I first thought about automatically geneerating PDF version of my blog posts, I thought it would be easy: Just create a shell script that would run Pandoc to convert each document into its PDF...

Reviewing WordPress 7.0

I stopped using WordPress in 2022 because the project was moving in a direction that no longer matched my needs. I still check new releases to see how the platform is evolving and whether enough has...

Yes, you can write 'wrong' CSS

Jens Oliver Meiert wrote an interesting article on SitePoint: There Is No "Wrong" in CSS. He offers four reasons why CSS can't really be "wrong": If It Works, It Works The One Who...

JavaScript and TypeScript Promises

A Promise is an object representing the eventual completion (or failure) of an asynchronous operation and its resulting value. It acts as a proxy for a value not necessarily known when the promise is...

The Fetch Ecosystem

When the Fetch API first arrived, it provided a modern, Promise-based alternative to the clunky XMLHttpRequest. Today, in 2026, Fetch has evolved far beyond a single method. It is now a comprehensive...

Node 25.9 Iterable Streams

Node 25.9 introduces a new experimental streaming module: node:stream/iter. To use it,you must enable it with --experimental-stream-iter. The new API changes the core streams model from...

Punycode and IDN: URLs in your language

The DNS originally handled only a small subset of characters: letters (a-z), digits (0-9), and hyphens. This constraint is known as the LDH rule (Letters, Digits, Hyphens). As the web globalized,...

Archive Navigation