Syndicated Memex
A syndicated Memex is simply a collaborative hypertext based system used as personal knowledge base with published updates in reverse chronological order. Others might call it a bliki which Martin Fowler attributes to Ward Cunningham, the father of the wiki. But Memex is a better sounding postmanteau.
First a bit of history. The first non-analog system I used for storing notes was OneNote back when Windows Tablet PCs were popular. It actually had decent handwriting recognition which was useful when taking notes in engineering classes were diagrams and math equations were the norm. However as my studies moved to Computer Science I started using Linux more since not only was our homework about unix systems but we had to submit our homework on a unix based machine. I briefly used Tomboy and valued the idea of portable plaintext notes before deciding that it wasn’t the year of the Linux desktop and picked up a MacBook. I gave VoodooPad a go and it seemed like a great note taking system until I couldn’t stand not having an iPhone app to go with. Next I tried nvAlt paired with Simplenote which got me started on adding simple markup to my notes in the form of Markdown.
From then on I marked up all my notes with Markdown and I was interested in linking my notes together and accessing them online. GitHub’s wiki powered by Gollum was a great solution and made me realize how nice it is to have multi-folder support which nvAlt doesn’t have. I considered running multiple instances of nvAlt or even running Gollum locally when I found Github’s support for Relative links in READMEs.
I was conflicted because I preferred wiki markup syntax over the regular markup syntax because it represents the semantics of what I want more which is links between documents regardless of if the documents are rendered or not. However there is much wider support for regular markup syntax style links.
So now that I could edit and link my notes locally and online the next step was to publish them. A static site generated by Jekyll and hosted on GitHub Pages seemed like the way to go not only for their free hosting but also because it allows others to submit improvements to my site that I can approve with the click of a single button. However Jekyll doesn’t support wiki markup syntax and it does a literal conversion of regular markup syntax which means a link to this page which looks like [Syndicated Memex](/wiki/computing/syndicated-memex.html)
works fine locally but breaks when rendered on my site because my permalinks don’t end with .md
. I also took issue with Jekyll’s philosophy that posts must have a date in the filename so I set off looking for other static site generators knowing that I would give up GitHub Page’s automatic building of Jekyll based repos.
I checked out a few static site generators and landed on Middleman. It seemed to do most of what I needed except I ran into few issues with permalinks and general blogging support that Jekyll had in spades. I decided it was easier to modify Jekyll through its plugin system and monkey patching. I still needed to automatically generate the site whenever I pushed a commit to my site repo so I setup Travis CI. Now I can finally edit and publish my portable plaintext notes marked up in Markdown with support for relative links.