Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
#!/usr/bin/env bash
# journal.sh
# ==========
#
# One daily text file to rule them all.
#
# Copyright: 2022 Tyler Cipriani <tyler@tylercipriani.com
# License: GPLv3
set -euo pipefail
DATE="$(date --iso-8601=date)"
DATETIME="$(date --iso-8601=seconds)"
BASE="$HOME"/Documents/brain
WEBROOT="$HOME"/public_html/brain
mkdir -p "$BASE"
mkdir -p "$WEBROOT"
DAILY="$BASE"/"$DATE".md
DAILY_HTML="$WEBROOT"/"$DATE".html
has?() {
command -v "$@" &> /dev/null
}
insert() {
echo "$@" >> "$DAILY"
}
if [ ! -f "$DAILY" ]; then
insert '---'
insert "title: ${DATETIME}"
insert "created: ${DATETIME}"
insert '---'
insert ''
fi
vim -c 'Goyo' '+normal Go' "$DAILY"
has? pandoc && pandoc -s -f markdown -t html5 -o "$DAILY_HTML" "$DAILY" || :
@corentinbettiol
Copy link

corentinbettiol commented Jun 17, 2022

Cool little tool! I too created my own small notetaking program that creates a file with the current date as its name (you can create named notes too). The idea came after reading this post.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment