Finally! HTML rendering of the FFI Addendum.
authorManuel Chakravarty <chak@cse.unsw.edu.au>
Sat, 23 Apr 2005 14:27:04 +0000 (14:27 +0000)
committerManuel Chakravarty <chak@cse.unsw.edu.au>
Sat, 23 Apr 2005 14:27:04 +0000 (14:27 +0000)
ffi/Makefile
ffi/Makefile.ffi
ffi/ffi.cfg [new file with mode: 0644]
ffi/ffi.tex

index 2976ee5..e7a0f1c 100644 (file)
@@ -6,6 +6,10 @@ ffi.ps: ffi.tex
        TEXINPUTS=../styles: latex ffi.tex
        dvips -f < ffi.dvi > ffi.ps
 
+# Requires TeX4ht
+ffi.html: ffi.tex ffi.cfg
+       xhlatex ffi.tex "ffi,2"
+
 # This is yucky, but there is not much choice as we need to subsitute a 
 # different Makefile for the tarball.
 #
@@ -15,9 +19,24 @@ ffi.tar.gz:
        mkdir $(TMP)/ffi
        cp ffi.tex $(TMP)/ffi/
        cp ffi.bib $(TMP)/ffi/
+       cp ffi.cfg $(TMP)/ffi/
        cp ../styles/grammar.sty $(TMP)/ffi/
        cp COPYING.ffi $(TMP)/ffi/COPYING
        cp Makefile.ffi $(TMP)/ffi/Makefile
        cd $(TMP); tar -czf $(PWD)/ffi.tar.gz ffi
        -rm -f $(TMP)/ffi/*
        -rmdir $(TMP)/ffi
+
+TMP=/tmp
+.PHONY: ffi.html.tar.gz
+ffi.html.tar.gz:
+       mkdir $(TMP)/ffi
+       cp *.html *.png ffi.css $(TMP)/ffi/
+       cp COPYING.ffi $(TMP)/ffi/COPYING
+       cd $(TMP); tar -czf $(PWD)/ffi.html.tar.gz ffi
+       -rm -f $(TMP)/ffi/*
+       -rmdir $(TMP)/ffi
+
+.PHONY: clean
+clean:
+       -rm -f *.aux *.log *.blg *.dvi *.bbl *.toc *.ps *.html *.css *.png *.4ct *.4tc *.idv *.xref tex4ht.fls
index f911f5f..be31e0c 100644 (file)
@@ -8,3 +8,11 @@ ffi.dvi: ffi.tex grammar.sty
 
 ffi.ps: ffi.dvi
        dvips $< -o $@
+
+# Requires TeX4ht
+ffi.html: ffi.tex ffi.cfg
+       latex $< && bibtex $(basename $<) && latex $< && xhlatex $< "ffi"
+
+.PHONY: clean
+clean:
+       -rm -f *.aux *.log *.blg *.dvi *.bbl *.toc *.ps *.html *.css *.png *.4ct *.4tc *.idv *.xref tex4ht.fls
diff --git a/ffi/ffi.cfg b/ffi/ffi.cfg
new file mode 100644 (file)
index 0000000..093184f
--- /dev/null
@@ -0,0 +1,86 @@
+\Preamble{xhtml}
+
+% Don't indent paragraphs in HTML
+\Configure{HtmlPar}{
+  \HCode{<p class="noindent">}
+}{
+  \HCode{<p class="noindent">}
+}{}{}
+
+% No pictures for math
+%
+\Configure{[]}{$$}{$$}
+\Configure{$$}{\begin{quote}\(}{\)\end{quote}}{}
+\Configure{()}{$}{$}
+
+% Formatting details of signatures descriptions
+%
+\ConfigureList{codedesc}{%
+  \HCode{<dl>}
+}{%
+  \HCode{</dl>}
+}{%
+  \HCode{<dt class="codedesc">}
+}{%
+  \HCode{<dd class="codedesc">}
+}
+
+%\ConfigureEnv{grammar}{\HCode{<div class="quote">}}{\HCode{</div>}}{}{}
+
+% The original definition of \gnterm is too hard for tex4ht to follow; hence, 
+% it misses the subscripting.
+%
+\renewcommand{\gnterm}[2][!*NEVER USED ARGUMENT*!]{%
+  \bgroup
+  \gntermfont#2%
+  \ifthenelse{\equal{#1}{!*NEVER USED ARGUMENT*!}}\relax{%
+    \HCode{<sub class="gnterm">}\({#1}\)\HCode{</sub>}%
+    }%
+  \egroup
+  }
+
+\begin{document}
+
+% Style sheet additions
+%
+\Css{
+  % We like a smaller sans font.
+  body { 
+    font-family: Bitstream Vera Sans, Arial, Helvetica, sans-serif;
+    font-size  : 14px; 
+  }
+  %
+  % Environment for library signature descriptions.
+  % - Signatures in dark red
+  dt.codedesc {
+    color: darkred;
+  }
+  % - Avoid too much space between items.
+  dd.codedesc {
+    padding-bottom: .2em;
+  }
+  % - Verbatim displays in item descriptions should not have too wide margins.
+  dd.codedesc table {
+    margin-bottom: -.8em;
+  }
+  % - Paragraph start margin should be smaller in items.
+  % - Shrink paragraph end margins to avoid gap to next item.
+  dd.codedesc p {
+    margin-top: .5em;
+    margin-bottom: 0;
+  }
+  % Otherwise, the font size get's reduced twice.
+  sub { 
+    font-size: 100\%; 
+  }
+  % Here we need to reduce, as tex4ht doesn't grok the subscript.
+  sub.gnterm { 
+    font-size: 70\%;
+  }
+  % We don't want tabular's centered;
+  table.tabular {
+    margin-left: 1em; 
+  }
+}
+
+\EndPreamble
index 8e8eca4..7991ea5 100644 (file)
     \\
     \textbf{--- DRAFT ---}\\[1ex]
     \ttfamily\scriptsize
-    $\relax$Id: ffi.tex,v 1.54 2003/12/01 06:40:35 chak Exp $\relax$%
+    $\relax$Id: ffi.tex,v 1.55 2005/04/23 14:27:04 chak Exp $\relax$%
     \ignorespaces}
   }
 \end{DRAFT}
@@ -1140,7 +1140,7 @@ infixl 5 .|.
   
 \item[complement ::\ Bits a => a -> a] Calculate the bitwise complement of the
   argument.
-  
+
 \item[shift, rotate ::\ Bits a => a -> Int -> a] Shift or rotate the bit
   pattern to the left for a positive second argument and to the right for a
   negative argument.  The function \code{shift} performs sign extension on
@@ -1452,7 +1452,6 @@ newForeignPtr finalizer ptr =
   \code{Storable} class.
 
 \item[unsafeForeignPtrToPtr ::\ ForeignPtr a -> Ptr a]
-  
   Extract the pointer component of a foreign pointer. This is a potentially
   dangerous operation.  If the argument to \code{unsafeForeignPtrToPtr} is the
   last usage occurrence of the given foreign pointer, then its finalizer(s)