本文整理汇总了Python中docutils.nodes.footnote方法的典型用法代码示例。如果您正苦于以下问题:Python nodes.footnote方法的具体用法?Python nodes.footnote怎么用?Python nodes.footnote使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类docutils.nodes
的用法示例。
在下文中一共展示了nodes.footnote方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: visit_footnote
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def visit_footnote(self, node):
try:
backref = node['backrefs'][0]
except IndexError:
backref = node['ids'][0] # no backref, use self-ref instead
if self.docutils_footnotes:
self.fallbacks['footnotes'] = PreambleCmds.footnotes
num = node[0].astext()
if self.settings.footnote_references == 'brackets':
num = '[%s]' % num
self.out.append('%%\n\\DUfootnotetext{%s}{%s}{%s}{' %
(node['ids'][0], backref, self.encode(num)))
if node['ids'] == node['names']:
self.out += self.ids_to_labels(node)
# mask newline to prevent spurious whitespace if paragraph follows:
if node[1:] and isinstance(node[1], nodes.paragraph):
self.out.append('%')
## else: # TODO: "real" LaTeX \footnote{}s
示例2: number_footnotes
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def number_footnotes(self, startnum):
"""
Assign numbers to autonumbered footnotes.
For labeled autonumbered footnotes, copy the number over to
corresponding footnote references.
"""
for footnote in self.document.autofootnotes:
while True:
label = str(startnum)
startnum += 1
if label not in self.document.nameids:
break
footnote.insert(0, nodes.label('', label))
for name in footnote['names']:
for ref in self.document.footnote_refs.get(name, []):
ref += nodes.Text(label)
ref.delattr('refname')
assert len(footnote['ids']) == len(ref['ids']) == 1
ref['refid'] = footnote['ids'][0]
footnote.add_backref(ref['ids'][0])
self.document.note_refid(ref)
ref.resolved = 1
if not footnote['names'] and not footnote['dupnames']:
footnote['names'].append(label)
self.document.note_explicit_target(footnote, footnote)
self.autofootnote_labels.append(label)
return startnum
示例3: number_footnote_references
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def number_footnote_references(self, startnum):
"""Assign numbers to autonumbered footnote references."""
i = 0
for ref in self.document.autofootnote_refs:
if ref.resolved or ref.hasattr('refid'):
continue
try:
label = self.autofootnote_labels[i]
except IndexError:
msg = self.document.reporter.error(
'Too many autonumbered footnote references: only %s '
'corresponding footnotes available.'
% len(self.autofootnote_labels), base_node=ref)
msgid = self.document.set_id(msg)
for ref in self.document.autofootnote_refs[i:]:
if ref.resolved or ref.hasattr('refname'):
continue
prb = nodes.problematic(
ref.rawsource, ref.rawsource, refid=msgid)
prbid = self.document.set_id(prb)
msg.add_backref(prbid)
ref.replace_self(prb)
break
ref += nodes.Text(label)
id = self.document.nameids[label]
footnote = self.document.ids[id]
ref['refid'] = id
self.document.note_refid(ref)
assert len(ref['ids']) == 1
footnote.add_backref(ref['ids'][0])
ref.resolved = 1
i += 1
示例4: symbolize_footnotes
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def symbolize_footnotes(self):
"""Add symbols indexes to "[*]"-style footnotes and references."""
labels = []
for footnote in self.document.symbol_footnotes:
reps, index = divmod(self.document.symbol_footnote_start,
len(self.symbols))
labeltext = self.symbols[index] * (reps + 1)
labels.append(labeltext)
footnote.insert(0, nodes.label('', labeltext))
self.document.symbol_footnote_start += 1
self.document.set_id(footnote)
i = 0
for ref in self.document.symbol_footnote_refs:
try:
ref += nodes.Text(labels[i])
except IndexError:
msg = self.document.reporter.error(
'Too many symbol footnote references: only %s '
'corresponding footnotes available.' % len(labels),
base_node=ref)
msgid = self.document.set_id(msg)
for ref in self.document.symbol_footnote_refs[i:]:
if ref.resolved or ref.hasattr('refid'):
continue
prb = nodes.problematic(
ref.rawsource, ref.rawsource, refid=msgid)
prbid = self.document.set_id(prb)
msg.add_backref(prbid)
ref.replace_self(prb)
break
footnote = self.document.symbol_footnotes[i]
assert len(footnote['ids']) == 1
ref['refid'] = footnote['ids'][0]
self.document.note_refid(ref)
footnote.add_backref(ref['ids'][0])
i += 1
示例5: resolve_footnotes_and_citations
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def resolve_footnotes_and_citations(self):
"""
Link manually-labeled footnotes and citations to/from their
references.
"""
for footnote in self.document.footnotes:
for label in footnote['names']:
if label in self.document.footnote_refs:
reflist = self.document.footnote_refs[label]
self.resolve_references(footnote, reflist)
for citation in self.document.citations:
for label in citation['names']:
if label in self.document.citation_refs:
reflist = self.document.citation_refs[label]
self.resolve_references(citation, reflist)
示例6: apply
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def apply(self):
notes = {}
nodelist = []
for target in self.document.traverse(nodes.target):
# Only external targets.
if not target.hasattr('refuri'):
continue
names = target['names']
refs = []
for name in names:
refs.extend(self.document.refnames.get(name, []))
if not refs:
continue
footnote = self.make_target_footnote(target['refuri'], refs,
notes)
if target['refuri'] not in notes:
notes[target['refuri']] = footnote
nodelist.append(footnote)
# Take care of anonymous references.
for ref in self.document.traverse(nodes.reference):
if not ref.get('anonymous'):
continue
if ref.hasattr('refuri'):
footnote = self.make_target_footnote(ref['refuri'], [ref],
notes)
if ref['refuri'] not in notes:
notes[ref['refuri']] = footnote
nodelist.append(footnote)
self.startnode.replace_self(nodelist)
示例7: footnote
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def footnote(self, match):
src, srcline = self.state_machine.get_source_and_line()
indented, indent, offset, blank_finish = \
self.state_machine.get_first_known_indented(match.end())
label = match.group(1)
name = normalize_name(label)
footnote = nodes.footnote('\n'.join(indented))
footnote.source = src
footnote.line = srcline
if name[0] == '#': # auto-numbered
name = name[1:] # autonumber label
footnote['auto'] = 1
if name:
footnote['names'].append(name)
self.document.note_autofootnote(footnote)
elif name == '*': # auto-symbol
name = ''
footnote['auto'] = '*'
self.document.note_symbol_footnote(footnote)
else: # manually numbered
footnote += nodes.label('', label)
footnote['names'].append(name)
self.document.note_footnote(footnote)
if name:
self.document.note_explicit_target(footnote, footnote)
else:
self.document.set_id(footnote, footnote)
if indented:
self.nested_parse(indented, input_offset=offset, node=footnote)
return [footnote], blank_finish
示例8: visit_label
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def visit_label(self, node):
# footnote and citation
if (isinstance(node.parent, nodes.footnote)
or isinstance(node.parent, nodes.citation)):
raise nodes.SkipNode
self.document.reporter.warning('"unsupported "label"',
base_node=node)
self.body.append('[')
示例9: depart_footer
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def depart_footer(self, node):
start = self.context.pop()
footer = [self.starttag(node, 'div', CLASS='footer'),
'<hr class="footer" />\n']
footer.extend(self.body[start:])
footer.append('\n</div>\n')
self.footer.extend(footer)
self.body_suffix[:0] = footer
del self.body[start:]
# footnotes
# ---------
# use definition list instead of table for footnote text
# TODO: use the new HTML5 element <aside>? (Also for footnote text)
示例10: visit_footnote
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def visit_footnote(self, node):
if not self.in_footnote_list:
classes = 'footnote ' + self.settings.footnote_references
self.body.append('<dl class="%s">\n'%classes)
self.in_footnote_list = True
示例11: visit_footnote_reference
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def visit_footnote_reference(self, node):
href = '#' + node['refid']
classes = 'footnote-reference ' + self.settings.footnote_references
self.body.append(self.starttag(node, 'a', '', #suffix,
CLASS=classes, href=href))
示例12: depart_inline
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def depart_inline(self, node):
self.body.append('</span>')
# footnote and citation labels:
示例13: visit_label
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def visit_label(self, node):
if (isinstance(node.parent, nodes.footnote)):
classes = self.settings.footnote_references
else:
classes = 'brackets'
# pass parent node to get id into starttag:
self.body.append(self.starttag(node.parent, 'dt', '', CLASS='label'))
self.body.append(self.starttag(node, 'span', '', CLASS=classes))
# footnote/citation backrefs:
if self.settings.footnote_backlinks:
backrefs = node.parent['backrefs']
if len(backrefs) == 1:
self.body.append('<a class="fn-backref" href="#%s">'
% backrefs[0])
示例14: depart_section
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def depart_section(self, node):
self.section_level -= 1
self.body.append('</div>\n')
# TODO: use the new HTML5 element <aside>? (Also for footnote text)
示例15: depart_title_reference
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import footnote [as 别名]
def depart_title_reference(self, node):
self.body.append('</cite>')
# TODO: use the new HTML5 element <aside>? (Also for footnote text)