我正在编写一个将自定义指令转换为flat-table
的sphinx扩展。
在.run(self)
方法内部,我用纯.rst
构建了一个完整的flat-table
声明,我希望将该字符串提供给内部解析器,以便将其转换为Node
,我将从.run(self)
返回该字符串。
我相信nested_parse
是正确的方法,它通常用于解析指令中嵌套的内容,但我认为它可以用于任何有效的字符串数组。RST
def run(self):
decl = '''
.. flat-table:: Characteristics of the BLE badge
:header-rows: 1
* - Service
- Characteristic
- Properties
* - :rspan:`2` 0xfee7
- 0xfec7
- WRITE
* - 0xfec8
- INDICATE
* - 0xfec9
- READ
* - 0xfee0
- 0xfee1
'''
table_node = nodes.paragraph()
self.state.nested_parse(decl.split('\n'), 0, table_node)
return [table_node]
但是,这失败了:
Exception occurred:
File "C:\Users\200207121\AppData\Roaming\Python\Python38\site-packages\docutils\parsers\rst\states.py", line 287, in nested_parse
if block.parent and (len(block) - block_length) != 0:
AttributeError: 'list' object has no attribute 'parent'
要使用nested_parse
解析原始的.rst
文本,我应该做些什么?
1条答案
按热度按时间s8vozzvw1#
nested_parse
期望内容是StringList
。