注意
この記事はまだ執筆中です。draft: true
にしろ結果
このサイトです。 パソコン(あるいはAndroid)上のObsidianから編集することが可能です。 iOSにかんしては未検証ですがおそらく可能かと思われます。
成功した点
- GitLabのプライベートレポジトリ×2でHugoのサイトとコンテンツを分けて管理
- デスクトップ(モバイル)で.mdを更新すると自動的にGitLab Pagesも更新
未解決な点
- Android上でテンプレートから新規記事を作成できない(既存の記事をコピーして上書きすることで対処可能)
- 記事の更新時にページの更新ジョブが二回走る
- Obsidianのテンプレートが発展途上
動機
- 自分のサイトほちぃ!!!
- でもhtmlとかcssとかJavaScriptとか難しそう…
- マークダウンならメモ書きでも使ってるし書ける!!使ってるObsidianから記事にする機能もあるらしいぞ!!
- Obsidian Publish : 月 額 1 0 ド ル ( 執 筆 時 レ ー ト で 約 1 6 0 0 円 )
- 書くかどうかわからないものに月額10ドルかぁ…
- 静的サイトジェネレーターを使えばタダでできるかもだって!?
当初の目標
- 完全無料にしたい
- 記事のマークダウンはあまりオープンにしたくない
- Androidでターミナルエミュレータを使いたくない、Obsidian Gitプラグインだけで済ませたい
- いい感じの見た目にしたい
- Obsidian単体で記事を更新したい
偉大なる先駆者様方
かなり参考にしました。ありがとうございます。
やったこと
注意
著者しばかぶはド素人です。 間違った手順やおかしい手順が含まれているかもしれません。許してください。 また、情報は記事執筆時の情報であることに留意してください。Hugoに必要なプログラムの用意
- Git for Windowsのインストール
公式サイトから導入してもokです。
1
winget install --id Git.Git -e --source winget
- Goを公式サイトから導入、必要があればパスを通す1
- Hugo公式サイトからDart Sassを導入
Hugoを導入、プロジェクトを作成
- Hugoを導入
例によって公式サイトからでもインストールできます
1
winget install Hugo.Hugo.Extended
- Hugoのプロジェクトを作成2
1 2
cd /your/project/folder hugo new site <プロジェクト名>
- Gitと連携する
1 2
cd <プロジェクト名> git init --initial-branch=master
- テーマを追加する
このページではStackを使用しています。
1
git submodule add https://github.com/CaiJimmy/hugo-theme-stack/ themes/hugo-theme-stack
- テスト用にサンプルサイトをコピーする
themes/hugo-theme-stack
内の.gitignore
、config.yaml
、themes/hugo-theme-stack/examplesite
内のcontent
フォルダー、hugo.yaml
をプロジェクトのルートフォルダにコピーあるいは上書きしてください。 - Hugoが正常に動作するかテストする
ブラウザで
1
hugo server -D
localhost:1313
にアクセスするとサンプルのサイトが表示されるはずです。 - contentフォルダをhugoのフォルダの外側へ移動させておく
GitLabと連携、コンテンツ管理環境の整備
- GitLabで同じグループ内にhugo用のプロジェクトとcontentフォルダ用のプロジェクトを作る
このときREADMEを作るとブランチが
main
になります。 - 空のレポジトリに出る説明に従ってhugo用のプロジェクトに先ほどのフォルダをアップロードする
- 同様にしてcontentフォルダ用のレポジトリにもアップロードする
2つのレポジトリの連携
- お互いのレポジトリのCI/CD設定でレポジトリ、親となるプロジェクトからのアクセスを許可
- hugoのレポジトリからcontentのレポジトリをサブモジュールとして追加
1
git submodule add ../<contentフォルダのレポジトリ名>.git
- hugoのレポジトリに以下のジョブを追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
image: registry.gitlab.com/pages/hugo/hugo_extended:latest variables: GIT_SUBMODULE_STRATEGY: recursive pages: stage: deploy environment: production script: - git submodule update --init --recursive - git submodule update --remote - git config user.name "CI Bot" - git config user.email "ci@example.com" - git add . - git remote set-url origin "https://gitlab-ci-token:${ACCESS_TOKEN}@gitlab.com/path/to/your/repo.git" - git checkout master - git commit -m "Update Submodule" || - git push origin - hugo artifacts: paths: - public expire_in: 1 day
- contentのレポジトリに以下のジョブを追加
1 2 3 4 5 6 7 8 9 10 11
stages: - build build_job_dev: stage: build variables: PLUGIN_NAME: coppercrm trigger: project: path/to/your/repo branch: master only: - master
このあとはhugo.yaml
やconfig.yaml
、contentの中身をいじっていくといい感じのサイトができます!3