...and it works

On the prior page we were presenting a simple sitemap file to show how to tell MKSITE.SH which of the hrefs are entries that it shall process from "*.htm" source into a "*.html" file with full navigation and meta tags. It was not complete for the usual navigation bar going vertically on the left side of a browser view - so here is a complete example:

  <html><head><title>common title prefix <!--$title?--></title>
  <style>
   a:link          { text-decoration : none ; color : #000080 ; }
   a:visited       { text-decoration : none ; color : #200060 ; }
   .navtable       { background-color : #E0E0FF ; }
   .navlist        { width : 9em ; volume : soft ; }
  </style>
  </head><body>
  <table class="navtable" cellspacing="0" cellpadding="4" width="100%">
  <tr valign="top"><td class="navlist">
  <hr><a href="index.html">Overview</a>
  <br>-<a href="intro.html">Introduction</a>
  <br>-<a href="where.html">Downloads</a>
  <hr><a href="doc.html">Documentation</a>
  <br>-<a href="man.html">Manual Page</a>
  <br>-<a href="ref.html">Cross References</a>
       <hr><a href="impressum.html">Impressum</a> <hr>
  <br><a href="site.html">sitemap</a> <hr>
  </td><td>
  </td></tr></table></body></html>

The MKSITE.SH will see six files to be potentionally to be converted where the HR[] denotes the sect1 categories - and whereas the BR[-] lines with an additional designator char point to the sect2 subcategorized pages. The last "impressum" line is not seen as its line does start off with additional whitespace.

The sect1/sect2 relation is not important for a simple sitefile like shown above, here just treat all hrefs as navigation pointers as such. The sect1/sect2 relation will get important when you enable the multi-view which is simply done by putting a <!--mksite:multi--> hint somewhere in the sitefile (on its own line). Suddenly you will get two different navigation bar looks where one will only show entries under "Overview" and the other only entries under "Documentation". Both generated navigation bar types will contain the "Impressum" link.

If you enable the <!--mksite:multi--> view then the site.html sitemap file will also change into a multi-column layout. That allows to present a hundred files in a compact notation along with their long title as has been parsed out from those *.htm source files. It is also an easy way for a developer to get an overview whether all pages are present that she did want to show to the user - and to know the subject lines as would be listed by google.

Note that you can customize the sect1/sect2 relations easily - simply edit the mksite.sh that you ship with your project. Look for series of "echo"s to ".gets.tmp" somewhere around the middle of the script. The "sect1/sect2/sect3" relations are very explicit there and later steps will be always using those annotations.

And if you are keen on the tab-like multi-column layout of this webpage then be informed that this is simply a longer sitefile that usual - there are no functional differences for that in the MKSITE.SH script. It is just that MKSITE.SH will look for lines containing a "href" to one of its generated pages. If it does find such then it will put B'bold marks around the current page and kill a "class=" hint from a TD'mark containing the section name of the current page.

In other words, there is no magic in here. The MKSITE.SH is very short and I did try to make it easy to read - so you can easily derive your own version to ship along with your project sources. It would be nice if you'd inform me of your changes so that I can profit of your ideas just as you did from mine.