From: Felix W. <Fel...@gm...> - 2005-03-13 19:17:18
|
David Goodger wrote: > Jason Diamond wrote: > >> I realize URIs aren't supposed to have spaces in them > > Correct. This is not a Docutils/reStructuredText decision, it's part > of the URI spec, RFC 2396 (http://www.faqs.org/rfcs/rfc2396.html). Then what about this entry from docs/dev/todo.txt: * Support whitespace in angle-bracketed standalone URLs according to Appendix E ("Recommendations for Delimiting URI in Context") of `RFC 2396`_. .. _RFC 2396: http://www.rfc-editor.org/rfc/rfc2396.txt RFC 2396 says: Using <> angle brackets around each URI is especially recommended as a delimiting style for URI that contain whitespace. Should we just delete that to do list entry? (Would be fine with me.) >> Note that spaces are allowed in URIs that are specified indirectly:: >> >> `My House`__ >> >> __ map:1234 Main St, Anytown, USA > > If that works, it's a bug. It shouldn't work. I see three possibilities: 1. Leave it as is. 2. Strip whitespace in parsers/rst/states.py. (That would still allow whitespace in image URIs, image targets, etc., so it would be a bit inconsistent.) Patch is below. 3. Same as 2, but generate a warning when stripping non-newline whitespace (i.e. real spaces " ") from URIs. ------------------------------------------------------------------------------ Index: docutils/parsers/rst/states.py =================================================================== RCS file: /cvsroot/docutils/docutils/docutils/parsers/rst/states.py,v retrieving revision 1.94 diff -u -r1.94 states.py --- docutils/parsers/rst/states.py 5 Mar 2005 18:32:45 -0000 1.94 +++ docutils/parsers/rst/states.py 13 Mar 2005 19:12:50 -0000 @@ -1801,6 +1801,8 @@ self.document.note_indirect_target(target) return target elif target_type == 'refuri': + # Remove whitespace from URI. + data = ''.join(data.split()) target = nodes.target(block_text, '') self.add_target(target_name, data, target, lineno) return target Index: test/test_parsers/test_rst/test_targets.py =================================================================== RCS file: /cvsroot/docutils/docutils/test/test_parsers/test_rst/test_targets.py,v retrieving revision 1.13 diff -u -r1.13 test_targets.py --- test/test_parsers/test_rst/test_targets.py 5 Mar 2005 18:32:46 -0000 1.13 +++ test/test_parsers/test_rst/test_targets.py 13 Mar 2005 19:13:01 -0000 @@ -346,7 +346,7 @@ <paragraph> Anonymous external hyperlink target, not indirect: <target anonymous="1" id="id1" refuri="uri_"> - <target anonymous="1" id="id2" refuri="this URI ends with an underscore_"> + <target anonymous="1" id="id2" refuri="thisURIendswithanunderscore_"> """], ["""\ Anonymous indirect hyperlink targets: ------------------------------------------------------------------------------ -- When replying to my email address, please ensure that the mail header contains 'Felix Wiemann'. http://www.ososo.de/ |