App-Dapper
view release on metacpan or search on metacpan
# Initialize the current directory with a fresh skeleton of a site
$ dapper init
# Build the site
$ dapper build
# Serve the site locally at http://localhost:8000
$ dapper serve
# Rebuild the site if anything (source, layout dirs; config file) changes
$ dapper watch
# Get help on usage and switches
$ dapper -h
# Print the version
$ dapper -v
Additionally, B<Dapper> may be used as a perl module directly from a script. Examples:
use App::Dapper;
# Create a Dapper object
my $d = App::Dapper->new();
# Initialize a new website in the current directory
$d->init();
# Build the site
$d->build();
# Serve the site locally at http://localhost:8000
$d->serve();
=head1 DESCRIPTION
Dapper helps you build static websites. To get you started, you can use the
C<dapper init> command to initialize a directory. After running this command,
the following directory structure will be created:
_config.yml
_layout/
index.html
_source/
index.md
In that same directory, you may then build the site using the C<dapper build>
command, which will combine the source files and the layout files and place
the results in the output directory (default: C<_output>). After you build
the default site, you'll then have the following directory structure:
_config.yml
_layout/
index.html
_source/
index.md
_output/
index.html
To see what your website looks like, run the C<dapper serve> command which
will spin up a development webserver and serve the static files located in
the output directory (default: C<_output>) at L<http://localhost:8000>.
Now, let's walk through each file:
=over 4
=item B<_config.yml>
The configuration file is a YAML file that specifies key configuration
elements for your static website. The default configuration file is as
follows:
---
name : My Site
If you want to use a separate source, layout, or output directory, you may
specify it in this file. For instance:
---
name : My Site
source : _source
layout : _layout
output : _output
All of the configurations in this file are available in layout templates,
based on the Liquid template system. For instance, C<name> in the
configuration file may be used in a template as follows:
{{ site.name }}
=item B<_source/index.md>
A sample markdown file is available in the _source directory. Contents:
---
layout: index
title: Welcome
---
Hello world.
There are a few things to note about this file:
=over 4
=item 1. There is a YAML configuration block at the start of the file.
=item 2. The I<layout> configuration specifies which layout to use.
=item 3. The C<index> layout indicates that C<_layout/index.html> should be used.
=item 4. The C<title> configuration is the name of the post/page. It is optional.
=item 5. All of the configurations may be used in the corresponding layout file.
<!-- Example use of "name" in a layout file -->
<h1>{{ page.name }}</h1>
=back
( run in 0.612 second using v1.01-cache-2.11-cpan-39bf76dae61 )