• Vim
  • Obsidian
  • Git
  • Syncthing
  • Hugo

This blog that you are reading on runs on Hugo. I found out about Hugo about two years ago, with it being named one of the fastest CMS out there. I wanted a blog that would mostly require me to create content and not have to faff about with creating headers and html code and css and what not, even though I still do plenty of that to get my theme just how I want it, and Hugo does just that.

I place my content that is ready to be viewed in the post diretory and the drafts live in the draft directory. (I NEED TO CHECK IF GIVING OUT THIS INFO IS DANGEROUS AND CAN BE MANIPLATED BY URL STUFFING OR WHATEVER)

Much of the content that I create at one time or most the time is created in a terminal with vim. Once you understand how Hugo wants certain things to be layed out, it is very easy to use in a simple command line text editor.

For much of this blog's life content was stored in my gitea server via the git commands and pulled to my Linode server that runs the blog. I would have to SSH into the server then cd into my ~/bin/ folder and run my ./blog-pull.sh script which would run a git pull to my my blog's home directory, delete everything in the blog's public folder, and run a hugo-server command. If there were no errors then I would F5 the webpage I was in to see if the page looked how I expected it to look. Very tedious. I even ran a crontab to run that script every five minutes but it did not like it and would 404 my site.

I had to soon learn how to setup a git lts commands which would store certain file extension like .png, .jpg, .jpeg, etc., only once instead of duplicating them for every commit. Before implemening this my blog grew to several gigs which now it only sits at ~300MB.

I now have elimiated one step which was git push and pull entirely and swapped it out for syncthing. Any and all changes are pushed to all of my connected devices via syncthing and I also have backup copies that syncthing is setup to do just in case I mess something up.


As of just recently I have added Obsidian to my workflow as it offers me a simple and clean markdown editor that also allows for a live preview of the markdown code. It also has an option for using vim-like keys which I immediately turned on and tested.

Settings -> Editor -> Advanced -> Vim key bindings

One fun tid-bit is that for you to turn on vim-like commands and keys you have to know a little of vim. In my case it asked how to quit a file that has been written to without saving. Easily done. But I love that they something like that.

:q!

I usually tend to build a web page in vim itself and look then take a look at how everything plays out in Obsidian.

obsidian

As you can see from the pic above I have Obsidian open on the right and the left two terminals are for my local machine where I do my gitc and gitp commands which are

git add . && git commit -m ""
git push

respectively, which you can check out here at my git bashrc git repo. And the other terminal is where I run my hugo blog on my Linode instance where I do a git pull and run hugo to run the new changes.