Tinkerer for pyfes 201303
-
Upload
rrudi -
Category
Technology
-
view
1.112 -
download
6
description
Transcript of Tinkerer for pyfes 201303
Tinkerer@r_rudi (しろう)
Sphinx-users.jp の方から来ました
おまえだれよ?
しろう ( @r_rudi )
お仕事: - PostgreSQL
趣味 - Python - Sphinx - Mercurial(TortoiseHg)
今日のお題
Tinkerer
Tinkererって?
Sphinx をベースにしたブログ 作成ツール
Sphinxとは
- ドキュメント作成ツール
- pythonの公式ドキュメントに使われてる
- reStructuredTextという形式で書ける
markdownとかwiki記法とかと同じ感じ
- コメントからドキュメントを自動生成
- コードハイライトが綺麗
pygmentsというのを使ってます
- 拡張が豊富
100以上の拡張が存在
- htmlの他pdfやepubにも変換してくれる
Tinkererって?
Sphinxをベースにしたブログ作成ツール
- 日付ごとに整理
- カテゴリーやタグ
- 複数の著者も可能
- テーマを適用
- コマンドラインで静的なHTMLを生成する
実際に見てみましょう
Tinker のページ
僭越ながら わたくしのblog
喋ったこと: - テーマを切り替えられる - コメントは disqusで可能
実際の使い方
インストール
% pip install tinkerer
初期設定
% mkdir どこか && cd どこか
% tinker -s → 必要なファイル一式が生成される
記事の作成
ドラフト作成
% tinker -d "ブログタイトル" → drafts/blogtitle.rstというファイルが出来る
公開
% tinker -p "ドラフトファイル名" → 2013/03/16/blogtitle.rst に移動
ビルド
% tinker -b → blog/html 以下にhtmlが生成される
Tinkererの欠点
- コマンドラインでしか叩けない
ブラウザから、とかできない。
- テキストエディタが必要
ブラウザから、とかできない
- 記事が多くなるとbuildに時間がかかる
カテゴリーやRSSがあるので、全部最初から生成しなおしている。
以上終わり
というのでは
なんなんで
どこで提供するか
ということについて
候補
1. レンタルサーバーやVPSで公開
2. github pagesやbitbucket で
3. S3 + Web hosting
4. Dropbox + dropbprox
1. レンタルサーバーやVPSで公開
コピれ!
以上
Tinkererのディレクトリ構造
- 2013/- blog/ - html- drafts/- master.rst- conf.py
- index.html
← 公開用元ファイル
← buildされたhtmlファイル
← ドラフト
← 公開用元ファイルのリスト
← 設定ファイル
← blog/html/index.html へのリダイレクト
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しないように注意
3. s3 + web hosting (1/2)
Amazon S3ではファイルをWeb hostingとして公開出来ます
やり方1. bucket作成
2. web hostingの設定
3. (Route 53などで)DNSの設定
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等を設定する必要があります)
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
4. Dropbox + dropbprox
Dropboxはいくらアクセスされても金額かからない
でも、独自ドメイン使えない
dropbprox Google App Engineで動くproxy
1. tinker -b でビルド
2. Dropboxのディレクトリに cp
おまけ
どうせ書いた記事、
出版したいよね?
Amazonで出版とか
(sphinxなので) ePub作成できます
1. _templatesにいくつか空ファイルを作成
archive.html、rss.html、aggregated.htmlなど
2. conf.pyでepub_basename=" " を設定
(これがファイル名になります)3. % sphinx-build -b epub . build4. build/ の下に.epubファイルが出来上がり
以上!