Commit 0f9327c9 authored by Roland Levillain's avatar Roland Levillain
Browse files

Split LaTeX-to-HTML rules to clear things up.

	* doc/tools/todoxygen.sh: Take a HTML file as input instead of a
	LaTeX one.
	* doc/Makefile.am (DOC_PACKAGES): New variable.
	(TECHNICAL_HTML, TUTORIAL_HTML, REF_GUIDE_HTML):
	New variables.
	($(TECHNICAL_HTML), $(TUTORIAL_HTML), $(REF_GUIDE_HTML)):
	New targets.
	(dist_doc_DATA): Add $(TECHNICAL_HTML), $(TUTORIAL_HTML) and
	$(REF_GUIDE_HTML).
	($(TECHNICAL_HH)): Depend on and process $(TECHNICAL_HTML) instead
	of $(technical_dir)/technical.tex.
	($(TUTORIAL_HH)): Depend on and process $(TUTORIAL_HTML) instead
	of $(tutorial_dir)/tutorial.tex.
	($(REF_GUIDE_HH)): Depend on and process $(REF_GUIDE_HTML) instead
	of $(ref_guide_dir)/ref_guide.tex.
	(CLEANFILES): Remove now useless patterns.
	(clean-local): Likewise.
	Adjust paths.
parent f5190eac
2010-03-12 Roland Levillain <roland@lrde.epita.fr>
Split LaTeX-to-HTML rules to clear things up.
* doc/tools/todoxygen.sh: Take a HTML file as input instead of a
LaTeX one.
* doc/Makefile.am (DOC_PACKAGES): New variable.
(TECHNICAL_HTML, TUTORIAL_HTML, REF_GUIDE_HTML):
New variables.
($(TECHNICAL_HTML), $(TUTORIAL_HTML), $(REF_GUIDE_HTML)):
New targets.
(dist_doc_DATA): Add $(TECHNICAL_HTML), $(TUTORIAL_HTML) and
$(REF_GUIDE_HTML).
($(TECHNICAL_HH)): Depend on and process $(TECHNICAL_HTML) instead
of $(technical_dir)/technical.tex.
($(TUTORIAL_HH)): Depend on and process $(TUTORIAL_HTML) instead
of $(tutorial_dir)/tutorial.tex.
($(REF_GUIDE_HH)): Depend on and process $(REF_GUIDE_HTML) instead
of $(ref_guide_dir)/ref_guide.tex.
(CLEANFILES): Remove now useless patterns.
(clean-local): Likewise.
Adjust paths.
2010-03-12 Roland Levillain <roland@lrde.epita.fr>
 
List non generated documentation outputs separately.
......@@ -90,6 +90,10 @@ TEXI2DVI_FLAGS += \
-I $(DOC_SRCDIR) -I $(OUTPUTS_SRCDIR) -I $(SPLIT_OUTPUTS_SRCDIR) \
-I $(IMG_SRCDIR) -I $(SPLIT_EXAMPLES_SRCDIR)
# Additional files for HeVeA compilations.
DOC_PACKAGES = $(srcdir)/doxyfuns.sty $(srcdir)/milena.sty
## ----------------------- ##
## Doxygen documentation. ##
## ----------------------- ##
......@@ -310,6 +314,16 @@ technical_dependencies = $(doc_dir)/figures.stamp
# product is a directory, also refresh a timestamp (in the source
# dir).
## FIXME: technical technical.hh does not seem to be used (by the
## Doyxgen documentation); remove its generation? Careful,
## technical/technical.html *is* probably required, though.
TECHNICAL_HTML = $(technical_dir)/technical.html
$(TECHNICAL_HTML): $(technical_dir)/technical.tex $(technical_dependencies)
hevea -O -fix $(DOC_PACKAGES) $< -o $@
dist_doc_DATA += $(TECHNICAL_HTML)
# Intermediate product for the various doc targets of the parent
# directory.
#
......@@ -317,8 +331,10 @@ technical_dependencies = $(doc_dir)/figures.stamp
# extension, since it is later parsed by Doxygen, which complains
# about `.html' files.
TECHNICAL_HH = $(technical_dir)/technical.hh
# FIXME: Careful, technical-html depends on $(TECHNICAL_HH), not
# $(TECHNICAL_HTML). Anyway, this shortcut should vanish soon.
technical-html: $(TECHNICAL_HH)
$(TECHNICAL_HH): $(technical_dir)/technical.tex $(technical_dependencies)
$(TECHNICAL_HH): $(TECHNICAL_HTML) $(doc_dir)/tools/todoxygen.sh
$(doc_dir)/tools/todoxygen.sh $< $(technical_dir) $(doc_dir)
......@@ -334,20 +350,7 @@ EXTRA_DIST += \
$(technical_dir)/technical.tex \
$(TECHNICAL_HH)
# FIXME: Remove `tutorial.aux tutorial.toc tutorial.log tutorial.bbl
# tutorial.out *blg *.lot' when texi2dvi is used.
#
# FIXME: Why is $(TUTORIAL_PDF) listed here? It should be
# automatically cleaned. I'm not sure either about the rest of
# CLEANFILES.
CLEANFILES += \
technical.aux technical.toc technical.log technical.bbl technical.out \
*blg *.lot \
$(TECHNICAL_PDF) \
*.haux *.hh *.html *.htoc \
technical.html \
technical.idx \
$(TECHNICAL_HH)
CLEANFILES += $(technical_dir)/technical.haux
## ---------- ##
......@@ -393,6 +396,12 @@ tutorial_dependencies = \
# product is a directory, also refresh a timestamp (in the source
# dir).
TUTORIAL_HTML = $(tutorial_dir)/tutorial.html
$(TUTORIAL_HTML): $(tutorial_dir)/tutorial.tex $(tutorial_dependencies)
hevea -O -fix $(DOC_PACKAGES) $< -o $@
dist_doc_DATA += $(TUTORIAL_HTML)
# Intermediate product for the various doc targets of the parent
# directory.
#
......@@ -400,10 +409,13 @@ tutorial_dependencies = \
# since it is later parsed by Doxygen, which complains about `.html'
# files.
TUTORIAL_HH = $(tutorial_dir)/tutorial.hh
# FIXME: Careful, tutorial-html depends on $(TUTORIAL_HH), not
# $(TUTORIAL_HTML). Anyway, this shortcut should vanish soon.
tutorial-html: $(TUTORIAL_HH)
$(TUTORIAL_HH): $(tutorial_dir)/tutorial.tex $(tutorial_dependencies)
$(TUTORIAL_HH): $(TUTORIAL_HTML) $(doc_dir)/tools/todoxygen.sh
$(doc_dir)/tools/todoxygen.sh $< $(tutorial_dir) $(doc_dir)
# Final product.
TUTORIAL_PDF = $(tutorial_dir)/tutorial.pdf
tutorial-pdf: $(TUTORIAL_PDF)
......@@ -416,20 +428,10 @@ EXTRA_DIST += \
$(tutorial_dir)/tutorial.tex \
$(TUTORIAL_HH)
# FIXME: Remove `tutorial.aux tutorial.toc tutorial.log tutorial.bbl
# tutorial.out *blg *.lot' when texi2dvi is used.
#
# FIXME: Why is $(TUTORIAL_PDF) listed here? It should be
# FIXME: Why is $(TUTORIAL_HH) listed here? It should be
# automatically cleaned. I'm not sure either about the rest of
# CLEANFILES.
CLEANFILES += \
tutorial.aux tutorial.toc tutorial.log tutorial.bbl tutorial.out \
*blg *.lot \
$(TUTORIAL_PDF) \
*.haux *.hh *.html *.htoc \
tutorial.html \
tutorial.idx \
$(TUTORIAL_HH)
CLEANFILES += $(tutorial_dir)/tutorial.haux
## ------------- ##
......@@ -505,15 +507,10 @@ EXTRA_DIST += \
$(PNGS) \
$(EPSS)
# FIXME: Remove unnecessary patterns.
CLEANFILES += \
white_paper_image.* \
white_paper.pdf \
*.log *.idx *.out *.aux
CLEANFILES += $(EPSS)
# FIXME: Likewise.
clean-local:
-rm -rf white_paper_html figures
-rm -rf $(white_paper_dir)/white_paper_html
## ----------------- ##
......@@ -559,6 +556,12 @@ ref_guide_dependencies = \
# product is a directory, also refresh a timestamp (in the source
# dir).
REF_GUIDE_HTML = $(ref_guide_dir)/ref_guide.html
$(REF_GUIDE_HTML): $(ref_guide_dir)/ref_guide.tex $(ref_guide_dependencies)
hevea -O -fix $(DOC_PACKAGES) $< -o $@
dist_doc_DATA += $(REF_GUIDE_HTML)
# Intermediate product for the various doc targets of the parent
# directory.
#
......@@ -566,8 +569,10 @@ ref_guide_dependencies = \
# since it is later parsed by Doxygen, which complains about `.html'
# files.
REF_GUIDE_HH = $(ref_guide_dir)/ref_guide.hh
# FIXME: Careful, ref-guide-html depends on $(REF_GUIDE_HH), not
# $(REF_GUIDE_HTML). Anyway, this shortcut should vanish soon.
ref-guide-html: $(REF_GUIDE_HH)
$(REF_GUIDE_HH): $(ref_guide_dir)/ref_guide.tex $(ref_guide_dependencies)
$(REF_GUIDE_HH): $(REF_GUIDE_HTML) $(doc_dir)/tools/todoxygen.sh
$(doc_dir)/tools/todoxygen.sh $< $(ref_guide_dir) $(doc_dir)
......@@ -583,20 +588,9 @@ EXTRA_DIST += \
$(ref_guide_dir)/ref_guide.tex \
$(REF_GUIDE_HH)
# FIXME: Remove `ref_guide.aux ref_guide.toc ref_guide.log
# ref_guide.bbl ref_guide.out *blg *.lot' when texi2dvi is used.
#
# FIXME: Why is $(REF_GUIDE_PDF) listed here? It should be
# automatically cleaned. I'm not sure either about the rest of
# CLEANFILES.
CLEANFILES += \
ref_guide.aux ref_guide.toc ref_guide.log ref_guide.bbl ref_guide.out \
*blg *.lot \
$(REF_GUIDE_PDF) \
*.haux *.hh *.html *.htoc \
ref_guide.html \
ref_guide.idx \
$(REF_GUIDE_HH)
CLEANFILES += \
$(ref_guide_dir)/ref_guide.haux \
$(ref_guide_dir)/ref_guide.htoc
## --------- ##
......
#!/bin/sh
if [ $# -ne 3 ]; then
echo "Usage: $0 <file.tex> <output dir> <path to .sty>";
exit 1;
fi
out="$2/`basename $1 .tex`.hh"
html="$2/`basename $1 .tex`.html"
DOC_PACKAGES="
$3/doxyfuns.sty \
$3/milena.sty"
#Convert .tex to .html
hevea -O -fix $DOC_PACKAGES $1 -o $html
#! /bin/sh
# todoxygen.sh: Turn HTML files into suitable inputs for doxygen.
# Copyright (C) 2009, 2010 EPITA Research and Development Laboratory (LRDE).
#
# This file is part of Olena.
#
# Olena 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, version 2 of the License.
#
# Olena 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 Olena. If not, see <http://www.gnu.org/licenses/>.
test $# -eq 3 \
|| { echo "Usage: $0 <file.html> <output dir> <path to .sty>"; exit 1; }
html="$1"
out="$2/`basename $1 .html`.hh"
bodyl=`grep -n "<BODY >" $html | cut -d ':' -f 1`
nlines=`wc -l $html | cut -d ' ' -f 1`
......@@ -32,11 +41,10 @@ sed -i -e 's/&#X201C/\&ldquo/g' $out
sed -i -e 's/&#X201D/\&rdquo/g' $out
sed -i -e 's/&#X2261/\&equiv/g' $out
#Doxygen wants us to preserve '\n' after commands.
#\ref and \see do not need that extra new line.
# Doxygen wants us to preserve '\n' after commands.
# \ref and \see do not need that extra new line.
for keyword in include section page subpage subsection subsubsection image; do
sed -i -e "s/\\\\endhtmlonly\\\\$keyword/\\\\endhtmlonly\n\n\\\\$keyword/g" $out
sed -i -e "s/\\\\endhtmlonly\*\//\\\\endhtmlonly\n\n\*\/\n\n/g" $out
sed -i -e "s/\\\\$keyword \(.*\)\\\\htmlonly/\\\\$keyword \1\n\n\\\\htmlonly\n/g" $out
done
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment