Merge pull request #3905 from davidfischer/fix-3892
Handle errors from publish_partsremove-default-role
commit
d557fee903
|
@ -46,6 +46,7 @@ def make_document_url(project, version=None, page=''):
|
|||
def restructuredtext(value, short=False):
|
||||
try:
|
||||
from docutils.core import publish_parts
|
||||
from docutils import ApplicationError
|
||||
except ImportError:
|
||||
if settings.DEBUG:
|
||||
raise template.TemplateSyntaxError(
|
||||
|
@ -59,8 +60,15 @@ def restructuredtext(value, short=False):
|
|||
'file_insertion_enabled': False,
|
||||
}
|
||||
docutils_settings.update(getattr(settings, 'RESTRUCTUREDTEXT_FILTER_SETTINGS', {}))
|
||||
parts = publish_parts(source=force_bytes(value), writer_name="html4css1",
|
||||
settings_overrides=docutils_settings)
|
||||
try:
|
||||
parts = publish_parts(
|
||||
source=force_bytes(value),
|
||||
writer_name="html4css1",
|
||||
settings_overrides=docutils_settings,
|
||||
)
|
||||
except ApplicationError:
|
||||
return force_text(value)
|
||||
|
||||
out = force_text(parts["fragment"])
|
||||
try:
|
||||
if short:
|
||||
|
|
|
@ -180,3 +180,17 @@ class CoreTagsTests(TestCase):
|
|||
proj.documentation_type = 'mkdocs'
|
||||
url = core_tags.make_document_url(proj, LATEST, 'index.html')
|
||||
self.assertEqual(url, 'http://readthedocs.org/docs/pip/en/latest/')
|
||||
|
||||
def test_restructured_text(self):
|
||||
value = '*test*'
|
||||
result = core_tags.restructuredtext(value)
|
||||
self.assertIn('<em>test</em>', result)
|
||||
|
||||
def test_restructured_text_invalid(self):
|
||||
value = (
|
||||
'*******\n'
|
||||
'Test\n'
|
||||
'****\n\n'
|
||||
)
|
||||
result = core_tags.restructuredtext(value)
|
||||
self.assertEqual(result, value)
|
||||
|
|
Loading…
Reference in New Issue