HTML—the only way do to PKM that's not total garbage!
What is PKM?
If you've spent any amount of time in the academic / software parts youtube,
then you probably know what it is. The idea is that, instead of taking regular
digital notes, you can link them all together into one big web of knowledge,
allowing you to find new connections between things. A bit like having your
own wikipedia, with a bunch of in-line links between pages.
Of course, it goes a bit deeper than that and there are all sorts of
philosophies about how exactly you should organise things—a popular one being
zettlekasten:
- Keep short notes that store one concept
- Link notes to each other, and where you got them from
Anyway, if you clicked on this article, you probably already know what PKM is
and how it works—if you have no clue what it is and what I've written
interests you, there's hundreds of youtube videos on it.
The problems with other PKM software
In PKM, you have a good few players:
- Roam Research
- Emacs Org Roam
- Notion
- Obsidian
- Tiddlywiki & Vimwiki
- Others, probably ¯\_(ツ)_/¯
Proprietary Software
The problem with many of these is they're proprietary. Aside from the problems
with all proprietary software, like having to pay, and being sent to hell,
it's specifically unsuited to PKM. The idea is that you keep the system for
life, and only a fool would bet that notion will be in business 100 years down
the line, or that the software takes a direction that you don't like. Of
course, you can change it over, and
pandoc
makes that a lot easier, but there's still hassle with it. They could lose
your files or e-mail your diary to the CIA- you just can't trust a company
with a lifetime of notes.
Dealing with Markdown
Even for the ones that aren't proprietary- or for the ones which spiritually
aren't proprietary, like obsidian, there are still problems. First is
markdown- you just can't do everything you want with it. Sure, if you want to
bash out the most basic of notes, then markdown will do it. However, if you
want any sort of complicated note layout, inserting things, or, god forbid,
make your notes more aesthetically pleasing, then you're fucked. And, sure,
the reason for using markdown is almost valid, it's not an awful lot more
intrusive than plain text, and it is much closer to plain text than html is.
However, with just a small amount of thinking, it's not hard at all to make
some HTML that's readable from the file- the way I'm writing this very webpage
is perfectly readable, and I can make it look however I please. Some people
get around things by adding some latex support and such, and with org roam you
could probably get across every idea you could with HTML, but it won't look as
nice or feel how you want it to.
Expandability, customisation, and personalisation.
The main problem with these PKM systems is features. Firstly is adding
features, which you just can't do with most of these. With org-roam, if you
know emacs well enough, you can make the system completely your own, and if
you already use emacs regularly then ignore this article and use that—it's a
great package, it just requires putting up with emacs. With HTML, you can add
anything you want. Features like in-line links and latex support are found in
some programs, but not others, With HTML, you can add it all easily. Anything
specific is just one small script away, and you can easily add anything you
want—be that syncing to a calendar; buttons to send emails, reminders, or
alarms automatically based off of a note; embedding pdfs with annotations, and
then linking to a specific annotation when referencing a note—the
possibilities are endless. Just think about what you can really do with HTML,
people make entire web apps out of it. That's really the great thing about
using a HTML based system, by default you'll have all the functionality of the
markdown systems, but you can scale up and scale up until you have a
customised, lightweight, beautiful web app which organises completely
everything. There's a billion tools out there to help, right from small static
site generators, up to enterprise class frameworks which can handle anything.
Additionally, when you use, for example, obsidian, your system really has to
work the way they want you to use it. With atomic notes and such, but there
are so many different ways to run a system. As a part of mine, for example, I
keep a diary, which, as a file, is by no means atomic. But I can link
everything together however I like, and it works just fine. And if I was using
obsidian I'd probably do it the same way, but eventually you find yourself
just hitting the edge of what the software was supposed to do, because it was
designed to be used in only one very specific way.
Really, the best way to go about something like this would be to code, from
scratch, your own, non-html based system, as it would give you the most
control and lead to the most personalised end product. Of course, pratcially
nobody has the skill or time for that, so this is the next best thing, as you
can start small (but still on par with or exceeding the other methods), and
work at your own pace to whatever end goal you have.
HTML PKM Methods
As mentioned, you could go about this in thousands of different ways, but here
are a few good ones:
Static HTML with a text editor
For this method, you would use a browser window to view your notes, and a text
editor to produce them. Starting from scratch is a great way to have a website
you fully control, or using sombody else's web template is equally valid. I
don't know of any templates specifically geared towards making PKM websites,
but any blog template will do.
WSYWIG HTML editor
This method is particularly nice, because you can use the same program to
make, edit, and view your pages, though you do have the option of using a
browser. Additionally, you can combine the 1st approach with this in any way
you like—maybe you'd prefer to just use the WSYWIG for quick edits, or maybe
to do something you don't know how to do with pure HTML. However, I would only
reccomend using a old web WSYWIG editor—nothing like a fancy wordpress or
squarespace or whatever site. This is because if you're keeping this system
for years and years, then you'll at some point want to change editor, or maybe
you've learned enough HTML to ditch the editor—any reason really. If you're
working on some super fancy editor, then the code could be completely useless
to another editor. You want one that just makes HTML and CSS like a human
programming a simple site would make. Something like bluegriffon is a great
choice—spits out nice, simple HTML, is open-source, and has plenty of
features.
Using a Static Site Generator
Static site generators are a great option, too. Plus, you can just add
markdown files and get a full HTML website from them, with very little effort.
However, I would say that this is maybe not my favourite option, as I like to
have fun with my pages. Plus, with a lot of static site generators, you could
be making something that's hard to port to another system when you're not
using it.
Final note: I don't know any way you can get some nice screen with a bunch of
nodes and the links between them like obsidian has— maybe I'll have to create
one you can include in your own site!