recognize URLs with non-ASCII characters
Ticket
+issues
I think this is a problem line: UNRESERVED_NO_ENDING = "-_.~*'(#{ALNUM}"
(in uri.rb)
In my current working Wagn-based wiki all the info cards are named in Russian (UTF-8 encoding). All the URLs are recognized fine. But when attempting to create a Cardtype card (which are associated with the Ruby classes) a non-ASCII name gives an error:
NameError in CardController#create
wrong constant name Проба
Very interesting. Definitely want to fix this.
As a workaround, if you create the cardtype card in English and then rename it to Russian. You may also be able to edit the codename of broken cardtypes through the interface (and give it an english codename).
Are you a coder, Mike? If so, the following code is what generates the code name. If not, then at least I'll have some helpful notes here. (though we may eventually move this to a new ticket: internationalize codenames):
Here's what generates the codename (in lib/card_lib/module_methods.rb).
def generate_codename_for(cardname)
codename = cardname.gsub(/^W+|W+$/,'').gsub(/W+/,'_').camelize
.....
If that code is doing odd things to unicode characters, it could be the source of the problem, but it's not egregiously over-englished.
If the problem is further up the chain, we should be able to address it in a soon-to-come refactoring that will change how these codenames are handled.
--Ethan McCutchen.....Mon Apr 04 08:50:23 -0700 2011
May help:
http://daringfireball.net/2010/07/improved_regex_for_matching_urls
i doubt this is a problem any more since cardtypes no longer have their own ruby classes.
Yes, should be checked and closed. It seems like there could be issues with the chunk matchers, but maybe that was fixed as well.
Now, it only uses codenames for classes (actually modules), so you could only create this type of problem at the code level by trying to create a card with a bad codename.
Yep. it's marked as testing. would be good to go through all "testing" tickets at some point.