Markdent::Handler::HTMLStream::Document - Turns Markdent events into a complete HTML document


Markdent documentation Contained in the Markdent distribution.

Index


Code Index:

NAME

Top

Markdent::Handler::HTMLStream::Document - Turns Markdent events into a complete HTML document

VERSION

Top

version 0.17

DESCRIPTION

Top

This class takes an event stream and turns it into a complete HTML document.

METHODS

Top

This role provides the following methods:

Markdent::Handler::HTMLStream::Document->new(...)

This method creates a new handler. It accepts the following parameters:

* title => $title

The title of the document. This is required.

* output => $fh

The file handle to which HTML output will be streamed. If you want to capture the output in a string, you can open a filehandle to a string:

  my $buffer = q{};
  open my $fh, '>', \$buffer;

ROLES

Top

This class does the Markdent::Role::HTMLStream, Markdent::Role::EventsAsMethods, and Markdent::Role::Handler roles.

BUGS

Top

See Markdent for bug reporting details.

AUTHOR

Top

Dave Rolsky <autarch@urth.org>

COPYRIGHT AND LICENSE

Top


Markdent documentation Contained in the Markdent distribution.

package Markdent::Handler::HTMLStream::Document;
BEGIN {
  $Markdent::Handler::HTMLStream::Document::VERSION = '0.17';
}

use strict;
use warnings;

use Markdent::Types qw( Str );

use namespace::autoclean;
use Moose;
use MooseX::SemiAffordanceAccessor;

with 'Markdent::Role::HTMLStream';

has title => (
    is       => 'ro',
    isa      => Str,
    required => 1,
);

my $Doctype = <<'EOF';
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
EOF

sub start_document {
    my $self = shift;

    $self->_output()->print($Doctype);
    $self->_stream()->tag('html');
    $self->_stream()->tag('head');
    $self->_stream()->tag('title');
    $self->_stream()->text( $self->title() );
    $self->_stream()->tag('_title');
    $self->_stream()->tag('_head');
    $self->_stream()->tag('body');
}

sub end_document {
    my $self = shift;

    $self->_stream()->tag('_body');
    $self->_stream()->tag('_html');
}

__PACKAGE__->meta()->make_immutable();

1;

# ABSTRACT: Turns Markdent events into a complete HTML document




__END__