.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "PFT-MAKE 1" .TH PFT-MAKE 1 "2017-09-25" "perl v5.28.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" pft make \- Build the PFT website .SH "SYNOPSYS" .IX Header "SYNOPSYS" pft make [options] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command builds all content within your \f(CW\*(C`ROOT/content\*(C'\fR directory into \&\s-1HTML\s0 form. .PP The content will be first organized into an internal graph representation, so that each entry knows which other entries refer to it. Each node of the graph is then mapped on a \s-1HTML\s0 template, and and saved in the \&\f(CW\*(C`ROOT/build\*(C'\fR directory. During this process unresolved links are notified to the user via standard error. .SS "Templates and expansions" .IX Subsection "Templates and expansions" \&\s-1HTML\s0 templates must be stored in the \f(CW\*(C`ROOT/templates\*(C'\fR directory. .PP The template engine in use is \f(CW\*(C`Template::Alloy\*(C'\fR. In a nutshell, it allows to expand simple code blocks within a \s-1HTML\s0 (or text) skeleton, as for example in: .PP .Vb 1 \& [% site.title %] .Ve .PP Loops and conditionals are also supported. The library is well documented, so you may consult the relevant references for learning the supported mini-language. .PP You may take advantage of the default templates which are installed by default during the initialization process (\f(CW\*(C`pft init\*(C'\fR): .ie n .IP """default.html""" 4 .el .IP "\f(CWdefault.html\fR" 4 .IX Item "default.html" is a simple but reasonable template suitable for any page; .ie n .IP """dump_page.html""" 4 .el .IP "\f(CWdump_page.html\fR" 4 .IX Item "dump_page.html" is a test template which gets expanded with all the available variables for each page. This constitutes a useful test, and a reference for available keys if you want to build your own template. .PP More default installed templates may be added in future. .PP If you are writing a template, keep in mind they are expected to be encoded as by locale. .PP You are also encouraged to share your own templates: any help is appreciated! Please encode your shared templates as utf\-8. .SS "The output website" .IX Subsection "The output website" The output encoding depends on a configuration key in \f(CW\*(C`pft.yaml\*(C'\fR (see the manual of \f(CW\*(C`pft init\*(C'\fR). The template is supposed to define the encoding in a proper way, that is by making use of the \f(CW\*(C`[% site.encoding %]\*(C'\fR key in the \s-1HTML\s0 header: .PP .Vb 5 \& \& \& ... \& .Ve .PP The result of a build is a group of \fIrelocatable\fR \s-1HTML\s0 pages: pages are referring each other via relative links. This means that the generated site will work fine even if moved or copied remotely on another system. .PP Besides the generated site, the \f(CW\*(C`ROOT/build\*(C'\fR directory will also contain links to everything under the \f(CW\*(C`ROOT/inject\*(C'\fR. This meets the common requirement of placing additional files in the root directory of online websites (typical case being the \f(CW\*(C`.htaccess\*(C'\fR file of Apache). .SH "OPTIONS" .IX Header "OPTIONS" .IP "\-\-help" 4 .IX Item "--help" Show this guide