[pmwiki-users] Category page with exclusion mechanism

chr at home.se chr at home.se
Wed Mar 9 03:41:45 CST 2005


Hi

Although not participating a great deal lately, I've been following the
discussions and came up with an idea related to WikiTrails v.s.  
Categories. Let's compare some of their aspects advantages:

* A WikiTrail allows you to order pages in the trail
* A WikiTrail allows you to place a comment next to each page link
* A Category allows automatic listing of pages in a category

I'd like to be able to combine these... 

Here's one way that I think it could be done. Let's extend the mechanism
that generates the list of pages. Today a category page would typically
contain (via the group footer) the following code:

	(:pagelist 'Category.{$Name}' fmt=simple list=normal:)

If we imagine that the (:pagelist:)-invocation instead looked like this

	(:pagelist 'Category.{$Name}' fmt=simple list=normal \
	  page-with-list-of-pages-to-exclude=Category.{$Name} :)

where I'm beeing way more verbose than needed for clarity:-). This is 
supposed to list all pages belonging to the category, but exclude all 
pages *listed* on a specific page (the current page here). To 
illustrate how this could be used, let's imagine that 'Category.Uploads' 
contains:

	(:nogroupfooter:)
	This page lists all pages on this site that are in the
	"Uploads" category, as given by the [[!Uploads]] markup.

	These pages are suitable to start reading for this topic:
	* [[PmWiki/How to upload files]] - useful for beginners
	* [[PmWiki/Advanced upload concepts]] -- useful for administrators

	Other pages related to the [[!Uploads]]-category:

	(:pagelist 'Category.{$Name}' fmt=simple list=normal \
	  page-with-list-of-pages-to-exclude=Category.{$Name} :)

The idea is now that (:pagelist:) at the end of the page will list all 
pages belonging to the uploads category, except the pages *already* listed 
on Category.Uploads.

So how will this help us? Well, it let's us use the automatic listing of 
pages belonging to a category if we want to - without having to do any 
extra work. We can then start "improving" a category page by adding an 
*ordered* list of pages that are useful to read. This list can of course 
also contain annotations as in my example above.


To finally make this even more useful, it'd be nice if John Rankin's 
"teaser-markup" would work together with this. The list of pages in 
the example above might then look like this:

	T* [[PmWiki/How to upload files]]
	T* [[PmWiki/Advanced upload concepts]]

Where 'T*' means that a "teaser" is extraced from the page and shown 
just after the link to the page.

/Christian

PS. Patrick, I think you'll need to start implementing a cache for the
categories... I predict categories will be heavily used quite soon...

-- 
Christian Ridderström, +46-8-768 39 44               http://www.md.kth.se/~chr






More information about the pmwiki-users mailing list