COREBlogのエントリでreStructuredTextを使う
COREBlogのエントリを記述するときにreStructuredTextを使う方法について記述します。
reStructuredTextは「構造化テキスト」の表記法のひとつです。HTMLのように構造のある文書を,可読性をそれほど犠牲にせずに記述することができます。Pythonでは標準モジュールのdocutilsの中にパーサが提供されています。
ここでは,COREBlogでreStructuredTextを使ってエントリを記述する方法について解説します。
表記法法の簡単な解説は以下のページをご覧ください。
必要なもの
- Zope 2.7以上
- COREBlog 0.73bは,Zope 2.6.x,2.5.x,2.4.xでも動きます。しかし,reStructuredTextを使うためには,Zope 2.7.x以上が必要です
- COREBlog 0.73b以上
また,reStructuredTextをマルチバイト文字列で記述する場合,Zopeの設定(zope.conf)を変更する必要があります。
Zopeの設定を変更する
以下のリンクを参考に,Zopeにエンコードの設定を施してみてください。設定変更後,Zopeを再起動する必要があります。
SKINをカスタマイズする
COREBlog 0.73b以前に作られたBlogの場合,reStructuredTextのエントリを正しく表示するためにはスキンのDTMLをカスタマイズする必要があります。
contentsタブ上にあるentry_bodyを編集してください。
- 中程,エントリのフォーマットを振り分けている部分に以下のコードを追加
<dtml-elif "format == 4 and body"> <dtml-var body fmt=restructured-text> </dtml-if>
- 中程より少し下,extendをフォーマットによって振り分けている部分に以下のコードを追加
<dtml-elif "format == 4 and extend"> <dtml-var extend fmt=restructured-text> </dtml-if>
以上で,reStructuredTextを使うための準備が整いました。なお,エントリ追加時のフォーマットとしてreStructuredTextを選んでください。
注意
docutils モジュールの日本語環境パッケージ不備により、言語系の環境変数(LANGやLC_ALLなど)を日本向け設定(ja_JP.eucJPなど)で Zope を起動していると、reStructuredText が表示できずに Zope が再起動してしまうなどの問題が発生します。
日本向け設定で Zope を起動している場合は、以下のページを参考してください