On Jan 24, 2010, at 9:53 AM, mdipierro wrote: > I do not know about this. What do other people think? > I do not have a strong opinion either way.
I think that slug is a fairly common term. WordPress uses it, for example. And if we make it a validator (I'm about to submit a patch), it definitely can't be IS_URL(). > > On Jan 24, 11:34 am, pistacchio <[email protected]> wrote: >> I'm ok with slugify, but the reason i chose "urlify" is that slug is >> not really a mvc term. It comes from the journalistic jargon and it's >> been adopted by the original Django developers that were working on a >> framework to build a newspaper site on. >> >> I don't think that "slug", outside the Django community, is a standard >> term to name such url-friendly strings. More often they're referred to >> as "pretty urls". >> >> On 24 Gen, 17:55, Jonathan Lundell <[email protected]> wrote: >> >>> On Jan 24, 2010, at 8:30 AM, mdipierro wrote: >> >>>> I will take a patch. ;-) >> >>> I'll contribute one. Any objection to changing the name to "slugify", since >>> it's not really urlifying its input? >> >>>> On Jan 23, 7:03 pm, Jonathan Lundell <[email protected]> wrote: >>>>> urlify needs a comment to say explicitly what its intention is. That's >>>>> partly because it suppresses quite a few characters that are normally >>>>> legal in URLs, which is confusing. >> >>>>> Also, >> >>>>>> def urlify(s, max_length=80): >>>>>> s = s.lower() >>>>>> # string normalization, eg è => e, ñ => n >>>>>> s = unicodedata.normalize('NFKD', s.decode('utf-8')).encode('ASCII', >>>>>> 'ignore') >>>>>> # strip entities >>>>>> s = re.sub('&\w+;', '', s) >> >>>>> this should be '&\w+?;' (that is, non-greedy). Otherwise, a string like >>>>> '&whatever&' will be completely eliminated. >> >>>>>> # strip everything but letters, numbers, dashes and spaces >>>>>> s = re.sub('[^a-z0-9\-\s]', '', s) >>>>>> # replace spaces with dashes >>>>>> s = s.replace(' ', '-') >>>>>> # strip multiple contiguous dashes >>>>>> s = re.sub('-{2,}', '-', s) >>>>>> # strip dashes at the beginning and end of the string >>>>>> s = s.strip('-') >>>>>> # ensure the maximum length >>>>>> s = s[:max_length-1] >>>>>> return s >> >>>>> (Stylistically, I think it'd be more readable if the comments were >>>>> appended to the relevant code lines.) >> >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "web2py-users" 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 >>>> athttp://groups.google.com/group/web2py?hl=en. >> >> > > -- > You received this message because you are subscribed to the Google Groups > "web2py-users" 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. > -- You received this message because you are subscribed to the Google Groups "web2py-users" 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.

