Using Hugo as a daily life log
I have been working on automating my daily journal with Hugo, vi
, and a few bash
scripts. The primary goal is to create a friction free system to update a journal entry every time I context switch between tasks or need to log something interesting.
The workflow starts by creating a new journal file every morning with the following bash
script. If the journal file does not already exist, a new file is created using the current date as the name, vi
is started for editing, and a live web server is loaded to view changes. When vi
is closed, the file saves and the web server shuts down. I put this script in the search $PATH:
#!/bin/bash
cdate=`date +%Y%m%d`
hugobase="/Users/jemurray/Documents/www-personal/current/journal.jasonmurray.org"
journalfile="$hugobase/content/posts/$cdate.md"
cd $hugobase
if [ ! -f "$journalfile" ]; then
hugo new posts/$cdate.md
fi
hugo -D server -p 8000 --quiet > /dev/null 2>&1 &
vi $journalfile
kill `ps -ef | grep "[h]ugo -D server -p 8000" | awk '{print $2}'`
Create a Hugo template ($HUGOROOT/archetypes/posts.md):
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
toc: false
images:
tags:
- journal
---
# Daily log:
# Decisions:
# Changes:
# Notes:
By using an insert key-remap, typing idt
anywhere within vi
will insert a date and time stamp. Add this to the ~/.vimrc
file:
inoremap idt <C-R>=strftime("%c - ")<CR>
Start the system:
jemurray@mbp-2019:~ $ dailyjournal.sh
---
title: "20200706"
date: 2020-07-06T08:30:57-05:00
toc: false
images:
tags:
- journal
---
# Daily log:
Mon Jul 6 08:31:04 2020 - review security vulnerability on XXXX and fix put in place to stop it.
Mon Jul 6 08:40:45 2020 - determine XXXXXX charges his time against
Mon Jul 6 08:52:44 2020 - review EnterpriseApplications Confluence pages
Mon Jul 6 08:56:12 2020 - Network Engineering staff meeting
Mon Jul 6 09:11:15 2020 - Zeek tap design
Mon Jul 6 09:28:40 2020 - NE manager meeting
Mon Jul 6 09:58:30 2020 - find IP ranges for med VPN for james
Mon Jul 6 10:34:04 2020 - snack break
Mon Jul 6 10:44:49 2020 - continue work on zeek taps
Mon Jul 6 11:24:06 2020 - missed monitoring project discussion meeting, was wrapped up in zeek tap
Mon Jul 6 11:24:26 2020 - lunch.
Mon Jul 6 12:01:35 2020 - created blog post about this journal system
# Decisions:
~
~
"~/Documents/www-personal/current/journal.jasonmurray.org/content/posts/20200706.md" 49L, 1132C