X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/b888eeb564af053f6298cae40cfd4f77d66b7aaf..2af6a32aba4a7f96f63b3dfc176e1d4b40488a34:/doc/ikiwiki/directive/map/discussion.mdwn diff --git a/doc/ikiwiki/directive/map/discussion.mdwn b/doc/ikiwiki/directive/map/discussion.mdwn index f44d5848c..f6eaa6b80 100644 --- a/doc/ikiwiki/directive/map/discussion.mdwn +++ b/doc/ikiwiki/directive/map/discussion.mdwn @@ -1,3 +1,14 @@ +### Sorting + +Is there a way to have the generated maps sorted by *title* instead of *filename* when show=title is used? +Thanks + +-- Thiana + +> [[bugs/map_sorts_by_pagename_and_not_title_when_show__61__title_is_used]] --[[Joey]] + +---- + Question: Is there a way to generate a listing that shows *both* title and description meta information? Currently, a \[\[!map ...]] shows only one of the two, but I'd like to generate a navigation that looks like a description list. For example: * This is the title meta information. @@ -9,3 +20,66 @@ Question: Is there a way to generate a listing that shows *both* title and descr And so on ... Is that possible? + +--Peter + +---- + +The site I'm trying to set up right now (not really a wiki - no public editing) is divided into topics. Topics are pages that have `\[[!meta link="/topic"]]`. Topic pages contain an index of their subpages (done with `\[[!inline]]`); the subpages are the real content. I want a map in the sidebar that lists: + + * all of the topics; + * all of the first-level subpages of the *current topic only*. + +That is, if the current page is "Topic A" or "Topic A/Page 1", then the map should look like + + Topic A + Page 1 + Page 2 + Page 3 + Topic B + Topic C + +but if the current page is "Topic B" or one of its subpages, then the map should look like + + Topic A + Topic B + Page 1 + Page 2 + Page 3 + Topic C + +On the top-level index page, or on any other page that is neither a topic nor a subpage of a topic, the map should list only the topics. + +Is there any way to do that? I don't mind mucking around with `\[[!meta]]` on every page if that's what it takes. + +-- Zack + +> I think that you're looking for this: +> +> `pages="((Topic*/* or Topic*) and ./*) or (Topic* and ! Topic*/*)"` +> +> Let's pull that [[PageSpec]] apart. +> +> * `(Topic*/* or Topic*)` matches all pages that are underneath a Topic +> page or are a topic page themselves. +> * `and ./*` further adds the limitation that the pages have to be +> in the same directory as the page that is displaying the map. So, +> for `Topic_A/Page_1`, it will match `Topic_A/*`; for `Topic_A`, +> it will match `Topic_*` but not subpages. +> * Finally, `Topic* and ! Topic*/*` matches all the toplevel topic pages, +> since we always want those to show up. +> +> I haven't tested that this works or displays, but I hope it gets you +> on the right track. PS, be aware of +> [[this_sidebar_issue|todo/Post-compilation_inclusion_of_the_sidebar]]! +> --[[Joey]] + +>> Thanks, but this assumes that topic pages are named `Topic`. +>> They aren't. They are tagged with `\[[!meta link="/topic"]]`, and as +>> far as I can tell there is no [[PageSpec]] notation for "subpages of a +>> page that satisfies link(foo)"... +>> -- Zack + +>>> I think that the ideas and code in +>>> [[todo/tracking_bugs_with_dependencies]] might also handle this case. +>>> --[[Joey]]