"html-doc" Crea queste slide

- A cura del Prof. Stefano Salvi -


#!/bin/bash
# html-doc
# Prende gli script nella directory "scripts" e li incapsula in
# documenti html, costruendo anche un indice, sempre html

# Stefano Salvi <stefano@salvi.mn.it>
# this file is available under the GNU general public license

# Stampa testata, menu' laterale e bottoni di navigazione
# $1 -> Titolo
# $2 -> link Superiore
# $3 -> Link sinistra
# $4 -> Link destra
function head {
  echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>"
  echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\""
  echo "    \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"
  echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">"
  echo "<head>"
  echo "<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\" />"
  echo "<link rel=\"SHORTCUT ICON\" href=\"/salvi.ico\" />"
  echo "<title>$1</title>"
  echo "</head>"
  echo "<body>"
  echo "<div id=\"menusx\">"
  echo "<div class=\"bottone\">"
  echo "<a href=\"index.html\">Home</a>"
  echo "</div>"

  for f in scripts/*
  do
    f=`echo $f | sed "s/scripts\///"`
    echo "<div class=\"bottone\">"
    echo "<a href=\"$f.html\">$f</a>"
    echo "</div>"
  done

  echo "</div>"
  echo ""
  echo "<div id=\"testata\">"
  echo "<div class=\"leftnav\">"
  if [ $3 != "-" ]
  then
    echo "<a href=\"$3.html\"><img src=\"immagini/leftbutton.png\" width=\"40\" height=\"40\"/></a>"
  else
    echo "<img src=\"immagini/gleftbutton.png\" width=\"40\" height=\"40\"/>"
  fi
  echo "<a href=\"http://www.salvi.mn.it\"><img src=\"immagini/topbutton.png\" width=\"40\" height=\"40\" /></a>"
  echo "<a href=\"$2\"><img src=\"immagini/upbutton.png\" width=\"40\" height=\"40\" /></a>"
  if [ $4 ]
  then
    echo "<a href=\"$4.html\"><img src=\"immagini/rightbutton.png\" width=\"40\" height=\"40\" /></a>"
  else
    echo "<img src=\"immagini/grightbutton.png\" width=\"40\" height=\"40\" />"
  fi
  echo "</div>"
  echo "<div class=\"rightlogo\">"
  echo "<a href=\"http://www.salvi.mn.it/stefano/\"><img src=\"immagini/salvi.png\" width=\"57\" height=\"57\" /></a>"
  echo "</div>"
  echo "<h1>$1</h1>"
  echo "<h3>- A cura del <a href=\"mailto:stefano@salvi.mn.it\">Prof. Stefano Salvi</a> -</h3>"
  echo ""
  echo "<hr />"
  echo ""
}

# Stampa la coda del file, con il menu' in basso
# $1 -> Link in su
# $2 -> Nome link in su
# $3 -> Eventuale file da scaricare
# $3 -> Link precedente
# $4 -> Link successivo
function tail {
  echo ""
  echo "<hr />"
  echo "<div id=\"footer\">"
  echo "<p>[<a href=\"http://www.salvi.mn.it\">Home Page Famiglia Salvi</a>]"
  echo "[<a href=\"$1\">$2</a>]"
  if [ "$3" != "-" ]
  then
    #lista il file (ls), ne estrae la dimensione (awk) e inserisce i punti (sed)
    DIMENSIONE=`ls -l "$3" | awk '{ print $5 }' | \
      sed -e "s/\([0-9]\)\([0-9][0-9][0-9]\)$/\1.\2/" -e "s/\([0-9]\)\([0-9][0-9][0-9]\.\)/\1.\2/"`
    echo "[<a href=\"$3\">Scarica gli script</a> (archivio tar GZ da $DIMENSIONE byte)]"
  fi
  if [ "$4" != "-" ]
  then
   echo "[<a href=\"$4.html\">Precedente</a>]"
  fi
  if [ $5 ]
  then
   echo "[<a href=\"$5.html\">Successivo</a>]</p>"
  fi
  echo "<p>&copy; Ing. Stefano Salvi - Released under GPL licence</p>"
  echo "</div>"
  echo "</div>"
  echo "</body>"
  echo "</html>"
}

# Genera l'html di un singolo script
# $1 -> nome script
# $2 -> Descrizione script
# $3 -> Link sinistro
# $4 -> Link Destro
function scriptdoc {
  head "&quot;$1&quot; $2" index.html $3 $4
  echo "<pre class=\"sorgente\">"
  cat scripts/$1 | sed -e "s/\&/\&amp;/g" -e "s/\"/\&quot;/g" -e "s/</\&lt;/g" -e "s/>/\&gt;/g"
  echo "</pre>"

  tail "index.html" "Indice Script di Shell" "-" $3 $4
}

function content {
  echo "<dl>" >> index.html
  prev="-"
  while [ "$1" ]
  do
    # Toglie la directory al nome del file corrente
    script=`echo $1 | sed "s/scripts\///"`
    # Toglie la directory anche dal nome file successivo
    next=`echo $2 | sed "s/scripts\///"`
    echo "<dt><a href=\"$script.html\">$script</a></dt>"
    # Recupera la descrizione dal file "README"
    DESCR=`grep "$script" README | sed "s/^[^|]*|//"`
    echo "<dd>$DESCR</dd>"
    # Produce il file dello script
    scriptdoc "$script" "$DESCR" "$prev" "$next" > $script.html
    prev="$script"
    # Passa al prossimo file
    shift
  done
  echo "</dl>" >> index.html
}

TITLE="Shell Scripts per il Linux Day 2005"

head "$TITLE" ../index.htm "-" > index.html

content scripts/* >> index.html

# Crea il tar con gli script
tar -czf LinuxDay2005.tgz scripts

tail "../index.htm" "Indice Software" LinuxDay2005.tgz "-"  >> index.html