記事の編集作業を効率化する
- #hugo #windows-terminal #obsidian #fenrir #vim #efficiency
毎日ブログを更新するわけではないが、Hugoで効率良く編集作業を出来るようにしないとブログの更新が億劫になりそうだったので色々設定した
主に下記3つを利用して省力化
Hugoサーバを一発で起動する
流石に毎回手打ちでhugo server -D
などと実行するのはあり得ないので一発起動できるようにした
Windows Terminalの複数タブ起動を省力化
@hugor
(Hugoでroodolvだからhugor)というエイリアスにWindows Terminal用のコマンドを下記の通り設定- そしてこれをランチャのfenrirに登録した
fenrir075c\data\instant.ini
に追記
- fenrirはかなりのおすすめソフトなのでいずれまた記事を書く予定
- そしてこれをランチャのfenrirに登録した
@hugor=""wt" "-p" "Neovim" ; "new-tab" "-p" "Git Bash" "-d" "D:/Hugo/myblog/themes/manis-hugo-theme" ; "split-pane" "-H" "-p" "Git Bash" "-d" "D:/Hugo/myblog" ; "new-tab" "-p" "PowerShell 7" "-d" "D:\Hugo\myblog" "-e" "hugo" "server" "--ignoreCache" "-D" "--disableFastRender" "--noHTTPCache" "--buildFuture" ; "focus-tab" "-t" "2""
- 1つ目のタブは Neovim
- 2つ目のタブ上側は Git Bash (Hugo テーマ ディレクトリ)
- カーソルの初期フォーカスはここ
- 2つ目のタブ下側は Git Bash (Hugo ルート ディレクトリ)
- 3つ目のタブは PowerShell でHugoサーバ立ち上げコマンド自動実行
これで以後は@hugor
と ランチャに入力するだけ でサイト更新作業用のHugoサーバが立ち上がるようになった
記事編集用のObsidianも一発で起動する
Obsidianについて
ObsidianはMarkdown対応の高機能メモアプリ兼エディタ
- Vimのキーバインド・各種コマンド・マクロetcに対応 していて2バイト文字も打ち込みやすいので愛用
:s/BEFORE/AFTER/g
による置換や/
を使った検索時に2バイト文字を使っても快適に動作- パターンマッチとエスケープシーケンスに関しても本家Vimの
\(.*?\)
のような記法ではなく素直に(.*?)
と書けるので結構快適
VaultというのはObsidian内部のテキストファイル・ディレクトリ管理の単位
- 1つのVault内で複数タブを開いた状態をワークスペースとして保存し、ワークスペースを切り替えることが出来る
- Vaultはどちらかというと 物理的なファイルの集まり にフォーカスしたもので、ワークスペースは 論理的なタスクの集まり にフォーカスしたもの
ObsidianのVault管理の方針
結論: Obisidian上では既存のVault
main
と編集用Vaultmyblog
は分けるObsidianではMarkdownの新規作成時は自動でテンプレートに従った
.md
ファイルが生成されるが、このテンプレートは各Vault毎に1つしか存在しない仕様になっている- 厳密に言えばテンプレートファイルは Daily notes というプラグインと Unique note creator (旧Zettelkasten)というプラグインの合計2つ用意されるが、逆に言えばデフォルトでは2種類のみテンプレートが存在
ということでメインのVaultとは異なるHugo記事専用のMarkdownテンプレートが必要なのでVaultを分けることに
編集用Vaultを一発起動
- その代わり、fenrirから
:osdh
と入力することで記事編集用Vaultが立ち上がるようにした
;Obsidian
:osdm=""obsidian://open?vault=main""
:osdh=""obsidian://open?vault=myblog""
- 早速記事編集を試したが、メインのVaultと同じ設定にしたため書き心地も変わらず、軽くて良い
- VSCode立ち上げるより速い&早い からObsidianの方が良いかも?
編集用のVaultから他Vaultのメモを参照可能にする
別のVaultに書き溜めたMarkdownメモをそのまま記事に転用したり楽にコピペしたりしたい
メインVaultへのシンボリックリンクを張る
まずObsidianの
main
Vaultへのシンボリックリンクをmyblog/
直下に張ったHugo/myblog/main
といった階層構造になった
これでいつでも編集用Vault
myblog
からメインVaultmain
に書き溜めた大量のMarkdownが参照できる- また、逆に編集用Vault以外からはHugo用の編集記事にアクセスできない ため編集作業の保全性も高まる(気がする)
メインVaultへのシンボリックリンクを.gitignore
でスルー
これをやらないと メインVaultの大量のメモが全てGitリポジトリに含まれてしまう ので必要不可欠
予想外だったのが、
.gitignore
には下記のように通常とは違う記法で書く必要があったこと/main/
という書き方だとシンボリックリンクの場合 リポジトリに含まれてしまうので注意/main
という風に末尾のスラッシュを省略したところGitからスルーされるようになった
/.obsidian/
/.vscode/
/content/drafts/
/public/
/images/
/bin/
/main
.DS_Store
.hugo_build.lock
終わりに
以上の作業を経て、下記2つのコマンドをランチャに入力するだけで記事編集作業に移れるようになった
@hugor
(Hugoサーバ起動、プレビュー用):osdh
(Obsidian起動、記事編集用)
例えばテーマを弄る時など、「記事編集はしないがプレビューだけ確認したい」という場合もあるので敢えてこの2つのコマンドは1つにまとめないことにした
ブログを毎日更新することはないと思うが、下書き記事を少しでもラクに書けるようにしたかったのでプチ省力化をやっておくと面倒臭がらずに済む……と思う