include("site.inc"); $template = new Page; $template->initCommon(); $template->displayHeader(); ?>
The build system can render the document into another format such
as HTML or PDF, using
make(1)
[2] and shell scripts. Authors need
no prior experience with either shell scripts
or a make(1)
.
Makefile
Each individual document has its own
Makefile
, which only needs to be a few
lines long. The document Makefile
content
is designed for cut and paste operations.
Example 2.2, “Sample Document Makefile” below shows the whole
Makefile
for a simple document with two
files and two translations.
DOCBASE = example-doc PRI_LANG = en_US DOC_ENTITIES = doc-entities define XMLFILES_template XMLFILES-${1} = ${1}/example-doc.xml \ ${1}/para.xml endef define find-makefile-common for d in docs-common ../docs-common ../../docs-common; do if [ -f $$d/Makefile.common ]; then echo "$$d/Makefile.common"; break; fi; done endef include $(shell $(find-makefile-common))
Example 2.2. Sample Document Makefile
Do not be concerned with some of the more complicated syntax
such as the XMLFILES_template
stanza. An
explanation for this template appears a few paragraphs
below.
Variable | Explanation |
---|---|
DOCBASE |
This variable contains the name for the main (parent) XML document. Follow convention by naming your document after the module name. |
PRI_LANG |
This variable contains the ISO code for the original
version of the document, such as
en_US . |
DOC_ENTITIES |
This variable contains a listing of any files containing entity definitions. The Fedora Documentation Project uses a special XML format to record document-specific entities, so they can be translated and built on the fly like any other XML document. An example is shown later in this guide. |
XMLFILES_template |
This template allows the build tools to work with the
document in multiple languages once it is translated. The
${1} marking is a
variable used to substitute the appropriate language. This
template is not terribly complicated. For a new module,
duplicate this section exactly except for the actual
filenames. Prepend the text ${1}/ , in place of the language
code directory name, to each filename in your document.
|
Files Exempt From Listing | |
---|---|
Do not include the document-specific entities XML file or
the |
The final section, beginning with define
,
locates the main Makefile.common
for the
build system. This Makefile.common
file
contains all the make(1) targets and
rules to actually build the document and the various archives.
rpm-info.xml
Each document module's primary language directory contains a
file called rpm-info.xml
. This file
contains document-specific metadata used to generate revision
history, copyright, and contributor information. It follows a
DTD specification included with the rest of the build system
tools.
[2] In Linux and Fedora documentation, references to
commands often include a number inside parentheses. This
number represents the section of
manpages that includes documentation
for that command. To read the manpage for
make(1)
, use the command man 1
make
.