Différences entre les versions de « SpecialSymbolsExample »

De Semantic MediaWiki - Sandbox

Balise : Éditeur de wikicode 2017
Balise : Éditeur de wikicode 2017
 
(7 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
This page shows a template with a keyword parameter with special symbols in its value.  
+
This page shows a partial example of how to use semantic mediawiki via templates when page values contain characters (semantic) mediawiki uses for its template and/or property setting syntax.  
  
The template should display this value and set the semantic media wiki property Has code.
+
The problematic symbols are
 +
<pre>
 +
| = { } [ ] <
 +
</pre>
  
I would like to remove the need for <nowiki><pre></pre></nowiki> in the template argument and have the clean value set as Has code by the template in the SMW properties.  
+
In various combinations or patterns these mess up the parsing of pages defined by mediawiki templates and with the semantic mediawiki property setting syntax.  
  
Note too the difficulty in getting the edit with form to correctly display the current value and insert a string with special characters into the template. Note too that the {{!}} template is left in the string value, and its inability to handle the pre tags.  
+
While documentation for escaping `|` is easy to find, documentation for escaping the other special symbols is harder to discover - but can be found here on the [https://en.wikipedia.org/wiki/Help:Metatemplating mediawiki site].
 +
 
 +
<pre>
 +
  |      {{!}}
 +
  =      {{=}}
 +
  {      {{(}}
 +
  }      {{)}}
 +
  [      {{!(}}
 +
  ]      {{!)}}
 +
  <      {{lessthan}}
 +
</pre>
 +
 
 +
However, as on this sandbox site, many of these "escape" templates are not predefined - but they are easy to define as needed.
 +
 
 +
These escapes are used in the defining template:
 +
 
 +
<pre>
 +
  {{SpecialSymbolsTemplate
 +
  |simple=no special symbols here!
 +
  |code={{!}}{{=}}{{(}}{{!(}}{{)}}{{!)}}{{lessthan}}
 +
  }}
 +
</pre>
 +
 
 +
The template can display this value without any further issues or enclose in html tags for display.  
 +
 
 +
<pre>
 +
  {{{code|}}}
 +
  <code>{{{code|}}}</code>
 +
  <div class="smwpre">{{{code|}}}<div>
 +
</pre>
 +
 
 +
The automatic property data-type dependent display implemented by semantic mediawiki is not available since the <pre>[[Has code::{{{code|}}}]]</pre> technique does not work.
 +
 
 +
The template should populate the relevant property using the #set: technique.
 +
 
 +
<pre>
 +
  {{#set:|Has code={{{code|}}}}}
 +
</pre>
 +
 
 +
PageForms does not appear to support the editing of such fields other than by treating them literally.  
  
 
{{SpecialSymbolsTemplate
 
{{SpecialSymbolsTemplate
 
|simple=no special symbols here!
 
|simple=no special symbols here!
|code=[jkldfajlf][[dsfa]]{{}}{{!}}|||{{}}}{][
+
|code={{!}}{{=}}{{(}}{{!(}}{{)}}{{!)}}{{lessthan}}
|precode=<pre>[jkldfajlf][[dsfa]]}}}{{}}{{!}}|||{{}}}{][</pre>
 
 
}}
 
}}

Dernière version du 1 novembre 2018 à 21:02

This page shows a partial example of how to use semantic mediawiki via templates when page values contain characters (semantic) mediawiki uses for its template and/or property setting syntax.

The problematic symbols are

 | = { } [ ] <

In various combinations or patterns these mess up the parsing of pages defined by mediawiki templates and with the semantic mediawiki property setting syntax.

While documentation for escaping `|` is easy to find, documentation for escaping the other special symbols is harder to discover - but can be found here on the mediawiki site.

  |      {{!}}
  =      {{=}}
  {      {{(}}
  }      {{)}}
  [      {{!(}}
  ]      {{!)}}
  <      {{lessthan}}

However, as on this sandbox site, many of these "escape" templates are not predefined - but they are easy to define as needed.

These escapes are used in the defining template:

  {{SpecialSymbolsTemplate
  |simple=no special symbols here!
  |code={{!}}{{=}}{{(}}{{!(}}{{)}}{{!)}}{{lessthan}}
  }}

The template can display this value without any further issues or enclose in html tags for display.

  {{{code|}}}
  <code>{{{code|}}}</code>
  <div class="smwpre">{{{code|}}}<div>

The automatic property data-type dependent display implemented by semantic mediawiki is not available since the

[[Has code::{{{code|}}}]]

technique does not work.

The template should populate the relevant property using the #set: technique.

  {{#set:|Has code={{{code|}}}}}

PageForms does not appear to support the editing of such fields other than by treating them literally.


SIMPLE no special symbols here!
CODE ={[}]<



Les cookies nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de cookies.