Skip to content

Instantly share code, notes, and snippets.

@dfkaye
Last active November 20, 2025 22:22
Show Gist options
  • Select an option

  • Save dfkaye/96d8bfc98533a5cebcab2f2cac3f5612 to your computer and use it in GitHub Desktop.

Select an option

Save dfkaye/96d8bfc98533a5cebcab2f2cac3f5612 to your computer and use it in GitHub Desktop.
XML+XSLT web site resources, articles, posts

2025 July 19

XML+XSLT web site resources, articles, posts

Resources for my next blog to replace the hugo blog.

inspiration by others, mainly xml

  1. Native web build system (XML+XSLT)
  2. Using XML to Create Web Sites
  3. XSL Website
  4. "XSLT Fever Dream" - Unit Tests
  5. BFCache & page lifecycle events
  6. Gallery of Stupid XSL and XSLT Tricks
  7. HTML, XML, XSLT, DOM and how they work
  8. Creating a static website with XSLT
  9. A Brief Defense of XML
  10. XML is almost always misused
  11. XSL Considered Harmful
  12. Yegor Bugayenko
  13. RSS for a static site
  14. Jon Udell
  15. Bob DuCharme's XSLT articles on xml.com
  16. Using the Mozilla JavaScript interface to XSL Transformations
  17. Converting simple markdown(string) to html with xslt from 2010!!
  18. XSLT Static Site Generator - interesting template defns
  19. XSLT performance:
  20. Roger Costello's XFront site
  21. Using XML, by J. David Eisenberg
  22. Ken Holman: What is XSLT?
  23. usingxml.com - by Sam Page
  24. Uche Ogbuji, Push vs pull XSLT
  25. Bob DuCharme, Push, Pull, Next!
  26. sixthhappiness.github.io
  27. Basics of XSLT
    • slides from R. Alexander Milowski's UC Berkeley course Spring 2005
  28. The Pure Tech Side is the Dark Side
    • my opinions about most online discussions and forums --James Hague
  29. Why I Like XSLT
    • 2014 post that still offends the non-creative
  30. The Functional Programming Language XSLT - A proof through examples
    • 2001 Dimitre Novatchev
  31. Rediscover the Joy of Early Web Development With XSLT
    • 2024 David Eastman
  32. Michael Leventhal
  33. Balisage: The Markup Conference
  34. Abusing XSLT for Practical Attacks
    • White Paper by Fernando Arnaboldi (2014) with some very interesting XSLT code samples
  35. stackoverflow: Is there an "if-then-else" statement in XPath?
  36. Oliver Becker (originator of exclusive-if-else trick above)
  37. 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
  38. 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...
  39. XSLT: A Precision Tool for the Future of Structured Transformation
    • Why XSLT Still Matters
  40. Xee: A Modern XPath and XSLT Engine in Rust
    • 2025 March which could prove timely...
  41. Introducing VGR's XSLT Blog Framework
  42. Terence Eden's XML+XSLT demo (2023)
  43. Simon St. Laurent's MonasticXML (2002)
  44. Using XML Technologies course by Ken Slonneger (2006)

AUGUST 2025 google trying to remove XSLT from Chrome again

  1. Google is killing the open web
  2. Dorian Taylor comment
  3. Eric Meyer's dishonest muddying the debate
  4. both sidesing XSLT Debate Leads to Bigger Questions of Web Governance

DTDs and XSchema

  1. Introduction to DTD by Jan Egil Refsnes
  2. Creating your own DTD for HTML validation
  3. XML Schema Tutorial
  4. Tutorial 6 - XML DTD
  5. Balisage Paper: DTD (document type definition) declarations exposed in XSLT
    • Parsing DTD files in XSLT to expose the definitions they contain
    • Liam Quin, 2024
  6. Entities and XSLT
    • Bob DuCharme 2001
  7. "Can an XML document follow both a DTD and an XML Schema?"
  8. stackoverflow: Carriage return ENTITY in XSLT

variables and imports/includes

  1. Best way to include xslt inside another xslt when just a variable needs redefining
  2. declare global variable in project and use it in xslt
  3. XSLT stylesheet parameters in imported stylesheets

String processing

  1. XSL: Construct an Array from a Delimited String
  2. How to trim a string using XSL 1.0
  3. XSLT: compare date timezone
  4. Adding/subtracting number of days to/from date in pure XSLT 1.0
  5. Simulate a counter with recursion

Command line processing with xsltproc

  1. xsltproc man page
  2. installing
  3. Processing part of a document
  4. zlatkovic download site

Extensions for XSLT 1.0

  1. EXSLT

Content-Security-Policy

  1. CentralCSP: Get started with CSP
  2. OWASP CSP cheat sheet
  3. Rules for Using a CSP Nonce
  4. Xslt_base64 encoding solution for CSP nonce:

robots

  1. About /robots.txt

search page

  1. How To Add Search To Your Static Site

microdata

  1. MDN microdata

vanilla manifestos

  1. Plain Vanilla - An explainer for web development using only vanilla techniques. No tools, no frameworks — just HTML, CSS, and JavaScript

gists and drafts

  1. XSLT in the browser using JavaScript, basic examples
  2. import XML source documents into XSLT using the document() function
  3. extending ideas from The web needs "XML: The Good Parts"
  4. find bare text node siblings in DOM: XPath approach
  5. Using XML, XSLT, XHR, to parse and serialize HTML in the browser
  6. Create a DOM element from template string using DOMParser
  7. Expanded version of Josh W. Comeau (2020), HTML Skeleton (adds CSP, ARIA, custom tag name)
  8. XPath in JavaScript, notes on document.evaluate() et al.
  9. post ideas including logicless templates
  10. more post ideas

other ideas by others

  1. Javascript Generators, Meet XPath
  2. Typesetting a Resume with HTML and CSS
  3. Style your RSS feed
  4. Printing Music with CSS Grid
  5. Patterns for Memory Efficient DOM Manipulation with Modern Vanilla JavaScript
  6. Font with Built-In Syntax Highlighting
  7. Printing the web: making webpages look good on paper
  8. Visualizing Algorithms
  9. Loren Stewart interesting site design
  10. Chris Ferdinandi on using CSS @import again
  11. The how and why of GitHub to Codeberg

local server

  1. live-server, ipconfig, iPhone on your local network
  2. live-server https option
  3. create OpenSSL key and cert
  4. choco openssl
  5. Step-By-Step Procedure To Install OpenSSL On The Windows Platform

testing, accessibility

  1. Five Screen Reader Accessibility Tests Your QA Team Should Do
  2. Setting up a screen reader testing environment on your computer

lessons from hugo blog

  1. search implemented on my Hugo blog
  2. Switching to the Hugo static site generator - reasons, resources, more

why I stopped updating the hugo blog

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...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment