[pmwiki-users] capital first letters
    Joachim Durchholz 
    jo at durchholz.org
       
    Fri Jul  1 01:38:15 CDT 2005
    
    
  
Patrick R. Michaud wrote:
> On Thu, Jun 30, 2005 at 02:07:02PM +0100, Hans wrote:
> 
>>## firstcap markup
>>Markup('firstcap','block','/^([[:upper:]])(.*)$/',
>>                '<:block><p class=\'firstcap\'>$1$2</p>');
> 
> Another way to do this is to actually look for the <p> tags
> after things have been converted into paragraphs and styled.
Oh, niiiice!
 > Thus:
> 
> Markup('firstcap', '>%%',
>   '/<p>((<[^>]*>)*[[:upper:]])/',
>   '<p class=\'firstcap\'>$1');
> 
> This even handles the case where other tags have been inserted between
> the initial paragraph tag and the first letter of the paragraph.
Slight improvement for the second line:
   '/<p>((<([^"\'>]|"[^"]*"|\'[^\']*\')>)*[[:upper:]])/',
This should properly handle things like
   <img title="foo -> bar">
;-p
One other generalisation should be done IMHO: Some tags should prevent 
capitalisation. I can imagine stuff like <h1>, ... <h6>, <ul>, etc.
Not sure how that could be best done though; things that spring to my 
mind are "lookahead assertion" (which may be entirely unnecessary 
though), "do we look for tags that we want to skip, or do we look for 
tags that we *don't* want to skip?", and "the tag list should be 
separated out into a separate PHP variable, so that people who aren't 
regex experts can make use of that".
Regards,
Jo
    
    
More information about the pmwiki-users
mailing list