Ok. I got the point how those "nested" pagelists work. Thanks for hinting and helping.
The code how it worked in my installation:

Instructions:
- Create one wikipage for each notion that you want to index (e.g. Questions.answer125).
- Create all those pages into a special group (e.g. Questions)
- You can set these pages' titles differing from the pagename.
- Put anchors on "normal" wikipages. Use the notion's page name (not title). E.g.: [[#answer125]] - The nested pagelist first looks up all pages in the notion group (e.g. Questions). - Then for each finding it looks up the corresponding anchors on the "normal" wikipages

-------------------------
(:pagelist group=Questions order=title fmt=#processquestion:)

(:if1 false:)
[[#processquestion]]
(:comment --- for the current question, list all pages outside the Questions group that contain an answer ---:) (:pagelist group=-Questions "[[#{=$Name}]]" questionfullname={=$FullName} order=title fmt=#listanswerstoquestion:)
[[#processquestionend]]

[[#listanswerstoquestion]]
(:comment --- if more than one page answers the question, each will be separated by a comma ---:)
(:template first:)
{{$$questionfullname}$Title}:
(:template each:)
 [[{=$FullName}#{{$$questionfullname}$Name}|+]]
(:if !equal "{>$Name}" "":)
,
(:template last:)
\\
[[#listanswerstoquestionend]]
(:if1end:)
-------------------------


Since in my case I have 5 topic areas with each 200 questions this would mean that I had to create 1000 pages. I solve this with a suffix. Like that I can "recycle" the 200 question pages for each topic area. The anchors are named [[#answer125-a]]. The pagelist looks as follows (for topic area A):

-------------------------
!!topic area A

(:pagelist group=Questions order=title fmt=#processquestion-a:)

(:if1 false:)
[[#processquestion-a]]
(:comment --- for the current question, list all pages outside the Questions group that contain an answer ---:) (:pagelist group=-Questions "[[#{=$Name}-a]]" questionfullname={=$FullName} order=title fmt=#listanswerstoquestion-a:)
[[#processquestion-aend]]

[[#listanswerstoquestion-a]]
(:comment --- if more than one page answers the question, each will be separated by a comma ---:)
(:template first:)
{{$$questionfullname}$Title}:
(:template each:)
 [[{=$FullName}#{{$$questionfullname}$Name}-a|+]]
(:if !equal "{>$Name}" "":)
,
(:template last:)
\\
[[#listanswerstoquestion-aend]]
(:if1end:)
-------------------------


This could more easily be solved if there was a loop function (something like (:for:) (:forend:)) with a variable counting onwards. But I don't think something like this is possible in pmwiki?

Thank you anyway to all!
Markus




_______________________________________________
pmwiki-users mailing list
[email protected]
http://www.pmichaud.com/mailman/listinfo/pmwiki-users

Reply via email to