About
I’m a software developer from Belfast, currently living in the US of A 🗽.
This website serves as a portfolio of my projects, and a place to post content I find interesting or useful. It was generated using a custom static site generator, is currently hosted on GitHub pages, and built via GitHub actions.
I can be reached via email at
contact [at] wasteofcyberspace.net
or on GitHub at https://github.com/ZX-80.
Site Info
My first website was written in 2017 with raw HTML/CSS and has unfortunately been abandoned for many years (writing each page like that is no fun). This project started around 2023, as a spin-off from a djot parser I was writing for Python. I figured if I could turn simple documents like djot into HTML I might as well fix up my old website.
Features
- Easily extensible via filters
- Mermaid JS charts
- GitHub style alerts
- Syntax highlighting (580+ languages)
- Tabs
- Table of contents (TOC)
- MathML support
- Uses git to manage created / edited dates
- Page metadata
- Automatic anchors for page elements
- Generated navigation bar with TOC
- Supports 60+ document types as input
To speed up development, I’ve made use of some other libraries:
- Pygments: Syntax highlighting for nearly 580+ languages.
- Pandoc: Document to HTML conversion
- Panflute: Easy editing of pandoc documents
- dominate: HTML templating in Python
Building
Building is as simple as git push
, after which a GitHub
action will install and run the build script at https://github.com/ZX-80/Cyberspace, publishing to
GitHub pages.
The build script itself will scan for css files, top-level source files (for the navigation bar), and filters. Then it will run each source file in the source directory through the following stages:
- Convert the document to a panflute document
- Apply filters one by one
- Convert the panflute document into the article HTML
- Wrap the article HTML to get the page HTML
--- config: theme: dark --- flowchart LR %% Convert to panflute document Document -- pandoc --> panflute_doc[Panflute Document] %% Apply filters panflute_doc --> Filters --> panflute_doc %% Convert to article HTML panflute_doc -- pandoc --> article_html[Article HTML] %% Wrap article HTML in page HTML article_html --> full_html[Full HTML]
Unless stated otherwise, all content on this site is published under CC-BY-SA. All code on this site is available under the MPL.