mirror of
https://github.com/opnsense/src.git
synced 2026-06-08 16:22:46 -04:00
1) Remove latex support.
2) Remove -ssi option, the -hdr and -ftr options are a more flexible solution. 3) Make docbook support work better. 4) Document docbook support. 5) Add an -e option to specify encoding for generated HTML files, eg -e EUC-JP adds an appropriate <META> tag in the <HEAD> element.
This commit is contained in:
parent
274e766c99
commit
bd7ecfc044
2 changed files with 89 additions and 126 deletions
|
|
@ -1,24 +1,28 @@
|
|||
.Dd September 9, 1995
|
||||
.Os FreeBSD 2.1
|
||||
.Dd May 9, 1997
|
||||
.Os FreeBSD 2.2
|
||||
.Dt SGMLFMT 1
|
||||
.Sh NAME
|
||||
.Nm sgmlfmt
|
||||
.Nd Formats SGML files tagged according to the linuxdoc DTD.
|
||||
.Nd Formats linuxdoc and DocBook SGML documents.
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl d Ar doctype
|
||||
.Fl f Ar format
|
||||
.Op Fl links
|
||||
.Op Fl ssi
|
||||
.Op Fl i Ar name ...
|
||||
.Op Fl links
|
||||
.Op Fl e Ar encoding
|
||||
.Op Fl hdr Ar file
|
||||
.Op Fl ftr Ar file
|
||||
.Ar file
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
command reads SGML files tagged according to the linuxdoc DTD,
|
||||
command reads SGML files tagged according to the linuxdoc or
|
||||
DocBook DTD,
|
||||
validates them using the
|
||||
.Xr sgmls 1
|
||||
parser and then converts them to the specified output format.
|
||||
The input file must include the following document type
|
||||
Linuxdoc input files must include the following document type
|
||||
declaration before any uncommented text:
|
||||
.Bd -literal -offset indent
|
||||
<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN">
|
||||
|
|
@ -28,6 +32,16 @@ Options for
|
|||
.Nm
|
||||
include the following:
|
||||
.Bl -tag -width Ds
|
||||
.It Fl d Ar doctype
|
||||
Specifies the SGML document type of the source file. Currently
|
||||
supported document types are
|
||||
.Ar linuxdoc
|
||||
and
|
||||
.Ar docbook .
|
||||
If no
|
||||
.Fl d
|
||||
option is specified, the default is
|
||||
.Ar linuxdoc .
|
||||
.It Fl f Ar format
|
||||
Determines the output format which can be one of the following:
|
||||
.Bl -tag -width Ds
|
||||
|
|
@ -52,13 +66,6 @@ Generates a single output file with the extension
|
|||
.Pa .koi8-r
|
||||
suitable for viewing on an terminal supporting the KOI8-R
|
||||
character encoding.
|
||||
.It Ar latex
|
||||
Generates a single output file with the extension
|
||||
.Pa .latex
|
||||
suitable for processing with LaTeX. Note that the LaTeX style
|
||||
file
|
||||
.Pa /usr/share/sgml/FreeBSD/linuxdoc.sty
|
||||
must be accessible to LaTeX for correct processing.
|
||||
.It Ar latin1
|
||||
Generates a single output file with the extension
|
||||
.Pa .latin1
|
||||
|
|
@ -121,43 +128,30 @@ links becoming invalid when the target document is modified.
|
|||
When creating a symbolic link, any occurrence of a slash (/) in label
|
||||
is replaced with percent (%), while any occurrence of a space is replaced
|
||||
with an underscore (_).
|
||||
.It Fl ssi
|
||||
.It Fl e Ar encoding
|
||||
When used with the
|
||||
.Fl f Ar html
|
||||
option, hooks will be placed to have an http server include a
|
||||
custom header and footer on the document using the server side
|
||||
include mechanism. This mechanism is supported by the Apache and
|
||||
NCSA http servers and possibly others. Included files are named
|
||||
.Pa file.hdr
|
||||
and
|
||||
.Pa file.ftr
|
||||
for the header and footer of the
|
||||
.Pa file.html .
|
||||
Other pages include file are named
|
||||
.Pa file.ftr1 ,
|
||||
.Pa file.ftr2 ...
|
||||
.Pa file.ftrn
|
||||
where the number corresponds to the depth of the file from
|
||||
.Pa file.html .
|
||||
option, specifies document encoding to use for the generated
|
||||
HTML files. If this option is not specified, iso-8859-1 is used.
|
||||
.It Fl hdr Ar file
|
||||
When used with the
|
||||
.Fl f Ar html
|
||||
option, the specified file will be inserted at the beginning of the
|
||||
body element of each generated HTML file.
|
||||
.It Fl ftr Ar file
|
||||
When used with the
|
||||
.Fl f Ar html
|
||||
option, the specified file will be inserted at the end of the
|
||||
body element of each generated HTML file.
|
||||
.El
|
||||
.Pp
|
||||
If the input file name ends with
|
||||
.Pa .sgml ,
|
||||
the extension may be omitted on the command line.
|
||||
In all cases, the output files are created in the current working
|
||||
directory.
|
||||
.Sh FILES
|
||||
.Pa /usr/share/sgml/FreeBSD/linuxdoc.dtd
|
||||
- the linuxdoc DTD.
|
||||
.Pp
|
||||
.Pa /usr/share/sgml/transpec
|
||||
- directory containing translation specification files for
|
||||
.Xr instant 1 .
|
||||
.Pp
|
||||
.Pa /usr/share/sgml/FreeBSD/linuxdoc.sty
|
||||
- the LaTeX style used in documents produced with the
|
||||
.Fl f Ar latex
|
||||
format option.
|
||||
.Sh SEE ALSO
|
||||
.Xr groff 1 ,
|
||||
.Xr instant 1 ,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# $Id$
|
||||
# $Id: sgmlfmt.pl,v 1.17.2.2 1997/02/07 02:47:27 jfieber Exp $
|
||||
|
||||
# Copyright (C) 1996
|
||||
# John R. Fieber. All rights reserved.
|
||||
|
|
@ -67,8 +67,10 @@ $SIG{'QUIT'} = 'sighandler';
|
|||
|
||||
sub usage {
|
||||
print "Usage:\n";
|
||||
print "sgmlfmt -f <format> [-i <namea> ...] [-links] [-ssi] file\n";
|
||||
print "where <format> is one of: ascii, html, koi8-r, latex, latin1, ps, roff\n";
|
||||
print "sgmlfmt [-d <doctype>] -f <format> [-i <namea> ...] [-links]\n";
|
||||
print " [-e encoding] [-hdr file] [-ftr file] file\n";
|
||||
print "where <doctype> is one of: linuxdoc (default), docbook.\n";
|
||||
print "and <format> is one of: ascii, html, koi8-r, latin1, ps, roff\n";
|
||||
}
|
||||
|
||||
#
|
||||
|
|
@ -157,22 +159,6 @@ sub do_groff {
|
|||
unlink("${fileroot}.trf");
|
||||
}
|
||||
|
||||
#
|
||||
# Generate LaTeX output
|
||||
#
|
||||
|
||||
sub gen_latex {
|
||||
@cleanfiles = (@cleanfiles, "${fileroot}.latex");
|
||||
open(outfile, ">$fileroot.latex");
|
||||
&sgmlparse(infile, "latex");
|
||||
while (<infile>) {
|
||||
print outfile;
|
||||
}
|
||||
close(infile);
|
||||
close(outfile);
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Generate HTML output.
|
||||
#
|
||||
|
|
@ -352,25 +338,18 @@ sub html2html {
|
|||
$st_parent[0] = -1;
|
||||
$t = $st_header[0];
|
||||
$t =~ s|<[a-zA-Z/][^>]*>||g;
|
||||
print tocfile "<HEAD>\n<TITLE>$t</TITLE>\n</HEAD>\n";
|
||||
print tocfile "<HEAD>\n<TITLE>$t</TITLE>\n" .
|
||||
$html_encoding . "</HEAD>\n";
|
||||
print tocfile "<H1>$st_header[0]</H1>\n";
|
||||
|
||||
$header[$st_ol[$sc]] =
|
||||
"$doctype\n<HTML>\n<HEAD>\n<TITLE>$t</TITLE>\n" .
|
||||
"</HEAD>\n$BODY\n";
|
||||
$html_encoding . "</HEAD>\n$BODY\n";
|
||||
$header[$st_ol[$sc]] .= $html_header;
|
||||
if ($opt_ssi) { # Server Side Include hook
|
||||
$header[$st_ol[$sc]] .=
|
||||
"<!--#include virtual=\"./$fileroot.hdr\" -->";
|
||||
}
|
||||
$header[$st_ol[$sc]] .= "\n<H1>$st_header[0]</H1>\n";
|
||||
|
||||
$footer[$st_ol[$sc]] = "\n";
|
||||
$footer[$st_ol[$sc]] .= $html_footer;
|
||||
if ($opt_ssi) { # Server Side Include hook
|
||||
$footer[$st_ol[$sc]] .=
|
||||
"<!--#include virtual=\"./$fileroot.ftr\" -->";
|
||||
}
|
||||
$footer[$st_ol[$sc]] .= "\n</BODY>\n</HTML>\n";
|
||||
last tagsw;
|
||||
}
|
||||
|
|
@ -393,19 +372,12 @@ sub html2html {
|
|||
$t = $_;
|
||||
$t =~ s|<[a-zA-Z/][^>]*>||g;
|
||||
$header[$st_ol[$sc]] =
|
||||
"$doctype\n<HTML>\n<HEAD>\n<TITLE>$t</TITLE>\n</HEAD>\n$BODY\n";
|
||||
"$doctype\n<HTML>\n<HEAD>\n<TITLE>$t</TITLE>\n" .
|
||||
$html_encoding . "</HEAD>\n$BODY\n";
|
||||
$header[$st_ol[$sc]] .= $html_header;
|
||||
if ($opt_ssi) { # Server Side Include hook
|
||||
$header[$st_ol[$sc]] .=
|
||||
"<!--#include virtual=\"./$fileroot.hdr$st_ol[$sc]\" -->";
|
||||
}
|
||||
$header[$st_ol[$sc]] .= "\n$navbar[$st_ol[$sc]]\n<HR NOSHADE>\n";
|
||||
$footer[$st_ol[$sc]] = "<HR NOSHADE>\n$navbar[$st_ol[$sc]]\n";
|
||||
$footer[$st_ol[$sc]] .= $html_footer;
|
||||
if ($opt_ssi) { # Server Side Include hook
|
||||
$footer[$st_ol[$sc]] .=
|
||||
"<!--#include virtual=\"./$fileroot.ftr$st_ol[$sc]\" -->";
|
||||
}
|
||||
$footer[$st_ol[$sc]] .= "\n</BODY>\n</HTML>\n";
|
||||
}
|
||||
|
||||
|
|
@ -635,7 +607,6 @@ sub navbar {
|
|||
#
|
||||
|
||||
sub docbook_html {
|
||||
$decl = "/usr/share/sgml/docbook/docbook.dcl";
|
||||
@cleanfiles = (@cleanfiles, "${fileroot}.html");
|
||||
open (outfile, ">$fileroot.html");
|
||||
&sgmlparse(infile, "html");
|
||||
|
|
@ -676,7 +647,7 @@ sub extlink {
|
|||
|
||||
sub main {
|
||||
# Check arguments
|
||||
if (!&NGetOpt('d=s', 'f=s', 'links', 'ssi', 'i:s@', 'hdr=s', 'ftr=s')) {
|
||||
if (!&NGetOpt('d=s', 'f=s', 'links', 'i:s@', 'hdr=s', 'ftr=s', 'e=s')) {
|
||||
&usage;
|
||||
exit 1;
|
||||
}
|
||||
|
|
@ -691,63 +662,61 @@ sub main {
|
|||
exit 1;
|
||||
}
|
||||
|
||||
# Generate output
|
||||
if ($opt_d eq 'docbook') {
|
||||
# Figure out which DTD we are using
|
||||
if ($opt_d eq "docbook") {
|
||||
$dtd = "docbook";
|
||||
$decl = "/usr/share/sgml/docbook/docbook.dcl";
|
||||
if ($opt_f eq 'html') {
|
||||
if ($opt_hdr) {$instantopts .= " -D \"inchdr=${opt_hdr}\"";}
|
||||
if ($opt_ftr) {$instantopts .= " -D \"incftr=${opt_ftr}\"";}
|
||||
&docbook_html();
|
||||
}
|
||||
else {
|
||||
if ($opt_f eq "") {
|
||||
print "An output format must be specified with the -f
|
||||
option.\n";
|
||||
}
|
||||
else {
|
||||
print "\"$opt_f\" is an unknown output format.\n";
|
||||
}
|
||||
&usage;
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$dtd = "linuxdoc";
|
||||
$decl = "/usr/share/sgml/FreeBSD/linuxdoc.dcl";
|
||||
if ($opt_f eq 'html') {
|
||||
}
|
||||
|
||||
# Generate the output
|
||||
if ($opt_f eq 'html') {
|
||||
# Set the character encoding
|
||||
if (! $opt_e) {
|
||||
$opt_e = "iso-8859-1";
|
||||
}
|
||||
$html_encoding = "<META HTTP-EQUIV=\"Content-Type\" " .
|
||||
"CONTENT=\"text/html; charset=" . $opt_e . "\">\n";
|
||||
|
||||
if ($dtd eq "docbook") {
|
||||
if ($opt_hdr) {$instantopts .= " -D \"inchdr=${opt_hdr}\"";}
|
||||
if ($opt_ftr) {$instantopts .= " -D \"incftr=${opt_ftr}\"";}
|
||||
&docbook_html();
|
||||
}
|
||||
else {
|
||||
if ($opt_hdr) {$html_header = &gethf($opt_hdr);}
|
||||
if ($opt_ftr) {$html_footer = &gethf($opt_ftr);}
|
||||
&gen_html();
|
||||
}
|
||||
elsif ($opt_f eq 'latex' || $opt_f eq 'latex') {
|
||||
&gen_latex();
|
||||
}
|
||||
elsif ($opt_f eq 'roff') {
|
||||
&gen_roff();
|
||||
}
|
||||
elsif ($opt_f eq 'ascii') {
|
||||
&do_groff("ascii", "| col");
|
||||
}
|
||||
elsif ($opt_f eq 'latin1') {
|
||||
&do_groff("latin1", "| col");
|
||||
}
|
||||
elsif ($opt_f eq 'koi8-r') {
|
||||
&do_groff("koi8-r", "| col");
|
||||
}
|
||||
elsif ($opt_f eq 'ps') {
|
||||
&do_groff("ps", "");
|
||||
&gen_html();
|
||||
}
|
||||
}
|
||||
elsif ($opt_f eq 'roff') {
|
||||
&gen_roff();
|
||||
}
|
||||
elsif ($opt_f eq 'ascii') {
|
||||
&do_groff("ascii", "| col");
|
||||
}
|
||||
elsif ($opt_f eq 'latin1') {
|
||||
&do_groff("latin1", "| col");
|
||||
}
|
||||
elsif ($opt_f eq 'koi8-r') {
|
||||
&do_groff("koi8-r", "| col");
|
||||
}
|
||||
elsif ($opt_f eq 'ps') {
|
||||
&do_groff("ps", "");
|
||||
}
|
||||
else {
|
||||
if ($opt_f eq "") {
|
||||
print "An output format must be specified with the -f
|
||||
option.\n";
|
||||
}
|
||||
else {
|
||||
if ($opt_f eq "") {
|
||||
print "An output format must be specified with the -f option.\n";
|
||||
}
|
||||
else {
|
||||
print "\"$opt_f\" is an unknown output format.\n";
|
||||
}
|
||||
&usage;
|
||||
exit 1;
|
||||
print "\"$opt_f\" is an unknown output format.\n";
|
||||
}
|
||||
&usage;
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue