Wikitext not working inside property displayed with show

From semantic-mediawiki.org
Edited by author.
Last edit: 14:46, 16 May 2013

Did #show change between SMW 1.7.1 and 1.8.0.4? In my current setup (1.7.1) we do:

{{#set: Intro section={{{Intro section|}}} }}

{{{Intro section|}}} is set using Semantic Forms, and allows the user to type something like:

=== Sub-Section One ===
This is some intro text...

=== Sub-Section Two ===
This is more intro text...

Then this intro section can be included in another page. Of course we'd prefer to do LabeledSectionTransclude, but that doesn't appear to work with Semantic Forms since the Labeled Section can't be wrapped in an template.

In SMW 1.7.1 this worked just fine, using {{#show: My Page | ?Intro section }}. In 1.8.0.4 it does not work: we get unformatted wikitext.

If instead I do {{#ask: [[My Page]] | ?Intro section }} it properly formats the wikitext, but it puts it inside a table.

22:55, 15 May 2013

Workaround: declare a template {{==}} that merely displays its only argument: {{{1|}}}. Then use {{#show: My Page | ?Intro section | format = template | template = ==}}.

04:54, 16 May 2013

That's a good workaround, thanks. Does anyone know if there is good reason for #show to not work this way anymore? Or is it an oversight? Seems like #show is broken if this doesn't work.

14:47, 16 May 2013

I checked #set on an old SMW Version 1.7.0.2 and the notion of {{#set: Intro section={{{Intro section|}}} }} would not create any annotation within a normal wikipage because the #set only works on an invoked Parser object (which does the pre-processing, template parsing etc.) this means any pre-parsing of template content need to be finished before #set is called.

16:39, 16 May 2013