PelicanとGitHub-pagesでブログ開設

Posted by one_meets_seven on 土 11 2月 2017 Updated on 土 11 2月 2017

PelicanとGitHub-pagesでブログ開設

GitHub-pagesを使ってみたかった
HTML5, CSS, JavaScriptが動くということで静的サイトジェネレータを使うことにした

どうせならPython製のPelican Markdownでモダンな静的サイトでも作ることにした

GitHub Pages

まずは自分のGitHubアカウントで
Repository nameusername.github.ioと入力して新規作成
つくったらとりあえず今は放っておく

pythonで環境構築

怖がる必要はない. python3系を構築しましょう.

  • pyenvでバージョン管理
  • virtualenvでプロジェクト管理

の手段をとる.

pythonにおけるプロジェクト管理

プロジェクトディレクトリを作ってその中にvirtualenvの環境づくり.
virtualenvはpipでインストールすればいいらしい.
python3系にはvenvがあるらしいが結局みんなvirtualenvにお世話になってるぽい.

$ pip install virtualenv
$ cd ~
$ mkdir Blog && cd Blog
$ virtualenv venv
$ source venv/bin/activate
(venv)$

venvという名前で環境を管理する.
activateを実行でvenv環境に入る.
抜ける時は

(venv)$ deactivate
$

作った環境でモジュールたちをpipでインストールしまくっても
グローバル環境が汚れずに済む.

ここから先は(venv)と明記しない.

pelican

以下をpipで一気にインストール.
requirements.txt

% requirements.txt
pelican
Markdown
ghp-import

ghp-importはGitHub-Pagesリポジトリへの遠隔操作をいい感じに楽にしてくれる.

$ pip install -r requirements.txt
$ pip list

pelican-quickstartコマンドでpelicanの雛形をつくる.
いろいろ対話形式で設定をすることになる.

> Where do you want to create your new web site? [.] .
> What will be the title of this web site? your blog
e Who will be the author of this web site? yourname
> What will be the default language of this web site? [en] ja
> TimeZone的なこと [Europe/Paris] Asia/Tokyo
> 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://yourname.github.io
> Do you want to enable article pagination? (Y/n) Y
> How many articles per page do you want? [10] 10
> 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

Markdown

早速記事を書いてみる.
contentディレクトリ下にmdファイルを作る

% 0210first_post.md
Title: ブログタイトル
Date: 2017-02-10 23:00
Category:   Memo
Tags: pelican, python
Slug: 0210first_post
Author: yourname
Summary: ブログの要約


# ブログのタイトル 

- List
- List
- List

```python
print('Hello World!')
```

make htmlでHTMLにコンパイルしmake serveでローカル環境で確認.
HTMLはoutputディレクトリの中に作成される.

$ make html
$ make serve

http://localhost:8000にアクセス

GitHub PagesにPush

$ git init

.gitignoreでpushを除外するファイルを記述する.

## Pelican
output/*
*.pid

## Python
*.py[cod]

## Mac OS X
.DS_Store
.*~
*~

push

$ ghp-import output
$ git push https://github.com/yourname/yourname.github.io.git gh-pages:master

https://yourname.github.ioに反映されるはず.
(少しラグあり)

おまけメモ

テーマ変更

テーマを変更してみる.
Pelican Themes

$ mkdir themes && cd themes
$ git clone https://github.com/gilsondev/pelican-clean-blog
$ cd ..

テーマを導入

$ pelican-themes -i themes/pelican-clean-blog

入ったか確認

$ pelican-themes -l

設定ファイルpelicanconf.pyに以下を追加.

THEME = 'pelican-clean-blog'

プラグインを導入

$ mkdir plugins && cd plugins
$ git clone https://github.com/getpelican/pelican-plugins.git
$ cd ..

MathJax

LaTeXみたいな数式を書きたい
依存モジュールをインストール

$ pip install typogrify

pelicanconf.pyを書き換える.

PLUGINS = ['render_math']

これで使えるようになる.

$$
{\mathcal L}(x) = -{\rm KL}[q(z|x)||p(z)] + {\mathbb E}_{q(z|x)}[p(x|z)]
$$
$$ {\mathcal L}(x) = -{\rm KL}[q(z|x)||p(z)] + {\mathbb E}_{q(z|x)}[p(x|z)] $$

Jupyter Notebook

なんとJupyterのセルも貼り付けるプラグインがある
依存モジュールをインストール

$ pip install ipython jupyter

つぎにpelicanconf.pyを書き加える

PLUGINS = ['liquid_tags.notebook', 'render_math']
NOTEBOOK_DIR = 'notebooks'
{% notebook yourfilename.ipynb cells[0:12] %}

指定したcellの分だけ表示できる.


Comments !