diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2004-06-09 12:57:31 +0000 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2004-06-09 12:57:31 +0000 |
commit | fc1b1679cce3a09d066f82a219231a36b4333f77 (patch) | |
tree | 3b1c3e778a9aaeb30769f79bf4c3ff60b57322b9 /doc | |
parent | 1dcdb069846d2cb5fd84fd6758db88cbbf3e85bb (diff) | |
download | mdk-fc1b1679cce3a09d066f82a219231a36b4333f77.tar.gz mdk-fc1b1679cce3a09d066f82a219231a36b4333f77.tar.bz2 |
initial revision
Diffstat (limited to 'doc')
-rwxr-xr-x | doc/gendocs.sh | 274 | ||||
-rw-r--r-- | doc/gendocs_template | 101 |
2 files changed, 375 insertions, 0 deletions
diff --git a/doc/gendocs.sh b/doc/gendocs.sh new file mode 100755 index 0000000..f233e1c --- /dev/null +++ b/doc/gendocs.sh @@ -0,0 +1,274 @@ +#!/bin/sh +# gendocs.sh -- generate a GNU manual in many formats. This script is +# mentioned in maintain.texi. See the help message below for usage details. +# $Id: gendocs.sh,v 1.1 2004/06/09 12:57:31 jao Exp $ +# +# Copyright (C) 2003, 2004 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, you can either send email to this +# program's maintainer or write to: The Free Software Foundation, +# Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA. +# +# Original author: Mohit Agarwal. +# Send bug reports and any other correspondence to bug-texinfo@gnu.org. + +prog="`basename \"$0\"`" +srcdir=`pwd` + +scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs.sh" +templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs_template" + +: ${MAKEINFO="makeinfo"} +: ${TEXI2DVI="texi2dvi -t @finalout"} +: ${DVIPS="dvips"} +: ${DOCBOOK2TXT="docbook2txt"} +: ${DOCBOOK2HTML="docbook2html"} +: ${DOCBOOK2PDF="docbook2pdf"} +: ${DOCBOOK2PS="docbook2ps"} +: ${GENDOCS_TEMPLATE_DIR="."} +unset CDPATH + +rcs_revision='$Revision: 1.1 $' +rcs_version=`set - $rcs_revision; echo $2` +program=`echo $0 | sed -e 's!.*/!!'` +version="gendocs.sh $rcs_version + +Copyright (C) 2003 Free Software Foundation, Inc. +There is NO warranty. You may redistribute this software +under the terms of the GNU General Public License. +For more information about these matters, see the files named COPYING." + +usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE + +Generate various output formats from PACKAGE.texinfo (or .texi or .txi) source. +See the GNU Maintainers document for a more extensive discussion: + http://www.gnu.org/prep/maintain_toc.html + +Options: + -o OUTDIR write files into OUTDIR, instead of manual/. + --docbook convert to DocBook too (xml, txt, html, pdf and ps). + --html ARG pass indicated ARG to makeinfo for HTML targets. + --help display this help and exit successfully. + --version display version information and exit successfully. + +Simple example: $prog emacs \"GNU Emacs Manual\" + +Typical sequence: + cd YOURPACKAGESOURCE/doc + wget \"$scripturl\" + wget \"$templateurl\" + $prog YOURMANUAL \"GNU YOURMANUAL - One-line description\" + +Output will be in a new subdirectory \"manual\" (by default, use -o OUTDIR +to override). Move all the new files into your web CVS tree, as +explained in the Web Pages node of maintain.texi. + +MANUAL-TITLE is included as part of the HTML <title> of the overall +manual/index.html file. It should include the name of the package being +documented. manual/index.html is created by substitution from the file +$GENDOCS_TEMPLATE_DIR/gendocs_template. (Feel free to modify the +generic template for your own purposes.) + +If you have several manuals, you'll need to run this script several +times with different YOURMANUAL values, specifying a different output +directory with -o each time. Then write (by hand) an overall index.html +with links to them all. + +You can set the environment variables MAKEINFO, TEXI2DVI, and DVIPS to +control the programs that get executed, and GENDOCS_TEMPLATE_DIR to +control where the gendocs_template file is looked for. + +Email bug reports or enhancement requests to bug-texinfo@gnu.org. +" + +calcsize() +{ + size="`ls -ksl $1 | awk '{print $1}'`" + echo $size +} + +outdir=manual +html= +PACKAGE= +MANUAL_TITLE= + +while test $# -gt 0; do + case $1 in + --help) echo "$usage"; exit 0;; + --version) echo "$version"; exit 0;; + -o) shift; outdir=$1;; + --docbook) docbook=yes;; + --html) shift; html=$1;; + -*) + echo "$0: Unknown or ambiguous option \`$1'." >&2 + echo "$0: Try \`--help' for more information." >&2 + exit 1;; + *) + if test -z "$PACKAGE"; then + PACKAGE=$1 + elif test -z "$MANUAL_TITLE"; then + MANUAL_TITLE=$1 + else + echo "$0: extra non-option argument \`$1'." >&2 + exit 1 + fi;; + esac + shift +done + +if test -s $srcdir/$PACKAGE.texinfo; then + srcfile=$srcdir/$PACKAGE.texinfo +elif test -s $srcdir/$PACKAGE.texi; then + srcfile=$srcdir/$PACKAGE.texi +elif test -s $srcdir/$PACKAGE.txi; then + srcfile=$srcdir/$PACKAGE.txi +else + echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2 + exit 1 +fi + +if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then + echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2 + echo "$0: it is available from $templateurl." >&2 + exit 1 +fi + +echo Generating output formats for $srcfile + +echo Generating info files... +${MAKEINFO} -o $PACKAGE.info $srcfile +mkdir -p $outdir/ +tar czf $outdir/$PACKAGE.info.tar.gz $PACKAGE.info* +info_tgz_size="`calcsize $outdir/$PACKAGE.info.tar.gz`" +# do not mv the info files, there's no point in having them available +# separately on the web. + +echo Generating dvi ... +${TEXI2DVI} $srcfile + +# now, before we compress dvi: +echo Generating postscript... +${DVIPS} $PACKAGE -o +gzip -f -9 $PACKAGE.ps +ps_gz_size="`calcsize $PACKAGE.ps.gz`" +mv $PACKAGE.ps.gz $outdir/ + +# compress/finish dvi: +gzip -f -9 $PACKAGE.dvi +dvi_gz_size="`calcsize $PACKAGE.dvi.gz`" +mv $PACKAGE.dvi.gz $outdir/ + +echo Generating pdf ... +${TEXI2DVI} --pdf $srcfile +pdf_size="`calcsize $PACKAGE.pdf`" +mv $PACKAGE.pdf $outdir/ + +echo Generating ASCII... +${MAKEINFO} -o $PACKAGE.txt --no-split --no-headers $srcfile +ascii_size="`calcsize $PACKAGE.txt`" +gzip -f -9 -c $PACKAGE.txt >$outdir/$PACKAGE.txt.gz +ascii_gz_size="`calcsize $outdir/$PACKAGE.txt.gz`" +mv $PACKAGE.txt $outdir/ + +echo Generating monolithic html... +rm -rf $PACKAGE.html # in case a directory is left over +${MAKEINFO} --no-split --html -o $PACKAGE.html $html $srcfile +html_mono_size="`calcsize $PACKAGE.html`" +gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz +html_mono_gz_size="`calcsize $outdir/$PACKAGE.html.gz`" +mv $PACKAGE.html $outdir/ + +echo Generating html by node... +${MAKEINFO} --html -o $PACKAGE.html $html $srcfile +split_html_dir=$PACKAGE.html +( + cd ${split_html_dir} || exit 1 + tar -czf ../$outdir/${PACKAGE}.html_node.tar.gz -- *.html +) +html_node_tgz_size="`calcsize $outdir/${PACKAGE}.html_node.tar.gz`" +rm -f $outdir/html_node/*.html +mkdir -p $outdir/html_node/ +mv ${split_html_dir}/*.html $outdir/html_node/ +rmdir ${split_html_dir} + +echo Making .tar.gz for sources... +srcfiles=`ls *.texinfo *.texi *.txi 2>/dev/null` +tar czfh $outdir/$PACKAGE.texi.tar.gz $srcfiles +texi_tgz_size="`calcsize $outdir/$PACKAGE.texi.tar.gz`" + +if test -n "$docbook"; then + echo Generating docbook XML... + ${MAKEINFO} -o - --docbook $srcfile > ${srcdir}/$PACKAGE-db.xml + docbook_xml_size="`calcsize $PACKAGE-db.xml`" + gzip -f -9 -c $PACKAGE-db.xml >$outdir/$PACKAGE-db.xml.gz + docbook_xml_gz_size="`calcsize $outdir/$PACKAGE-db.xml.gz`" + mv $PACKAGE-db.xml $outdir/ + + echo Generating docbook HTML... + split_html_db_dir=html_node_db + ${DOCBOOK2HTML} -o $split_html_db_dir ${outdir}/$PACKAGE-db.xml + ( + cd ${split_html_db_dir} || exit 1 + tar -czf ../$outdir/${PACKAGE}.html_node_db.tar.gz -- *.html + ) + html_node_db_tgz_size="`calcsize $outdir/${PACKAGE}.html_node_db.tar.gz`" + rm -f $outdir/html_node_db/*.html + mkdir -p $outdir/html_node_db + mv ${split_html_db_dir}/*.html $outdir/html_node_db/ + rmdir ${split_html_db_dir} + + echo Generating docbook ASCII... + ${DOCBOOK2TXT} ${outdir}/$PACKAGE-db.xml + docbook_ascii_size="`calcsize $PACKAGE-db.txt`" + mv $PACKAGE-db.txt $outdir/ + + echo Generating docbook PS... + ${DOCBOOK2PS} ${outdir}/$PACKAGE-db.xml + gzip -f -9 -c $PACKAGE-db.ps >$outdir/$PACKAGE-db.ps.gz + docbook_ps_gz_size="`calcsize $outdir/$PACKAGE-db.ps.gz`" + mv $PACKAGE-db.ps $outdir/ + + echo Generating docbook PDF... + ${DOCBOOK2PDF} ${outdir}/$PACKAGE-db.xml + docbook_pdf_size="`calcsize $PACKAGE-db.pdf`" + mv $PACKAGE-db.pdf $outdir/ +fi + +echo Writing index file... +curdate="`date '+%B %d, %Y'`" +sed \ + -e "s/%%TITLE%%/$MANUAL_TITLE/g" \ + -e "s/%%DATE%%/$curdate/g" \ + -e "s/%%PACKAGE%%/$PACKAGE/g" \ + -e "s/%%HTML_MONO_SIZE%%/$html_mono_size/g" \ + -e "s/%%HTML_MONO_GZ_SIZE%%/$html_mono_gz_size/g" \ + -e "s/%%HTML_NODE_TGZ_SIZE%%/$html_node_tgz_size/g" \ + -e "s/%%INFO_TGZ_SIZE%%/$info_tgz_size/g" \ + -e "s/%%DVI_GZ_SIZE%%/$dvi_gz_size/g" \ + -e "s/%%PDF_SIZE%%/$pdf_size/g" \ + -e "s/%%PS_GZ_SIZE%%/$ps_gz_size/g" \ + -e "s/%%ASCII_SIZE%%/$ascii_size/g" \ + -e "s/%%ASCII_GZ_SIZE%%/$ascii_gz_size/g" \ + -e "s/%%TEXI_TGZ_SIZE%%/$texi_tgz_size/g" \ + -e "s/%%DOCBOOK_HTML_NODE_TGZ_SIZE%%/$html_node_db_tgz_size/g" \ + -e "s/%%DOCBOOK_ASCII_SIZE%%/$docbook_ascii_size/g" \ + -e "s/%%DOCBOOK_PS_GZ_SIZE%%/$docbook_ps_gz_size/g" \ + -e "s/%%DOCBOOK_PDF_SIZE%%/$docbook_pdf_size/g" \ + -e "s/%%DOCBOOK_XML_SIZE%%/$docbook_xml_size/g" \ + -e "s/%%DOCBOOK_XML_GZ_SIZE%%/$docbook_xml_gz_size/g" \ + -e "s,%%SCRIPTURL%%,$scripturl,g" \ + -e "s/%%SCRIPTNAME%%/$prog/g" \ +$GENDOCS_TEMPLATE_DIR/gendocs_template >$outdir/index.html + +echo "Done! See $outdir/ subdirectory for new files." diff --git a/doc/gendocs_template b/doc/gendocs_template new file mode 100644 index 0000000..5bf56ad --- /dev/null +++ b/doc/gendocs_template @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- $Id: gendocs_template,v 1.1 2004/06/09 12:57:31 jao Exp $ --> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> + +<head> +<title>%%TITLE%% - GNU Project - Free Software Foundation (FSF)</title> +<meta http-equiv="content-type" content='text/html; charset=utf-8' /> +<link rel="stylesheet" type="text/css" href="/gnu.css" /> +<link rev="made" href="webmasters@gnu.org" /> +</head> + +<!-- This document is in XML, and xhtml 1.0 --> +<!-- Please make sure to properly nest your tags --> +<!-- and ensure that your final document validates --> +<!-- consistent with W3C xhtml 1.0 and CSS standards --> +<!-- See validator.w3.org --> + +<body> + +<h3>%%TITLE%%</h3> + +<address>Free Software Foundation</address> +<address>last updated %%DATE%%</address> +<p> +<a href="/graphics/gnu-head.jpg"> + <img src="/graphics/gnu-head-sm.jpg" + alt=" [image of the head of a GNU] " + width="129" height="122" /> +</a> +<a href="/philosophy/gif.html">(no gifs due to patent problems)</a> +</p> +<hr /> + +<p>This manual (for %%PACKAGE%%) is available in the following formats:</p> + +<ul> + <li><a href="%%PACKAGE%%.html">HTML + (%%HTML_MONO_SIZE%%K characters)</a> - entirely on one web page.</li> + <li><a href="html_node/index.html">HTML</a> - with one web page per + node.</li> + <li><a href="%%PACKAGE%%.html.gz">HTML compressed + (%%HTML_MONO_GZ_SIZE%%K gzipped characters)</a> - entirely on + one web page.</li> + <li><a href="%%PACKAGE%%.html_node.tar.gz">HTML compressed + (%%HTML_NODE_TGZ_SIZE%%K gzipped tar file)</a> - + with one web page per node.</li> + <li><a href="%%PACKAGE%%.info.tar.gz">Info document + (%%INFO_TGZ_SIZE%%K characters gzipped tar file)</a>.</li> + <li><a href="%%PACKAGE%%.txt">ASCII text + (%%ASCII_SIZE%%K characters)</a>.</li> + <li><a href="%%PACKAGE%%.txt.gz">ASCII text compressed + (%%ASCII_GZ_SIZE%%K gzipped characters)</a>.</li> + <li><a href="%%PACKAGE%%.dvi.gz">TeX dvi file + (%%DVI_GZ_SIZE%%K characters gzipped)</a>.</li> + <li><a href="%%PACKAGE%%.ps.gz">PostScript file + (%%PS_GZ_SIZE%%K characters gzipped)</a>.</li> + <li><a href="%%PACKAGE%%.pdf">PDF file + (%%PDF_SIZE%%K characters)</a>.</li> + <li><a href="%%PACKAGE%%.texi.tar.gz">Texinfo source + (%%TEXI_TGZ_SIZE%%K characters gzipped tar file)</a></li> +</ul> + +<p>(This page generated by the <a +href="%%SCRIPTURL%%">%%SCRIPTNAME%%</a> script.) +</p> + +<div class="copyright"> +<p> +Return to the <a href="/home.html">GNU Project home page</a>. +</p> + +<p> +Please send FSF & GNU inquiries to +<a href="mailto:gnu@gnu.org"><em>gnu@gnu.org</em></a>. +There are also <a href="/home.html#ContactInfo">other ways to contact</a> +the FSF. +<br /> +Please send broken links and other corrections (or suggestions) to +<a href="mailto:webmasters@gnu.org"><em>webmasters@gnu.org</em></a>. +</p> + +<p> +Copyright (C) 2004 Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111, USA +<br /> +Verbatim copying and distribution of this entire article is +permitted in any medium, provided this notice is preserved. +</p> + +<p> +Updated: +<!-- timestamp start --> +$Date: 2004/06/09 12:57:31 $ $Author: jao $ +<!-- timestamp end --> +</p> +</div> + +</body> +</html> |