本文整理汇总了Python中docutils.core.Publisher.set_reader方法的典型用法代码示例。如果您正苦于以下问题:Python Publisher.set_reader方法的具体用法?Python Publisher.set_reader怎么用?Python Publisher.set_reader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类docutils.core.Publisher
的用法示例。
在下文中一共展示了Publisher.set_reader方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: parse_docstring
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import set_reader [as 别名]
def parse_docstring(doc):
p = Publisher(source=doc, source_class=io.StringInput)
p.set_reader('standalone', p.parser, 'restructuredtext')
p.writer = Writer()
p.process_programmatic_settings(None, None, None)
p.set_source(doc, None)
return p.publish()
示例2: _docutils_rest_to
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import set_reader [as 别名]
def _docutils_rest_to(rest, writer):
""" Uses docutils to convert a ReST string to HTML. Returns a tuple
containg the HTML string and the list of warning nodes that were
removed from the HTML.
"""
# Make sure any Sphinx polution of docutils has been removed.
if Sphinx is not None:
for key, value in docutils_roles.items():
if value.__module__.startswith('sphinx'):
docutils_roles.pop(key)
pub = Publisher(source_class=docutils.io.StringInput,
destination_class=docutils.io.StringOutput)
pub.set_reader('standalone', None, 'restructuredtext')
pub.set_writer(writer)
pub.writer.default_stylesheet_path=''
pub.get_settings() # Get the default settings
pub.settings.halt_level = 6 # Don't halt on errors
pub.settings.warning_stream = StringIO()
pub.set_source(rest)
pub.set_destination()
pub.document = pub.reader.read(pub.source, pub.parser, pub.settings)
pub.apply_transforms()
# Walk the node structure of a docutils document and remove 'problematic'
# and 'system_message' nodes. Save the system_message nodes.
warning_nodes = []
for node in pub.document.traverse(docutils.nodes.problematic):
node.parent.replace(node, node.children[0])
for node in pub.document.traverse(docutils.nodes.system_message):
warning_nodes.append(node)
node.parent.remove(node)
return pub.writer.write(pub.document, pub.destination), warning_nodes
示例3: inspect
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import set_reader [as 别名]
def inspect(filename, source_path=None):
"returns the document object before any transforms)"
from docutils.core import Publisher
pub = Publisher(source_class=io.FileInput)
pub.set_reader("standalone", None, "restructuredtext")
pub.process_programmatic_settings(None, None, None)
pub.set_source(source_path=source_path)
pub.set_io()
return pub.reader.read(pub.source, pub.parser, pub.settings)
示例4: convertRSTfilesToHTML
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import set_reader [as 别名]
def convertRSTfilesToHTML(root_list):
"""This routine creates .html files from all .rst files in root_list, the list of files that have just been tangled."""
for root in root_list:
base,fullname = g.os_path_split(root)
name,ext = g.os_path_splitext(fullname)
if ext == ".rst":
file = g.os_path_join(base,name+".html")
#@ << Convert root to corresponding .html file >>
#@+node:EKR.20040502194930.3:<< Convert root to corresponding .html file >>
# Leo will report the execption if docutils is not installed.
from docutils.core import Publisher
from docutils.io import FileInput,StringOutput,StringInput
# Read .rst file into s.
f = open(root,"r")
s = f.read()
f.close()
# Restucture s into output.
pub = Publisher()
pub.source = StringInput(pub.settings,source=s)
pub.destination = StringOutput(pub.settings,encoding="utf-8")
pub.set_reader('standalone',None,'restructuredtext')
pub.set_writer('html')
output = pub.publish()
# EKR: 3/7/03: convert output using the present encoding.
dict = g.scanDirectives(self.c,p=root)
encoding = dict.get("encoding",None)
if encoding == None:
encoding = g.app.config.default_derived_file_encoding
output = g.toEncodedString(output,encoding,reportErrors=True)
# Write the corresponding html file.
f = open(file,"w")
f.write(output)
f.close()
示例5: l
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import set_reader [as 别名]
properties = controls[control].properties.keys()
properties.sort()
l(" *Properties*\n%s" % ("\n\n".join([" %s" %
prop for prop in properties]),))
methods = controls[control].methods.keys()
methods.sort()
l("\n *Methods*\n%s" % ("\n\n".join([" %s" %
str(controls[control].methods[method]) for method in methods]),))
text = "\n".join(results)
# << Convert to HTML >>
import StringIO
rstFile = StringIO.StringIO(text)
from docutils.core import Publisher
from docutils.io import StringOutput, StringInput
pub = Publisher()
# Initialize the publisher
pub.source = StringInput(source=text)
pub.destination = StringOutput(encoding="utf-8")
pub.set_reader('standalone', None, 'restructuredtext')
pub.set_writer('html')
output = pub.publish()
print output
# -- end -- << Convert to HTML >>
示例6: onIconDoubleClick
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import set_reader [as 别名]
def onIconDoubleClick(tag,keywords):
v = keywords.get("p") or keywords.get("v")
c = keywords.get("c")
# g.trace(c)
h = v.headString().strip()
if g.match_word(h,0,"@text"):
fname = h[5:]
ext = os.path.splitext(fname)[1].lower()
if ext in ('.htm','.html','.tex'):
#@ << write rST as HTML/LaTeX >>
#@+node:edream.111803100242.4:<< write rST as HTML/LaTeX >>
try:
import docutils
except ImportError:
docutils = None
g.es('HTML/LaTeX generation requires docutils')
if docutils:
import StringIO
rstFile = StringIO.StringIO()
writeTreeAsRst(rstFile, fname, v, c)
rstText = rstFile.getvalue()
# Set the writer and encoding for the converted file
if ext in ('.html','.htm'):
writer='html'
enc="utf-8"
else:
writer='latex'
enc="iso-8859-1"
#@ << convert rST to HTML/LaTeX >>
#@+node:edream.111803100242.5:<< convert rST to HTML/LaTeX >>
# this code snipped has been taken from code contributed by Paul Paterson 2002-12-05
from docutils.core import Publisher
from docutils.io import StringOutput, StringInput
pub = Publisher()
# Initialize the publisher
pub.source = StringInput(source=rstText)
pub.destination = StringOutput(pub.settings, encoding=enc)
pub.set_reader('standalone', None, 'restructuredtext')
pub.set_writer(writer)
output = pub.publish(argv=[''])
#@nonl
#@-node:edream.111803100242.5:<< convert rST to HTML/LaTeX >>
#@nl
convertedFile = file(fname,'w')
convertedFile.write(output)
convertedFile.close()
rstFile.close()
g.es('written: '+str(fname))
#@nonl
#@-node:edream.111803100242.4:<< write rST as HTML/LaTeX >>
#@nl
else:
#@ << write rST file >>
#@+node:edream.111803100242.6:<< write rST file >>
rstFile = file(fname,'w')
writeTreeAsRst(rstFile, fname, v, c)
rstFile.close()
g.es('written: '+str(fname))
示例7: onIconDoubleClick
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import set_reader [as 别名]
#.........这里部分代码省略.........
module = getattr(SilverCity,language)
generator = getattr(module,language+"HTMLGenerator")
io = StringIO.StringIO()
generator().generate_html(io, '\n'.join(content))
html = '<div class="code-block">\n%s\n</div>\n'%io.getvalue()
raw = docutils.nodes.raw('',html, format='html') #(self, rawsource='', text='', *children, **attributes):
return [raw]
# These are documented at http://docutils.sourceforge.net/spec/howto/rst-directives.html.
code_block.arguments = (
1, # Number of required arguments.
0, # Number of optional arguments.
0) # True if final argument may contain whitespace.
# A mapping from option name to conversion function.
code_block.options = {
'language' :
docutils.parsers.rst.directives.unchanged # Return the text argument, unchanged
}
code_block.content = 1 # True if content is allowed.
# Register the directive with docutils.
docutils.parsers.rst.directives.register_directive('code-block',code_block)
config.do_replace_code_blocks = False
#@nonl
#@-node:ekr.20040331071319.5:<< define code-block >>
#@nl
syntax = True
except ImportError:
g.es('SilverCity not present so no syntax highlighting')
#@ << define alternate code block implementation>>
#@+node:bwmulder.20050326114320: << define alternate code block implementation>>
# Don't know what to do here: Can someone make a suggestion?
#import docutils.parsers.rst.directives.admonitions
#import docutils.parsers.rst.directives.body
# docutils.parsers.rst.directives._directives['code-block'] = docutils.parsers.rst.directives.body.block
# docutils.parsers.rst.directives.register_directive('code-block', docutils.parsers.rst.directives.admonitions.admonition)
#docutils.parsers.rst.directives._directives['code-block'] = docutils.parsers.rst.directives.body.pull_quote
# g.es("Registered some alternate implementation for code-block directive")
config.do_replace_code_blocks = config.rst2_replace_code_blocks
#@-node:bwmulder.20050326114320: << define alternate code block implementation>>
#@nl
if config.rst2file:
rstFileName = os.path.splitext(fname)[0] + ".txt"
rstFile = file(rstFileName, "w")
g.es("Using %s as rst file" % rstFileName)
else:
rstFile = StringIO.StringIO()
config.current_file = fname
writeTreeAsRst(rstFile,fname,p,c,syntax=syntax)
if config.rst2file:
rstFile.close()
else:
rstText = rstFile.getvalue()
# This code snipped has been taken from code contributed by Paul Paterson 2002-12-05.
pub = Publisher()
if config.rst2file:
pub.source = FileInput(source_path=rstFileName)
pub.destination = FileOutput(destination_path=fname, encoding='unicode')
else:
pub.source = StringInput(source=rstText)
pub.destination = StringOutput(pub.settings, encoding=enc)
pub.set_reader('standalone', None, 'restructuredtext')
pub.set_writer(writer)
output = pub.publish(argv=[''])
if config.rst2file:
pass
else:
convertedFile = file(fname,'w')
convertedFile.write(output)
convertedFile.close()
rstFile.close()
writeFullFileName(fname)
return http_support_main(tag, fname)
#@-node:ekr.20040331071319.4:<< write rST as HTML/LaTeX >>
#@nl
else:
#@ << write rST file >>
#@+node:ekr.20040331071319.6:<< write rST file >>
rstFile = file(fname,'w')
writeTreeAsRst(rstFile,fname,p,c)
rstFile.close()
writeFullFileName(fname)
#@nonl
#@-node:ekr.20040331071319.6:<< write rST file >>
#@nl
else:
# if the headline only contains @rst then open the node and its parent in text editor
# this works for me but needs to be generalized and should probably be a component
# of the open_with plugin.
if 0:
c.openWith(("os.startfile", None, ".txt"))
c.selectVnode(p.parent())
c.openWith(("os.startfile", None, ".tp"))