After reading João Cerqueira's post on how he recommends Organizing your life using Github I thought, "yes, I'm not the only one to see the benefit of version control for content other than code.
My problem was that I've never been satisfied with the way I organised my notes. I have lists, book quotes, notes on code, and all the kinds of content which tools like evernote were build for.
The trouble with evernote is that I found it to be ugly! Reading my own content in that editor distracted me. Not to mention it's inability to handle code, and markdown.
In case you are wondering, I tried other solutions. On mac there's a beautiful editor called Ulyssesapp, it took me very far but it lacked the power of detailed organization. I also ran a local blog for a while but the more content I added the slower it all got.
Now I use gitlab's wiki pages. I'm sure it's just like github's wiki pages, I just use gitlab due to it's unlimited free private repositories.
The pages are basically markdown file, which when pushed to the remote repository, they are read as html.
Auto-generated pages
Inspired by static website generators like jekyll, I created my own little generator with node. Above is a snippet of the homepage, the links to articles are all auto generated. In the terminal I type the following snippet
npm start -- "post title" tags1 tag2
and a markdown page is created in a folder with the name of the first tag. Also, a page is created for each tag (if it doesn't exist) and the a link to the new page is added.
I then run
npm run build
which takes all the pages and adds a reference link to the home page.
The end result is a blog/wikipedia-style private website which I can access from any computer.
The main benefits are:
- I write my content in my prefered editor. With few packages, sublime text it's truly sublime to write markdown content.
- Functionality grows with my own needs. I reacently added the ability to create sub-folders, or how I think of them as sub-blogs.
- Even online editing is pleasant. If I am away, and don't have the ability to clone the repo, the wikipages can be edited on the browser. It doesn't add much value but it's a bonus.
Finally, the code
You can see my simply solution on github. I hesitate to share this as now looking at it, the code is a bit messy.
The commands are a bit different as the file names will be unique to you, but if you choose to play with it, read the readme.md
file, it's pretty easy. All you need is node installed on your machine.
Now that it's public, I'll refactor the whole thing at some point
Top comments (13)
I love this idea. The challenge with an Evernote replacement is decent mobile access to notes and being able to create new notes on the go. Also, Evernote's OCR becomes really useful with large libraries.
OCR is great. Plus with the web clipper, you can import entire articles into Evernote.
Couple that with the Cmd+J shortcut and at some point you realize you've built your own personal Intranet.
Exactly and this combination of features is difficult to replicate. The key challenges that I encounter when I consider viable Evernote alternatives (I've been a relatively satisfied Evernote user for about 8 or 9 years but I am a little concerned about having so much data in there) are usually the following:
The closest I've seen to a possible replacement would be something like Google Drive and Dropbox, albeit paid versions.
I think if you use it that much, evernote is great and I find it had to imagine any tool competing with it.
I used it for 6 months and all I did was write, that was all, write and clip pages. As a writing tool I found evernote's editor lacked a lot.
Hence, those were the only features I wanted to replicate. Auto generation of notes, tagging, the ability to use my favorite editor and for all my notes to be backed-up.
Hey Aurel! Nice post here! As I said before, this is a very interesting way of using the Github/Gitlab/Bitbucket's Wiki for organizing notes and documenting development logs.
Maybe you could share with the community the generator you've written, I believe it'd be of interest to many (including me).
Congratz!
Ha, I didn't want to share the code as it's not the most organised code I've written, the project was a learning exercise that turned useful. Anyway, here it is github :) I also added it in the post. At some point I'll definitely refactor it.
Thanks
I tend to use a filename pattern that allows ordering them by age: yyyy-mm-dd-rest_of_the_name.
I like that idea, will add it in when I come around to rewrite the code.
You might also want to know that the software used to render GitHub's repo wikis is called Gollum, and is freely available under an MIT license.
I also sometimes use Grip, a tool which uses GitHub's own Markdown rendering API with local Markdown files, for previewing READMEs or just quickly generating a nice-looking render.
(Not that I have anything against your renderer, just thought it might be useful info.)
Thanks
I did use Gollum when I first thought of the idea but I don't remember why I didn't like it. Most likely because I wanted to use gitlab, can't remember.
Grid looks cool I'll definitely give it a try.
Thanks for sharing
Hey aurel, I too have been using markdown and GitHub for managing my class notes for about a year and a half now, but your node generator is a really great idea, I might have to make one for myself!
Cool, basically me and you have been doing the same thing. The generator is just a quicker way to create the actual file and make sure it's automatically linked with other notes
What's what ever it's worth, you are welcome to play around with what I have
Thanks
Before I had used one note for something like this. But I think I may try this because I like the idea of using git. Thanks for the idea!