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-12-31(土)

コンタクト フォームを付けました

Posted by Nakane, R. in misc   

このサイトを静的サイト ジェネレーターで構成するようにして、何気に困ったのがコンタクト フォームです。 今まで使っていた WordPress であれば代表的なプラグイン セットである JetPack に含まれている「コンタクト フォーム」を使って簡単に設置できます。 これ以外にも「WordPress コンタクトフォーム」で検索すればいくつもの素晴らしいプラグインが見つかるでしょう。

WordPress は PHP 言語で書かれているプログラムのため、コンタクト フォームに入力された問い合わせなどの情報を、誰か (Web サイトの管理者など) に送る仕組みを作ることができます。 しかし、静的サイト ジェネレーターを使った Web サイトは、HTML を生成するときにはプログラムを実行しますが、公開時は単純な HTML ファイル一式だけになるため、問い合わせなどの情報を誰かに送る仕組みが必要なコンタクト フォームは簡単には設置できません。

Read more...


2016-12-02(金)

root でログインできないときにも root 権限で rsync

Posted by Nakane, R. in technical   

先の記事では pelican-quickstart コマンドで作られた Makefile ファイルを修正して、Pelican で生成した Web サイトを make rsync_upload コマンドで Web サーバーにアップロードできるようにしました。 しかしながら、筆者の環境では Web サーバーの HTML のルート ディレクトリへの書き込みが root 以外のユーザーではできないようにしてある上に、root でのログインもできないようにしてあります。 このため、先の記事の Mailefile ファイルを使う make rsync_upload コマンドでは、Web サーバーへのアップロードがエラーになってしまいます。

そこで、筆者の環境に合うように Makefile ファイルを更に修正します。 これに加えて、修正した Web サーバーの設定も調整して、make rsync_upload コマンドで Web サーバーにアップロードできるようします。

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...