diff options
| author | Tai Lee <tai.lee@3030.com.au> | 2013-06-18 10:10:21 +1000 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2013-10-04 13:27:08 -0400 |
| commit | bcd4c3f27d5bcf701337ac7c74c042d90792bdc3 (patch) | |
| tree | 1ae6457311bd778ae84a0c38aee73acc56879bcd /django | |
| parent | 3895d8899d7a01f2bdb1c206e45d8578a9739c91 (diff) | |
Fixed #6681 -- Don't break docutils when rendering reStructuredText.
Don't set a global default interpreted role function for reStructuredText.
Instead, use the `default-role` directive to change the default only within
the `parse_rst()` function.
Thanks Malcolm Tredinnick for the report.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admindocs/utils.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/django/contrib/admindocs/utils.py b/django/contrib/admindocs/utils.py index c97d588c7d..f836253e71 100644 --- a/django/contrib/admindocs/utils.py +++ b/django/contrib/admindocs/utils.py @@ -67,9 +67,18 @@ def parse_rst(text, default_reference_context, thing_being_parsed=None): } if thing_being_parsed: thing_being_parsed = force_bytes("<%s>" % thing_being_parsed) - parts = docutils.core.publish_parts(text, source_path=thing_being_parsed, - destination_path=None, writer_name='html', - settings_overrides=overrides) + # Wrap ``text`` in some reST that sets the default role to ``cmsreference``, + # then restores it. + source = """ +.. default-role:: cmsreference + +%s + +.. default-role:: +""" + parts = docutils.core.publish_parts(source % text, + source_path=thing_being_parsed, destination_path=None, + writer_name='html', settings_overrides=overrides) return mark_safe(parts['fragment']) # @@ -100,7 +109,6 @@ def default_reference_role(name, rawtext, text, lineno, inliner, options=None, c if docutils_is_available: docutils.parsers.rst.roles.register_canonical_role('cmsreference', default_reference_role) - docutils.parsers.rst.roles.DEFAULT_INTERPRETED_ROLE = 'cmsreference' for name, urlbase in ROLES.items(): create_reference_role(name, urlbase) |
