GitHub Pages+PelicanでつくるBlog:Blogの運用管理方法の一例

GitHub PagesとPelicanでの運用向けのディレクトリ構造とリポジトリ・ブランチ管理方法

みずのり 2025-12-05(金) 1 mins

シリーズ全体のリンクはこちら

実際はテーマ設定なども行ったうえでの手順となりますが、正式に日々の記事作成の運用をする場合には構成を調整した方が扱いやすいでしょう。本Blogで実施している運用手続きを(主に自分のために)メモしておきます。




GitHub Pages(無料版)の制約

GitHubのFreeプランでは、GitHub Pagesを作るためにはpublicリポジトリにする必要があります。
 とはいえ、Pelicanのプロジェクトの余分なところまで公開する必要が無いとは思います。ここでghp-importを活用して、2つのリポジトリでBlogの運用環境を構築してます。



運用向けのリポジトリ・ブランチ管理方法

以下、2つのリポジトリを利用してます。

  • mizunori.github.io :Pages公開用、publicでBlogの中身(output部分)しか置かない
  • blog_zatsu:Pelicanプロジェクトごと管理、privateで扱う

blog_zatsuリポジトリでローカルでのBlogの確認まで実施、ghp-importを利用してoutputディレクトリの中身だけをPages公開用のmizunori.github.ioリポジトリへpushします。


運用時のPagesデプロイ



Pagesのデプロイ時のコマンドメモ

以上で、blog_zatsuリポジトリ内で記事作成が実施できます。Blog作成時にはmake devserverで確認しながら、準備完了後は以下のコマンドで公開します。

> make publish
> ghp-import output
> git push -f https://github.com/XXXX/XXXX.github.io.git gh-pages:deploy

ghp-importを使って公開用のリポジトリを指定してpushしてます。最後のコマンドのXXXXの部分、deployと書いているブランチ名は各自で変えてください。

公開時にはいちおうmake publishを使用してます。ちなみにmake htmlは「pelicanconf.py」を使っていて、make publishは「publishconf.py」を使ってます。
自分の環境において「publishconf.py」は、「pelicanconf.py」の処理に加えてRSSとかフィードに関わるデータを作っているみたいでした。
 (RSS興味ないので、make htmlで公開しちゃっても問題ないと思ってます)



運用向けのディレクトリ構造

オマケみたいなもんです。
 contentディレクトリに、必要なデータを置いてblogディレクトリでカテゴリ名等で区切って記事管理しましょう、くらいです。pagesディレクトリは、aboutみたいな固定の内容を置く感じですね。

この辺はテーマによって多少変わりますので、テーマのサンプルを見ながらcontentディレクトリを調整するのがよいでしょう。

repository_directory/
|- content/
  |- blog/
    |- category_name1/
    |- category_name2/
    |- ...
  |- pages/
    |- about/
    |- ...
  |- .htaccess
  |- favicon.ico
  |- robots.txt
|- output/
  |- ...
|- theme_dir/
  |- ...
|- Makefile
| pelicanconf.py
| publishconf.py




Read more:

Related posts: