From e3cc18281fff870eefa9413313470638081d9ae1 Mon Sep 17 00:00:00 2001 From: Guangxiong Lin Date: Wed, 2 Nov 2022 10:19:28 +0800 Subject: Support monthly journal --- wd-journal | 49 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/wd-journal b/wd-journal index 7f59649..4fa6f84 100755 --- a/wd-journal +++ b/wd-journal @@ -3,15 +3,50 @@ year=$(date +%Y) week_number=$(date +%W) -overall_title="# Week $week_number $year" -today_title="## $(date '+%Y-%m-%d %A')" +weekly_journal_title="# Week $week_number $year" +weekly_journal_subtitle="## $(date '+%Y-%m-%d %A')" + +monthly_journal_title="# $(date '+%B %Y')" +monthly_journal_subtitle="## [Week $week_number $year](week$week_number.md)" weekly_journal="$WD_JOURNALS_DIR/$year/week$week_number.md" +monthly_journal="$WD_JOURNALS_DIR/$year/$(date '+%Y-%m').md" + +# Open weekly journal by default. +# TODO: maybe I can add a environment variable on it. +file_to_edit="$weekly_journal" + +init_journal_with_title () { + local filepath=$1 + local journal_title=$2 + + [ ! -f "$filepath" ] && echo "$journal_title" > "$filepath" +} + +append_line_if_not_in_file () { + local filepath=$1 + local line=$2 + + if ! grep -q "$line" "$filepath"; then + echo "$line" >> "$filepath" + fi +} + +init_weekly_journal () { + init_journal_with_title "$weekly_journal" "$weekly_journal_title" + + append_line_if_not_in_file "$weekly_journal" "$weekly_journal_subtitle" +} + +init_monthly_journal () { + init_journal_with_title "$monthly_journal" "$monthly_journal_title" -[ ! -f "$weekly_journal" ] && echo "$overall_title" > "$weekly_journal" + append_line_if_not_in_file "$monthly_journal" "$monthly_journal_subtitle" +} -if ! grep -q "$today_title" "$weekly_journal"; then - echo "$today_title" >> "$weekly_journal" -fi +case "$1" in + --monthly|-m) shift; init_monthly_journal; file_to_edit="$monthly_journal";; + --weekly|-w) shift; init_weekly_journal; file_to_edit="$weekly_journal";; +esac -$EDITOR "$WD_JOURNALS_DIR/$year/week$week_number.md" +$EDITOR "$file_to_edit" -- cgit v1.2.3