27
Tinkerer @r_rudi (しろう)

Tinkerer for pyfes 201303

  • Upload
    rrudi

  • View
    1.110

  • Download
    6

Embed Size (px)

DESCRIPTION

Tinkerer is a Sphinx based blog generator. This presentation introduces What is the tinkerer, How to use and Where to deploy your blog.

Citation preview

Page 1: Tinkerer for pyfes 201303

Tinkerer@r_rudi (しろう)

Page 2: Tinkerer for pyfes 201303

Sphinx-users.jp の方から来ました

Page 3: Tinkerer for pyfes 201303

おまえだれよ?

しろう ( @r_rudi )

お仕事: - PostgreSQL

趣味 - Python - Sphinx - Mercurial(TortoiseHg)

Page 4: Tinkerer for pyfes 201303

今日のお題

Tinkerer

Page 5: Tinkerer for pyfes 201303

Tinkererって?

Sphinx をベースにしたブログ 作成ツール

Page 6: Tinkerer for pyfes 201303

Sphinxとは

- ドキュメント作成ツール

- pythonの公式ドキュメントに使われてる

- reStructuredTextという形式で書ける

markdownとかwiki記法とかと同じ感じ

- コメントからドキュメントを自動生成

- コードハイライトが綺麗

pygmentsというのを使ってます

- 拡張が豊富

100以上の拡張が存在

- htmlの他pdfやepubにも変換してくれる

Page 7: Tinkerer for pyfes 201303

Tinkererって?

Sphinxをベースにしたブログ作成ツール

- 日付ごとに整理

- カテゴリーやタグ

- 複数の著者も可能

- テーマを適用

- コマンドラインで静的なHTMLを生成する

Page 8: Tinkerer for pyfes 201303
Page 9: Tinkerer for pyfes 201303

実際に見てみましょう

Tinker のページ

僭越ながら わたくしのblog

喋ったこと: - テーマを切り替えられる - コメントは disqusで可能

Page 10: Tinkerer for pyfes 201303

実際の使い方

インストール

% pip install tinkerer

初期設定

% mkdir どこか && cd どこか

% tinker -s → 必要なファイル一式が生成される

Page 11: Tinkerer for pyfes 201303

記事の作成

ドラフト作成

% tinker -d "ブログタイトル" → drafts/blogtitle.rstというファイルが出来る

公開

% tinker -p "ドラフトファイル名" → 2013/03/16/blogtitle.rst に移動

ビルド

% tinker -b → blog/html 以下にhtmlが生成される

Page 12: Tinkerer for pyfes 201303

Tinkererの欠点

- コマンドラインでしか叩けない

ブラウザから、とかできない。

- テキストエディタが必要

ブラウザから、とかできない

- 記事が多くなるとbuildに時間がかかる

カテゴリーやRSSがあるので、全部最初から生成しなおしている。

Page 13: Tinkerer for pyfes 201303

以上終わり

Page 14: Tinkerer for pyfes 201303

というのでは

なんなんで

Page 15: Tinkerer for pyfes 201303

どこで提供するか

ということについて

Page 16: Tinkerer for pyfes 201303

候補

1. レンタルサーバーやVPSで公開

2. github pagesやbitbucket で

3. S3 + Web hosting

4. Dropbox + dropbprox

Page 17: Tinkerer for pyfes 201303

1. レンタルサーバーやVPSで公開

コピれ!

以上

Page 18: Tinkerer for pyfes 201303

Tinkererのディレクトリ構造

- 2013/- blog/ - html- drafts/- master.rst- conf.py

- index.html

← 公開用元ファイル

← buildされたhtmlファイル

← ドラフト

← 公開用元ファイルのリスト

← 設定ファイル

← blog/html/index.html へのリダイレクト

Page 19: Tinkerer for pyfes 201303

2. github pagesやbitbucketで公開

http://rrudi.bitbucket.org などで公開できます。

独自ドメインも可能1. rrudiなどのリポジトリを作成しておく

2. tinker -b3. hg commit とか git commit -a でhtmlを更新

4. hg push / git push

bitbucketではprivateリポジトリでも公開OKdraftディレクトリはcommitしないように注意

Page 20: Tinkerer for pyfes 201303

3. s3 + web hosting (1/2)

Amazon S3ではファイルをWeb hostingとして公開出来ます

やり方1. bucket作成

2. web hostingの設定

3. (Route 53などで)DNSの設定

Page 21: Tinkerer for pyfes 201303

3. s3 + web hosting (2/2) deploy

boto_rsyncというツールを使います。

% pip install boto_rsyncとしてインストールしておいて

% tinker -b でビルド

% boto-rsync -r --delete blog/html/ s3://rudi-testblog/でOK。(事前に環境変数AWS_ACCESS_KEY_ID等を設定する必要があります)

Page 22: Tinkerer for pyfes 201303

3. s3 + web hosting (3/3) build

drone.io (http://drone.io) travis ci のような自動テスト・ツール

- bitbucket対応

- 環境変数が設定できる

AWS_SECRET_ACCESS_KEY を設定

つまり

bitbucketにpushするだけでdrone.ioが-自動的にpull-自動的に build-自動的に s3にdeploy

Page 23: Tinkerer for pyfes 201303

4. Dropbox + dropbprox

Dropboxはいくらアクセスされても金額かからない

でも、独自ドメイン使えない

dropbprox Google App Engineで動くproxy

1. tinker -b でビルド

2. Dropboxのディレクトリに cp

Page 24: Tinkerer for pyfes 201303

おまけ

Page 25: Tinkerer for pyfes 201303

どうせ書いた記事、

出版したいよね?

Page 26: Tinkerer for pyfes 201303

Amazonで出版とか

(sphinxなので) ePub作成できます

1. _templatesにいくつか空ファイルを作成

archive.html、rss.html、aggregated.htmlなど

2. conf.pyでepub_basename=" " を設定

(これがファイル名になります)3. % sphinx-build -b epub . build4. build/ の下に.epubファイルが出来上がり

Page 27: Tinkerer for pyfes 201303

以上!