Perfect! Thank you very much for the quick response, makes more sense now.
On Mar 11, 12:18 pm, mdipierro <[email protected]> wrote: > A(...) is an object not a string. You can convert it to string with A > (...).xml() > > When an object is displayed {{=A(...)}} it is not scaped (but the > strings within are). When a string is dispalyed {{=A(...).xml()}} it > is escaped, unless marked up accordingly {{=XML(A(...).xml())}}. > > Hope this helps > > On Mar 11, 10:39 am, Michael Wales <[email protected]> wrote: > > > I have the following function in a module - this function performs a > > Regex search and attempts to replace matches with a link (generated > > with the A() helper). The regex and replacement is working correctly - > > if I change the value of the replace variable to something other than > > the A() helper, it works as I expect. Something with the A() helper is > > causing the return to not have the link at all (just the innerHTML > > from the link). > > > The module's function: > > > def link_wiki_tags(content, db, request): > > import re > > from gluon.html import A, URL > > pattern = re.compile('\[\[([\w\s:]+)\]\]') > > for match in pattern.findall(content): > > slug = slugify(match) > > if db(db.games.slug == slug).select(): > > replace = A(match, _href = URL(r = request, c = > > 'games', f = > > 'view', args = slug), _title = match) > > elif db(db.people.slug == slug).select(): > > replace = A(match, _href = URL(r = request, c = > > 'people', f = > > 'view', args = slug), _title = match) > > elif db(db.companies.slug == slug).select(): > > replace = A(match, _href = URL(r = request, c = > > 'companies', f = > > 'view', args = slug), _title = match) > > else: > > replace = match > > content = re.sub('\[\[' + match + '\]\]', replace, content) > > return content > > > How this module is called from the view: > > > {{= link_wiki_tags(person.content, db, request) }} > > > Sample Input: > > [[John Carmack]] is a developer for [[Quake Live]]. > > > Expected Output: > > <a href="/shooterhero/people/view/john-carmack" title="John > > Carmack">John Carmack</a> is a developer for <a href="/shooterhero/ > > games/view/quake-live" title="Quake Live">Quake Live</a>. > > > Actual Output: > > John Carmack is a developer for Quake Live. > > > As I mentioned, if I change the replace lines within the conditional > > checking for a database result, it will change the output as expected. > > I have change this replace variable to a string, as well as the URL() > > helper, both of which worked fine. In other words, I have narrowed > > this issue down to the A() helper. > > > Any help in getting the module's function to return the intended > > output would be appreciated. Is there some sort of filtering placed on > > module function returns (something that would strip out tags). --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---

