On Fri, Aug 7, 2009 at 3:39 AM, Reinier Balt<[email protected]> wrote:
> I think the problem is in rails. The auto_link uses a regular expression:
>
> AUTO_LINK_RE = %r{
> ( # leading text
> <\w+.*?>| # leading HTML tag, or
> [^=!:'"/]| # leading punctuation, or
> ^ # beginning of line
> )
> (
> (?:https?://)| # protocol spec, or
> (?:www\.) # www.*
> )
> (
> [-\w]+ # subdomain or domain
> (?:\.[-\w]+)* # remaining subdomains or
> domain
> (?::\d+)? # port
> (?:/(?:[~\...@%=\(\)-]|(?:[,.;:'][^\s$]))*)* #
> path
> (?:\?[\...@%&=.;:-]+)? # query string
> (?:\#[\w\-]*)? # trailing anchor
> )
> ([[:punct:]]|<|$|) # trailing text
> }x unless const_defined?(:AUTO_LINK_RE)
>
> (from vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb)
>
> Although I'm not very good at regular expressions,
regexp are one of the things that remind me that I am a pathetic,
pathetic excuse for a hacker ;)
> I cannot spot { or } in
> the query string part or the path part of the expression. I think that is
> why auto_link does not take the complete url.
I think the problem is actually that after the #, only \w and \- are
counted as valid parts of the URL. So adding another punctuation (here
another \ ) after the # anchor (rare, but becoming more common) breaks
the regexp. I will file a rails bug and modify my plugin to use
markdown in the meantime (which is probably more user-friendly anyway,
now that I think about it...)
Luis
_______________________________________________
Tracks-discuss mailing list
[email protected]
http://lists.rousette.org.uk/mailman/listinfo/tracks-discuss