last edited a month ago

Automation is fun!

current background image: silver.jpg

A drawing for my silver video, a rearrangement of two Hollow Knight and Celeste soundtracks.

what is this?

This is my personal website, created as a record / repository of my various projects and experiments.

And there are a lot of them.

technical details

The premise of this project was the creation of a website showcasing current projects while requiring minimal maintenance.

hardware

This entire venture runs on a spare Raspberry Pi.

software

The core website and backend were created using node.js and typescript.

The main script reads from the filesystem and a JSON file containing project details.

For each project I store:

  • one main file (folder, HTML, image, video or audio),
  • a short HTML description,
  • the title, summary, thumbnail, and date of creation,
  • category (music, writing, etc.),
  • and tags.

A rudimentary command-line application was written to update these.

Many of my longer posts (primarily writing, notes, etc) are written in markdown files, via various editors. My personal favourite is Typora, a WYSIWYG editor with Latex (MathJax) support. A script on the server listens for file changes, and uses pandoc to convert them to HTML.

This way, I can remotely write and edit text files (like this post!) from any network-connected device, with changes being applied to the website in real-time.

other features?

  • [x] Keyboard navigation.
  • [x] Separate light/dark theme depending on system setting.
  • [x] A very rudimentary directory browsing system. (for projects like pen)
  • [x] Real-time updating!
    • [x] Server-side: automatic pandoc conversion etc.
    • [x] To add client-side scripting allowing recently edited pages to automatically update, so that changes may be viewed in real time.

roadmap

functionality

  • [ ] A proper academic notes system?
  • [ ] Project database, just to learn database structures instead of a json file.
  • [ ] Adding more projects. :p

just quality-of-life stuff

  • [ ] Make fixed-position backgrounds work. Somehow.
  • [ ] Install pandoc 2.12 on the Pi (look at these checkboxes D:)
  • [ ] Change ‘last modified’ system.

faq

Could Wordpress/Github Pages/etc have been used for this?

Yes.

Would it be faster/easier/more scalable/more effective?

Almost definitely.

Are you doing this anyway?

Yes.

Because jokes aside, it’s inherently more interesting. A learning experience regarding UNIX systems, web design and frameworks, etc. Besides, having more direct control over my files and automation potential is always a good thing.

You sound like you’re just trying to convince yourself.

…Shhhh.


Thank you for taking the time to visit. :)