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.