NAME HTML::Builder - A declarative approach to HTML generation VERSION This document describes 0.001 of HTML::Builder - released February 14, 2012 as part of HTML-Builder. SYNOPSIS use HTML::Builder ':minimal'; # $html is:

Something, huh?

my $html = div { id gets 'main'; p { 'Something, huh?' } }; DESCRIPTION A quick and dirty set of helper functions to make generating small bits of HTML a little less tedious. FUNCTIONS our_tags A unique, sorted list of the HTML tags we know about (and handle). tag($tag_name, $code_ref) The actual function responsible for handling the tagging. All of the helper functions pass off to tag() (e.g. "div()" is "sub div(&) { unshift 'div'; goto \&tag }"). USAGE Each supported HTML tag takes a coderef, executes it, and returns the output the coderef writes to STDOUT with the return value appended. That is: div { say h1 { 'Hi there! }; p { "Nice day, isn't it?" } } Generates:

Hi there!

Nice day, isn't it?

Element attributes are handled by specifying them with "gets". e.g.: div { id gets 'main'; 'Hi!' } Generates:
Hi!
gets may be specified multiple times, for multiple attributes. EXPORTED FUNCTIONS Each tag we handle is capable of being exported, and called with a coderef. This coderef is executed, and the return is wrapped in the tag. Attributes on the tag can be set from within the coderef by using gets, a la "id gets 'foo'". Export Groups all Everything. Well, what @CGI::EXPORT_TAGS{qw{ :html2 :html3 :html4 }} thinks is everything, at any rate. This isn't, perhaps, optimal, but I haven't run into any issues with it yet. That being said, I'm open to changing our tags list, and where it's generated from. minimal A basic set of the most commonly used tags: h1..h4 div p img script br ul ol li style a moose_safe Everything, except tags that would conflict with Moose sugar (currently "meta"). ACKNOWLEDGMENTS This package was inspired by Template::Declare::Tags... In particular, our "gets::AUTOLOAD" is pretty much a straight-up copy of Template::Declare::Tags' "is::AUTOLOAD", with some modifications. We also pass off to HTML::Tiny, and allow it to do the work of actually generating the output. Thanks! :) SEE ALSO Please see those modules/websites for more information related to this module. * CGI (in particular, %CGI::EXPORT_TAGS) * HTML::Tiny * Template::Declare::Tags SOURCE The development version is on github at and may be cloned from BUGS Please report any bugs or feature requests on the bugtracker website https://github.com/RsrchBoy/html-builder/issues When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature. AUTHOR Chris Weyl COPYRIGHT AND LICENSE This software is Copyright (c) 2012 by Chris Weyl. This is free software, licensed under: The GNU Lesser General Public License, Version 2.1, February 1999