PData


This is testing the new PData capability, and the {$:var} markup.

First, some data that we can look at:

Field1: Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Field2: Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.
Field3: Nisi ut aliquip.

To grab the value of a field from the current page, use {$:Field1}:

  Field1 = {$:Field1}
  Field2 = {$:Field2}
  Field3 = {$:Field3}
  Field1 = Lorem ipsum dolor sit amet, consectetur adipisicing elit. 
  Field2 = Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.
  Field3 = Nisi ut aliquip.

To grab the value of a field from another page, use {pagename$:Field1} (here the data is coming from TestData):

  {TestData$:ABC}
  {TestData$:DEF}
  alpha beta charlie
  delta echo foxtrot

Some other examples, grabbing Summary lines from Cookbook and PITS pages:

  {PITS.00565$:Summary}
  {Cookbook.RandomQuote$:Summary}
  {Cookbook.RandomQuote$:Version}
  Placeholder for 2.1 features
  Insert random quotes or markup into a page
  2007-02-15

The data can also come from definition lists (currently definitions have to be a single word):

:apple:green
:banana:yellow
:cherry:red

{$:apple} {$:banana} {$:cherry}
apple
green
banana
yellow
cherry
red

green yellow red

The {$:var} markup can also be used in page templates:

[[#summary]]
* [[{=$Group}/{=$Name}]]: {=$:Summary}
[[#summaryend]]
(:pagelist fmt=#summary group=Cookbook "Summary:" count=10:)
(:pagelist fmt=#summary group=PITS "Summary:" count=10 order=-time:)
  • 01550: Pmwiki needs to increase default limits on all file sizes.
  • 01551: add markups hideactions and showactions
  • 00425: Words like DVDs and CDs are mistaken for WikiWord links
  • 01549: Separate group for Extension information and extension recipes
  • 01546: CSS "valign" attribute is considered obsolete
  • 01523: performance impaired with php 8.4/bcrypt/'nopass'
  • 01504: Raising Minimum PHP Version Requirement to 7.0
  • 01548: Allow for the FixURL GuiEdit button to decode strings
  • 01545: Pagelist parameters should always be treated as such, even if the value is, or resolves to, null
  • 01436: German Umlaut characters do not work anymore

[[#showthumbs2]]
(:if equal {<$Group}:)
>>lframe width=300px<<
(:if:)[[{=$Name}]] - {=$:Thumbnail}
(:if equal {>$Group}:)
>><<
[[#showthumbs2end]]
(:pagelist fmt=#showthumbs2 group=Test name=EasyGalleryPic* "Thumbnail:" :)

Here is a quick test to see how well the {$:var} markup works with with images and in page templates:

[[#showthumbs]]
(:if equal {<$Group}:)
>>lframe width=300px<<
(:if:)\
{=$:Thumbnail}\
(:if equal {>$Group}:)
>><<
[[#showthumbsend]]

(:pagelist fmt=#showthumbs group=Test name=EasyGalleryPic* "Thumbnail:" :)

Note: This wasn't working. Why?

  • I checked and confirmed that the appropriate pages were being picked up by the pagelist (by leaving links in the template, which I have since removed).
  • I checked and confirmed that the use of images wasn't the problem (by changing substituting text for the thumbnail on one of the pages, which I have since restored)
  • I checked and confirmed that the pages where the definitional markup resides do not need to be enabled (by grabbing a single thumbnail, as shown below)

{Test.EasyGalleryPic1$:Thumbnail}\\
{Test.EasyGalleryPic1$:Thumbnailink}

Haley

Pico September 07, 2006, at 09:10 AM


Is this an upcoming feature or test of some already available recipe?
VKrishn August 30, 2006, at 11:27 AM

It's experimentation, based on things in PITS, the Cookbook, and a discussion on the pmwiki-users mailing list. A good place to start looking at the thread might be http://www.pmichaud.com/pipermail/pmwiki-users/2006-August/031461.html (although it actually begins before that, this message is the one where the {$:var} markup is first introduced). Pm August 30, 2006, at 12:22 PM

I am not sure if there is any PITS entry for this. Please count my vote for this feature. VKrishn September 03, 2006, at 02:37 AM


Will there be a way to escape the colon to allow it to be treated literally as part of the defined value? For example, if I use it for defining titles of works, what happens if the title contains a colon, for example:

Artist: Roy Buchanan Album: Sweet Dreams : The Anthology

Workarounds would presumably include using the ascii code (%3A), or substituting a different character (-), but it might be nice to provide a more intuitive solution. What about allowing optional quotation marks, for example:

Artist: Roy Buchanan Album: "Sweet Dreams : The Anthology"

Pico September 07, 2006, at 09:10 AM

Only the first colon matters; the rest is left alone. For example:

Example: This example contains a colon:  Look, it works!

The value of example is "{$:Example}".

Example: This example contains a colon: Look, it works!

The value of example is "This example contains a colon: Look, it works!".

Pm


Some oddness with "directive" values

MyField1:the first value

MyField2
a DL value
  1. the first value
  2. a DL value
  3. a "directive" value
  4. And Foo is another "directive" value

Kathryn Andersen September 26, 2006, at 02:32 AM

  0: 00.00 00.00 config start
  1: 00.04 00.01 config end
  2: 00.10 00.03 MarkupToHTML begin
  3: 00.10 00.04 MarkupToHTML begin
  4: 00.12 00.04 MarkupToHTML end
  5: 00.12 00.04 MarkupToHTML begin
  6: 00.12 00.05 MarkupToHTML end
  7: 00.12 00.05 MarkupToHTML begin
  8: 00.13 00.05 MarkupToHTML end
  9: 00.13 00.05 MarkupToHTML begin
 10: 00.13 00.05 MarkupToHTML end
 11: 00.13 00.05 MarkupToHTML begin
 12: 00.14 00.05 FPLTemplate: Chain begin
 13: 00.14 00.05 FPLTemplate: FPLTemplateLoad
 14: 00.14 00.05 FPLTemplate: FPLTemplateDefaults
 15: 00.14 00.05 FPLTemplate: FPLTemplatePageList
 16: 00.14 00.05 MakePageList pre
 17: 00.14 00.05 PageListSources begin
 18: 00.14 00.05 PageStore::ls begin wiki.d/{$FullName}
 19: 00.15 00.06 PageStore::ls merge wiki.d/{$FullName}
 20: 00.16 00.06 PageStore::ls end wiki.d/{$FullName}
 21: 00.16 00.06 PageStore::ls begin $FarmD/wikilib.d/{$FullName}
 22: 00.16 00.06 PageStore::ls merge $FarmD/wikilib.d/{$FullName}
 23: 00.16 00.06 PageStore::ls end $FarmD/wikilib.d/{$FullName}
 24: 00.17 00.06 PageListSources end count=2350
 25: 00.18 00.06 PageListTermsTargets begin count=2350
 26: 00.18 00.06 PageIndexGrep begin
 27: 00.25 00.09 PageIndexGrep end
 28: 00.25 00.09 PageListTermsTargets end count=2209
 29: 00.25 00.09 PageListSort pre ret=4 order=name
 30: 00.25 00.09 MakePageList items count=2209, filters=PageListTermsTargets
 31: 01.68 00.67 MakePageList post count=2198, readc=2209
 32: 01.68 00.67 PageListSort begin
 33: 01.68 00.67 PageListSort sort
 34: 01.75 00.70 PageListSort end
 35: 01.75 00.70 MakePageList end
 36: 01.75 00.70 FPLTemplate: FPLTemplatePmWikiOrg
 37: 01.75 00.71 MarkupToHTML begin
 38: 01.75 00.71 MarkupToHTML end
 39: 01.75 00.71 FPLTemplate: FPLTemplateSliceList
 40: 01.75 00.71 FPLTemplate: FPLTemplateFormat
 41: 01.78 00.72 MarkupToHTML begin
 42: 01.79 00.72 MarkupToHTML end
 43: 01.79 00.72 FPLTemplate: FPLTemplatePmWikiOrgPostFormat
 44: 01.79 00.72 FPLTemplate: Chain end
 45: 01.79 00.73 MarkupToHTML end
 46: 01.79 00.73 MarkupToHTML begin
 47: 01.79 00.73 FPLTemplate: Chain begin
 48: 01.79 00.73 FPLTemplate: FPLTemplateLoad
 49: 01.79 00.73 FPLTemplate: FPLTemplateDefaults
 50: 01.79 00.73 FPLTemplate: FPLTemplatePageList
 51: 01.79 00.73 MakePageList pre
 52: 01.79 00.73 PageListSources begin
 53: 01.79 00.73 PageStore::ls begin wiki.d/{$FullName}
 54: 01.80 00.73 PageStore::ls merge wiki.d/{$FullName}
 55: 01.80 00.73 PageStore::ls end wiki.d/{$FullName}
 56: 01.80 00.73 PageStore::ls begin $FarmD/wikilib.d/{$FullName}
 57: 01.80 00.73 PageStore::ls merge $FarmD/wikilib.d/{$FullName}
 58: 01.80 00.73 PageStore::ls end $FarmD/wikilib.d/{$FullName}
 59: 01.80 00.74 PageListSources end count=1565
 60: 01.80 00.74 PageListTermsTargets begin count=1565
 61: 01.80 00.74 PageIndexGrep begin
 62: 01.83 00.76 PageIndexGrep end
 63: 01.83 00.76 PageListTermsTargets end count=1557
 64: 01.83 00.76 PageListSort pre ret=6 order=-time
 65: 01.83 00.76 MakePageList items count=1557, filters=PageListTermsTargets,PageListSort
 66: 02.38 01.03 MakePageList post count=1555, readc=1557
 67: 02.38 01.03 PageListSort begin
 68: 02.38 01.03 PageListSort sort
 69: 02.42 01.05 PageListSort end
 70: 02.42 01.05 MakePageList end
 71: 02.42 01.05 FPLTemplate: FPLTemplatePmWikiOrg
 72: 02.43 01.05 MarkupToHTML begin
 73: 02.43 01.05 MarkupToHTML end
 74: 02.43 01.05 FPLTemplate: FPLTemplateSliceList
 75: 02.43 01.05 FPLTemplate: FPLTemplateFormat
 76: 02.44 01.06 MarkupToHTML begin
 77: 02.46 01.07 MarkupToHTML end
 78: 02.46 01.07 FPLTemplate: FPLTemplatePmWikiOrgPostFormat
 79: 02.46 01.07 FPLTemplate: Chain end
 80: 02.46 01.07 MarkupToHTML end
 81: 02.46 01.07 MarkupToHTML begin
 82: 02.47 01.07 FPLTemplate: Chain begin
 83: 02.47 01.07 FPLTemplate: FPLTemplateLoad
 84: 02.47 01.07 FPLTemplate: FPLTemplateDefaults
 85: 02.47 01.07 FPLTemplate: FPLTemplatePageList
 86: 02.47 01.07 MakePageList pre
 87: 02.47 01.07 PageListSources begin
 88: 02.47 01.07 PageStore::ls begin wiki.d/{$FullName}
 89: 02.48 01.08 PageStore::ls merge wiki.d/{$FullName}
 90: 02.49 01.08 PageStore::ls end wiki.d/{$FullName}
 91: 02.49 01.08 PageStore::ls begin $FarmD/wikilib.d/{$FullName}
 92: 02.49 01.08 PageStore::ls merge $FarmD/wikilib.d/{$FullName}
 93: 02.49 01.08 PageStore::ls end $FarmD/wikilib.d/{$FullName}
 94: 02.49 01.08 PageListSources end count=6
 95: 02.49 01.08 PageListTermsTargets begin count=6
 96: 02.49 01.08 PageIndexGrep begin
 97: 02.55 01.10 PageIndexGrep end
 98: 02.55 01.10 PageListTermsTargets end count=6
 99: 02.55 01.10 PageListSort pre ret=4 order=name
100: 02.55 01.10 MakePageList items count=6, filters=PageListTermsTargets
101: 02.55 01.11 MakePageList post count=6, readc=6
102: 02.55 01.11 PageListSort begin
103: 02.55 01.11 PageListSort sort
104: 02.55 01.11 PageListSort end
105: 02.55 01.11 MakePageList end
106: 02.55 01.11 FPLTemplate: FPLTemplatePmWikiOrg
107: 02.55 01.11 MarkupToHTML begin
108: 02.55 01.11 MarkupToHTML end
109: 02.55 01.11 FPLTemplate: FPLTemplateSliceList
110: 02.55 01.11 FPLTemplate: FPLTemplateFormat
111: 02.56 01.11 MarkupToHTML begin
112: 02.58 01.12 MarkupToHTML end
113: 02.58 01.12 FPLTemplate: FPLTemplatePmWikiOrgPostFormat
114: 02.58 01.12 FPLTemplate: Chain end
115: 02.58 01.12 MarkupToHTML end
116: 02.58 01.12 MarkupToHTML begin
117: 02.58 01.12 FPLTemplate: Chain begin
118: 02.58 01.12 FPLTemplate: FPLTemplateLoad
119: 02.58 01.12 FPLTemplate: FPLTemplateDefaults
120: 02.58 01.12 FPLTemplate: FPLTemplatePageList
121: 02.58 01.12 MakePageList pre
122: 02.58 01.12 PageListSources begin
123: 02.58 01.12 PageStore::ls begin wiki.d/{$FullName}
124: 02.59 01.12 PageStore::ls merge wiki.d/{$FullName}
125: 02.59 01.13 PageStore::ls end wiki.d/{$FullName}
126: 02.59 01.13 PageStore::ls begin $FarmD/wikilib.d/{$FullName}
127: 02.59 01.13 PageStore::ls merge $FarmD/wikilib.d/{$FullName}
128: 02.59 01.13 PageStore::ls end $FarmD/wikilib.d/{$FullName}
129: 02.59 01.13 PageListSources end count=6
130: 02.59 01.13 PageListTermsTargets begin count=6
131: 02.59 01.13 PageIndexGrep begin
132: 02.66 01.15 PageIndexGrep end
133: 02.66 01.16 PageListTermsTargets end count=6
134: 02.66 01.16 PageListSort pre ret=4 order=name
135: 02.66 01.16 MakePageList items count=6, filters=PageListTermsTargets
136: 02.66 01.16 MakePageList post count=6, readc=6
137: 02.66 01.16 PageListSort begin
138: 02.66 01.16 PageListSort sort
139: 02.66 01.16 PageListSort end
140: 02.66 01.16 MakePageList end
141: 02.66 01.16 FPLTemplate: FPLTemplatePmWikiOrg
142: 02.66 01.16 MarkupToHTML begin
143: 02.66 01.16 MarkupToHTML end
144: 02.66 01.16 FPLTemplate: FPLTemplateSliceList
145: 02.66 01.16 FPLTemplate: FPLTemplateFormat
146: 02.66 01.16 MarkupToHTML begin
147: 02.68 01.16 MarkupToHTML end
148: 02.68 01.16 FPLTemplate: FPLTemplatePmWikiOrgPostFormat
149: 02.68 01.16 FPLTemplate: Chain end
150: 02.68 01.16 MarkupToHTML end
151: 02.68 01.16 MarkupToHTML begin
152: 02.68 01.17 MarkupToHTML end
153: 02.68 01.17 MarkupToHTML begin
154: 02.69 01.17 MarkupToHTML end
155: 02.73 01.19 ReadApprovedUrls SiteAdmin.ApprovedUrls begin
156: 02.74 01.20 ReadApprovedUrls SiteAdmin.ApprovedUrls end
157: 02.77 01.21 MarkupToHTML end
158: 02.79 01.22 MarkupToHTML begin
159: 02.81 01.23 MarkupToHTML end
160: 02.81 01.23 MarkupToHTML begin
161: 02.81 01.23 MarkupToHTML end
162: 02.82 01.23 now
Peak memory: 11,783,976 bytes