Mainroadっていうテーマでこのブログは運営されているが、ちょっと気になる点がいくつかあったので修正するぜ!って話
content/post/ に全記事入るのは流石に見にくくないか問題
正直これは見にくいし、エディタのタブとして開くのに毎回スクロールするのがとてもストレス。
気になる点
content/post/に今までの記事全部入っているので加筆・修正の時に記事探すのが面倒
- 新規作成した記事は
<記事名>.mdなので日付順にソートされずにさらに探しにくい。
- 記事を書き始める時一々このファイル群を見たくない

やること
- 投稿済みの記事を見返す機会は少ないので、
content/post/に入ってても全然いいが、
- 今書いている記事は違う所に入れたい。
- 記事を新規作成する時、
<日付>_<記事名>.mdの形式にしたい(あとで見やすいので)
解決案
Shellを書こう。
manager.shっていう名前でこんなの書きました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#!/bin/bash
new_article () {
if [ $# -ne 1 ]; then
echo "usage: ./manager.sh new <name>"
exit 1
fi
# shellcheck disable=SC2091
if $(echo "$1" | grep .md > /dev/null) ; then
echo "do not include .md"
exit 1
fi
# 参考: https://blog.katty.in/4967
mkdir -p content/tmp
# shellcheck disable=SC2006
# 参考: https://qiita.com/mochizukikotaro/items/f3a78d631595f9744a75
today=`date "+%Y%m%d"`
hugo new "tmp/${today}_${1}.md"
}
deploy () {
mv -v content/tmp/* content/post/
}
allocator() {
if [ "$1" = "new" ]; then
new_article "$2"
elif [ "$1" = "publish" ]; then
deploy
else
echo "usage: ./manager.sh { new | publish } { command argument }"
fi
}
allocator "$1" "$2"
|
./manager.sh new <タイトル>でいい感じに日付とかを入れてくれます。
tmpフォルダに入っているので、書き終わったら./manager.sh publishでpostフォルダに移行できます。
ただ、このままだとブログのタイトルにも日付がついてしまうので消す。
archetypes/default.mdのtitle部分は以下の様に書き換えた
title: "{{ index (split (replace .Name "-" " " | title) "_") 1 }}"
これで日付とアンダーバーが含まれなくなる。
とりあえずこんな感じで運用してみることにする。