2025 July 19
Resources for my next blog to replace the hugo blog.
- Native web build system (XML+XSLT)
- Using XML to Create Web Sites
- XSL Website
- "XSLT Fever Dream" - Unit Tests
- BFCache & page lifecycle events
- Gallery of Stupid XSL and XSLT Tricks
- HTML, XML, XSLT, DOM and how they work
- Creating a static website with XSLT
- A Brief Defense of XML
- XML is almost always misused
- XSL Considered Harmful
- Yegor Bugayenko
- RSS for a static site
- Jon Udell
- Bob DuCharme's XSLT articles on xml.com
- Using the Mozilla JavaScript interface to XSL Transformations
- Converting simple markdown(string) to html with xslt from 2010!!
- XSLT Static Site Generator - interesting template defns
- XSLT performance:
- Roger Costello's XFront site
- Using XML, by J. David Eisenberg
- Ken Holman: What is XSLT?
- usingxml.com - by Sam Page
- XSL Identity Transforms
- see push vs. pull section
- XSL Identity Transforms
- Uche Ogbuji, Push vs pull XSLT
- Bob DuCharme, Push, Pull, Next!
- sixthhappiness.github.io
- Best example yet! Andrew Choi's static site built with XSLT since 2007
- XSLT Website Templates page explaining his approach:
- GitHub repo
- Basics of XSLT
- slides from R. Alexander Milowski's UC Berkeley course Spring 2005
- The Pure Tech Side is the Dark Side
- my opinions about most online discussions and forums --James Hague
- Why I Like XSLT
- 2014 post that still offends the non-creative
- The Functional Programming Language XSLT - A proof through examples
- 2001 Dimitre Novatchev
- Rediscover the Joy of Early Web Development With XSLT
- 2024 David Eastman
- Michael Leventhal
- Michael's xml.com articles against XSL, including his 1999 Declaration of War, XSL Considered Harmful
- Balisage: The Markup Conference
- Katherine Ford & Will Thompson (2018), An Adventure with Client-Side XSLT to an Architecture for Building Bridges with Javascript
- Abusing XSLT for Practical Attacks
- White Paper by Fernando Arnaboldi (2014) with some very interesting XSLT code samples
- stackoverflow: Is there an "if-then-else" statement in XPath?
- Oliver Becker (originator of exclusive-if-else trick above)
- XPath Selector Cheat Sheet: Practical Examples Included
- Learn how to parse data from an HTML site using XPath. This is a cheat sheet to help you understand XPath better.
- 2024 October
- Modern Invoice Generation with XSLT and React: A Seamless Integration Guide
- Bridge legacy systems and modern web apps through powerful XML transformations
- 2025 February reads like it may ha been inspired by the Balisage client-side bridge paper above...
- XSLT: A Precision Tool for the Future of Structured Transformation
- Why XSLT Still Matters
- Xee: A Modern XPath and XSLT Engine in Rust
- 2025 March which could prove timely...
- Introducing VGR's XSLT Blog Framework
- pitched on HN 24 August 2025 https://news.ycombinator.com/item?id=45006098
- poorly performing poorer design of the XSLT, by the way.
- Terence Eden's XML+XSLT demo (2023)
- Simon St. Laurent's MonasticXML (2002)
- Using XML Technologies course by Ken Slonneger (2006)
- Google is killing the open web
- Dorian Taylor comment
- Eric Meyer's dishonest muddying the debate
- both sidesing XSLT Debate Leads to Bigger Questions of Web Governance
- Introduction to DTD by Jan Egil Refsnes
- Creating your own DTD for HTML validation
- XML Schema Tutorial
- Tutorial 6 - XML DTD
- Balisage Paper: DTD (document type definition) declarations exposed in XSLT
- Parsing DTD files in XSLT to expose the definitions they contain
- Liam Quin, 2024
- Entities and XSLT
- Bob DuCharme 2001
- "Can an XML document follow both a DTD and an XML Schema?"
- stackoverflow: Carriage return ENTITY in XSLT
- Best way to include xslt inside another xslt when just a variable needs redefining
- declare global variable in project and use it in xslt
- XSLT stylesheet parameters in imported stylesheets
- XSL: Construct an Array from a Delimited String
- How to trim a string using XSL 1.0
- XSLT: compare date timezone
- Adding/subtracting number of days to/from date in pure XSLT 1.0
- Simulate a counter with recursion
- CentralCSP: Get started with CSP
- OWASP CSP cheat sheet
- Rules for Using a CSP Nonce
- Xslt_base64 encoding solution for CSP nonce:
- Plain Vanilla - An explainer for web development using only vanilla techniques. No tools, no frameworks — just HTML, CSS, and JavaScript
- XSLT in the browser using JavaScript, basic examples
- import XML source documents into XSLT using the document() function
- extending ideas from The web needs "XML: The Good Parts"
- find bare text node siblings in DOM: XPath approach
- Using XML, XSLT, XHR, to parse and serialize HTML in the browser
- Create a DOM element from template string using DOMParser
- Expanded version of Josh W. Comeau (2020), HTML Skeleton (adds CSP, ARIA, custom tag name)
- XPath in JavaScript, notes on document.evaluate() et al.
- post ideas including logicless templates
- more post ideas
- Javascript Generators, Meet XPath
- More Elegant Destructuring with JavaScript Generators - see section "Generators: Write Simpler Iterables"
- Typesetting a Resume with HTML and CSS
- Style your RSS feed
- Printing Music with CSS Grid
- Patterns for Memory Efficient DOM Manipulation with Modern Vanilla JavaScript
- Font with Built-In Syntax Highlighting
- Printing the web: making webpages look good on paper
- Visualizing Algorithms
- Loren Stewart interesting site design
- Chris Ferdinandi on using CSS @import again
- The how and why of GitHub to Codeberg
- live-server, ipconfig, iPhone on your local network
- live-server https option
- create OpenSSL key and cert
- choco openssl
- Step-By-Step Procedure To Install OpenSSL On The Windows Platform
- Five Screen Reader Accessibility Tests Your QA Team Should Do
- Setting up a screen reader testing environment on your computer
- search implemented on my Hugo blog
- Switching to the Hugo static site generator - reasons, resources, more
Who cares? The pandemic and ageism had ended my employability, the set of long in-depth posts I had drafted lost their appeal, and the field lurched from React and TypeScript and Test Nothing (all things I deplore) to AI injection into everything (which I still can't believe anyone is falling for, notwithstanding the Evangelical traitors who have openly smilingly embraced Nazi KKK fascism).
markdown convenience only postpones real markup decisions you have to make on the web. The entire clique of industry insiders and influencers keeps trying to sell convenience as productivity and they are alas always wrong. Some know this and lie blatantly anyway.
I wasn't enthused by the build process anymore, especially embedding shortcodes in Markdown for things that should be simple, such as embedding HTML in Markdown.
I had relied on a CDN called unpkg built by the creators of React Router and Remix who turned out to be smiling Nazi KKK Evangelical traitors. I needed to move off the CDN anyway as the chai testing library updated to a version that migrated to ES6 modules which broke my site's demos.
And I wanted to rely less on npm packages - package-lock files make everything terrible.
Plus, I liked the new challenge of an older technological paradigm sure to confuse and humiliate the modern clueless yet opinionated pretending to be family men, cutting edge, mathematically rigorous, and relevant.
Finally (sort of), the day had to come when, just as with the Wordpress editor, a change to Hugo would be incompatible with the existing site - see complaint 31 August 2025 at https://lobste.rs/s/swvxzh/sometimes_software_is_done_why_hugo_why.
More to come...