トップ Team(・∀・)2ch 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Part18

 part18

docutilsをライブラリとして使う方法を探しています。(16-19)

16 名前:デフォルトの名無しさん 投稿日:2007/04/10(火) 17:35:11 
docutilsをライブラリとして使う方法を探しています。 
s = """ 
* foo 
* bar 
* baz 
""" 
html = rst2html(s) 
print html, 
としたら 
<ul> 
<li>foo</li> 
<li>bar</li> 
<li>baz</li> 
</ul> 
に変換されるようにしたいんです。 
http://docutils.sourceforge.net/ 
をみてもいまいち分からないのですが、アドバイスお願いします。 
17 名前:デフォルトの名無しさん 投稿日:2007/04/10(火) 19:17:57 
import docutils.core 
src = """\ 
* foo  
* bar  
* baz  
""" 
settings = { 
    "stylesheet": "", 
    "stylesheet_path": None, 
} 
print docutils.core.publish_string(src, writer_name='html', 
                                   settings_overrides=settings) 
18 名前:デフォルトの名無しさん 投稿日:2007/04/10(火) 19:27:10 
>>17 
ありがとうございます 
19 名前:デフォルトの名無しさん 投稿日:2007/04/10(火) 19:37:16 
1. docutilsをライブラリとして使う、ねえ。まず rst2html.py が何してるか見てみますか。 
2. docutils.core.publish_cmdline() とゆー関数を呼んでるなあ。どういう関数かな。(site-packages/docutils/core.py を見る) 
3. publish_なんちゃら という関数がいっぱいあるなあ。お、publish_string とゆー関数もあるなあ。 
4. 使い方がよく分からないから docutils.core.publish_string でググってみよう。(用例が見つかる) 
5. publish_string にはたくさん引数があるなあ。writer_name は rst2html.py で指定されてるのと同じ値を渡してみよう。 
6. スタイルシートファイルが無いって怒られるなあ。デフォルトの値だとマズいんだろうなあ。 
7. settings_overrides とゆー引数の値にテキトーな辞書を指定すればデフォルトを上書き指定できるんだろうなあ。 
8. rst2html.py のコマンドラインオプションに --stylesheet-path とゆーのがあるから "stylesheet_path" を辞書のキーにしてみよう。(ビンゴ!) 
9. とりあえずスタイルシートファイルは要らないなあ。値は None にしてみよう。 
というような調子で試行錯誤した結果が>>17のコード。 

要約すると「ソース嫁」「ググれ」。