head	1.9;
access;
symbols
	start:1.1.1.1 swish-e:1.1.1;
locks; strict;
comment	@# @;


1.9
date	2005.05.10.01.15.41;	author karman;	state Exp;
branches;
next	1.8;

1.8
date	2005.04.06.03.16.55;	author karman;	state Exp;
branches;
next	1.7;

1.7
date	2005.02.10.00.28.35;	author whmoseley;	state Exp;
branches;
next	1.6;

1.6
date	2005.02.09.23.29.29;	author whmoseley;	state Exp;
branches;
next	1.5;

1.5
date	2005.02.09.19.11.54;	author whmoseley;	state Exp;
branches;
next	1.4;

1.4
date	2005.02.03.20.17.32;	author whmoseley;	state Exp;
branches;
next	1.3;

1.3
date	2005.02.02.23.55.11;	author whmoseley;	state Exp;
branches;
next	1.2;

1.2
date	2005.01.19.07.25.09;	author whmoseley;	state Exp;
branches;
next	1.1;

1.1
date	2005.01.18.20.32.49;	author whmoseley;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2005.01.18.20.32.49;	author whmoseley;	state Exp;
branches;
next	;


desc
@@


1.9
log
@man, I love this website system! adding license.html is a snap.
@
text
@[%#
    Define site-wide navigation map.  See Badger book ch 11 p423

    A menu is a hash that can contain three keys:


    menu:
        The hash *must* contain a "menu" key which is an array of menu
        items.  These are really the id of each menu, and represent
        the basename of the page without the final extension.  .html
        is the final extension but it can be overridden.

        If the item points to a subdirectory (by having a "menu"
        entry in the "page" array), then it's the name of the
        subdirectory.

    name:
        The hash *may* contain a "name" key which is a scalar
        name used for accessing this menu from a parent menu.

    page:
        The hash *should* contain a "page" key which is a hash
        that provides extra details about the menu item.  The "page"
        hash *may* contain the follow keys:

        name:
            The description used for the menu item.  If not defined
            then the key (menu id) is used as the menu description.

        tooltip:
            The description to use as the 'title' for the menu item.
            Shows up on some browsers when the mouse is held over the
            link.

        extension:
            Changes the menu's extension.  The default is '.html'
            Might be useful for .cgi (but .html can be a cgi script
            too). Can be blank.

        file:
            This overrides the default filename that is built
            from the menu id and the extension (see config/expand
            for details).  This might be used to link to a file
            outside of the build tree.  $site.url.root is prepended
            to the file.  External urls may be specified by setting
            the "external"

        external:
            This can be set to an absolute URL that is a link
            off-site.  It directly sets the "url" key (see below).

        menu:
            If this is defined then the item is actually pointing
            to a subdirectory.  The menu's target won't be "id.html"
            but id/index.html (or as set by the "indexname" key).
            "menu" is what makes this a recursive menu structure.

        indexname:
            Changes the default index name from "index.html" to something
            else.


        hidden:
            Makes the menu item hidden.  Useful to disable a menu item
            but leave the items in the map.


        The config/expand also sets some additional keys that are available
        when generating the menu items in your menu layout template.
        See config/expand for details

        id:
            This is the id of the page, which is the same as the entry
            in the parent menu array (same as the key of this hash).

        path:
            This is the id with the above directory prepended, if any.

        file:
            (Same as above)
            This is the path with either the extension added
            or, in the case of a submenu item, the indexname
            added.  But this can be overridden in this map.

        url:
            Final url used for this link.

        hot:
            Flag that's true when the path (above) matches
            part or all of the current page.  So the link is
            either THE link to the page, or it's on the path
            to the page (i.e. it's a parent menu item).

        subs:
            Flag that's true when the menu item is "hot" AND
            the item has a sub menu (i.e. has a "menu" key)

        here:
            Flag that's true when the file (see above) is
            the same as the output file name (which is relative
            to the top level dir). This is true when the menu item
            is for the current page.


-%]
[%- #------------------------------------------------------
    # This is the download sub-menu
    docs_map    = {
        name    = this.abslinks ? 'Doc Overview' : 'documentation'

        # Sub menu
        menu = [
            'readme', 'install', 'changes', 'swish-config',
            'swish-run', 'swish-search', 'swish-faq', 'swish-bugs',
            'swish-3.0', 'swish-library', 'api',
            'swish.cgi', 'search.cgi', 'spider','filter'
        ]

        # Sum menu descriptions (quote non \w chars)
        page = {
            'readme'        = {
                name    = 'README'
                tooltip = 'First time users'
            }
            'install'       = {
                name    = 'Install'
                tooltip = 'Installation and usage overview'
            }
            'changes'       = {
                name    = 'Changes'
                tooltip = 'Important changes from previous versions'
            }
            'swish-config'  = {
                name    = 'Configuration'
                tooltip = 'Directives that go in your Swish-e configuration file'
            }
            'swish-run'     = {
                name    = 'Running'
                tooltip = 'Command line options for Swish-e binary'
            }
            'swish-search'  = {
                name    = 'Searching'
                tooltip = "Swish-e's search language"
            }
            'swish-faq'     = { name    = 'FAQ' }
            'swish-bugs'    = { name = 'Known issues' }
            'swish-3.0'     = { name = 'The Future' }
            'swish-library' = {
                name    = 'C API'
                tooltip = 'Swish-e C API'
            }
            'api'           = {
                name    = 'Perl API'
                tooltip = 'Perl interface to the Swish-e library'
            }
            'swish.cgi'     = {
                name    = 'Swish.cgi'
                tooltip = 'Example CGI/mod_perl script'
            }
            'search.cgi'    = {
                name    = 'Search.cgi'
                tooltip = 'Example Perl script using SWISH::API'
            }
            'spider'        = {
                name    = 'Spider.pl'
                tooltip = 'The Swish-e HTTP spider'
            }
            'filter'        = {
                name    = 'Filters'
                tooltip = 'How to index non-text documents'
            }
        }
    }
-%]
[%- #-------------------------------------------------------
    devel_map = {
        name    = 'development'
        tooltip = 'CVS, daily builds and development documentation'

        #sum menu
        menu    = ['daily', 'cvs', 'view_cvs', 'devel_docs' ]
        page    = {
            daily       = {
                name    = 'swish-daily'
                tooltip = 'Daily snapshots from CVS'
            }

            devel_docs  = {
                name = 'docs'
                menu = [] # fake subdir
            }

            cvs         = {
                name        = 'cvs info'
                tooltip     = 'How to build Swish-e from CVS'
            }

            view_cvs    = {
                name        = 'view cvs'
                external    = 'http://cvs.sourceforge.net/viewcvs.py/swishe/'
                tooltip     = 'Go to the SourceForge.net Swish-e CVS Repository'
            }
        }
    }
-%]
[%- #-------------------------------------------------------
    download_map = {

        #sum menu
        menu    = ['old', 'daily' ]
        page    = {
            old     = {
                name    = 'archives'
                tooltip = 'Previous versions'
            }

            daily = {
                name    = 'daily builds'
                tooltip = 'Daily packages from CVS'
                file    = 'devel/daily.html'
            }
        }
    }
-%]
[%-  #-------------------------------------------------------

    # Here's the full site menu
    map = {
        name    = 'Swish-e.org',

        # top level menu
        menu    = [
            'index', 'news', 'download', 'license', 'docs', 'support',
            'discuss', 'graphics', 'scripts', 'devel', 'who', 'demos',
            'search',
        ]


        # description of top-level menu items
        # defaults are the name of the menu id
        page    = {
            index       = { name = 'home' }
            download    = download_map
            license     = { name = 'license' }
            docs        = docs_map
            discuss     = { tooltip = 'email list and list archive' }
            devel       = devel_map
            scripts     = { name = 'related projects' }
            who         = { name = 'who uses it' }
            graphics    = { menu = [] }
            search      = {
                name   = 'Search'
                hidden = 1 # don't show on main menu
                menu   = []  # make it /search/ instead of search.html
            }
        }

    };

    site.map = map;
    # create expanded data map
    PROCESS config/expand;


    # Now build navigation links

    #USE Dumper;
    #Dumper.dump ( map ) | stderr;
-%]
@


1.8
log
@changed scripts menu name and added Swishd Cluster etc.
@
text
@d233 1
a233 1
            'index', 'news', 'download', 'docs', 'support',
d244 1
@


1.7
log
@
remove extra menu I was testing with
@
text
@d247 1
@


1.6
log
@
Add a little navigation that smart browsers can use
@
text
@d181 1
a181 1
        menu    = ['daily', 'cvs', 'view_cvs', 'devel_docs', 'another' ]
a202 6


            another = {
                name = 'deeper'
                menu = ['one', 'two']
            }
@


1.5
log
@
Limit menu to just docs when buiding docs for distribution.
Also, instead of removing search box the searh button now says:

  "search swish-e.org"

Or should that be "search Swish-e.org"?
@
text
@d181 1
a181 1
        menu    = ['daily', 'cvs', 'view_cvs', 'devel_docs' ]
d203 6
d268 5
a272 2
    # USE Dumper;
    # Dumper.dump ( map ) | stderr;
@


1.4
log
@
Fix generation of the docs table of contents.
Add Storable cache for the docs/index.html page
Make bin/build smarter about what needs to be built
@
text
@d109 1
a109 1
        name    = 'documentation'
@


1.3
log
@*** empty log message ***
@
text
@d184 1
a184 1
                name    = 'Swish-Daily'
d194 1
a194 1
                name        = 'CVS info'
d199 1
a199 1
                name        = 'View CVS'
d213 1
a213 1
                name    = 'Archives'
d218 1
a218 1
                name    = 'Daily Builds'
@


1.2
log
@*** empty log message ***
@
text
@d178 1
d183 4
a186 1
            daily       = { name = 'Swish-Daily' }
d245 1
@


1.1
log
@Initial revision
@
text
@d216 1
a216 1
                file    = 'devel/daily'
@


1.1.1.1
log
@Initial import
@
text
@@
