Wiki2html
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.
- Download and install htttrack from http://www.httrack.com/
- Get a copy of VNUML wiki:
- Create a script named vnuml-clean-web with the content shown below.
- Execute that script on the directory where the main files reside, that is:
- "--doc-only" eliminates the "Navigation" menu on the left side of the pages;
- "--without-docvnuml" eliminates the "VNUML Documentation" menu on the left side of the pages;
- "--withouth-ediv" eliminates the "EDIV Documentation" menu on the left side of the pages;
- "--without-otherdoc" eliminates the "Other Documentation" menu on the left side of the pages;
- "--without-docintro" eliminates the "Introduction" option in "Documentation" menu.
- Delete the auxiliary files httrack generates in upper directory (it seems they are not needed):
- Load the index.html file in www.dit.upm.es/vnumlwiki directory and you will have access to the local copy of the documentation:
- 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):
mkdir vnumlweb cd vnumlweb httrack http://www.dit.upm.es/vnumlwiki/ # Note: Don't forget the "/" at the end of the URL!
cd www.dit.upm.es/vnumlwiki cd index.php vnuml-clean-web
Script options:
cd .. rm index????*.{html,css,php} opensearch_desc.php
firefox index.html
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 Vnumlgui_Debian.html Fedora7.html Root-fs-installer.html Resize-rootfs.html N3vlr-rootfs.html Vnuml2dot.html Xterm-screenshot-capture.html Gdb-traces.html
The following script (executed in the root of the working directory) can be very useful to extract those files.
mkdir final_html cd www.dit.upm.es/vnumlwiki/index.php/ mv 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 \ Vnumlgui_Debian.html \ Fedora7.html \ Root-fs-installer.html \ Resize-rootfs.html \ N3vlr-rootfs.html \ Vnuml2dot.html \ Xterm-screenshot-capture.html \ Gdb-traces.html \ ../../../final_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, offline 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)
- Some files in images/ should be cleaned up.
vnuml-clean-web script
#!/bin/bash # get a list of files, excluding directories FILES=`ls -F1 | sed -e 's/.*\///'` # Options? DOCONLY="no" NODOCINTRO="no" NODOCVNUML="no" NODOCEDIV="no" NOOTHERDOC="no" while : do case $# in 0) break;; *) case "$1" in "--doc-only") DOCONLY="yes" shift ;; "--without-docintro") NODOCINTRO="yes" shift ;; "--without-docvnuml") NODOCVNUML="yes" shift ;; "--without-docediv") NODOCEDIV="yes" shift ;; "--without-otherdoc") NOOTHERDOC="yes" shift ;; *) echo "Error: unknown command line option (\"$1\")" exit 1 ;; "") break;; esac esac done echo "DOCONLY=$DOCONLY" echo "NODOCVNUML=$NODOCVNUML" echo "NODOCEDIV=$NODOCEDIV" echo "NOOTHERDOC=$NOOTHERDOC" 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); gsub("This page has been accessed.*times. -", "", $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("<!-- BEGINSIDEBAR p-navigation -->.*<!-- ENDSIDEBAR p-navigation -->", "", $0); #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 [ "$NODOCVNUML" == "yes" ]; then # Remove navigation menu cp $X $X.tmp cat $X.tmp | \ awk 'BEGIN {RS="" } { # delete navigation sidebar gsub("<!-- BEGINSIDEBAR p-VNUML Documentation -->.*<!-- ENDSIDEBAR p-EDIV Documentation -->", "", $0); print $0 }' > $X fi if [ "$NODOCEDIV" == "yes" ]; then # Remove navigation menu cp $X $X.tmp cat $X.tmp | \ awk 'BEGIN {RS="" } { # delete navigation sidebar gsub("<!-- BEGINSIDEBAR p-EDIV Documentation -->.*<!-- ENDSIDEBAR p-EDIV Documentation -->", "", $0); print $0 }' > $X fi if [ "$NOOTHERDOC" == "yes" ]; then # Remove navigation menu cp $X $X.tmp cat $X.tmp | \ awk 'BEGIN {RS="" } { # delete navigation sidebar gsub("<!-- BEGINSIDEBAR p-Other Documentation -->.*<!-- ENDSIDEBAR p-Other Documentation -->", "", $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