本文整理汇总了Python中docutils.nodes.field方法的典型用法代码示例。如果您正苦于以下问题:Python nodes.field方法的具体用法?Python nodes.field怎么用?Python nodes.field使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类docutils.nodes
的用法示例。
在下文中一共展示了nodes.field方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: make_field_list
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import field [as 别名]
def make_field_list(self, data):
field_list = nodes.field_list()
for name, text, citations in data:
field = nodes.field()
field_name = nodes.field_name(text=name)
field_body = nodes.field_body()
para = nodes.paragraph(text=text)
if citations is not None and len(citations) > 0:
para += nodes.Text(" (")
for i, citation in enumerate(citations):
text = f"{citation.author}, {citation.year}"
para += nodes.reference(
internal=False, refuri=citation.doi, text=text)
if i != len(citations)-1:
para += nodes.Text("; ")
para += nodes.Text(")")
field_body += para
field += field_name
field += field_body
field_list += field
return field_list
示例2: field_marker
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import field [as 别名]
def field_marker(self, match, context, next_state):
"""Field list item."""
field_list = nodes.field_list()
self.parent += field_list
field, blank_finish = self.field(match)
field_list += field
offset = self.state_machine.line_offset + 1 # next line
newline_offset, blank_finish = self.nested_list_parse(
self.state_machine.input_lines[offset:],
input_offset=self.state_machine.abs_line_offset() + 1,
node=field_list, initial_state='FieldList',
blank_finish=blank_finish)
self.goto_line(newline_offset)
if not blank_finish:
self.parent += self.unindent_warning('Field list')
return [], next_state, []
示例3: field
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import field [as 别名]
def field(self, match):
name = self.parse_field_marker(match)
src, srcline = self.state_machine.get_source_and_line()
lineno = self.state_machine.abs_line_number()
indented, indent, line_offset, blank_finish = \
self.state_machine.get_first_known_indented(match.end())
field_node = nodes.field()
field_node.source = src
field_node.line = srcline
name_nodes, name_messages = self.inline_text(name, lineno)
field_node += nodes.field_name(name, '', *name_nodes)
field_body = nodes.field_body('\n'.join(indented), *name_messages)
field_node += field_body
if indented:
self.parse_field_body(indented, line_offset, field_body)
return field_node, blank_finish
示例4: rfc2822
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import field [as 别名]
def rfc2822(self, match, context, next_state):
"""RFC2822-style field list item."""
fieldlist = nodes.field_list(classes=['rfc2822'])
self.parent += fieldlist
field, blank_finish = self.rfc2822_field(match)
fieldlist += field
offset = self.state_machine.line_offset + 1 # next line
newline_offset, blank_finish = self.nested_list_parse(
self.state_machine.input_lines[offset:],
input_offset=self.state_machine.abs_line_offset() + 1,
node=fieldlist, initial_state='RFC2822List',
blank_finish=blank_finish)
self.goto_line(newline_offset)
if not blank_finish:
self.parent += self.unindent_warning(
'RFC2822-style field list')
return [], next_state, []
示例5: make_field
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import field [as 别名]
def make_field(self, types, domain, items, env=None):
fieldname = nodes.field_name('', self.label)
listnode = self.list_type()
for fieldarg, content in items:
par = nodes.paragraph()
par.extend(self.make_xrefs(self.rolename, domain, fieldarg,
addnodes.literal_strong, env=env))
if content and content[0].astext():
par += nodes.Text(' ')
par += content
listnode += nodes.list_item('', par)
source = env.ref_context['conda:package']
backrefs = env.domains['conda'].data['backrefs'].setdefault(fieldarg, set())
backrefs.add((env.docname, source))
fieldbody = nodes.field_body('', listnode)
fieldbody.set_class('field-list-wrapped')
return nodes.field('', fieldname, fieldbody)
示例6: make_field
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import field [as 别名]
def make_field(self, types, domain, item, env=None):
fieldarg, fieldtype = item
body = d_nodes.paragraph()
if fieldarg:
body.extend(self.make_xrefs(self.rolename, domain, fieldarg,
s_nodes.literal_strong, env=env))
body += d_nodes.Text('--')
typename = u''.join(n.astext() for n in fieldtype)
body.extend(
self.make_xrefs(self.typerolename, domain, typename,
s_nodes.literal_emphasis, env=env))
fieldname = d_nodes.field_name('', self.label)
fieldbody = d_nodes.field_body('', body)
node = d_nodes.field('', fieldname, fieldbody)
node['eql-name'] = self.name
node['eql-opname'] = fieldarg
if typename:
node['eql-optype'] = typename
return node
示例7: _find_field_desc
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import field [as 别名]
def _find_field_desc(self, field_node: d_nodes.field):
fieldname = field_node.children[0].astext()
if ' ' in fieldname:
fieldtype, fieldarg = fieldname.split(' ', 1)
fieldarg = fieldarg.strip()
if not fieldarg:
fieldarg = None
else:
fieldtype = fieldname
fieldarg = None
fieldtype = fieldtype.lower().strip()
for fielddesc in self.doc_field_types:
if fielddesc.name == fieldtype:
return fieldtype, fielddesc, fieldarg
return fieldtype, None, fieldarg
示例8: parse_extension_options
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import field [as 别名]
def parse_extension_options(self, option_spec, datalines):
"""
Parse `datalines` for a field list containing extension options
matching `option_spec`.
:Parameters:
- `option_spec`: a mapping of option name to conversion
function, which should raise an exception on bad input.
- `datalines`: a list of input strings.
:Return:
- Success value, 1 or 0.
- An option dictionary on success, an error string on failure.
"""
node = nodes.field_list()
newline_offset, blank_finish = self.nested_list_parse(
datalines, 0, node, initial_state='ExtensionOptions',
blank_finish=True)
if newline_offset != len(datalines): # incomplete parse of block
return 0, 'invalid option block'
try:
options = utils.extract_extension_options(node, option_spec)
except KeyError, detail:
return 0, ('unknown option: "%s"' % detail.args[0])