<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>Escapes page</TITLE>
</HEAD><BODY>
<H1>Escapes page</H1>

<h2>Texte non échappé</h2>
<pre>
<% $var %>
</pre>

<h2>Texte avec différentes méthodes d'échappement</h2>
<h3>| n</h3>
<% $var | n %>

<h3>| h</h3>
<% $var | h %>

<h3>| p</h3>
<% $var | p %>

<h3>| j</h3>
<script>
var echap = '<% $var | j %>';
document.write(echap);
</script>

<h3>| r</h3>
<% $var | r %>

<h3>| u</h3>
<a href="<% $var | u %>"><% $var | u %></a>

<h3>| tronque_chapeau</h3>
<% $var | tronque_chapeau %>

<h2>Autres encodages non Mason</h2>
<h3>MIME::QuotedPrint</h3>
<% encode_qp($var) %>

</BODY></HTML>


<%once>
    use MIME::QuotedPrint;
</%once>
<%init>
    my $var = <<EOF;
Ce texte contient du *gras*, de /l'italique/ et du <u>HTML</u>.
J'ai aussi rejouté un caractère "égal" : "="
Il contient aussi deux sauts de ligne.
EOF

    # cf. Manual page HTML::Mason::Devel(3pm) / User-defined Escapes
    $m->interp->set_escape(
        'tronque_chapeau' => sub {
            return unless defined ${ $_[0] };
            # A partir du début de la chaîne (^ et s final),
            # on prend au moins 20 caractères ({20,}), au plus court (?),
            # suivi d'un espace (\s), et on ne garde que jusqu'avant l'espace...
            # La chaine est modifiée in-place
            ${ $_[0] } =~ s{^(.{22,}?) .*}{$1...}s;
        }
    );
</%init>
