Python製Webサイト生成ツール Pelicanを使ってGithubにブログを公開する

  • 19
    いいね
  • 0
    コメント

はじめに

Github-pagesとPelicanを使ってWebサイトを作ってみたので紹介します。以下のリンクから、今回作ってみたサイトのページに飛べます。

TFUG Utsunomiya Blog

Pelicanとは

Pelicanとは静的なWebページを生成するツールで、Github-pagesではjekyllというRubyで作られたツールのほうがおなじみかもしれません。言ってしまえば、PelicanはそのPython版です。

http://docs.getpelican.com/en/stable/

インストール

まずPelicanと依存パッケージをインストールします。また、gh-pagesブランチの操作を手軽にするghp-importをインストールします。

$ pip install pelican
$ pip install Markdown
$ pip install typogrify
$ pip install ghp-import

Githubにブログを公開するまで

今回は自分のGithubアカウントのページにブログを公開することを想定します。アカウント名の部分を各自の名前に変えていただければ、どなたでも使えると思います。

試した環境

  • macOS Sierra 10.12
  • Python 3.5.3
  • git 2.13.1

レポジトリの作成

Repository nameに"各ユーザ名.github.io"を入れます。私の場合、akimachなのでakimach.github.ioとなります。

01.jpg

具体的な方法を紹介する前に、レポジトリのブランチの役割と作業の流れを説明します。まずpelicanブランチで記事の作成します。次にツールを使って記事をHTMLファイルに変換しmasterブランチにHTMLファイル等を移します。最後にmasterブランチの内容をプッシュして公開が完了します。

もっと他にいい方法があるかもしれませんが、私はpelicanブランチ(作業用)でMDファイルの記事を作成し、変換したものをmasterブランチ(Web公開用)に移してWebに公開といった手順でブログを書いています。

ディレクトリの作成

ローカルでディレクトリを作成します。

$ mkdir akimach.github.io

Pelicanによるテンプレートの作成

PelicanでWebサイトのテンプレートを作ります

$ cd ./akimach.github.io
$ pelican-quickstart

pelican-quickstartを実行すると以下のような対話ダイアログが出るので入力を行ないます。

Welcome to pelican-quickstart v3.7.1.

This script will help you create a new Pelican-based website.

Please answer the following questions so this script can generate the files
needed by Pelican.


> Where do you want to create your new web site? [.]
> What will be the title of this web site? Akimach Blog
> Who will be the author of this web site? akimach
> What will be the default language of this web site? [en] ja
> Do you want to specify a URL prefix? e.g., http://example.com   (Y/n) y
> What is your URL prefix? (see above example; no trailing slash) https://akimach.github.io
> Do you want to enable article pagination? (Y/n) y
> How many articles per page do you want? [10]
> What is your time zone? [Europe/Paris] Asia/Tokyo
> Do you want to generate a Fabfile/Makefile to automate generation and publishing? (Y/n) y
> Do you want an auto-reload & simpleHTTP script to assist with theme and site development? (Y/n) y
> Do you want to upload your website using FTP? (y/N) N
> Do you want to upload your website using SSH? (y/N) N
> Do you want to upload your website using Dropbox? (y/N) N
> Do you want to upload your website using S3? (y/N) N
> Do you want to upload your website using Rackspace Cloud Files? (y/N) N
> Do you want to upload your website using GitHub Pages? (y/N) y
> Is this your personal page (username.github.io)? (y/N) y
Done. Your new project is available at /Users/akimach/Projects/akimach.github.io

ブランチの作成

$ git init
$ git checkout -b pelican ← ブランチを作成&切り替える

記事を書く

任意のエディタで記事を書きましょう。contentディレクトリ内にMarkdown形式のファイルを作ります。

$ vim content/hello.md

記事の内容:

Title: Hello, world!
Date: 2017-06-18 21:00
Category: Test

## Test

Hello, world!

記事を書いたら保存します。

Markdown形式テキストをHTMLファイル等に変換する

Markdown形式テキストをHTMLファイル等に変換して、outputディレクトリに配置します。outputディレクトリをghp-importというツールを使いmasterブランチに移します。

$ pelican content -o output -s pelicanconf.py
$ ghp-import output -b master

pelicanブランチをGithubにプッシュする

作業用のブランチをGithubにプッシュします。

$ git remote add origin git@github.com:akimach/akimach.github.io.git
$ git checkout pelican
$ git add .
$ git commit -m "Generate my site."
$ git push origin pelican

masterブランチをGithubにプッシュする

Web公開用のブランチ(デフォルトではmasterブランチ)をGithubにプッシュします。

$ git checkout master
$ git add .
$ git commit -m "Published."
$ git push origin master

ブロク作成完了

自分のページを確認してみましょう。3〜5分もすれば公開されているはずです。

https://akimach.github.io/

02.jpg

ブログを更新したい時は、pelicanブランチのcontentsディレクトリ内にMarkdownテキストを追加して変換、masterブランチをプッシュすればOKです。

おわりに

はじめはjekyllでブログを作ろうと思っていたのですが、しばらく使わないうちにgithub-pagesとjekyllの仕様が変わっていたので戸惑ってしまいました。なので今回は改めてPelicanを使ってWebサイトを構築してみました。configファイルも直観的に何をやっているのか分かるので自分には使い心地が良かったです。ぜひ使ってみてください。

参考