Compnet

仕事とか遊びとか、日々折々

2017-10-09(月)

Pelican の ReST 用に HTML タグを手軽に使うためのロール拡張を作った

Posted by Nakane, R. in technical   

本ブログは以前の記事で書いた通り Pelican という静的サイトジェネレーターを使って構築しています。 その中で Pelican を採用した理由として「reStructuredText で書ける」ということを挙げました。 実際に Pelican に移行してから今日までのほぼ一年に 21 本の記事を書き、それらはすべて reStructuredText で記述しています (平均して 2 週間に 1 本のペース、少ないですね)。 加えて、それ以前に Wordpress に書いた内の 11 本の記事を reStructuredText で書き直して、新しいブログの側に転載しました (まだ 200 本以上残っていますが)。

テキスト エディターだけ記事を書けるのが reStructuredText で書くことの手軽さです。 表題や箇条書きなども特別な表記法ではなく、誰もが思いつくような書き方なので、読み返したときに読みやすいという点でも手軽といえます。 もちろん reStructuredText といえども万能ではなく、使いにくい点もいくつかあります。 Pelican を使ってブログ記事を書く前提ですが、記事を reStructuredText から HTML に変換したときに、表題に ID 属性が付けられないというのも、そのひとつです。

reStructuredText で書かれた記事を HTML に変換しすると、表題は h1h2 といったタグを使った表記に変換され、その表題から始まる節が div タグで括られます。 そして表題を基にした ID が生成されて、div タグに ID 属性が付けられるます。 このため、一応は表題 (正しくは表題から始まる節) を参照するリンクが書けられそうに見えます。 しかし、表題に英数字以外が含まれていると、先頭の英数字部分だけが ID になったり、id1、id2 のような機械的に割り振られた ID になったりするため、どんな ID 属性が付くかは変換してみないと分からず、そうそう手軽だとはいえません。

また、打ち消し線を記述する方法がないというのもあります。 raw というロールを使って、reStructuredText の記述中に HTML による記述を埋め込むコトができなくはありませんが、見栄えの点からいってあまりいいとは思えません。

前者を解決するには reStructuredText を HTML などに変換する仕組み、つまり Docutils のソースコードに手を加えなくてはならないみたいなので、そうそう手を出せません。 しかし reStructuredTextdel タグ相当の記述方法を追加するだけなら、何とかなりそうです。 そこで、Pelican の拡張機能 (プラグイン) として、del タグ相当の記述方法を reStructuredText に追加しました。

Read more...


2016-11-27(日)

Pelican でアップロードする

Posted by Nakane, R. in technical   

先の記事では、Pelicanpelican-quickstart コマンドで作られる四つの設定ファイルのうちの pelicanconf.py と publishconf.py について書きました。 ここでは、残るふたつの fabfile.py と Makefile について書きます。

fabfile.py は Python 製のデプロイ ツールである Fabric の指示ファイル、Maikefile はビルド ツールである GNU make の指示ファイルです。 fabfile.py と Maikefile には pelican-quickstart コマンドの質問Do you want to generate a Fabfile/Makefile to automate generation and publishing? (Y/n):Y で答えた後の、> What is the hostname of your FTP server?:> Where is your Dropbox directory?: などの回答を基にした設定が保存されています。

pelican-quickstart コマンドで作成された fabfile.py は以下の通りです。

Read more...


2016-11-22(火)

Pelican の設定を変えてみる

Posted by Nakane, R. in technical   

ここまでは、Pelican を実行する作業場所作成するために pelican-quickstart コマンドを実行したときの設定のままで、Web サイトを作りました。 それでも問題無いのですが、テーマを変えるなどの変更をしたいこともありまし、便利なプラグインを使いたくなることもあります。 また、利用するテーマによっては、そのテーマ独自の設定を使うこともあります。 それ以外にも細かな箇所を自分好みにするために、設定を変えることもあるでしょう。

Read more...


2016-10-28(金)

実際に記事を書く

Posted by Nakane, R. in technical   

先の記事で Web サイトを生成する作業ディレクトリ作成したので、いよいよ記事を書いていきます。 作業ディレクトリを ~/website にしたので、記事などのコンテンツは ~/website/content ディレクトリに保存します。 記事そのものは reStructuredText の書式に基づいて書き、保存するときの拡張子を .rst にします。

Pelican を動かす環境の Python に Markdown パッケージを追加すれば、Markdown の書式で記事をかくこともできます。 Markdown の書式で書いたときは、拡張子を .md にします。 なお、Markdown の書式には幾多の方言があるようですが、Python に Markdown パッケージこの Web サイトの書式に対応するようです。

なお、reStructuredText 形式の細かい書式については、公式 Web サイトに譲ります。

Read more...


2016-10-08(土)

Web サイトのための作業ディレクトリを作る

Posted by Nakane, R. in technical   

本サイトの構築システム Pelican に切り替えるということで、先の記事 でそれをインストールするところまでを書きました。

Pelican のような静的サイト ジェネレーターは、コンテンツの基になる情報を普通にテキスト ファイルとして書き、それにテンプレートを適用して、Web サイトとして公開できるように変換する仕組みです。 この仕組みは Web サーバーと関係ないところで働きます。 つまり、公開する基になる Web サイトを生成するために、Pelican を実行する作業場所 (=ディレクトリ) が必要ということです。 Pelican では pelican-quickstart を実行して、この作業場所になるディレクトリを作成します。

Read more...