Skip to content
Snippets Groups Projects
Commit 9c13aae8 authored by nkour's avatar nkour
Browse files

coding standards et all

parent 817a8f68
No related branches found
No related tags found
No related merge requests found
## rst_xhtml_generator.py
##
## Copyright (C) 2006 Yann Le Boulanger <asterix@lagaule.org>
## Copyright (C) 2006 Nikos Kouremenos <kourem@gmail.com>
## Copyright (C) 2006 Santiago Gala
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published
## by the Free Software Foundation; version 2 only.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
from docutils import io
from docutils.core import Publisher
from docutils.parsers.rst import roles
def jep_reference_role(role, rawtext, text, lineno, inliner,
options={}, content=[]):
"""Role to make handy references to Jabber Enhancement Proposals (JEP).
options={}, content=[]):
'''Role to make handy references to Jabber Enhancement Proposals (JEP).
Use as :JEP:`71` (or jep, or jep-reference).
Modeled after the sample in docutils documentation.
"""
'''
from docutils import nodes,utils
from docutils.parsers.rst.roles import set_classes
......@@ -27,7 +43,7 @@ def jep_reference_role(role, rawtext, text, lineno, inliner,
ref = jep_base_url + jep_url % jepnum
set_classes(options)
node = nodes.reference(rawtext, 'JEP ' + utils.unescape(text), refuri=ref,
**options)
**options)
return [node], []
roles.register_canonical_role('jep-reference', jep_reference_role)
......@@ -36,40 +52,40 @@ roles['jep-reference'] = 'jep-reference'
roles['jep'] = 'jep-reference'
class HTMLGenerator:
"""Really simple HTMLGenerator starting from publish_parts.
'''Really simple HTMLGenerator starting from publish_parts.
It reuses the docutils.core.Publisher class, which means it is *not*
threadsafe.
"""
'''
def __init__(self,
settings_spec=None,
settings_overrides=dict(report_level=5, halt_level=5),
config_section='general'):
settings_spec=None,
settings_overrides=dict(report_level=5, halt_level=5),
config_section='general'):
self.pub = Publisher(reader=None, parser=None, writer=None,
settings=None,
source_class=io.StringInput,
destination_class=io.StringOutput)
settings=None,
source_class=io.StringInput,
destination_class=io.StringOutput)
self.pub.set_components(reader_name='standalone',
parser_name='restructuredtext',
writer_name='html')
parser_name='restructuredtext',
writer_name='html')
#hack: JEP-0071 does not allow HTML char entities, so we hack our way out of it.
# &mdash; == u"\u2014"
# a setting to only emit charater entities in the writer would be nice
# TODO: several &nbsp; are emitted, and they are explicitly forbidden in the JEP
# FIXME: several &nbsp; are emitted, and they are explicitly forbidden in the JEP
# &nbsp; == u"\u00a0"
self.pub.writer.translator_class.attribution_formats["dash"] = (u"\u2014", "")
self.pub.writer.translator_class.attribution_formats['dash'] = (u'\u2014', '')
self.pub.process_programmatic_settings(settings_spec,
settings_overrides,
config_section)
settings_overrides,
config_section)
def create_xhtml(self, text,
destination=None,
destination_path=None,
enable_exit_status=None):
""" Create xhtml for a fragment of IM dialog.
destination=None,
destination_path=None,
enable_exit_status=None):
''' Create xhtml for a fragment of IM dialog.
We can use the source_name to store info about
the message."""
the message.'''
self.pub.set_source(text, None)
self.pub.set_destination(destination, destination_path)
output = self.pub.publish(enable_exit_status=enable_exit_status)
......@@ -82,7 +98,7 @@ def create_xhtml(text):
return Generator.create_xhtml(text)
if __name__ == '__main__':
print Generator.create_xhtml("""
print Generator.create_xhtml('''
test::
>>> print 1
......@@ -92,9 +108,9 @@ test::
this `` should trigger`` should trigger the &nbsp; problem.
""")
print Generator.create_xhtml("""
''')
print Generator.create_xhtml('''
*test1
test2_
""")
''')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment