Menu Items in the Navigation Bar

The primary navigation bar is the horizontal list above. The secondary navigation bar is the horizontal list that appears upon hovering on an item in the primary navbar. The navigation bars together with their submenus form a navigation tree rooted at the menu item Home. This page explains how to add entries to this tree.

The back-end of this web site is the filesystem tree rooted at the base folder /www/apache. Thus every web page displays the contents of some file in some folder that is a sub-(sub-...)folder of the base folder.

Each menu item appearing in the navigation tree corresponds to a subfolder of the base folder, but not every subfolder of the base folder corresponds to a menu item in the navigation tree. Thus there is an order-preserving map

folder \(\mapsto\) menu item

from a subtree of the filesystem tree to the navigation tree. The map is live: When the filesystem tree changes, so does the navigation tree, following this order-preserving map, allowing for the building of arbitrary navigation trees dynamically.

A subfolder of the base folder corresponds to a menu item in the navigation tree iff (1) a file .title (note the dot) exists inside it and (2) its parent folder corresponds to a menu item in the navigation tree. In this case, the menu item that appears is the content of .title, and the menu item corresponding to the parent folder is the subfolder's menu item's parent. Moreover, the subfolder contains an index.html file iff the corresponding menu item is clickable; when the menu item is clicked, the contents of .title is displayed with a h1 tag, followed by the display of the contents of index.html.

Here is the layout of a typical folder dir with a subfolder a and a sub-subfolder b, and an images subfolder img:

|-- dir
    |-- index.html
    |-- .title (containing DirTitle)
    |-- .order
    |-- img
    |-- a
        |-- index.html
        |-- .title (containing ATitle)
        |-- b
            |-- index.html
            |-- .title (containing BTitle)
This would produce the cascading menu items DirTitle > ATitle > BTitle.

For example, the main navbar menu items correspond exactly to the subfolders of the base folder containing .title files. These are /www/apache/people, /www/apache/news, ..., /www/apache/resources, each containing .title files with contents People, News, ..., Resources respectively (the menu item Home is an exception to the rule and corresponds to the base folder /www/apache). The subfolder /www/apache/contact doesn't contain a .title file, so it doesn't correspond to a menu item on the main navbar.

Also, there is a subfolder /www/apache/resources/toolbox/html and there are files

This leads to the cascading menu items Resources > Toolbox > Creating Your Own Web Page above. The above mechanism using the file .title is optional, you can always create a subfolder with or without a .title file.

\(\LaTeX\) may be inserted into a menu item by inserting it into the corresponding .title file (click on Toolbox above for \(\LaTeX\) instructions).

How are the menu items on the submenu below a given menu item ordered? They are ordered following a file .order (note the dot) in the folder corresponding to the given menu item. More precisely, the .order file consists of a list of subfolders separated by newlines, and the menu items corresponding to these subfolders are displayed in the same order. For example,

Thus the submenu corresponding to the menu item Resources is the ordered triple (Computing,Syllabi,Toolbox). The file .order is optional. If a subfolder is not in .order, then it is ordered towards the end. If .order doesn't exist, then the displayed menu items are ordered according to the alphabetical order of the corresponding subfolders.