本文整理汇总了Python中docutils.core.Publisher.process_programmatic_settings方法的典型用法代码示例。如果您正苦于以下问题:Python Publisher.process_programmatic_settings方法的具体用法?Python Publisher.process_programmatic_settings怎么用?Python Publisher.process_programmatic_settings使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类docutils.core.Publisher
的用法示例。
在下文中一共展示了Publisher.process_programmatic_settings方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: read_doc
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def read_doc(app, env, filename):
# type: (Sphinx, BuildEnvironment, unicode) -> nodes.document
"""Parse a document and convert to doctree."""
filetype = get_filetype(app.config.source_suffix, filename)
input_class = app.registry.get_source_input(filetype)
reader = SphinxStandaloneReader(app)
source = input_class(app, env, source=None, source_path=filename,
encoding=env.config.source_encoding)
parser = app.registry.create_source_parser(app, filetype)
if parser.__class__.__name__ == 'CommonMarkParser' and parser.settings_spec == ():
# a workaround for recommonmark
# If recommonmark.AutoStrictify is enabled, the parser invokes reST parser
# internally. But recommonmark-0.4.0 does not provide settings_spec for reST
# parser. As a workaround, this copies settings_spec for RSTParser to the
# CommonMarkParser.
parser.settings_spec = RSTParser.settings_spec
pub = Publisher(reader=reader,
parser=parser,
writer=SphinxDummyWriter(),
source_class=SphinxDummySourceClass,
destination=NullOutput())
pub.set_components(None, 'restructuredtext', None)
pub.process_programmatic_settings(None, env.settings, None)
pub.set_source(source, filename)
pub.publish()
return pub.document
示例2: get_sphinx
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def get_sphinx():
sphinx = getattr(local_data, 'sphinx', None)
if sphinx is None:
sphinx = Sphinx(tempdir, tempdir, tempdir,
tempdir, 'json', status=None, warning=None)
sphinx.builder.translator_class = CustomHTMLTranslator
sphinx.env.patch_lookup_functions()
sphinx.env.temp_data['docname'] = 'text'
sphinx.env.temp_data['default_domain'] = 'py'
pub = Publisher(reader=None,
parser=None,
writer=HTMLWriter(sphinx.builder),
source_class=io.StringInput,
destination_class=io.NullOutput)
pub.set_components('standalone', 'restructuredtext', None)
pub.process_programmatic_settings(None, sphinx.env.settings, None)
pub.set_destination(None, None)
sphinx.publisher = pub
local_data.sphinx = sphinx
return sphinx, sphinx.publisher
示例3: parse_docstring
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [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()
示例4: render
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def render(self):
key = 'cia.apps.blog.%d' % self.id
parts = cache.get(key)
if not parts:
# Convert the reST markup to a document tree
document = publish_doctree(source = self.content)
visitor = ImageTranslator(document)
document.walkabout(visitor)
#
# Publish that document tree as HTML. We can't use any of
# the simpler methods in docutils.core, since we need
# access to writer.parts
#
reader = doctree.Reader(parser_name='null')
pub = Publisher(reader, None, None,
source = DocTreeInput(document),
destination_class = StringOutput)
pub.set_writer('html4css1')
pub.process_programmatic_settings(None, {
'cloak_email_addresses': True,
'initial_header_level': 2,
}, None)
pub.publish()
parts = pub.writer.parts
cache.set(key, parts)
return parts
示例5: pypi_render
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def pypi_render(source):
"""
Copied (and slightly adapted) from pypi.description_tools
"""
ALLOWED_SCHEMES = '''file ftp gopher hdl http https imap mailto mms news
nntp prospero rsync rtsp rtspu sftp shttp sip sips snews svn svn+ssh
telnet wais irc'''.split()
settings_overrides = {
"raw_enabled": 0, # no raw HTML code
"file_insertion_enabled": 0, # no file/URL access
"halt_level": 2, # at warnings or errors, raise an exception
"report_level": 5, # never report problems with the reST code
}
# capture publishing errors, they go to stderr
old_stderr = sys.stderr
sys.stderr = s = StringIO.StringIO()
parts = None
try:
# Convert reStructuredText to HTML using Docutils.
document = publish_doctree(source=source,
settings_overrides=settings_overrides)
for node in document.traverse():
if node.tagname == '#text':
continue
if node.hasattr('refuri'):
uri = node['refuri']
elif node.hasattr('uri'):
uri = node['uri']
else:
continue
o = urlparse.urlparse(uri)
if o.scheme not in ALLOWED_SCHEMES:
raise TransformError('link scheme not allowed')
# now turn the transformed document into HTML
reader = readers.doctree.Reader(parser_name='null')
pub = Publisher(reader, source=io.DocTreeInput(document),
destination_class=io.StringOutput)
pub.set_writer('html')
pub.process_programmatic_settings(None, settings_overrides, None)
pub.set_destination(None, None)
pub.publish()
parts = pub.writer.parts
except:
pass
sys.stderr = old_stderr
# original text if publishing errors occur
if parts is None or len(s.getvalue()) > 0:
return None
else:
return parts['body']
示例6: process_description
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def process_description(source, output_encoding='unicode'):
"""Given an source string, returns an HTML fragment as a string.
The return value is the contents of the <body> tag.
Parameters:
- `source`: A multi-line text string; required.
- `output_encoding`: The desired encoding of the output. If a Unicode
string is desired, use the default value of "unicode" .
"""
# Dedent all lines of `source`.
source = trim_docstring(source)
settings_overrides = {
'raw_enabled': 0, # no raw HTML code
'file_insertion_enabled': 0, # no file/URL access
'halt_level': 2, # at warnings or errors, raise an exception
'report_level': 5, # never report problems with the reST code
}
parts = None
# Convert reStructuredText to HTML using Docutils.
document = publish_doctree(source=source,
settings_overrides=settings_overrides)
for node in document.traverse():
if node.tagname == '#text':
continue
if node.hasattr('refuri'):
uri = node['refuri']
elif node.hasattr('uri'):
uri = node['uri']
else:
continue
o = urlparse(uri)
if o.scheme not in ALLOWED_SCHEMES:
raise TransformError('link scheme not allowed: {0}'.format(uri))
# now turn the transformed document into HTML
reader = readers.doctree.Reader(parser_name='null')
pub = Publisher(reader, source=io.DocTreeInput(document),
destination_class=io.StringOutput)
pub.set_writer('html')
pub.process_programmatic_settings(None, settings_overrides, None)
pub.set_destination(None, None)
pub.publish()
parts = pub.writer.parts
output = parts['body']
if output_encoding != 'unicode':
output = output.encode(output_encoding)
return output
示例7: __init__
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def __init__(self):
# publisher is used for html generation
pub = Publisher(None, None, None, settings=None,
source_class=StringInput,
destination_class=StringOutput)
pub.set_components('standalone', 'restructuredtext', 'html')
pub.process_programmatic_settings(None, None, None)
pub.set_destination(None, None)
self.pub = pub
示例8: inspect
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [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)
示例9: convert
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def convert(infilename, outfilename):
print "converting %s to %s" % (infilename, outfilename)
pub = Publisher()
pub.set_components('standalone', # reader
'restructuredtext', # parser
'latex') # writer (arg, will be discarded)
pub.reader = StandaloneReader()
pub.writer = VerseLaTeXWriter()
pub.process_programmatic_settings(None, None, None)
pub.set_source(source_path=infilename)
pub.set_destination(destination_path=outfilename)
pub.publish()
示例10: get_html
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def get_html(self, body_only=True, content_only=False, noclasses=False):
import sys
import pygments_rest
from docutils.core import Publisher
from docutils.io import StringInput, StringOutput
from cStringIO import StringIO
settings = {'doctitle_xform' : 1,
'pep_references' : 1,
'rfc_references' : 1,
'footnote_references': 'superscript',
'output_encoding' : 'unicode',
'report_level' : 2, # 2=show warnings, 3=show only errors, 5=off (docutils.utils
}
if content_only:
post_rst = self.get_rst(noclasses=noclasses)
else:
post_rst = render_to('post_single.rst',
post=self,
noclasses=noclasses)
pub = Publisher(reader=None,
parser=None,
writer=None,
settings=None,
source_class=StringInput,
destination_class=StringOutput)
pub.set_components(reader_name='standalone',
parser_name='restructuredtext',
writer_name='html')
pub.process_programmatic_settings(settings_spec=None,
settings_overrides=settings,
config_section=None)
pub.set_source(post_rst,source_path=self.module_path)
pub.set_destination(None, None)
errors_io = StringIO()
real_stderr = sys.stderr
sys.stderr = errors_io
try:
html_full = pub.publish(enable_exit_status=False)
html_body = ''.join(pub.writer.html_body)
finally:
sys.stderr = real_stderr
errors = errors_io.getvalue()
self._process_rest_errors(errors)
errors_io.close()
return html_body if body_only else html_full
示例11: render_readme_like_pypi
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def render_readme_like_pypi(source, output_encoding='unicode'):
"""
Render a ReST document just like PyPI does.
"""
# Dedent all lines of `source`.
source = trim_docstring(source)
settings_overrides = {
'raw_enabled': 0, # no raw HTML code
'file_insertion_enabled': 0, # no file/URL access
'halt_level': 2, # at warnings or errors, raise an exception
'report_level': 5, # never report problems with the reST code
}
parts = None
# Convert reStructuredText to HTML using Docutils.
document = publish_doctree(source=source,
settings_overrides=settings_overrides)
for node in document.traverse():
if node.tagname == '#text':
continue
if node.hasattr('refuri'):
uri = node['refuri']
elif node.hasattr('uri'):
uri = node['uri']
else:
continue
o = urlparse(uri)
if o.scheme not in ALLOWED_SCHEMES:
raise TransformError('link scheme not allowed: {0}'.format(uri))
# now turn the transformed document into HTML
reader = readers.doctree.Reader(parser_name='null')
pub = Publisher(reader, source=io.DocTreeInput(document),
destination_class=io.StringOutput)
pub.set_writer('html')
pub.process_programmatic_settings(None, settings_overrides, None)
pub.set_destination(None, None)
pub.publish()
parts = pub.writer.parts
output = parts['body']
if output_encoding != 'unicode':
output = output.encode(output_encoding)
return output
示例12: _get_publisher
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def _get_publisher(self, source_path):
extra_params = {'initial_header_level': '2',
'syntax_highlight': 'short',
'input_encoding': 'utf-8'}
user_params = self.settings.get('DOCUTILS_SETTINGS')
if user_params:
extra_params.update(user_params)
pub = Publisher(destination_class=StringOutput)
pub.set_components('standalone', 'restructuredtext', 'html')
pub.writer.translator_class = HTMLTranslator
pub.process_programmatic_settings(None, extra_params, None)
pub.set_source(source_path=source_path)
pub.publish()
return pub
示例13: read_doc
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def read_doc(app, env, filename):
# type: (Sphinx, BuildEnvironment, unicode) -> nodes.document
"""Parse a document and convert to doctree."""
reader = SphinxStandaloneReader(app, parsers=app.registry.get_source_parsers())
source = SphinxFileInput(app, env, source=None, source_path=filename,
encoding=env.config.source_encoding)
pub = Publisher(reader=reader,
writer=SphinxDummyWriter(),
source_class=SphinxDummySourceClass,
destination=NullOutput())
pub.set_components(None, 'restructuredtext', None)
pub.process_programmatic_settings(None, env.settings, None)
pub.set_source(source, filename)
pub.publish()
return pub.document
示例14: render_map
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def render_map(builder, node):
if node:
doc = new_document(b('<partial node>'))
doc.append(node)
publisher = Publisher( source_class = DocTreeInput, destination_class=StringOutput)
publisher.set_components('standalone', 'restructuredtext', 'pseudoxml')
publisher.reader = DoctreeReader()
publisher.writer = DitaMapWriter(builder)
publisher.process_programmatic_settings(None, {'output_encoding': 'utf-8'}, None)
publisher.set_source(doc, None)
publisher.set_destination(None, None)
publisher.publish()
return publisher.writer.output
output = XML_HEAD
output += u"<map></map>"
return output
示例15: check_rst
# 需要导入模块: from docutils.core import Publisher [as 别名]
# 或者: from docutils.core.Publisher import process_programmatic_settings [as 别名]
def check_rst(self, rst):
pub = Publisher(reader=None, parser=None, writer=None, settings=None,
source_class=io.StringInput,
destination_class=io.StringOutput)
pub.set_components(reader_name='standalone',
parser_name='restructuredtext',
writer_name='pseudoxml')
pub.process_programmatic_settings(
settings_spec=None,
settings_overrides={'output_encoding': 'unicode'},
config_section=None,
)
pub.set_source(rst, source_path=None)
pub.set_destination(destination=None, destination_path=None)
output = pub.publish(enable_exit_status=False)
self.assertLess(pub.document.reporter.max_level, 0)
return output, pub