On Jan 24, 2010, at 11:05 AM, mdipierro wrote: > That's a good point. > > I also think the IS_SLUG should not do validation, just filtering. Or > perhaps have an option to
The patch I sent is filtering-only, sort of a super IS_LOWER(). The main use for it in a form, I think, is to combine IS_SLUG with IS_NOT_IN_DB, since slugs want to be unique. > > def IS_SLUG(): > def __init__(check=False,error_message=....): > self.check=check > self.error_message=error_message > @staticmethod > def slugify(value): > ... > def __call__(self,value): > if check and not value==self.sugify(value): > return (value,self.error_message) > return (self.slugify(value),None) > > On Jan 24, 12:39 pm, Jonathan Lundell <[email protected]> wrote: >> 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 at http://groups.google.com/group/web2py?hl=en.

