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: <div id="main"><p>Something, huh?</p></div>
        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:

        <div><h1>Hi there!</h1><p>Nice day, isn't it?</p></div>

    Element attributes are handled by specifying them with "gets". e.g.:

        div { id gets 'main'; 'Hi!' }

    Generates:

        <div id="main">Hi!</div>

    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
    <http://github.com/RsrchBoy/html-builder> and may be cloned from
    <git://github.com/RsrchBoy/html-builder.git>

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 <cweyl@alumni.drew.edu>

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

