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 )