App-FuguWeb
view release on metacpan or search on metacpan
lib/App/FuguWeb/Config.pod view on Meta::CPAN
the C<keys> name is not one segment below the source directory, names a
directory of the path, names the staging directory of the build, or
names a file that the site already holds;
=item *
the C<keys> block names a C<contact> without an C<expires>, or the
other way round, or an C<expires> that RFC 3339 does not hold;
=item *
the C<keys> block names a C<url> that is not absolute;
=item *
the key directory holds no C<SHA256>, no C<SHA256.sig>, or a symlink;
=item *
a C<key> block names no file, more than one file, or a setting that no
block defines;
=item *
a C<key> block names a status outside C<current>, C<next> and
C<retired>, or a second block declares the same key;
=item *
a C<key> block of a signify key names an C<email> or a C<fingerprint>,
which describe an OpenPGP key;
=item *
an C<email> is not a local part and a domain, or a C<fingerprint> is
not 40 hexadecimal characters.
=back
L<App::FuguWeb::Keys> documents the blocks and the published tree.
=head2 root, path
The project root, and the F<.fuguwebrc> that this object read.
=head2 source_path
my $dir = $config->source_path;
my $file = $config->source_path('footer.body.html');
The source directory, or one file in it.
=head2 site, lang, out_dir, source_dir, entry, module_root, mandoc_os, man_url, stylesheet
The settings. C<site> is the only one a project must give.
site (required) the name in the title of every page,
and the text of the header link
lang en the lang attribute of the document
out_dir web/build where the build writes
source_dir web the fragments and the assets
entry index.html the front page, and the header link
module_root lib the prefix a module name drops
(a trailing slash is dropped)
mandoc_os OpenBSD the mandoc -I os=, which pins the footer
man_url https://man.openbsd.org/ where a remote .Xr goes
stylesheet (searched) the base stylesheet
C<stylesheet> overrides the search that L<Fugu::File/share_path> does.
The search finds the sheet in a checkout and in an installed
App-FuguWeb distribution alike, so most projects never set it.
The C<pod2man> C<--center> and C<--release> values are not settings.
They are constants of L<App::FuguWeb::Render>: they pin the C<pod2man>
output so the site does not vary with the build host.
=head2 nav
The navigation, in file order. Each entry is a hashref with C<href> and
C<label>.
=head2 pages
The pages, in file order. Each entry is a hashref:
file the name of the page in the output
title the title, which defaults to the file name
source one of body, markdown or index
value what the source names, and undef for index
unlinked true when no other page links to it
=head2 groups
The manual groups, in file order. Each entry is an
C<App::FuguWeb::Config::Group>, and the two block types interleave as
the description wrote them.
=head2 inventory
Every path that the output directory must hold after a build: the
pages of the description, one page for each manual of each group, the
stylesheet, the assets, and the key directory. The build and the
checks read the same list, so the two can never disagree about what
the site holds.
A site is one flat directory, so most of the list holds file names.
The key directory is the one part below the root, so its entries hold
a solidus.
=head2 keys_dir, keys_org, keys_contact, keys_expires, keys_url
The settings of the C<keys> block. Each one is C<undef> when the
description holds no such block, so C<keys_dir> is the test for one.
keys_dir (the block name) the directory below source_dir
keys_org (required) the first field of every key name
keys_contact the Contact field of security.txt
keys_expires the Expires field of security.txt
keys_url the published prefix of the
directory, with no trailing slash
( run in 0.763 second using v1.01-cache-2.11-cpan-364913b4093 )