Show
Ignore:
Timestamp:
03/29/08 04:23:29 (7 years ago)
Author:
drry
Message:

lang/perl/Text-MicroMason?-SafeServerPages?/trunk/lib/Text/MicroMason/SafeServerPages.pm:

  • SYNOPSIS を少し修正しました。
  • text トークンの一致を少し減らしました。
  • ほか、雑多。
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Text-MicroMason-SafeServerPages/trunk/lib/Text/MicroMason/SafeServerPages.pm

    r8415 r8483  
    66 
    77my %block_types = ( 
    8         ''   => 'perl', # <% perl statements %> 
    9         '='  => 'expr', # <%= perl expression (HTML escaped) %> 
     8        ''     => 'perl', # <% perl statements %> 
     9        '='    => 'expr', # <%= perl expression (HTML escaped) %> 
    1010        'raw=' => 'expr', # <%= perl expression (raw) %> 
    11         '--' => 'doc',  # <%-- this text will not appear in the output --%> 
    12         '&'  => 'file', # <%& filename argument %> 
     11        '--'   => 'doc',  # <%-- this text will not appear in the output --%> 
     12        '&'    => 'file', # <%& filename argument %> 
    1313); 
    1414 
    15 my $re_eol = "(?:\\r\\n|\\r|\\n|\\z)"; 
    16 my $re_tag = "perl|args|once|init|cleanup|doc|text|expr|file"; 
     15my $re_eol = "(?:\\r?\\n|\\r|\\z)"; 
     16my $re_tag = "args|cleanup|doc|expr|file|init|once|perl|text"; 
    1717 
    1818sub lex_token { 
    19         # Blocks in <%word> ... <%word> tags. 
    20         /\G \<\%($re_tag)\> (.*?) \<\/\%\1\> $re_eol? /xcogs ? ( $1 => $2 ) : 
     19        # Blocks in <%word> ... </%word> tags. 
     20        /\G <% ($re_tag) \s*> (.*?) <\/% \1 \s*> $re_eol? /xcogs ? ( $1 => $2 ) : 
    2121 
    2222        # Blocks in <% ... %> tags. 
    23         /\G \<\% (\=|\&|raw=)? ( .*? ) \%\> /gcxs ? ( $block_types{$1 || ''} => ($1 eq '=') ? "encode_entities(do { $2 })" : $2 ) : 
     23        /\G <% ((?:(?:raw)?=|&)?) (.*?) %> /gcxs ? ( $block_types{$1} => ($1 eq '=') ? "encode_entities(do { $2 })" : $2 ) : 
    2424 
    2525        # Blocks in <%-- ... --%> tags. 
    26         /\G \<\% \-\- ( .*? ) \-\- \%\> /gcxs ? ( 'doc' => $1 ) : 
     26        /\G <% -- (.*?) -- %> /gcxs ? ( 'doc' => $1 ) : 
    2727 
    28         # Things that don't match the above 
    29         /\G ( (?: [^\<]+ | \<(?!\%) )? ) /gcxs ? ( 'text' => $1 ) : 
     28        # Things that don't match the above. 
     29        /\G ( (?: [^<] | <(?!\/?%) )+ ) /gcxs ? ( 'text' => $1 ) : 
    3030 
    31         # Lexer error 
     31        # Lexer error. 
    3232        () 
    3333} 
     
    5252=head1 SYNOPSIS 
    5353 
     54  use Text::MicroMason; 
    5455  use Text::MicroMason::SafeServerPages; 
    5556 
     
    6970  print $cr->( 
    7071    title => "Foo<bar>", 
    71     body  => "<div class='section'>aaaa</div>", 
     72    body  => qq{<div class="section">aaaa</div>}, 
    7273  ); 
    7374