From: David G. <go...@py...> - 2005-03-13 02:03:07
|
[Jason Diamond] > Below is some code I'm using to transform some custom URI schemes > into HTTP schemes. > > With the "asin" scheme, I'm turning "asin:0375704027" into > "http://www.amazon.com/exec/obidos/ASIN/0375704027", for example. I suggest that rather than inventing a custom URI scheme for this, you should implement it as an interpreted text role: :asin:`0375704027` > With the "map" scheme, I want to turn "map:1234 Main St, Anytown, > USA" into > "http://maps.google.com/maps?q=1234%20Main%20St%2CSpringfield%2C%20MA". ... > The "map" scheme, however, isn't quite what I want. The reST parser > doesn't consider anything after the first space as part of the > refuri. This is probably by design. Correct. > 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). > but I was hoping that they'd be allowed if I surrounded the URI with > pointy brackets like this: <map:1234 Main St, Anytown, USA>. Sorry to disappoint. Although support for URIs in angle brackets may be added to reStructuredText at some point, but spaces will never be significant (as you later discovered). Spaces within angle-bracketed URIs will simply be removed). This is also part of the URI spec. > The "asin" scheme is working great but I wanted to see what the list > thought about the approach I'm taking. Would this be the recommended > way of tackling this problem (using a transform that visits all of > the nodes in the document)? Again, I'd say do it as a role: :map:`1234 Main St, Anytown, USA` > Before I start digging through states.py to see how this can be "fixed", > I wanted to see if this is something that even should be fixed. It ain't broke, so the answer's "no". > Besides my custom scheme, I can see this being useful for "file" > URIs where spaces appear in the paths. Would this change be > acceptable (as long as the URI was delimited with pointy brackets)? "file" URIs, as with all other URIs, may not contain spaces. *Paths* may contain spaces, but paths are not URIs. > If not, any suggestions on another way I can achieve the same effect? Interpreted text roles: http://docutils.sf.net/docs/howto/rst-roles.html > Note that spaces are allowed (probably thanks to the code that David > just checked in a few days ago) 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. > It almost works when I do this:: > > `My House <map:1234 Main St, Anytown, USA>`_ > > The spaces are being stripped out of the refuri in this case. Weird. Not weird. That's the way it's supposed to be. -- David Goodger <http://python.net/~goodger> |