Site Engine
Around 2022 I decided I'd rather write my own engine for this site than keep bending somebody else's to fit, so I did. It's written with ASP.NET Razor Pages on .NET 8, and it runs in a Docker container.
How it works
Every article is a Markdown or HTML file in a content folder, and the engine renders it on request. The navigation, including the tabs across the top and the lists of articles, comes from a single file written in XferLang, a data format I designed. Adding an article means dropping in a file and adding a line to the navigation; nothing needs to be rebuilt.
Two views
The site has two ways to read it, and you can switch between them at the top of any page.
- The window view is the home page. Articles open as windows on a desktop, with a list of everything on the left, so you can keep several open side by side, move them around, and minimize the ones you're not reading.
- The classic view is a plain website: one article per page, the way the web has always worked.
The window view is built so that everything you can do in it has an address. The windows you have open, which one is on top, and where they sit are all in the URL, so you can bookmark an arrangement or send it to somebody. It still works without JavaScript, too, because every link leads somewhere real.
A showcase for PUDL
The whole site is styled with PUDL, my design language, and it's also where PUDL gets tested against real work. I removed Bootstrap and jQuery entirely to make the site a public showcase for it. Whenever the site needed something PUDL couldn't do yet, the gap went back to PUDL as a proposal, and many of those proposals are now part of PUDL itself.
Applets
Some pages are small applications that run either in a window or on a page of their own, from the same code:
- a Sudoku game that you can install as an app;
- Conway's Game of Life;
- barcode flash cards for learning to recognize barcode symbologies;
- a barcode tool for making and reading retail barcodes.
Details
- ASP.NET Razor Pages on .NET 8, deployed with Docker.
- Articles in Markdown (rendered with Markdig) or HTML; navigation in XferLang.
- Tags, an RSS feed, a go-to-page palette on the
/key, and an image lightbox.
The code is on GitHub: github.com/paulmooreparks/parkscomputing.