So I've written about some thoughts regarding this in the past, but I've had some other ideas I'd like to write down here:
Currently, for writing all the stuff here, I'm using a tree like structure composed like this:
/blog/$year/$month-$day-$name/README.md
This concept is (as of writing this) also used in the events section and others.
First, I though I'd just like to use the following format:
/dump/$year-$month-$day-name.md
Yet that isn't good, as not all posts are indefinite (I may change them and the time a file has been created can be stored in the file itself or within the yaml-metadata (more on that further down)).
Now let's say I'd use the following:
/dump/$name.md
I'd have a wiki!
That's probably what I'm aiming for, bit I'd still like to have some kind of control of the substructure: For example with the "blog" section of this page in which I write ramblings such as this one.
The individual files should contain some kind of note within them allowing me to tag and *query* them. For example: the blog would contain a query such as "all pages with the tag blog, sorted".
Now obsidian, logseq and possibly others have this built in, but I'd like to build my own (because why not!).
The navigation bar at the top of the page wouldn't need to be static in a way as it is on almost all pages: I could have a single page "under" two other pages, but "virtually" (as in: it's not there, just linked by two others and thus visually represented as below the other). Let's just look at an example, this should make it easier to understand:
Currently, I've got multiple sections on my page, such as /blog and /events. Often times, I write a bit about events, but these things could also be blogposts. So I could create a page called /dump/$event.md which describes the event and contains information such as (tag "blog" "event") within the page. Eventually, the page get's evaluated and the system get's the information that the page belongs in both these categories. Before, I'd need to create /blog/$event.md and /event/$event.md, but now I've only got /dump/$event.md with the /dump/$blog.md linking there and /dump/$event.md linking there.
The current layout for the blogposts from 2024 looks like this:
Now this is a mess. I'd like to create a format more resembling the following one:
emile.space/nixops.md
emile.space/r2wars.md
emile.space/nixctf.md
emile.space/blog.md
emile.space/2020.md
There are multiple categories here:
- Single blogposts (nixops.md, r2wars.md, nixctf.md)
- Categories (blog.md)
- Subcategories (2020.md)
Yet all of those are just files.
Now each file should have some metadata which adds some information, allowing us to query it from within other files:
`blog.md` should have a list of all blog-subcategories in the navigation bar, so we need to add some information in `2020.md` with that:
; blog.md
(nav (query :where "blog-subcategory"))
Now we could also add some information to the top of the file specifying the package a page is in, so that we can split up a blogpost into multiple files:
(defpackage #:post1 (:use :markdown :cl))
(in-package #:post1)
...wait, this is just like a simple common lisp project: why not write the data as code?
So we're writing some code that is kind of like common lisp, but not directly.
We're writing common lisp that evaluates itself to create some html
emile - 1725457826.813869s - generated using vokobe "0.1.3"