Wiki2html

From VNUML-WIKI
Revision as of 22:10, 24 May 2007 by Fgalan (talk | contribs) (list of files for documentation)
Jump to: navigation, search

How to generate a local copy of the documentation in html starting from the VNUML wiki

Tested on Suse linux, although it should work on any distribution.

  1. Download and install htttrack from http://www.httrack.com/
  2. Get a copy of VNUML wiki:
  3.  mkdir vnumlweb
     cd vnumlweb
     httrack http://www.dit.upm.es/vnumlwiki/   
     # Note: Don't forget the  "/" at the end of the URL!
    
  4. Create a script named vnuml-clean-web with the content shown below.
  5. Execute that script on the directory where the main files reside, that is:
  6.  cd www.dit.upm.es/vnumlwiki
     cd index.php
     vnuml-clean-web
    

    Note: Use "--doc-only" option if you want to eliminate the "Navigation" menu on the left side of the pages; and/or "--without-docintro" to eliminate the "Introduction" option in "Domumentation" menu.

  7. Delete the auxiliary files httrack generates in upper directory (it seems they are not needed):
  8.  cd ..
     rm index????*.{html,css,php} opensearch_desc.php 
    
  9. Load the index.html file in www.dit.upm.es/vnuml directory and you will have access to the local copy of the documentation.
  10. If you are generating the documentation for the .tgz, then you can remove all except (put them in a html/ directory, at the same level than skin/ and images/ directories you also have got):
  11.   Tutorial.html
      Installation.html
      Reference.html
      Usermanual.html
      Howto.html
      Ubuntu.html
      Suse10-2.html
      Suse10.html
      Capture.html
      Livedvd-install-vmware.html
      Livedvd-makingoff.html
      Resize-rootfs.html
      Slc-rootfs.html
      Clean-rootfs.html
      Create-rootfs.html
      Tips.html
      FAQ.html
      Wiki2html.html
      Xen-test-debian.html
      Debian-packages.html
      Install-dyna.html
    

Unsolved issues

  • The footnote regarding how many time the page has been visited has no sense in static HTML, so it should be removed.
  • Images links with pages that has no sense in static HTML. The image should remain in the HTML but the associated link removed.
  • In Ubuntu.html, offile references to Download.html get broken (because Download.html is not included in the HTML documentation bunch)
  • In FAQ.html, offline references to Example-update-rootfs.html get broken (because Example-update-rootfs.html is not included in the HTML documentation bunch)
  • In FAQ.html, offline references to Example-simple.html get broken (because Example-simple.html is not included in the HTML documentation bunch)

vnuml-clean-web script

#!/bin/bash

# get a list of files, excluding directories
FILES=`ls -F1 | sed -e 's/.*\///'`

# Options?
DOCONLY="no"
NODOCINTRO="no"
while :
do
    case $# in
        0)      break;;
        *)      case "$1" in

                    "--doc-only")
                        DOCONLY="yes"
                        shift
                        ;;

                    "--without-docintro")
                        NODOCINTRO="yes"
                        shift
                        ;;

                    *)
                        echo "Error: unknown command line option (\"$1\")"
                        exit 1
                        ;;

                    "") break;;

                 esac
    esac
done

echo "DOCONLY=$DOCONLY"
echo "NODOCINTRO=$NODOCINTRO"

# Process each file
for X in $FILES
do
  echo "Filtering file $X"
  cp $X $X.tmp
  cat $X.tmp | \
  awk 'BEGIN {RS="" } {
    gsub("<!-- BEGINMENU -->.*<!-- ENDMENU -->", "", $0);
    gsub("<!-- BEGINSEARCH -->.*<!-- ENDSEARCH -->", "", $0);
    gsub("<!-- BEGINPERSONALTOOLS -->.*<!-- ENDPERSONALTOOLS -->", "", $0);
    gsub("<!-- BEGINTOOLBOX -->.*<!-- ENDTOOLBOX -->", "", $0);
    print $0
  }' | \
  sed -e '/Redirected from/ d' \
  > $X

  if [ "$DOCONLY" == "yes" ]; then
    # Remove navigation menu
    cp $X $X.tmp
    cat $X.tmp | \
    awk 'BEGIN {RS="" } {
      # delete navigation sidebar
      gsub("<div class=\047portlet\047 id=\047p-navigation\047>.*<!-- ENDSIDEBAR p-navigation -->", "", $0);
      # change image link from Main_Page to Docintro.html
      gsub("<a href=\"Main_Page.html\" id=\"home\"><i>Home</i></a>", "<a href=\"Docintro.html\" id=\"home\"><i>Home</i></a>", $0);
      print $0
    }' > $X
  fi

  if [ "$NODOCINTRO" == "yes" ]; then
      # Removes Introduction entry in Documentation menu
      cp $X $X.tmp

      cat $X.tmp | \
      sed -e '/n-Introduction/ d' | sed -e '/n-Documentation/ d'  \
      > $X

  fi

  rm $X.tmp

done

cd ../skins/fratman_enhanced
# get css file name
CSSFILE=`ls main????.css`
echo "Changing style sheet: $CSSFILE"
echo ".editsection { visibility: hidden }" >> $CSSFILE
cd ../../index.php