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.