Différences entre les versions de « SpecialSymbolsExample »

De Semantic MediaWiki - Sandbox

Balise : Éditeur de wikicode 2017
Balise : Éditeur de wikicode 2017
 
(19 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>
 +
 
 +
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 [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=[[]]{{}}||||{{}}}{][
+
|code={{!}}{{=}}{{(}}{{!(}}{{)}}{{!)}}{{lessthan}}
|precode=<pre>[[]]{{}}||||{{}}}{][</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.