NAME
App::Embra - build a site from parts
VERSION
version 0.001
DESCRIPTION
App::Embra collates your content into a static website.
ATTRIBUTES
plugins
The objects which will help you build your site. An array reference of objects which implement App::Embra::Role::Plugin.
files
Your site content. An array reference of App::Embra::File instances. Plugins add, remove, read, and alter files via this attribute.
METHODS
from_config_mvp_sequence
my $embra = App::Embra->from_config_mvp_sequence( $sequence );
Returns a new App::Embra
with its attributes & plugins taken from a Config::MVP::Sequence. Called by the command-line base class whenever embra is run.
add_plugin
$embra->add_plugin( $plugin );
Adds a plugin to /plugins
. $plugin
must implement App::Embra::Role::Plugin.
find_plugin
my $plugin = $embra->find_plugin( $class );
Returns the first plugin in /plugins
with class $class
. Returns an emtpy list if no plugin with class $class
is present
collate
$embra->collate;
Assembles your site. Plugins are called in this order:
gather
prune
transform
assemble
publish
For each of the types, all plugins which implement App::Embra::Role::File<Type>
have their <type>_files>
method called, in ths same order as they appear in /plugins
.
plugins_with
say for $embra->plugins_with( $rolename );
Returns all elements of /plugins
which implement $rolename
. Role names should be fully specified; as a shorthand, you can pass <-<relative_role_name
>> and it will be treated as if you had specified App::Embra::Role::<relative_role_name>
.
SEE ALSO
AUTHOR
Daniel Holz <dgholz@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2015 by Daniel Holz.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.