obsdconvを手動で実行するのはめんどくさいよねって話。
Hugoでノート公開までの流れで書いたように、Obsidianで公開できるノートはHugoで公開しているその過程でobsdconvを利用しているのだけれど、obsdconvを手動で実行するのはめんどくさい。
実行環境はMacなのですが、obsdconvを利用するには基本的にターミナルから実行する必要があります。 めんどうなのでGitHubActionでHugoをbuild & deployする際にobsdconvを実行できないかなぁと試してみたが、途中エラーになって断念中。
しかたないので、MacのAutomatorでobsdconvを実行するターミナルコマンドをアプリケーション化して実行している。
それすら面倒なので、フォルダアクションでターミナルコマンドを実行を試してみたが、新しくファイルを保存した場合は実行されますが、修正した場合は実行されないという罠のため断念。
obsdconvを実行して、Obsidian gitでCommit&Pushを行う…動作が多い Obsidian gitは定期的に実行するようにすれば、obsdconvさえ実行できればそのうちdeployされるのでいいかぁ
そんな現状です。
でもホントはobsdconvを自動化したい。
2022-02-15 追記
動いた。 GitHubActionで動いたよ。
jobs:
obsdconv:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set Up
uses: actions/setup-go@v2
with:
go-version: 1.17
- name: obsdconv
run: |
go run github.com/qawatake/obsdconv@latest -src ./Hugo2Public -dst ./Hugo/content/posts -std -pub
go get とか go install で試してみてたけど記述方法がわからなかったのだけれど、go run で直接動かせるとは!
また、GitHubActionによる変更をメインリポジトリにPushしておくことをわすれずに!
- name: Push diff
run: |
git remote set-url origin https://github-actions:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}
git config --global user.name "${GITHUB_ACTOR}"
git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com"
if (git diff --shortstat | grep '[0-9]'); then \
git add .; \
git commit -m "GitHub Actions による差分を Push"; \
git push origin HEAD:${GITHUB_REF}; \
fi
あとはこのWorkflowが完了したら、Hugoをbuild & deployしてNetlifyに送るWorkflowを実行するようにしたら完成。