NAME

Statocles::Page::Document - Render document objects into HTML

DESCRIPTION

This page class takes a single document and renders it as HTML.

ATTRIBUTES

document

The document this page will render.

title

The title of the page.

author

The author of the page.

date

Get the date of this page by checking the document.

tags

The tag links for this document. An array of link objects. The most important attributes are:

    text    - The text of the link
    href    - The page of the link

data

The data hash for this page. Defaults to the data attribute from the Document.

disable_content_template

If true, disables the processing of the content as a template. This will improve performance if you're not using any template directives in your content.

This can be set in the document ("disable_content_template" in Statocles::Document), the application ("disable_content_template" in Statocles::App), or the site ("disable_content_template" in Statocles::Site).

next

The path to the next document if it is part of a list. Defaults to the "path" in Statocles::Document from "next_page" if it exists.

prev

The path to the previous document if it is part of a list. Defaults to the "path" in Statocles::Document from "prev_page" if it exists.

next_page

The Statocles::Page::Document instance of the next document if it is part of a list.

prev_page

The Statocles::Page::Document instance of the previous document if it is part of a list.

METHODS

content

    my $html = $page->content( %vars );

Generate the document HTML by processing template directives and converting Markdown. vars is a set of name-value pairs to give to the template.

vars

    my %vars = $page->vars;

Get the template variables for this page.

sections

    my @sections = $page->sections;
    my $number_of_sections = $page->sections;
    my @first_sections = $page->sections( 0, 1 );

Get a list of rendered HTML content divided into sections. The Markdown "---" marker divides sections. In scalar context, returns the number of sections. You can also pass the indexes of the sections you want as arguments.

For example, to loop over sections in the template:

    % for my $i ( 0..$page->sections ) {
        <%= $page->sections( $i ) %>
    % }

tags

    my @tags = $page->tags;

Get the list of tags for this page.

template

    my $tmpl = $page->template;

The template object for this page. If the document has a template, it will be used. Otherwise, the template attribute will be used.

layout

    my $tmpl = $page->layout;

The layout template object for this page. If the document has a layout, it will be used. Otherwise, the layout attribute will be used.