Sachverstand2 @ Geocities.com
15. Oktober 2005
So I set up 2 Scripts and a directory structure to maintain this automagically.
I set up a simple yet effective Content Management System for my webpage with a folder structure, 2 scripts and help by latex2html.
This file cms.tex has the following keywords:
content management system CMS webpage simple shell scripts
Its in Chapter LaTeX.
It has no pictures, but if it had, they would be called
cms0001.gif, cms0002.gif, cms0003.gif, ... you got the idea.
homepage Chapters Mopped___allgemein mop ...(other chapters - dvips allows NO COLON in path) LaTeX l4l l4l.html, l4l.tex, anhan1.tex, anhan2.tex, bilder.tex, ... cms cms.html, cms.tex
Create a folder in the right chapter.
Write them in html or LaTeX.
Run the LaTeX files through l2h (see next chapter).
if no file foldername.tex, then create a raw one change "png" in all tex files to "ps" convert fig files to ps convert jpg files to ps convert jpeg files to ps convert gif files to ps convert png files to ps convert to foldername/foldername.html change all foldername/img* to foldername/foldername* change "ps" in all tex files to "png" clean up
The result of l2h is a subfolder with files like I want them.
#!/bin/sh #/usr/bin/l2h # sachverstand2 @ geocities.com: echo starting l2h by sachverstand2... ################################################################### # to stay happy, you must remove all X from this script. # i had to put them in there, or the script itself would have messed # with this verbatim copy. ################################################################### d1=$(date) pwd=$(pwd) file2="$(basename $(pwd))" file=$(echo $file2.tex) [ -d $file2 ] && rm $file2/* [ -f $file ] || cp ~/homepage/template.tex ./$file for i in *.tex ; do cat $i | sed s/pXXXng}/pXXXs}/ > tmp mv tmp $i done if ls *.fig 2> /dev/null ; then for i in *.fig ; do j=$(echo $i | sed s/.fig/.ps/) if [ $i -nt $j ] || [ ! -f $j ] ; then fig2ps $i echo $j created. fi done fi if ls *.jpg 2> /dev/null ; then for i in *.jpg ; do j=$(echo $i | sed s/.jpg/.ps/) if [ $i -nt $j ] || [ ! -f $j ] ; then djpeg -pnm $i > tmp pnmtops tmp > $j rm tmp echo $j created. fi done fi if ls *.jpeg 2> /dev/null ; then for i in *.jpeg ; do j=$(echo $i | sed s/.jpeg/.ps/) if [ $i -nt $j ] || [ ! -f $j ] ; then djpeg -pnm $i > tmp pnmtops tmp > $j rm tmp echo $j created. fi done fi if ls *.gif 2> /dev/null ; then for i in *.gif ; do j=$(echo $i | sed s/.gif/.ps/) if [ $i -nt $j ] || [ ! -f $j ] ; then giftopnm $i | pnmtops -noturn > $j echo $j created fi done fi if ls *.png 2> /dev/null ; then for i in *.png ; do j=$(echo $i | sed s/.png/.ps/) if [ $i -nt $j ] || [ ! -f $j ] ; then pngtopnm $i | pnmtops -noturn > $j echo $j created fi done fi ###latex2html -no_navigation -split 0 $file && \ latex2html -no_navigation -show_section_numbers -split 0 \ -no_parbox_images $file && \ echo $d1 date play /usr/share/sounds/error.wav for i in *.css index.html *.aux *.log *.pl WARN* images.tex ; do rm -f $file2/$i done ### now, make img* to $file2* echo "Renaming images..." cd $file2 for i in $(ls *gif) ; do j=$(echo $i | cut -c 4- ) mv -f $i $file2$j done echo "Renaming images in html file..." for i in *.html ; do cat $i | sed s/SRC=\"img/SRC=\"$file2/ > tmp mv tmp $i done rm -f images* echo "cleaning up html file..." echo "<HTXML> <HEXAD>" >> head cfile=$(basename $(pwd)) cfile=$(echo $cfile.html) grep TIXTLE $cfile >> head ### count the line of the file linescount=$(cat $cfile | wc -l) ### throw away first 21 lines tail -n $(($linescount - 21)) $cfile > body echo -e "<META NAME=description \ CONTENT=\"\n$(cat ../descXription)\n\">" >> head echo -e "<META NAME=keywords \ CONTENT=\"\n$(cat ../keyXwords)\n\">" >> head cat head body > $cfile rm head rm body echo "Cleaning done." ### oops. cd back cd .. for i in *.tex ; do cat $i | sed s/pXs}/pnXg}/ > tmp mv tmp $i done echo "Removing junk..." rm *aux rm *dvi rm *log rm *toc rm *ps echo "Copying file." cp $file2/$file2.html . echo "Done." [ -z $DISPLAY ] || Netscape $file2/$file2.html ###################################################################
\documentclass [12pt, a4paper] {article} \usepackage {german, umlaut} \usepackage {graphicx} \pagestyle {headings} \parindent 0.mm \parskip=1mm \fboxsep=5mm \fboxrule=0.5mm \begin{document} \author {Sachverstand2 @ Geocities.com} \title {title goes here} \date {\today} \maketitle \tableofcontents \section{First section} bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \section{Second section} bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for all chapters create top of index page for all chapters for all folders create link and description cleanup
#!/bin/sh #~/homepage/q.sh ./p.sh > i.html ; Netscape i.html ###################################################################
#!/bin/sh #~/homepage/p.sh echo > chapters for i in $(ls Chapter) ; do echo " <li><a href=#$i>$i</a>" >> chapters done cat toppage1 cat chapters rm -f chapters cat toppage2 for i in $(ls Chapter) ; do echo "<a name=$i></a>" echo "<h2>$i</h2>" echo "<ul>" for j in $(ls Chapter/$i) ; do echo " <li>" if [ -f Chapter/$i/$j/$j.html ] ; then echo " <a href=$j.html>$j.html</a>" fi if [ -f Chapter/$i/$j/$j.pdf ] ; then echo " <a href=$j.pdf>$j.pdf</a>" fi if [ -f Chapter/$i/$j/$j.txt ] ; then echo " <a href=$j.html>$j.txt</a>" fi cat Chapter/$i/$j/description done echo " <li><a href=#top>Back to top</a>" echo "</ul> <hr>" done echo "create your own free homepage at <a href=www.geocities.com>" echo "www.geocities.com</a>!" ###################################################################
<HTML><HEAD> <TIXTLE>Sachverstand2 @ Geocities.com</TIXTLE> <META name=description content="Sachverstand2 @ Geocities.com"> <META name=keywords content="Sachverstand2's keywords"> </HEAD> <BODY> <FONT face=verdana,arial> <a name=top></a> <center> <h1> welcome 2 sachverstand2 @ geocities.com. </h1> <table> <td> <img src=t.jpg width=300> <h3> these are the fastest pages of the web. <p> no frames, no scripts, no shit. </h3> </td> <td> <ul>
</ul> </td> </table> </center> <hr>
Chapter GS400 is broken down into GS400:Elektrik, GS400:Reisen, GS400:Schraubereien.
Though these dont look nicely indented, I always have an Overview over the whole folder strukture by a simple ls in Chapters.
I would have liked to use the Colon (:) to divide Subfolders, but then dvips comes up with a weird error message and creates no images. I use UNDERSCORE instead. Took me 1 hour to find that out.
I heard this can be done with the hthtml package. I will publish if one day I have found out.
Meanwhile I have found out that hthtml is useless, and put the according changes right into l2h. Which in turn got improved to use template.tex. The use of description and keywords is visible in the source of l2h.
The title line is extracted by grep, so your documents may not contain the letters ''TITXLE'' (without the X, of course).
This document was generated using the LaTeX2HTML translator Version 99.1 release (March 30, 1999)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -no_navigation -show_section_numbers -split 0 -no_parbox_images cms.tex
The translation was initiated by on 2005-10-15