Wiki2html

From VNUML-WIKI
Revision as of 02:44, 16 March 2007 by David (talk | contribs)
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 www.dit.upm.es/vnuml
    
  4. Create a script named vnuml-clean-web with the following content:
    #!/bin/bash
    
    for X in *
    do
      echo "Filtering file $X"
      cp $X $X.tmp
      cat $X.tmp                                        | \
      sed -e '/BEGINMENU/,/ENDMENU/d'                   | \
      sed -e '/BEGINSEARCH/,/ENDSEARCH/d'               | \
      sed -e '/BEGINPERSONALTOOLS/,/ENDPERSONALTOOLS/d' | \
      sed -e '/BEGINTOOLBOX2/,/ENDTOOLBOX2/d'           | \
      sed -e 's/<span class="editsection">.*]<\/span>//g' \
        > $X
      rm $X.tmp
    
    done
    
  5. Execute that script on the directory where the main files reside, that is:
  6.  cd www.dit.upm.es/vnuml
     cd index.php
     vnuml-clean-web
    
  7. Delete the auxiliary files httrack generate 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.

Improved version of script

#!/bin/bash

for X in *
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);
    gsub("<span class="editsection">.*]</span>", "", $0);
    print $0
  }' > $X

  if [ "$1" == "--doc-only" ]; then
    # Remove navigation menu
    cp $X $X.tmp
    cat $X.tmp | \
    awk 'BEGIN {RS="" } {
      gsub("<div class=\047portlet\047 id=\047p-navigation\047>.*<!-- ENDSIDEBAR p-navigation -->", "", $0);
      print $0
    }' > $X
  fi
  rm $X.tmp

done