//// .. title: Nikola Blog Posts with Emacs .. slug: nikola-posts-with-emacs .. date: 2021-01-31 21:57:06 CET .. tags: emacs, nikola, blog, productivity .. category: .. link: .. description: .. type: text //// :source-highlighter: pygments Starting out my blog a few years ago first required picking one of the available platforms. I can still remember looking around for setups and finding that there were so many to choose from. My only real requirements for the blog were easy to list: * Static site generator * Easy to interface with git and Emacs This blog post is about the setup I picked, how I use it and why I think it has been a good idea. image::/images/emacs-nikola.png["Emacs and Nikola logos", align="center", width="200"] pass:[] === Picking Nikola I don't quite remember why I decided for https://getnikola.com/blog/[Nikola] rather than https://docs.getpelican.com/en/latest/[Pelican] but the perceived differences were so small that I settled for first that started an empty site with as few commands as possible. When my first 'nikola init' succeeded and I was able to view the site in Firefox, I had no reason to leave again. Indeed my experience with all of Nikola is a pretty pleasant one. Even when I struggled with the program, https://getnikola.com/contact.html[mailing list] support was always able to solve my problems in very short times. === Emacs packages Editing the posts in Emacs allows me to use a powerful text environment controllable by keystrokes only. As much as possible I want to keep my fingers on the keyboard and not use the mouse. Combining a few out of the box modes of Emacs gives me the environment I am very productive in. Editing post, I use the following Emacs extensions. ==== Auto fill The most basic support is 'M-x auto-fill-mode' to automatically refill the text while I am typing. This allows me to fully concentrate on the text while entry. ==== Flyspell-mode Selecting a target language with 'M-x ispell-change-dictionary' and running 'M-x flyspell-mode' enables an automatic spelling checker during entry. ==== Dictcc When I cannot think of a fitting english word, I use 'M-x dictcc' to call up an online translation service to find a good starting candidate. ==== WordNut The WordNut package is pleasant way to broaden my horizon while writing in a foreign language. Doing a 'M-x wordnut-search' starts the journey into the english language in a separate buffer. There are a few hot keys defined in this mode like 'Enter' running a WordNut lookup on the current word and 'l' to go back from following such a link. The character 'o' pops up the overview for the construct around point. In order to work this requires the 'wordnet' package. In a Debian based GNU/Linux it should be enough to do [source,console] ---- dzu@krikkit:~$ sudo apt install wordnet ---- ==== Magit And because I keep the blog posts in a git repository, I use the wonderful 'magit' interface allowing a few keystrokes to check in changes. Magit is by itself a wonderful tool for all of my git projects. Accessing it from the same environment the posts are written in, makes regular tasks an absolute breeze.