[pmwiki-users] WikiTrail enhancement request

Dominique Faure dominique.faure at gmail.com
Fri Oct 27 13:21:55 CDT 2006

On 10/27/06, Patrick R. Michaud <pmichaud at pobox.com> wrote:
> On Fri, Oct 27, 2006 at 02:18:44PM +0200, Dominique Faure wrote:
> > I'm used to implement my own wikitrail version where I managed to
> > circonvent some of the cosmetic defaults still present in the
> > wikitrail code [1]. Now, I'm stuck with the following functional
> > enhancement need, which I think requires some design feedback [2]:
> >
> > Having several lists on a wiki page, I want to be able to "isolate"
> > the wikitrail reference list from the rest of the page, as the
> > (:include:) directive does:
> >
> > * some list elements
> > * out of considered trail
> > [[#trail]]
> > * list elements
> > * used in the trail
> > [[#trailend]]
> > * ...
> Note that it's not "all list items" that generate a trail  --
> it's only those list items that begin with a link to a pagename
> are part of a trail.
> At any rate, it's not too difficult to create a delimited
> trail within the existing markup -- if you can provide a
> more detailed example of what's not working, I think I can
> provide some relatively simple workarounds.

As a practical sample:
I maintain a local copy of (almost) all wiki pages I 1st authored on
pmwiki.org in my own development installation, noticeably
Profiles.Dfaure, Cookbook.MonobookSkin,...
...thus, I want to have exactly the same page content at pmwiki.org and at home.
In the Profiles.Dfaure page, I'm enumerating both my recipe and skin
contributions in two separate lists.
Most of the Cookbook skin related pages begin by including a
Cookbook.SkinsHeader page which provides the
<<|[[(Cookbook.)Skins]]|>> trail.
So, I wanted to define my own local Cookbook.Skins and
Cookbook.SkinsHeader pages as:
[Cookbook.Skins] (:include Profiles.Dfaure#skins:)
[Cookbook.SkinsHeader] <<|Skins -> Profiles.Dfaure#skins|>>
In order to have all working as expected (but with some limitations
I'll describe later).

The workaround I already found would be to define my "personal"
section in the Cookbook.Skins and having in the Profile.Dfaure a
(:include Cookbook.Skins#dfaure:) directive at the right place, with
the major drawback that the (shared) Cookbook.Skins page should be
kept structured.

> > The Wiki trail syntax could then become something like:
> >
> > <<|Group.Page#trail|>> or <<|[[Group.Page#trail]]|>>
> >
> > which provides the feature but may not be so nice to appear on the page.
> > Therefore, I was wondering if we could consider a wikitrail as a kind
> > of link and reuse its syntaxic features such as:
> >
> > <<|Group.Page#trail|My Wikitrail name|>>
> > or <<|My Wikitrail name -> Group.Page#trail|>>
> >
> > and:
> >
> > <<|[[Group.Page#trail|My Wikitrail name]]|>>
> > or <<|[[My Wikitrail name -> Group.Page#trail]]|>>
> >
> > Any comments?
> Wikitrail markup already accepts links, as in
>     <<|[[Group.Page | My Wikitrail name]]|>>
> I'm not sure that it understands the -> link syntax, but
> it could probably be made to work.

I was first thinking of keeping tight to the wiki link syntax, but
that won't fit the general use case. In fact, the sample above leads
me to consider that the trail source should perhaps not always be
rendered directly by the markup:

Now the trail markup: <<|[[ItemIndex]]|>> is generally rendered as:
  << [[ItemX]] | [[ItemIndex]] | [[ItemY]] >>

It would be really powerful to provide a way to render a trail as:
  << [[ItemX]] | [[SomewhereElse]] | [[ItemY]] >>

In a wiki-as-a-book context, I could also easily consider the structure:
* chapters as wiki groups,
* pages as wiki pages,
* a master index page linking all pages,
* and GroupHeader/Footer pages using the master index page as a
trailer with the trailer index link pointing to the current chapter
start page as in (for example):

  <<|[[{*$Group}.|+]] -> Book.MasterIndexPage|>>

> And yes, I recognize that this doesn't provide the "grab
> only a section of a page" that you're referring to, but
> (1) that's not really what link references do, and (2) I
> think there are reasonable workarounds as mentioned above
> (but I'm also prepared for that to be disproven).

(1) Conceptually, I don't see any differences between pagelists and
wiki trails, and allowing "include" syntax in trails is similar to
using filtering parameters to pagelists.

(2) I'm quite sure we could find workarounds in almost any case, but
that could have nasty effects on the overall wiki structure when
considering several users with different rights on different places.


More information about the pmwiki-users mailing list