Difference between revisions of "Transclusionism"

From Mondothèque

Line 1: Line 1:
 
This page documents some of the contraptions at work in this wiki.
 
This page documents some of the contraptions at work in this wiki.
  
 
+
===== How to transclude labeled sections between texts: =====
 
To create links between different pages, based on some selection of text that somehow connects the pages on the bases of some common ground:
 
To create links between different pages, based on some selection of text that somehow connects the pages on the bases of some common ground:
 
* Think of a category that is the common ground for the link. (eg. '<code>rawdata</code>'), formulate it '''without spaces''' or using underscores (eg. '<code>raw_data</code>', not '<code>raw data</code>' );
 
* Think of a category that is the common ground for the link. (eg. '<code>rawdata</code>'), formulate it '''without spaces''' or using underscores (eg. '<code>raw_data</code>', not '<code>raw data</code>' );
Line 7: Line 7:
 
* All the other text selections in other pages which are selected along the same common ground will be transcluded on the side of the text.
 
* All the other text selections in other pages which are selected along the same common ground will be transcluded on the side of the text.
  
How it works:
+
===== How it works: =====
 
The section code is used by the 'Labeled Section Transclusion' extension, which looks for the tagged sections in a text, to transclude them into another text based on the assigned labels.
 
The section code is used by the 'Labeled Section Transclusion' extension, which looks for the tagged sections in a text, to transclude them into another text based on the assigned labels.
 
The <code><nowiki>{{RT|rawdata}}<section begin=rawdata /> </nowiki></code> instead, transcludes the RT Template, substituting the word <code>rawdata</code> in its internal code. This is the content of Template:RT:
 
The <code><nowiki>{{RT|rawdata}}<section begin=rawdata /> </nowiki></code> instead, transcludes the RT Template, substituting the word <code>rawdata</code> in its internal code. This is the content of Template:RT:
<code>{{RT}}</code>
+
<code><nowiki><div class="side">
 +
{{#ask:[[Category:{{{1}}}]] |format=array |name=results}}
 +
{{#loop: looper
 +
  | 0
 +
  | {{#arraysize: results}}
 +
  | {{#ifeq: {{FULLPAGENAME: {{#arrayindex: results | {{#var:looper}}  }} }} | {{FULLPAGENAME}}  | |  {{#lst: {{#arrayindex: results | {{#var:looper}}  }}  | {{{1}}} }}  ([[{{#arrayindex: results | {{#var:looper}}  }}]])<br /><br />  }}
 +
}}</div>[[category:{{{1}}}]]
 +
</nowiki></code>
  
Currently on top of MediaWiki and SemanticMediaWiki, the following extensions needed to be installed for the contraptions to work:
+
===== Necessaire: =====
 +
Currently on top of MediaWiki and SemanticMediaWiki, the following extensions needed to be installed for the contraption to work:
 
* [https://www.mediawiki.org/wiki/Extension:Labeled_Section_Transclusion Labeled Section Transclusion]  to be able to select specific sections of the texts and make connections between them;
 
* [https://www.mediawiki.org/wiki/Extension:Labeled_Section_Transclusion Labeled Section Transclusion]  to be able to select specific sections of the texts and make connections between them;
 
* [https://www.mediawiki.org/wiki/Extension:ParserFunctions Parser Functions] to be able to operate statements like if in the wiki pseudo-language;
 
* [https://www.mediawiki.org/wiki/Extension:ParserFunctions Parser Functions] to be able to operate statements like if in the wiki pseudo-language;

Revision as of 10:12, 27 February 2016

This page documents some of the contraptions at work in this wiki.

How to transclude labeled sections between texts:

To create links between different pages, based on some selection of text that somehow connects the pages on the bases of some common ground:

  • Think of a category that is the common ground for the link. (eg. 'rawdata'), formulate it without spaces or using underscores (eg. 'raw_data', not 'raw data' );
  • Edit the page and add {{RT|rawdata}}<section begin=rawdata /> before the text selection, and <section end=rawdata /> at the end (take care of the '/', without it doesn't work);
  • All the other text selections in other pages which are selected along the same common ground will be transcluded on the side of the text.
How it works:

The section code is used by the 'Labeled Section Transclusion' extension, which looks for the tagged sections in a text, to transclude them into another text based on the assigned labels. The {{RT|rawdata}}<section begin=rawdata /> instead, transcludes the RT Template, substituting the word rawdata in its internal code. This is the content of Template:RT: <div class="side"> {{#ask:[[Category:{{{1}}}]] |format=array |name=results}} {{#loop: looper | 0 | {{#arraysize: results}} | {{#ifeq: {{FULLPAGENAME: {{#arrayindex: results | {{#var:looper}} }} }} | {{FULLPAGENAME}} | | {{#lst: {{#arrayindex: results | {{#var:looper}} }} | {{{1}}} }} ([[{{#arrayindex: results | {{#var:looper}} }}]])<br /><br /> }} }}</div>[[category:{{{1}}}]]

Necessaire:

Currently on top of MediaWiki and SemanticMediaWiki, the following extensions needed to be installed for the contraption to work:

  • Labeled Section Transclusion to be able to select specific sections of the texts and make connections between them;
  • Parser Functions to be able to operate statements like if in the wiki pseudo-language;
  • Arrays to create lists of objects, for example as a result of semantic queries;
  • Loops to loop between the arrays above;
  • Variables as it's needed by some of the above.

What links here