More Related Content Similar to Pelicanによる www.python.jpの構築 (20) More from Atsuo Ishimoto (14) Pelicanによる www.python.jpの構築8. Pelican
Static Site Generator, Powered by Python
8
コンテンツ
(reStructuredText,
Markdown.,
HTML…)
テンプレート
(jinj2)
HTML
RSS
CSS
etc.,
http://docs.getpelican.com
設定ファイル
13. Pelicanサイトの作成
13
$ pelican-quickstart
Welcome to pelican-quickstart v3.3.0.
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? Test Site
> Who will be the author of this web site? Atsuo Ishimoto
…
pelican-quickstart コマンドでひな形を作成 14. pelican-quickstart で生成されるファイル
14
プロジェクトディレクトリ
├── content 作成した記事を格納
│ └── (pages)
├── output 記事を変換したHTMLなど
│ └── (html, css, etc.,)
├── develop_server.sh テスト用HTTPサーバ
├── fabfile.py サイト構築用fabfile
├── Makefile ビルド用 Makefile
├── pelicanconf.py 設定ファイル
└── publishconf.py 本番環境用設定ファイル 15. contentディレクトリ
15
content
│
├─ アーティクルA.rst 作成した記事
├─ カテゴリ1 カテゴリ1の記事
│ ├── アーティクルA.rst
│ └── アーティクルB.rst
├─ カテゴリ2 格納カテゴリ2の記事
│ └── アーティクルC.rst
├─ pages ページを格納
│ ├── ページ1.rst
│ └── ページ2.rst
├─ images 画像ファイル等
│ └── picture1.png 18. 記事のメタデータ
18
記事タイトル
##############
:date: 2014-09-14 12:00
:tags: Python, プレゼン
:category: python
:slug: file_name
rstのサンプル
本文中や、ファイル名にメタデータを記述
•タイトル
•日付
•タグ
•著者
•urlのパス
•etc 19. メタデータでURL/ファイル名を指定
19
記事タイトル ############## :save_as: path/to/save/index.html :url: path/to/save/
output/path/to/save/index.html を作成
ページへのリンクは、 path/to/save/ となる 20. カテゴリ
20
pelicanconf.py で設定 DEFAULT_CATEGORY = "blog"
メタデータで指定
記事タイトル
##############
:category: python
ディレクトリで指定
Contentディレクトリの、サブディレ クトリ名をカテゴリとする ex) ./content/python/article.rst
デフォルトカテゴリ 21. ページ間リンク
21
ページ間リンクの記述方法 ######################### rstでの `相対リンク <{filename}page1.rst>`_ と `絶対リンク <{filename}/page1.rst>`_ 22. 構文ハイライト
22
.. code-block:: python3
def say():
print('hello')
Pygmentsで構文ハイライト 23. ページ
23
作成方法
content/pages ディレクトリに作成
ブログエントリ以外の、Aboutや著作権表示など
表示方法
•DEFAULT_CATEGORY = True ならリンクを表示
•リンクしないページは、メタデータで :status: hidden 24. スタティックファイル
24
content
│
├─ images
│ └── picture1.png
./content/imagesに配置
./output/images/ にコピーされる
./content/images/picture1.png → ./ountput/images/picture1.png 25. サイトのビルド
25
コマンド
機能
make html
プロジェクトをローカル環境用にビルドします
(pelicanconf.pyを実行)
make publish
プロジェクトをプロダクション環境用にビルド します (pelicanconf.py + publishconf.py を実行)
make regenerate
ファイルの変更を検出すると自動的にビルド します
make devserver
develop_server.sh を実行し、プロジェクト の自動ビルド・テスト用HTTPサーバを起動 します 27. テーマ
27
pelican-themesコマンド
指定方法
pelicanconf.py で、ディレクトリ名を指定
THEME = "my_theme"
テーマ設定コマンド
$ pelican-themes --list notmyidea two-column@ simple 28. 記事インデックスページ
28
インデックスページ /index.html
すべてのアーティクルのインデックス
カテゴリ別インデックスページ
/category/カテゴリ名/index.html
カテゴリごとに作成される、アーティクルの インデックス
その他、タグ別・ 著者別・年別など 29. アーティクルの保存パスとURL
29
ARTICLE_SAVE_AS
【例】 ARTICLE_SAVE_AS = 'articles/{slug}/index.html'
アーティクルの保存ディレクトリを指定
ARTICLE_URL
【例】
ARTICLE_URL = 'articles/{slug}/'
アーティクルのURLを指定 30. SLUGIFY_SOURCE = 'basename'
30
•デフォルトは、SLUGIFY_SOURCE = 'title'
•アーティクルのタイトルから、slugを生成
•日本語のタイトルだと、カオスなURLに
:title: Zipファイル一個で実行可能なPythonアプリケー ションを作ってみる
ziphuairu-ge-deshi-xing-ke-neng- napythonapurikeshiyonwozuo-tsutemiru.html
•SLUGIFY_SOURCE = 'basename' なら、ファ イル名からslugを作成できる 32. フォーム
Python関連ニュースなどの登録
-------------------------
:url: news/submit.html
:save_as: news/submit.html
:category: news
ニュース登録フォーム
++++++++++++++++++
.. raw:: html
<form method="POST" action="/cgi-bin/submit_news.py">
<p>
<label>タイトル <i>(必須)</i></label>
<input name="title" id="input_title" size=80>
<span class='form_sample'> 例: Python関連書籍 出版のお知らせ
32
submit_news.rst