]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/a_navbar_based_on_page_properties.mdwn
Use Linux uuid facility instead of an external library if possible
[git.ikiwiki.info.git] / doc / todo / a_navbar_based_on_page_properties.mdwn
index 7300aced2da2badc4ca13bdb5b895a107c7f6c26..091e0a39be0560358b0640a60071363ed8dc4d6c 100644 (file)
@@ -7,17 +7,23 @@ properties.
 So imagine four pages A, B, A/C, and A/D, and these pages would include the
 following directives, respectively
 
 So imagine four pages A, B, A/C, and A/D, and these pages would include the
 following directives, respectively
 
-    \[[navbar id=main priority=3]]
-    \[[navbar id=main priority=5]]
-    \[[navbar id=main title="Something else"]]
-    \[[navbar id=main]]
-
-then the computed navigation bar would be
-
-    B
-    A
-      Something else
-      D
+    \[[!navbaritem navbar=main priority=3]]
+    \[[!navbaritem navbar=main priority=5]]
+    \[[!navbaritem navbar=main title="Something else"]]
+    \[[!navbaritem navbar=main]]
+
+then one could insert `\[[!navbar id=main maxlevels=0]]` somewhere and it
+would get replaced with (this being in the context of viewing page C):
+
+    <ol class="navbar" id="navbar_main">
+      <li><a href="../B">B</a></li>
+      <li><a href="../A">A</a>
+        <ol>
+          <li class="current">Something else</li>
+          <li><a href="D">D</a></li>
+        </ol>
+      </li>
+    </ol>
 
 B would sort before A because it has a higher priority, but C would sort
 before D because their priorities are equal. The overridden title is not used
 
 B would sort before A because it has a higher priority, but C would sort
 before D because their priorities are equal. The overridden title is not used
@@ -25,11 +31,18 @@ for sorting.
 
 Also, the code automatically deduces that C and D are second-level under A.
 
 
 Also, the code automatically deduces that C and D are second-level under A.
 
-Obviously, while on e.g. A/C, the `<li>` element enclosing C would get a special CSS class (or even ID), and no `<a>` tag inside.
-
 I don't think this is hard to code up and it's what I've been using with
 [rest2web](http://www.voidspace.org.uk/python/rest2web/) and it's served me
 well.
 
 I don't think this is hard to code up and it's what I've been using with
 [rest2web](http://www.voidspace.org.uk/python/rest2web/) and it's served me
 well.
 
+There is a problem though if this navbar were included in a sidebar (the logical place): if a page is updated, the navbar needs to be rebuilt which causes the sidebar to be rebuilt, which causes the whole site to be rebuilt. Unless we can subscribe only to title changes, this will be pretty bad...
+
 --[[madduck]]
 --[[madduck]]
+
+> I've just written a plugin for a automatically created menu for use
+> [here](http://www.ff-egersdorf-wachendorf.de/). The source is at
+> [gitorious](http://gitorious.org/ikiwiki-plugins/automenu). The problem with
+> rebuilding remains unsolved but doesn't matter that much for me as I always
+> generate the web site myself, ie it's not really a wiki. --[[lnussel]]
+
 [[!tag wishlist]]
 [[!tag wishlist]]