DocutilsタグAPI¶
本節では,RESTタグ要素(役割とコマンド)を付加するためのAPIについて述べる.
役柄¶
指令¶
指令は派生したものから派生する. docutils.parsers.rst.Directive
それがそうです。拡張子を使用して登録しなければなりません Sphinx.add_directive()
あるいは…。 Sphinx.add_directive_to_domain()
それがそうです。
-
class
docutils.parsers.rst.
Directive
[ソース]¶ 新しい命令のタグ付け文法は、以下の5つのクラス属性によって決定される:
-
required_arguments
= 0¶ 必要な命令パラメータ数.
-
optional_arguments
= 0¶ パラメータを必要としたオプションパラメータ数.
-
final_argument_whitespace
= False¶ 最後のパラメータにスペースを含めてもいいですか?
-
option_spec
= None¶ オプション名のベリファイア関数へのマッピング。
オプション検証関数は、単一のパラメータ、すなわちオプションパラメータ(またはオプションパラメータ)を受け入れる
None
与えられていない場合)、それを検証するか、または正しい形式に変換すべきである。彼らは向上しましたValueError
あるいは…。TypeError
失敗を示す。いくつかの事前定義された有用なベリファイアがある。
docutils.parsers.rst.directives
モジュールです。
-
has_content
= False¶ 指示は内容を持っていてもいいですか?
新しい指令は実現しなければならない
run()
方法:-
run
()[ソース]¶ この方法は、コマンドパラメータ、オプション、およびコンテンツを処理し、コマンドに遭遇した位置で文書木に挿入されるDocutils/Sphinxノードリストを返さなければならない。
命令上に常に設定されているインスタンス属性は、以下のことを含む。
-
name
¶ 命令名(複数の名前の下に同一の命令クラスを登録する際に有用である).
-
arguments
¶ 命令のパラメータをリスト形式で提供する.
-
options
¶ コマンドに提供されるオプションは、オプション名を検証/変換の値にマッピングする辞書として提供される。
-
content
¶ 命令内容(与えられた場合)を
ViewList
それがそうです。
-
lineno
¶ 指示が現れた絶対行番号。これはいつも役に立つ値ではない
srcline
代わりに。
-
content_offset
¶ 命令内容の内部オフセット.呼び出している
nested_parse
(下記参照)。
-
block_text
¶ 命令全体を含む文字列.
-
ViewLists¶
Docutilsはクラス中の文書ソース行を表す. docutils.statemachine.ViewList
それがそうです。これは、まず、スライスが元のリストを作成するビューであり、ソース行番号に関する情報も含む拡張機能を有するリストである。
♪the Directive.content
属性はビューリストである.RESTに解析するコンテンツを生成する場合は,自分でViewListを作成しなければならない.コンテンツ生成にとって重要なのは,以下の点である.
構造関数は,文字列(行)とソース(文書)名のリストを受け取る.
♪the
.append()
メソッドは、1行と1つのソース名を受け取ります。
コマンド内容をRESTに解析する¶
多くの指示は解析されなければならないより多くの標識を含むだろう。そのために、お使いください Directive.run()
方法:
self.state.nested_parse
sphinx.util.nodes.nested_parse_with_titles()
--これにより、解析されたコンテンツにタイトルを表示することができます。
これら2つのAPIはいずれもコンテンツを所与のノードに解析する.これらの使い方は以下のとおりである.
node = docutils.nodes.paragraph()
# either
nested_parse_with_titles(self.state, self.result, node)
# or
self.state.nested_parse(self.result, 0, node)
注釈
sphinx.util.docutils.switch_source_input()
NESTED_PARSE中に宛先ファイルの変更が許可されます。それは内容を混ぜるのに有用だ。例えば sphinx. ext.autodoc
これを用いて文書文字列を解析する:
from sphinx.util.docutils import switch_source_input
# Switch source_input between parsing content.
# Inside this context, all parsing errors and warnings are reported as
# happened in new source_input (in this case, ``self.result``).
with switch_source_input(self.state, self.result):
node = docutils.nodes.paragraph()
self.state.nested_parse(self.result, 0, node)
バージョン 1.7 で非推奨: ライオンの顔像まで-1.6 sphinx.ext.autodoc.AutodocReporter
この目的に用いる。現在これは switch_source_input()
それがそうです。
パッケージノードが必要でない場合は、任意の具体的なノードタイプを使用して返すことができます。 node.children
指示によると。
参考
Creating directives Docutils文書の使い方