Home - La documentation de Frantext : un wiki programmable

Page / - dernière modification par Gilles Toubiana le 2018/11/16 15:12

La documentation de Frantext : un wiki programmable

dernière modification par Gilles Toubiana

le 2018/11/16 15:12

Table des matières

Éditeur en ligne

Syntaxe WIKI

Présentation avancée

Programmation côté client

Programmation côté serveur

Aller plus loin

Versions

DANS CETTE PAGE

Éditeur en ligne

Syntaxe WIKI

Gras

Italiques

Lien

Tableau

Image

Titre H1-H6

Titre de niveau 4

Classe CSS

Présentation avancée

Code

HTML

TOC

BOOTSTRAP CSS

BOOTSTRAP JS

Programmation côté client

JQUERY

Programmation côté serveur

Variables

Script

Macro

Inclusion

Aller plus loin

Versions

La documentation de Frantext est rédigée à l'aide d'un wiki open-source baptisé Xwiki développé en Java. Au-delà des fonctionnalités classiques d'un wiki, il a l'originalité de permettre à n'importe quel rédacteur de créer des pages complexes à l'aide de langages de script tels que JavaScript et Apache Velocity, sans nécessiter de droits spécifiques d'administration ou de programmation. Ce type de wiki peut servir à valoriser un projet de recherche ou des publications scientifiques.

Par défaut, le wiki permet d'exploiter les langages suivants : XWIKIsyntax, HTML, CSS, LESS, Javascript, JQuery, Apache Velocity, Apache Groovy, etc. Le thème graphique par défaut utilise quant à lui les bibliothèques suivantes : Bootstrap, Jquery, LESS, etc.

L'ajout d'extensions peut permettre l'utilisation d'autres langages tels que Python, Ruby, PHP, mais ces derniers ne pourront être exploités que par des utilisateurs ayant des droits d'administration ou de programmation.

Éditeur en ligne

L'édition de pages se fait par défaut en mode WYSIWYG. L'éditeur CKEditor est installé par défaut. D'autres éditeurs peuvent être installés par l'administrateur.

Il permet notamment d'appliquer les enrichissements de caractères les plus courants tels que le gras et l'italique. Il permet de créer des liens, des tableaux, d'intégrer des images et même d'appliquer des styles prédéfinis tels que les niveaux de titres standards (H1-H6) ou bien des classes issues des feuilles de styles utilisées par le thème graphique.

Pour éditer une page, cliquez en haut à droite sur le bouton Modifier.

Syntaxe WIKI

Lorsque vous modifiez une page, vous pouvez utiliser la syntaxe WIKI pour appliquer les mêmes enrichissements de caractères que l'éditeur, en cliquant sur le bouton Source depuis la barre de l'éditeur.

Enrichissement	Affichage	Syntaxe WIKI
Gras	Texte en gras	**Texte en gras**
Italiques	Texte en italique	//Texte en italique//
Lien	Lien	[[Lien>>doc:Main.WebHome]]
Tableau	Col 1 Col 2 Col 3 A B C	|=Col 1|=Col 2|=Col 3 |A|B|C
Image	[[image:Main.WebHome@grammaire.png||alt="Grammaire"]]
Titre H1-H6	Titre de niveau 4	==== Titre de niveau 4 ====
Classe CSS	Texte d'introduction	(% class="lead" %) Texte d'introduction

Présentation avancée

Il est possible d'exploiter des composants propres au thème graphique, ou d'utiliser des Macros XWiki.

Enrichissement	Affichage	Syntaxe WIKI
Code	La macro Code	{{code}}La macro Code{{/code}}
HTML	La macro HTML	{{html}}<small>La macro HTML</small>{{/html}}
TOC	DANS CETTE PAGE Éditeur en ligne Syntaxe WIKI Présentation avancée Programmation côté client Programmation côté serveur Aller plus loin Versions	{{box cssClass="floatinginfobox" title="**DANS CETTE PAGE**"}} {{toc start=2 depth=2 numbered=false scope=page /}} {{/box}}
BOOTSTRAP CSS	Un bouton Bootstrap 3	[[Un bouton Bootstrap 3>>https://getbootstrap.com/docs/3.3/css/#buttons-sizes||class="btn btn-primary btn-lg"]] et ajout d'un objet XWiki.StyleSheetExtension #xwikicontent .wikiexternallink { background: none; padding-right: 0; }
BOOTSTRAP JS	× Une alerte Bootstrap 3	(% role="alert" class="alert alert-danger alert-dismissible" %) ((( {{html wiki="true"}} <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> <strong>Une alerte Bootstrap 3 {{/html}} )))

Programmation côté client

Enrichissement	Affichage	Syntaxe WIKI
JQUERY	3 publications HAL	{{html wiki="true"}} <h3>3 publications HAL<span id="halnum"></span></h3> <div id="hal"></div> {{/html}} et ajout d'un objet Xwiki.JavaScriptExtension : require(['jquery'], function($) { var halurl = "https://api.archives-ouvertes.fr/search/hal/?omitHeader=true&wt=json&indent=true&q=Frantext&sort=producedDate_tdate+desc&fq=NOT+instance_s%3Asfo&fq=NOT+instance_s%3Adumas&fq=NOT+instance_s%3Amemsic&fq=NOT+%28instance_s%3Ainria+AND+docType_s%3A%28MEM+OR+PRESCONF%29%29&fq=NOT+%28instance_s%3Aafssa+AND+docType_s%3AMEM%29&fq=NOT+%28instance_s%3Aenpc+AND+docType_s%3A%28OTHERREPORT+OR+MINUTES+OR+NOTE+OR+SYNTHESE+OR+MEM+OR+PRESCONF%29%29&fq=NOT+%28instance_s%3Auniv-mlv+AND+docType_s%3A%28OTHERREPORT+OR+MINUTES+OR+NOTE+OR+MEM+OR+PRESCONF%29%29&fq=NOT+%28instance_s%3Ademocrite+AND+docType_s%3AMEM%29&fq=NOT+%28instance_s%3Aafrique+AND+docType_s%3AMEM%29&fq=NOT+%28instance_s%3Asaga+AND+docType_s%3A%28PRESCONF+OR+BOOKREPORT%29%29&fq=NOT+%28instance_s%3Aunice+AND+docType_s%3AMEM%29&fq=NOT+%28instance_s%3Alara+AND+docType_s%3AREPACT%29&fq=NOT+%28docType_s%3A%28THESE+OR+HDR%29+AND+submitType_s%3A%28notice+OR+annex%29%29&fq=NOT+%28instance_s%3Alaas+AND+docType_s%3AMEM%29&fq=NOT+%28instance_s%3Aephe+AND+docType_s%3AMEM%29&fq=NOT+instance_s%3Ahceres&fq=NOT+status_i%3A111&fq=%7B%21tag%3Dtag0__docType_s%7DdocType_s%3A%28%22ART%22+OR+%22COMM%22+OR+%22OUV%22+OR+%22COUV%22+OR+%22DOUV%22+OR+%22REPORT%22+OR+%22OTHER%22+OR+%22THESE%22+OR+%22HDR%22+OR+%22LECTURE%22+OR+%22UNDEFINED%22%29&fq=%7B%21tag%3Dtag1__submitType_s%7DsubmitType_s%3A%28%22file%22%29&defType=edismax&rows=10"; $.getJSON(halurl, function(data) { var items = []; var j = data.response.docs.length; $("#halnum").text("(sur " + data.response.numFound + ")"); for (i = 0; i < j; i++) { var k = data.response.docs[i]; items.push("<li id='" + k.docid + "'><a href='" + k.uri_s + "'>" + k.label_s + "</a></li>"); } $("<ol/>", { "class": "hal-list", html: items.join("") }).appendTo("#hal"); }); });

Programmation côté serveur

Enrichissement	Affichage	Syntaxe WIKI
Variables	Le 01 avril 2026, Frantext intégral contient 5350 ouvrages dans sa version 1.2.21.	{{velocity}} #set ($chaine = "Frantext") #set ($tableau = ["intégral", "démonstration", "agrégation"]) #set ($objet = { "version": "1.2.21", "oeuvres": "5350" }) #set ($date = $datetool.get('dd MMMM yyyy')) Le $date, $chaine $tableau[0] contient $objet["oeuvres"] dans sa version $objet.version. {{/velocity}}
Script	Questions fréquentes Base agrégation $temp Base démonstration v1.2.21 Utilisation du logo v1.2.21 La segmentation v1.2.x L'étiquetage v1.2.x	{{velocity}} #set ($query = $services.query.xwql("from doc.object(XWiki.TagClass) as tag where 'faq' member of tag.tags order by doc.date desc")) #set ($recentlyCreated = $query.addFilter('hidden').setLimit(6).execute()) #if ($recentlyCreated.size() > 0 || $showEmptyPanels) #panelheader('Questions fréquentes') #foreach ($docName in $recentlyCreated) #if ($xwiki.hasAccessLevel('view', $docName)) #set ($recentDoc = $xwiki.getDocument($docName).getTranslatedDocument()) #set ($recentTag = $xwiki.getDocument($docName).getTagList()) #foreach ($myTag in $recentTag) #if ($myTag.matches('.*v\d+\.\d+\.(\d+|x).*')) #set ($temp = $myTag) #end #end ## Affichage du résultat en HTML * {{html}}<a href="$recentDoc.getURL()">$escapetool.xml($recentDoc.plainTitle)</a> <small class="text-muted">$temp</small>{{/html}} #end #end #panelfooter() #end {{/velocity}}
Macro	Fonctionnalités Les expressions CQL v1.2.23 Recherche v1.2.22 Filtrer les résultats v1.2.22 Correspondance des versions v1.2.x L'interface utilisateur v1.2.x Corpus v1.3.11	{{velocity}} #macro( listByTagName $title $tag $order $limit) #set ($query = $services.query.xwql("from doc.object(XWiki.TagClass) as tag where '$tag' member of tag.tags order by $order")) #set ($recentlyCreated = $query.addFilter('hidden').setLimit($limit).execute()) #if ($recentlyCreated.size() > 0 || $showEmptyPanels) #panelheader($title) #foreach ($docName in $recentlyCreated) #if ($xwiki.hasAccessLevel('view', $docName)) #set ($recentDoc = $xwiki.getDocument($docName).getTranslatedDocument()) #set ($recentTag = $xwiki.getDocument($docName).getTagList()) #foreach ($myTag in $recentTag) #if ($myTag.matches('.*v\d+\.\d+\.(\d+|x).*')) #set ($temp = $myTag) #end #end ## We use HTML here because we don't have a tool to escape wiki syntax in document title. * {{html}}<a href="$recentDoc.getURL()">$escapetool.xml($recentDoc.plainTitle)</a> <small class="text-muted">$temp</small>{{/html}} #end #end #panelfooter() #end #end #listByTagName('Fonctionnalités','manuel','doc.date desc',6) {{/velocity}}
Inclusion	searchGo	{{include reference="xwiki:variables.WebHome"/}}{{velocity}}#recherche{{/velocity}}

Aller plus loin

XWiki : https://www.xwiki.org/xwiki/bin/view/Main/WebHome

Syntaxe XWiki : https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/XWikiSyntax/

HTML / CSS / Javascript : https://developer.mozilla.org/fr/docs/Web

LESS : http://lesscss.org/

JQUERY : https://jquery.com/

Apache Velocity : http://velocity.apache.org/

Apache Groovy : http://groovy-lang.org/index.html

Bootstrap 3 : https://getbootstrap.com/docs/3.3/

Les scripts de XWiki : https://network.xwiki.com/xwiki/bin/view/DocXE44Fr/LesScriptsXWiki

Versions

getCoreExtension : 10.11.11

repository.environmentExtension : 10.11.11