NAME¶
hxincl - expand included HTML or XML files
SYNOPSIS¶
hxincl [
-x ] [
-f ] [
-s name=subst ] [
-s name=subst ]... [
-b base ] [
file-or-URL ]
hxincl -M target [
-s name=subst ] [
-s name=subst ]... [
-b base ] [
-G ] [
file-or-URL ]
DESCRIPTION¶
Without
-M, the
hxincl command copies an HTML or XML file to
standard output, looking for comments with a certain structure. Such a comment
is replaced by the file whose name is given as the attribute of the directive.
For example:
...<!-- include "foo.html" -->...
will be replaced by the content of the file
foo.html.
The comment is replaced by
<!-- begin-include "foo.html" -->
before the included text and
<!-- end-include "foo.html" -->
after it. These comments make it possible to run
hxincl on the resulting
file again to update the inclusions.
Single quotes are allowed instead of double quotes. And if the file name
contains no spaces, the quotes may also be omitted.
With
-M, the
hxincl command outputs a line of dependencies that is
suitable for inclusion in a Makefile. The
target is the target of the
Makefile rule and
hxincl will list after the ':' all the files that are
included, recursively. E.g., the result of
hxincl -M myfile.html inputfile
might be
myfile.html: foo.html bar.html
OPTIONS¶
The following options are supported:
- -x
- Use XML conventions: empty elements are written with a slash at the end:
<IMG />.
- -b base
- Sets the base URL for resolving relative URLs. By default the file given
as argument is the base URL.
- -f
- Removes the comments after including the files. This means hxincl
connot be run on the resulting file later to update the inclusions.
(Mnemonic: final or frozen.)
- -s name=substitution
- Include a different file than the one mentioned in the directive. If the
comment is
<!-- include "name" -->
the file substitution is included instead. And if the file name in
the comment includes a variable called name delimited by %, e.g.,
<!-- include "xxx-%name%" -->
then %name% is replaced by substitution and thus the file
xxx-substitution is included. The option -s may occur
multiple times. %-delimited variables are expanded recursively, i.e., if
the substitution text contains a variable, that variable is expanded, too.
E.g., if the two options -s name=%p1%.rrr and -s p1=subst
are given, then the "xxx-%name%" will expand to
"xxx-subst.rrr".
- -M target
- Instead of outputing the input file with all inclusions expanded, output
just the list of all files that the input includes, recursively, in the
form of a rule that is suitable for a Makefile. The target is
printed as the target of that rule.
- -G
- Suppress error messages if a file to include cannot be found. (Only with
-M.)
OPERANDS¶
The following operand is supported:
- file-or-URL
- The name of an HTML or XML file or the URL of one. If absent, standard
input is read instead.
EXIT STATUS¶
The following exit values are returned:
- 0
- Successful completion.
- > 0
- An error occurred in the parsing of one of the HTML or XML files.
ENVIRONMENT¶
To use a proxy to retrieve remote files, set the environment variables
http_proxy or
ftp_proxy. E.g.,
http_proxy="http://localhost:8080/"
BUGS¶
Assumes UTF-8 as input. Doesn't expand character entities. Instead pipe the
input through
hxunent(1) and
asc2xml(1) to convert it to UTF-8.
Remote files (specified with a URL) are currently only supported for HTTP.
Password-protected files or files that depend on HTTP "cookies" are
not handled. (You can use tools such as
curl(1) or
wget(1) to
retrieve such files.)
SEE ALSO¶
asc2xml(1),
hxnormalize(1),
hxnum(1),
hxprune(1),
hxtoc(1),
hxunent(1),
xml2asc(1),
UTF-8 (RFC
2279)