Author: dda
Date: 2008-03-07 12:41:02 -0800 (Fri, 07 Mar 2008)
New Revision: 8209

Modified:
   openlaszlo/trunk/docs/src/nav/classes.xml
   openlaszlo/trunk/docs/src/nav/tags.xml
   openlaszlo/trunk/docs/src/reference/navbuilder/navbuilder.rb
   openlaszlo/trunk/docs/src/reference/navbuilder/navxmlbuilder.rb
Log:
Change 20080307-dda-B by [EMAIL PROTECTED] on 2008-03-07 15:20:58 EST
    in /Users/dda/laszlo/src/svn/openlaszlo/trunk-doc
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: docs: Fixed problems in Classes and Tags tabs in left pane navigator

New Features:

Bugs Fixed: LPP-5366

Technical Reviewer: (pending)
QA Reviewer: (pending)
Doc Reviewer: liorio (pending)

Documentation:

Release Notes:

Details:
    Overhauled navxmlbuilder.rb somewhat (navbuilder.rb is
    a red herring, probably no longer useful - added a
    message to it to use navxmlbuilder).  Now navxmlbuilder
    examines all files that might have tags in them, like
    LzCanvas.html .  This means 1) it cannot use the name of
    the file to determine the tag, now it specifically looks for
    the html title tag and the presence of <TAG_NAME>
    Rather kludgy, but accurate.  And 2) since we are looking
    at a much larger set of files, including incubator files,
    we need a way to eliminate incubator software from the reference
    doc.  Another kludge - we look for any <link> to a name
    with Incubator in it.  Easy enough in ruby.

    There is probably a cleaner way to do this - we'd like for
    the doc build process to communicate more directly to navxmlbuilder.
    Either by inserting recognizable comments or div labels into the final
    .html, or collected into another file.  Saying for example,
    this source came from the incubator, or this .html file has a tag, called 
<foo>.
    I explored the first of these, but made little headway, so
    a cleaner solution will need to be deferred.

    The classes.xml and tags.xml produced by running the script are
    part of this commit.

    The ruby files now generate in the xml a copyright comment and a 'do not
    edit this file' comment, also to make it clear that navxmlbuilder.rb
    shold be used to build them.

Tests:
    Clicked around in Classes Tags.  There should be no more broken
    links and many of the <tags> that were missing before can be found.



Modified: openlaszlo/trunk/docs/src/nav/classes.xml
===================================================================
--- openlaszlo/trunk/docs/src/nav/classes.xml   2008-03-07 20:40:35 UTC (rev 
8208)
+++ openlaszlo/trunk/docs/src/nav/classes.xml   2008-03-07 20:41:02 UTC (rev 
8209)
@@ -1,48 +1,43 @@
 <index>
-    <item href="Lz+swf7+swf8+swf9.html" title="Lz" />
+    <!-- DO NOT EDIT: generated by navxmlbuilder.rb -->
     <item href="LzAnimator.html" title="LzAnimator" />
     <item href="LzAnimatorGroup.html" title="LzAnimatorGroup" />
-    <item href="LzBrowser+dhtml.html" title="LzBrowser" />
-    <item href="LzBrowser+swf7+swf8+swf9.html" title="LzBrowser" />
-    <item href="LzCSSStyle.html" title="LzCSSStyle" />
-    <item href="LzCSSStyleDeclaration.html" title="LzCSSStyleDeclaration" />
-    <item href="LzCSSStyleRule.html" title="LzCSSStyleRule" />
-    <item href="LzCSSStyleSheet.html" title="LzCSSStyleSheet" />
+    <item href="LzBrowser+dhtml.html" title="LzBrowser (dhtml)" />
+    <item href="LzBrowser+swf7+swf8+swf9.html" title="LzBrowser (swf)" />
     <item href="LzCanvas.html" title="LzCanvas" />
     <item href="LzCommand.html" title="LzCommand" />
-    <item href="LzConnection+swf7+swf8+swf9.html" title="LzConnection" />
-    <item href="LzConnectionDatasource+swf7+swf8+swf9.html" 
title="LzConnectionDatasource" />
-    <item href="LzContextMenu+dhtml.html" title="LzContextMenu" />
-    <item href="LzContextMenu+swf7+swf8+swf9.html" title="LzContextMenu" />
-    <item href="LzContextMenuItem+dhtml.html" title="LzContextMenuItem" />
-    <item href="LzContextMenuItem+swf7+swf8+swf9.html" 
title="LzContextMenuItem" />
+    <item href="LzContextMenu+dhtml.html" title="LzContextMenu (dhtml)" />
+    <item href="LzContextMenu+swf7+swf8+swf9.html" title="LzContextMenu (swf)" 
/>
+    <item href="LzContextMenuItem+dhtml.html" title="LzContextMenuItem 
(dhtml)" />
+    <item href="LzContextMenuItem+swf7+swf8+swf9.html" 
title="LzContextMenuItem (swf)" />
+    <item href="LzCSSStyle.html" title="LzCSSStyle" />
     <item href="LzCursor.html" title="LzCursor" />
     <item href="LzDataElement.html" title="LzDataElement" />
     <item href="LzDataNode.html" title="LzDataNode" />
+    <item href="LzDatapath.html" title="LzDatapath" />
+    <item href="LzDatapointer.html" title="LzDatapointer" />
     <item href="LzDataProvider.html" title="LzDataProvider" />
     <item href="LzDataRequest.html" title="LzDataRequest" />
     <item href="LzDataSelectionManager.html" title="LzDataSelectionManager" />
-    <item href="LzDataText.html" title="LzDataText" />
-    <item href="LzDatapath.html" title="LzDatapath" />
-    <item href="LzDatapointer.html" title="LzDatapointer" />
     <item href="LzDataset.html" title="LzDataset" />
     <item href="LzDatasource.html" title="LzDatasource" />
+    <item href="LzDataText.html" title="LzDataText" />
     <item href="LzDelegate.html" title="LzDelegate" />
     <item href="LzEvent.html" title="LzEvent" />
     <item href="LzFocus.html" title="LzFocus" />
     <item href="LzFormatter.html" title="LzFormatter" />
     <item href="LzGlobalMouse.html" title="LzGlobalMouse" />
+    <item href="LzHistory+dhtml.html" title="LzHistory (dhtml)" />
+    <item href="LzHistory+swf7+swf8+swf9.html" title="LzHistory (swf)" />
     <item href="LzHTTPDataProvider.html" title="LzHTTPDataProvider" />
     <item href="LzHTTPDataRequest.html" title="LzHTTPDataRequest" />
     <item href="LzHTTPDatasource.html" title="LzHTTPDatasource" />
-    <item href="LzHistory+dhtml.html" title="LzHistory" />
-    <item href="LzHistory+swf7+swf8+swf9.html" title="LzHistory" />
     <item href="LzIdleClass.html" title="LzIdleClass" />
     <item href="LzInputText.html" title="LzInputText" />
     <item href="LzInstantiator.html" title="LzInstantiator" />
     <item href="LzInstantiatorClass.html" title="LzInstantiatorClass" />
-    <item href="LzKeys+dhtml.html" title="LzKeys" />
-    <item href="LzKeys+swf7+swf8+swf9.html" title="LzKeys" />
+    <item href="LzKeys+dhtml.html" title="LzKeys (dhtml)" />
+    <item href="LzKeys+swf7+swf8+swf9.html" title="LzKeys (swf)" />
     <item href="LzLayout.html" title="LzLayout" />
     <item href="LzLazyReplicationManager.html" 
title="LzLazyReplicationManager" />
     <item href="LzMiniNode.html" title="LzMiniNode" />
@@ -58,8 +53,7 @@
     <item href="LzTimer.html" title="LzTimer" />
     <item href="LzTimerClass.html" title="LzTimerClass" />
     <item href="LzTrackClass.html" title="LzTrackClass" />
-    <item href="LzURL.html" title="LzURL" />
     <item href="LzUserClass.html" title="LzUserClass" />
     <item href="LzView.html" title="LzView" />
-    <!-- Copyright 2007 Laszlo Systems -->     
+    <!-- Copyright 2008 Laszlo Systems -->
 </index>

Modified: openlaszlo/trunk/docs/src/nav/tags.xml
===================================================================
--- openlaszlo/trunk/docs/src/nav/tags.xml      2008-03-07 20:40:35 UTC (rev 
8208)
+++ openlaszlo/trunk/docs/src/nav/tags.xml      2008-03-07 20:41:02 UTC (rev 
8209)
@@ -1,16 +1,12 @@
 <index>
-    <item href="lz.DebugObject.html" title="DebugObject" />
-    <item href="lz.LzTextFormat.html" title="LzTextFormat" />
-    <item href="lz.SyncTester.html" title="SyncTester" />
-    <item href="lz.Test.html" title="Test" />
-    <item href="lz.TestCase.html" title="TestCase" />
-    <item href="lz.TestResult.html" title="TestResult" />
-    <item href="lz.TestSuite.html" title="TestSuite" />
-    <item href="lz.XMLHttpRequest.html" title="XMLHttpRequest" />
+    <!-- DO NOT EDIT: generated by navxmlbuilder.rb -->
+    <item href="tag-a.html" title="a" />
     <item href="lz.alert.html" title="alert" />
-    <item href="lz.autocompletecombobox.html" title="autocompletecombobox" />
-    <item href="lz.axis.html" title="axis" />
-    <item href="lz.barchart.html" title="barchart" />
+    <item href="LzAnimator.html" title="animator" />
+    <item href="LzAnimatorGroup.html" title="animatorgroup" />
+    <item href="tag.attribute.html" title="attribute" />
+    <item href="tag-audio.html" title="audio" />
+    <item href="tag-b.html" title="b" />
     <item href="lz.basebutton.html" title="basebutton" />
     <item href="lz.basebuttonrepeater.html" title="basebuttonrepeater" />
     <item href="lz.basecombobox.html" title="basecombobox" />
@@ -19,8 +15,6 @@
     <item href="lz.basedatepicker.html" title="basedatepicker" />
     <item href="lz.basedatepickerday.html" title="basedatepickerday" />
     <item href="lz.basedatepickerweek.html" title="basedatepickerweek" />
-    <item href="lz.basedragimage.html" title="basedragimage" />
-    <item href="lz.baseedittext.html" title="baseedittext" />
     <item href="lz.basefloatinglist.html" title="basefloatinglist" />
     <item href="lz.baseform.html" title="baseform" />
     <item href="lz.baseformitem.html" title="baseformitem" />
@@ -41,73 +35,60 @@
     <item href="lz.basetabsbar.html" title="basetabsbar" />
     <item href="lz.basetabscontent.html" title="basetabscontent" />
     <item href="lz.basetabslider.html" title="basetabslider" />
-    <item href="lz.basetooltip.html" title="basetooltip" />
     <item href="lz.basetrackgroup.html" title="basetrackgroup" />
     <item href="lz.basetree.html" title="basetree" />
-    <item href="lz.basevalidator.html" title="basevalidator" />
     <item href="lz.basevaluecomponent.html" title="basevaluecomponent" />
     <item href="lz.basewindow.html" title="basewindow" />
-    <item href="lz.basezoomarea.html" title="basezoomarea" />
-    <item href="lz.bigcheckbox.html" title="bigcheckbox" />
-    <item href="lz.borderinput.html" title="borderinput" />
-    <item href="lz.boxview.html" title="boxview" />
+    <item href="tag-br.html" title="br" />
     <item href="lz.button.html" title="button" />
     <item href="lz.camera.html" title="camera" />
-    <item href="lz.chart.html" title="chart" />
+    <item href="LzCanvas.html" title="canvas" />
     <item href="lz.checkbox.html" title="checkbox" />
-    <item href="lz.checkdragstate.html" title="checkdragstate" />
-    <item href="lz.closebox.html" title="closebox" />
-    <item href="lz.colorpicker.html" title="colorpicker" />
-    <item href="lz.colorpot.html" title="colorpot" />
-    <item href="lz.colorrow.html" title="colorrow" />
-    <item href="lz.colorswatch.html" title="colorswatch" />
-    <item href="lz.columnchart.html" title="columnchart" />
+    <item href="LzUserClass.html" title="class" />
     <item href="lz.combobox.html" title="combobox" />
+    <item href="LzCommand.html" title="command" />
     <item href="lz.constantboundslayout.html" title="constantboundslayout" />
     <item href="lz.constantlayout.html" title="constantlayout" />
-    <item href="lz.custombutton.html" title="custombutton" />
-    <item href="lz.datacolumn.html" title="datacolumn" />
     <item href="lz.datacombobox.html" title="datacombobox" />
-    <item href="lz.datalabel.html" title="datalabel" />
-    <item href="lz.datamarker.html" title="datamarker" />
-    <item href="lz.dataseries.html" title="dataseries" />
-    <item href="lz.datatip.html" title="datatip" />
+    <item href="LzDatapath.html" title="datapath" />
+    <item href="LzDatapointer.html" title="datapointer" />
+    <item href="LzDataRequest.html" title="datarequest" />
+    <item href="LzDataset.html" title="dataset" />
+    <item href="LzHTTPDatasource.html" title="datasource" />
     <item href="lz.datepicker.html" title="datepicker" />
     <item href="lz.datepickerday.html" title="datepickerday" />
     <item href="lz.datepickerweek.html" title="datepickerweek" />
-    <item href="lz.datevalidator.html" title="datevalidator" />
+    <item href="lz.DebugObject.html" title="DebugObject" />
     <item href="lz.dragstate.html" title="dragstate" />
     <item href="lz.drawview.html" title="drawview" />
     <item href="lz.edittext.html" title="edittext" />
-    <item href="lz.emailvalidator.html" title="emailvalidator" />
-    <item href="lz.fileupload.html" title="fileupload" />
-    <item href="lz.fileuploadlist.html" title="fileuploadlist" />
-    <item href="lz.fisheye.html" title="fisheye" />
-    <item href="lz.fisheye_item.html" title="fisheye_item" />
+    <item href="tag.event.html" title="event" />
+    <item href="tag-face.html" title="face" />
     <item href="lz.floatinglist.html" title="floatinglist" />
     <item href="lz.form.html" title="form" />
-    <item href="lz.formatbtn.html" title="formatbtn" />
-    <item href="lz.formatfontcolor.html" title="formatfontcolor" />
-    <item href="lz.formatfontface.html" title="formatfontface" />
-    <item href="lz.gradientview.html" title="gradientview" />
+    <item href="tag-frame.html" title="frame" />
     <item href="lz.grid.html" title="grid" />
     <item href="lz.gridcolumn.html" title="gridcolumn" />
     <item href="lz.gridtext.html" title="gridtext" />
+    <item href="tag.handler.html" title="handler" />
     <item href="lz.hbox.html" title="hbox" />
-    <item href="lz.horizontalaxis.html" title="horizontalaxis" />
     <item href="lz.hscrollbar.html" title="hscrollbar" />
-    <item href="lz.hsplitpane.html" title="hsplitpane" />
-    <item href="lz.html" title="html" />
     <item href="lz.html.html" title="html" />
+    <item href="LzHTTPDataProvider.html" title="httpdataprovider" />
+    <item href="LzHTTPDataRequest.html" title="httpdatarequest" />
+    <item href="tag-i.html" title="i" />
     <item href="lz.image.html" title="image" />
+    <item href="tag-img.html" title="img" />
+    <item href="tag.import.html" title="import" />
+    <item href="tag.include.html" title="include" />
+    <item href="LzInputText.html" title="inputtext" />
     <item href="lz.javarpc.html" title="javarpc" />
-    <item href="lz.label.html" title="label" />
+    <item href="LzLayout.html" title="layout" />
     <item href="lz.lazyreplicator.html" title="lazyreplicator" />
-    <item href="lz.legend.html" title="legend" />
-    <item href="lz.linechart.html" title="linechart" />
-    <item href="lz.linkdialog.html" title="linkdialog" />
+    <item href="tag.library.html" title="library" />
     <item href="lz.list.html" title="list" />
     <item href="lz.listitem.html" title="listitem" />
+    <item href="lz.LzTextFormat.html" title="LzTextFormat" />
     <item href="lz.mediadevice.html" title="mediadevice" />
     <item href="lz.mediastream.html" title="mediastream" />
     <item href="lz.menu.html" title="menu" />
@@ -117,42 +98,37 @@
     <item href="lz.menuitem.html" title="menuitem" />
     <item href="lz.menuseparator.html" title="menuseparator" />
     <item href="lz.menutrackgroup.html" title="menutrackgroup" />
+    <item href="tag.method.html" title="method" />
     <item href="lz.microphone.html" title="microphone" />
-    <item href="lz.minibutton.html" title="minibutton" />
     <item href="lz.modaldialog.html" title="modaldialog" />
-    <item href="lz.multiplefileupload.html" title="multiplefileupload" />
     <item href="lz.multistatebutton.html" title="multistatebutton" />
     <item href="lz.netparam.html" title="netparam" />
     <item href="lz.netremotecall.html" title="netremotecall" />
-    <item href="lz.numbervalidator.html" title="numbervalidator" />
-    <item href="lz.opttree.html" title="opttree" />
+    <item href="LzNode.html" title="node" />
+    <item href="tag-p.html" title="p" />
     <item href="lz.param.html" title="param" />
-    <item href="lz.piechart.html" title="piechart" />
+    <item href="LzParam.html" title="params" />
     <item href="lz.plainfloatinglist.html" title="plainfloatinglist" />
+    <item href="tag-pre.html" title="pre" />
     <item href="lz.radiobutton.html" title="radiobutton" />
     <item href="lz.radiogroup.html" title="radiogroup" />
-    <item href="lz.radioitem.html" title="radioitem" />
-    <item href="lz.rectangularchart.html" title="rectangularchart" />
     <item href="lz.remotecall.html" title="remotecall" />
     <item href="lz.replicator.html" title="replicator" />
     <item href="lz.resizelayout.html" title="resizelayout" />
     <item href="lz.resizestate.html" title="resizestate" />
     <item href="lz.resizestatemin.html" title="resizestatemin" />
+    <item href="tag-resource.html" title="resource" />
     <item href="lz.reverselayout.html" title="reverselayout" />
     <item href="lz.richinputtext.html" title="richinputtext" />
-    <item href="lz.richtexteditarea.html" title="richtexteditarea" />
-    <item href="lz.richtexteditor.html" title="richtexteditor" />
-    <item href="lz.richtexttoolbar.html" title="richtexttoolbar" />
-    <item href="lz.roundrect.html" title="roundrect" />
-    <item href="lz.roundrectbutton.html" title="roundrectbutton" />
     <item href="lz.rpc.html" title="rpc" />
     <item href="lz.rtmpconnection.html" title="rtmpconnection" />
     <item href="lz.rtmpstatus.html" title="rtmpstatus" />
+    <item href="LzScript.html" title="script" />
     <item href="lz.scrollbar.html" title="scrollbar" />
+    <item href="tag.security.html" title="security" />
+    <item href="LzSelectionManager.html" title="selectionmanager" />
     <item href="lz.sessionrpc.html" title="sessionrpc" />
-    <item href="lz.shadowbox.html" title="shadowbox" />
     <item href="lz.simpleboundslayout.html" title="simpleboundslayout" />
-    <item href="lz.simpledefaultlist.html" title="simpledefaultlist" />
     <item href="lz.simpleinputtext.html" title="simpleinputtext" />
     <item href="lz.simplelayout.html" title="simplelayout" />
     <item href="lz.slider.html" title="slider" />
@@ -160,13 +136,13 @@
     <item href="lz.slidertrack.html" title="slidertrack" />
     <item href="lz.soap.html" title="soap" />
     <item href="lz.stableborderlayout.html" title="stableborderlayout" />
+    <item href="LzState.html" title="state" />
     <item href="lz.statictext.html" title="statictext" />
-    <item href="lz.stepper.html" title="stepper" />
-    <item href="lz.stringvalidator.html" title="stringvalidator" />
     <item href="lz.style.html" title="style" />
-    <item href="lz.stylishbutton.html" title="stylishbutton" />
     <item href="lz.submit.html" title="submit" />
     <item href="lz.swatchview.html" title="swatchview" />
+    <item href="tag.switch.html" title="switch" />
+    <item href="lz.SyncTester.html" title="SyncTester" />
     <item href="lz.tab.html" title="tab" />
     <item href="lz.tabelement.html" title="tabelement" />
     <item href="lz.tabpane.html" title="tabpane" />
@@ -174,19 +150,16 @@
     <item href="lz.tabsbar.html" title="tabsbar" />
     <item href="lz.tabscontent.html" title="tabscontent" />
     <item href="lz.tabslider.html" title="tabslider" />
+    <item href="lz.Test.html" title="Test" />
+    <item href="lz.TestCase.html" title="TestCase" />
+    <item href="lz.TestResult.html" title="TestResult" />
+    <item href="lz.TestSuite.html" title="TestSuite" />
+    <item href="LzText.html" title="text" />
     <item href="lz.textformat.html" title="textformat" />
     <item href="lz.textlistitem.html" title="textlistitem" />
-    <item href="lz.textstyle.html" title="textstyle" />
-    <item href="lz.tooltip.html" title="tooltip" />
-    <item href="lz.tooltipManager.html" title="tooltipManager" />
     <item href="lz.tree.html" title="tree" />
-    <item href="lz.ulink.html" title="ulink" />
-    <item href="lz.validatingForm.html" title="validatingForm" />
-    <item href="lz.valueline.html" title="valueline" />
-    <item href="lz.valuepoints.html" title="valuepoints" />
-    <item href="lz.valueregion.html" title="valueregion" />
+    <item href="tag-u.html" title="u" />
     <item href="lz.vbox.html" title="vbox" />
-    <item href="lz.verticalaxis.html" title="verticalaxis" />
     <item href="lz.videolibraryicon.html" title="videolibraryicon" />
     <item href="lz.videolibrarypopup.html" title="videolibrarypopup" />
     <item href="lz.videoplayer.html" title="videoplayer" />
@@ -196,14 +169,13 @@
     <item href="lz.videotogglebutton.html" title="videotogglebutton" />
     <item href="lz.videoview.html" title="videoview" />
     <item href="lz.videovolumebutton.html" title="videovolumebutton" />
-    <item href="lz.viewslist.html" title="viewslist" />
-    <item href="lz.virtualdrawview.html" title="virtualdrawview" />
+    <item href="LzView.html" title="view" />
     <item href="lz.vscrollbar.html" title="vscrollbar" />
     <item href="lz.webapprpc.html" title="webapprpc" />
     <item href="lz.window.html" title="window" />
     <item href="lz.windowpanel.html" title="windowpanel" />
     <item href="lz.wrappinglayout.html" title="wrappinglayout" />
+    <item href="lz.XMLHttpRequest.html" title="XMLHttpRequest" />
     <item href="lz.xmlrpc.html" title="xmlrpc" />
-    <item href="lz.zoomarea.html" title="zoomarea" />
-    <!-- Copyright 2007 Laszlo Systems -->     
+    <!-- Copyright 2008 Laszlo Systems -->
 </index>

Modified: openlaszlo/trunk/docs/src/reference/navbuilder/navbuilder.rb
===================================================================
--- openlaszlo/trunk/docs/src/reference/navbuilder/navbuilder.rb        
2008-03-07 20:40:35 UTC (rev 8208)
+++ openlaszlo/trunk/docs/src/reference/navbuilder/navbuilder.rb        
2008-03-07 20:41:02 UTC (rev 8209)
@@ -1,5 +1,6 @@
 # Special-purpose ruby script to generate index-generated.html, a simple 
left-nav 
 # for OL4 reference.
+#
 # usage: ruby navbuilder.rb > index-generated.html
 # docs/src/reference/navbuilder/index-generated.html is managed by subversion.
 # When you want to update the left-nav, tweak this script, navbuilder.rb, 
@@ -8,8 +9,15 @@
 # author: benjamin shine [EMAIL PROTECTED]
 # created: 2007.08.29
 # built on OSX 10.4 with ruby 1.8.6
-# Copyright 2007 Laszlo Systems. Use according to license terms. 
+# Copyright 2007-2008 Laszlo Systems. Use according to license terms. 
 
+################################################################
+# Note: it appears this script is no longer used, as navigation
+# is now driven by xml files produced by navxmlbuilder.rb .
+# TODO [2008-02-20 dda] remove this script, index-generated.html, etc. from svn
+################################################################
+$stderr.puts("Use navxmlbuilder.rb - navbuilder.rb is not needed");
+
 def generate_index ( prefix, comment ) 
   # generate a list of the lz stuff 
   puts "<div id=\"tags#{prefix}\">";     
@@ -30,6 +38,48 @@
 end
 
 
+# search for <title>&lt;tagname&gt;</title>,
+# if present, it's a tag that should appear in the index.
+# This works, though it's not elegant.
+def generate_index_tags ( prefix, comment ) 
+  # generate a list of the lz stuff 
+  puts "<div id=\"tags#{prefix}\">";     
+  puts "<h1>" + prefix + "</h1>";
+  puts "<p>" + comment + "</p>"; 
+  puts "<ul>";
+  file_filter = '../../../reference/*.html';
+
+  tags = Hash::new()
+  Dir.glob(file_filter).each{ |file|
+      open(file) {|f|
+          filebase = file.sub(/..\/..\/..\/reference\//, '');
+          f.each_line { |line|
+              line.chomp!
+              if (line =~ /<title>.*<\/title>/) then
+                  if (line =~ /<title>&lt;.*&gt;<\/title>/) then
+                      t = line.sub(/.*<title>&lt;/, '').sub(/&gt;<\/title>.*/, 
'');
+                      tags[t] = filebase;
+                  end
+                  break;
+              end
+          }
+      }
+  }
+  # sort ignoring case
+  hash_sort_nocase(tags) { |tag,file|
+      puts "<li><a href=\"" + file + "\" target=\"content\">";
+      yield tag;
+      puts "</a></li>" ; 
+  }
+  puts "</ul></div>"
+end
+
+def hash_sort_nocase (h)
+  lowerkey = Hash::new()
+  h.each_pair { |k,v| lowerkey[k.downcase] = k; }
+  lowerkey.sort.each { |low,key| yield key, h[key] }
+end
+
 def generate_topic_index 
   puts "<div id=\"topics\">";   
   puts "<h1>Topics</h1>"
@@ -79,7 +129,7 @@
 
 puts "<html><body>";
 generate_top
-generate_index("lz", "lzx tags") { | elem | puts "&lt;" + elem + "&gt;" }
+generate_index_tags("lz", "lzx tags") { | elem | puts "&lt;" + elem + "&gt;" }
 generate_class_index;
 generate_topic_index; 
 generate_index("tag", "lzx xml language elements") { | elem | puts "&lt;" + 
elem + "&gt;" }

Modified: openlaszlo/trunk/docs/src/reference/navbuilder/navxmlbuilder.rb
===================================================================
--- openlaszlo/trunk/docs/src/reference/navbuilder/navxmlbuilder.rb     
2008-03-07 20:40:35 UTC (rev 8208)
+++ openlaszlo/trunk/docs/src/reference/navbuilder/navxmlbuilder.rb     
2008-03-07 20:41:02 UTC (rev 8209)
@@ -1,73 +1,92 @@
-# Special-purpose ruby script to generate index-generated.html, a simple 
left-nav 
+# Special-purpose ruby script to generate xml data files for a simple left-nav 
 # for OL4 reference.
-# usage: ruby navbuilder.rb > index-generated.html
-# docs/src/reference/navbuilder/index-generated.html is managed by subversion.
-# When you want to update the left-nav, tweak this script, navbuilder.rb, 
-# and rerun it, then check in index-generated.html. Builds will grab
-# the version-controlled index-generated.html when they build the doc. 
+#
+# usage: ruby navxmlbuilder.rb
+#
+# docs/nav/classes.xml and docs/nav/tags.xml are managed by subversion.
+# When you want to update the left-nav, run this script from the directory
+# it is in, then mv classes.xml and tags.xml to ../../nav. Builds will grab
+# the version-controlled *.xml when they build the doc. 
+#
 # author: benjamin shine [EMAIL PROTECTED]
 # created: 2007.08.29
 # built on OSX 10.4 with ruby 1.8.6
-# Copyright 2007 Laszlo Systems. Use according to license terms. 
+# Copyright 2007-2008 Laszlo Systems. Use according to license terms. 
 
+require 'date'
+YEAR = Date::today().year.to_s
+DEBUGLEVEL = 0
 
-
-
-def generate_index ( prefix, outfilename, roottag="index" )
-  f = File.new(outfilename, "w"); 
+def debug ( lev, str )
+  if (lev <= DEBUGLEVEL) then
+     $stdout.puts str + "\n"
+  end
+end
+# only appears if DEBUGLEVEL set to 1 or higher
+debug(1, "debug level is set to " + DEBUGLEVEL.to_s)
+  
+def generate_index ( filepat, outfilename, roottag="index" )
+  debug(1, "generate " + outfilename + " using file pattern " + filepat);
+  f = File.new(outfilename, "w")
   f.puts "<#{roottag}>"
-  file_filter = '../../../reference/' + prefix + '*';  
-  name_filter = Regexp.new(prefix + ".") ;
+  f.puts "    <!-- DO NOT EDIT: generated by navxmlbuilder.rb -->\n"
+  file_filter = '../../../reference/' + filepat
   lz_topics = Dir.glob(file_filter).sort
-  lz_topics = lz_topics.each{ |file| file.sub!(/..\/..\/..\/reference\//, '')};
-  lz_topics.each { |file| 
-      lz_name = yield file
+  h = Hash::new();
+  lz_topics.each { |fullname| 
+      ftype = File::ftype(fullname)
+      if (ftype != "directory") then
+          debug(2, "process " + fullname);
+          file = fullname.sub(/..\/..\/..\/reference\//, '')
+          lz_name = yield file, fullname
+          if (lz_name) then
+            h[lz_name] = file
+          end
+      end
+  }
+  hash_sort_ignorecase (h) { |lz_name,file|
       f.puts "    <item href=\"" + file + "\" title=\"#{lz_name}\" />\n"
   }
+  f.puts "    <!-- Copyright " + YEAR + " Laszlo Systems -->\n"
   f.puts "</#{roottag}>"
   f
 end
 
-def generate_topic_index 
-  puts "<div id=\"topics\">";   
-  puts "<h1>Topics</h1>"
-  puts "<ul>"
-  prefix = "topic";
-  file_filter = '../../../reference/' + prefix + '*';  
-  name_filter = Regexp.new(prefix + ".") ;
-  lz_topics = Dir.glob(file_filter).sort
-  lz_topics = lz_topics.each{ |file| file.sub!(/..\/..\/..\/reference\//, '')};
-  lz_topics.each { |file| 
-      lz_name = file.sub(name_filter, '').sub(/.html/, '').gsub(/_/, ' 
').gsub(/\./, ': ');
-      puts "<li><a href=\"" + file + "\" target=\"content\">" + lz_name + 
"</a></li>" ; 
-  }
-  
-  puts "</ul></div>"
-  
-end 
+def hash_sort_ignorecase (h)
+  lowerkey = Hash::new()
+  h.each_pair { |k,v| lowerkey[k.downcase] = k; }
+  lowerkey.sort.each { |low,key| yield key, h[key] }
+end
 
-def generate_class_index 
-  puts "<div id=\"classes\">"; 
-  puts "<h1>Classes</h1>"
-  puts "<ul>"
-  prefix = "Lz";
-  file_filter = '../../../reference/' + prefix + '*';  
-  name_filter = Regexp.new(prefix);
-  lz_topics = Dir.glob(file_filter).sort
-  lz_topics = lz_topics.each{ |file| file.sub!(/..\/..\/..\/reference\//, '')};
-  lz_topics.each { |file| 
-      lz_name = file.sub(/\.html/, '').gsub(/\+swf\d/, '').gsub(/\+dhtml/,'');
-      puts "<li><a href=\"" + file + "\" target=\"content\">" + lz_name + 
"</a></li>" ; 
+def tagname_for(filename)
+  tag = nil;
+  open(filename) {|f|
+      f.each_line { |line|
+          line.chomp!
+          if (line =~ /<title>.*<\/title>/) then
+              if (line =~ /<title>&lt;.*&gt;<\/title>/) then
+                  tag = line.sub(/.*<title>&lt;/, '').sub(/&gt;<\/title>.*/, 
'')
+              end
+          end
+          if (line =~ /<link.*\.Incubator\./) then
+             tag = nil
+             break
+          end
+      }
   }
-  
-  puts "</ul></div>";
+  tag
 end
 
+# Filenames are like lz.alert, LzAnimator.html, tag.attribute.html, tag-br.html
+# The file pattern for Lz/lz should work around any file case issues
+# on Windows vs. Unix/Linux.
 
+$stderr.puts "This version of navxmlbuilder has not resolved the issue of 
pruning out things from incubator"
 
-generate_index("lz", "lz.xml", "index") { | file | file.sub(Regexp.new("lz."), 
'').sub(/.html/, ''); }
-generate_index("tag", "tags.xml", "index") { | file | 
file.sub(Regexp.new("lz."), '').sub(/.html/, ''); }
-generate_index("Lz", "classes.xml", "index") { | file | 
-       file.sub(/\.html/, '').gsub(/\+swf\d/, '').gsub(/\+dhtml/,'');
-    }
-
+generate_index("{[Ll]z,tag}*.html", "tags.xml", "index") { | file,fullname |
+    tagname_for(fullname);
+ }
+generate_index("Lz*.html", "classes.xml", "index") { | file,ignored | 
+   file.sub(/\.html/, '').sub(/([^+]*)\+(.*)/, '\1 (\2)').gsub(/\+/, ' ').
+        sub('swf7 swf8 swf9', 'swf');
+}


_______________________________________________
Laszlo-checkins mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins

Reply via email to