Ognjen Regoje bio photo

Ognjen Regoje
But you can call me Oggy


I make things that run on the web (mostly).
More ABOUT me and my PROJECTS.

me@ognjen.io LinkedIn

Markdown Notes Improvements

I’ve really started to find markdown with wiki links useful for taking notes.

To improve my workflow I’ve made a few additional things to complement it.

Front matter editor

I’ve made an editor for front matter that shows it in a grid and has bulk update. This has made it easier manage notes, particularly ones with the same structure.

For instance, if I had a few ideas for blog posts about cars, I could load all the notes in the blog post drafts directory then use the bulk update to set all their categories in the front matter to [cars, engines, speed]. The front matter editor source is on Github.

It was originally made for a specific project I was working on and it’s saved me considerable time already. Depending on how much I use it in the future there are several more things I’d like to add to it.

I use it for this blog as well.

Quick add script

I’ve made a script that allows me to quick add links, so in terminal I can write something like: (d is the command alias)

d -u https://www.yankodesign.com/2021/03/30/this-sustainable-home-made-from-air-concrete-is-fireproof-waterproof-diy-friendly/ -t 'New title' -a 'tag1, tag2' -c 'Content' -p 'resources.articles'

The params are:

  • -u is URL
  • -t is title
  • -a are comma separated tags
  • -c is content
  • -p is path
  • -f can be used to overwrite
  • -d is to set the description in the front matter

The combination of params cater to a few different scenarios.

If URL is present then the rest are not compulsory. If it isn’t then title is compulsory.

If the URL is present and the title isn’t then the title will be the slug of the link, that is the part between the last two /.

If the title is present it will be converted to underscore.

Tags are comma separated and will be appended at the end of the file.

Content will be pasted at the end of the file.

The path is where the file will be stored. So in the example above it’ll be resources/articles/new-title.md

I also have a default path set to resources/articles so I can run just

d -u https://www.yankodesign.com/2021/03/30/this-sustainable-home-made-from-air-concrete-is-fireproof-waterproof-diy-friendly/

I use this daily.

It also makes use of the metainspector gem so it automatically picks up the title and description as well as strips tracking tags.

The source is on Github.

Index script

I’ve a script that generates index files with a path passed to it.

i -p 'resources/articles'

This will create resources/articles/index.md with all the files that are in that hierarchy. It will only add files to the top and will preserve order. This allows me to have index files where I reorder things, and add headings. When I run index again, the files that aren’t in the index will be added to the top without messing up what I already have. I can also run i -p update which will find all files that have index.md asn the filename and regenerate them.

The source for indexing is also on Github.

Not really much to it. A directory with notes that has subdirectories for different things.

For your example, I’ve a directory called resources and it has subdirs like books, videos etc.

Each note is a markdown file with some front matter, including a source. The body is what you call annotations and I call notes.

I’ve got kortina.vscode-markdown-notes and davidanson.vscode-markdownlint extensions in VSCode.

I also have a couple of scripts for housekeeping: to quickly generate an entry and to create indexes. If you’re interested you can read more about it here: https://ognjen.io/markdown-notes-improvements/

https://news.ycombinator.com/reply?id=27116317&goto=threads%3Fid%3Drognjen%2327116317