Personal tools

Plone 2.1のページ(ドキュメント)で扱えるフォーマットを追加する

メカニズムを知る

PloneにはPortalTransformsというツールがあります。PortalTransformsを使うと,reStructuredTextをHTMLやPlain Textにしたり,PDFをHTML化したりできます。MIME Type間のデータ変換は,このツールを使って行うのが礼儀です。

Plone 2.1からは,標準のコンテンツタイプがATContentTypes(以下ATCT)というものに置き換わっています。ATCTでは,ページ(ドキュメント)などの本文に記述できる「フォーマット」は,コンフィギュレーションファイルで設定できるようになっています。PortalTransformsを使ってtext/htmlに変換できるフォーマットを指定します。

ATContentTypes/etc/atcontenttypes.conf.inにサンプルがありますので,適宜編集した上でZopeインスタンスディレクトリのetc以下に設置するとよいでしょう。フォーマットの種類だけでなく,デフォルトのフォーマットもここでカスタマイズできるようですね。

Transformerを作る

PortalTransforms/transforms/以下に,変換を行うためのクラス定義があります。python.pyなどを参考に,適宜独自のTransformerを作りましょう。

MIME Type/Transformerを登録する

ZMIを使います。まず,作成したTransformerのMIME TypeをMIMETypesRegistryというツールに登録します。MIMETypesRegistryは,mimetypes_registoryというIDでPloneインスタンス直下にあります。

次に,PortalTransformsにTransformerを追加します。同じくZMIで,Ploneインスタンス直下にあるportal_transformsのコンテンツ(contents)タブで,Transformを追加(Add)します。このとき,作成したTransformerのIDやパスを入力します。

ここまで終わったら,atcontenttypes.conf.inから作った設定ファイルのATDocumentのセクションに,Transformerを追加します。あとはZopeを再起動すればOK。ページ(ドキュメント)の編集タブで,フォーマットのプルダウンメニューに,追加したフォーマットが見えていれば追加成功です。

Wikiマークアップ用のフォーマットを追加したかったんでちょっと調べてみました。30分でできるシリーズ。COREBlog2もconfigファイルでフォーマットをカスタマイズできるようにしたいなあ。でもZCML書くの面倒だなあ。

Category(s)
Plone
The URL to Trackback this entry is:
http://coreblog.org/ats/add-format-to-document/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
コメントスパム避けのための認証文字列です

Captcha Image

Pythonな求人
r = urlopen("http://www.webcore.co.jp/recruit")
About this blog
■Author
atsこと柴田淳です。Atsushiはガイジンにうまく発音して頂けないので,これからはJunというペンネームで行こうと思っていましたがあんまり使ってません。
Webcore株式会社 代表取締役
■TRIVIAL TECHNOLOGIES 2.0
トリビアル・テクノロジー 2.0,「トリテク 2.0」と呼んでください。
Blog(ブログ)サイトです。Plone上で動く,オープンソースのBlog Product - COREBlog2を使っています。
 
最近書いた本,Mook
みんなのPython Webアプリ編
Pythonの基礎から,Webアプリやフレームワークの仕組みまで,つまることなく一気に学べる書籍です。「みんなのPython」と一緒に読んでください:-)。
みんなのPython
Pythonの入門書です。基本的なことから分かりやすく解説するよう勤めました。Pythonをはじめたいと思っている人,JavaやC++,PerlやRubyを学ぼうと思って躓いてしまった人はぜひ読んで下さい。
 

Powered by Plone, the Open Source Content Management System