HTML::MasonX::Free::Escape - default HTML escaping with an escape hatch


version 0.006


First, when you set up your compiler, you pass:

  default_escape_flags => 'html'

Then, when you set up your interpreter, you redefine the html handler(s):

  use HTML::MasonX::Free::Escape qw(html_escape);
  $interp->set_escape('h' => \&html_escape);
  $interp->set_escape('html' => \&html_escape);

Finally, for good measure, get html_hunk imported to your Commands package:

  package HTML::Mason::Commands { use HTML::MasonX::Free::Escape 'html_hunk' }

Now, by default, when you do this in a template:

  The best jelly is <% $flavor %> jelly.

...the $flavor will be HTML entity escaped. If you want to deal with variables that are not going to be escaped, you use html_hunk:

  Here's some math: <% html_hunk( $eqn->as_mathml ) %>

Even though it's called html_hunk, it just means "don't HTML escape this." If you put in some XML, you won't get in trouble. The result of calling html_hunk is an object that will throw an exception if stringified. This prevents you from making mistakes like:

  my $target = html_hunk("world");
  my $greet  = "Hello, $target";


Ricardo Signes <>


This software is copyright (c) 2016 by Ricardo Signes.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.