Drkcore

08 04 2011 Python Tweet

Sphinxの拡張(japanesesupport.py)に手を入れた

Sphinxで文書を書いていて気になるのは、謎じゃない謎の空白だ。

これはあちこちで書かれていてそのための拡張とその改良版が用意されているが、自分の環境(Python2.6.6+Sphinx1.0.7)ではうごかなかった。

なんでかなーと調べてみるとtype(node.parent)が<type 'instance'>を返してたのでisinstanceで評価するようにしてみた。

def trunc_whitespace(app, doctree, docname):
    from docutils.nodes import Text, paragraph
    if not app.config.japanesesupport_trunc_whitespace:
        return
    for node in doctree.traverse(Text):
        if isinstance(node.parent, paragraph):
            newtext = node.astext()
            for c in "\n\r\t":
                newtext = newtext.replace(c, "")
            newtext = newtext.strip()
            node.parent.replace(node, Text(newtext))

def setup(app):
    app.add_config_value('japanesesupport_trunc_whitespace', True, True)
    app.connect("doctree-resolved", trunc_whitespace)

なんでかなーってのを調べるためにSphinxのソースコードを読み始めたりdocutilsのソースを読み始めたりしたけど、昨日あたりからかなり脱線し始めたのでとっとと成果物を残しておこう。

ProductName エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス / 3780円 ( 2010-05-28 )


エキスパートPythonも読みなおそうっと

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021