Extension:Graph/fr

From mediawiki.org
This page is a translated version of the page Extension:Graph and the translation is 100% complete.
Manuel des extensions MediaWiki
OOjs UI icon advanced-invert.svg
Graph
État de la version : stable
Implémentation Balise , ContentHandler
Description Graphes contrôlés par les données
Auteur(s)
MediaWiki >= 1.40.0
Licence Licence MIT
Téléchargement
  • $wgGraphDefaultVegaVer
  • $wgGraphAllowedDomains
Traduire l’extension Graph sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue

L'extension Graph permet, au moyen de la balise ‎<graph>, la description de graphiques comme les diagrammes en barre, les camemberts, les frises chronologiques et les histogrammes (démonstration), dans un format JSON utilisé pour afficher un graphique basé sur Vega.

Informations générales

L'extension Graph donne la possibilité d'intégrer dans une page wiki des graphiques construits avec le puissant outil Vega. Ces graphiques peuvent tout aussi bien être statiques qu'interactifs.

Le moyen le plus simple pour intégrer un graphique est d'utiliser un modèle tout prêt comme {{Graph:Chart}}. Ces modèles dissimulent toutes les complexités de Vega. Les utilisateurs avancés peuvent utiliser le bac à sable de Graph pour développer leurs graphiques. Le bac à sable de Graph permet d'utiliser la syntaxe du modèle wiki et JSON. The extension integrates with VisualEditor, providing a simple tool/wizard which generates basic graphs, by entering values directly to the editor.

Liens utiles

Installation

  • Requiert l'extension JsonConfig
  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé Graph dans votre dossier extensions/.
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'Graph' );
    
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.


Installation Vagrant :

  • Si vous utilisez Vagrant , installez avec vagrant roles enable graph --provision

Paramètres de configuration supplémentaires

Si vous envisagez de répliquer un environnement de production tel que en.wiki vous devrez réaliser les étapes suivantes :

Rôles (uniquement si vous avez décidé d'utiliser Vagrant)

  • Activez le rôle graphs
  • Activez le rôle scribunto
  • Activez le rôle imagemap

Modèles et modules Lua

Exemples de diagrammes

Voir la page de démonstration pour plus d'exemples et d'astuces d'utilisation.

Replis définis par l'utilisateur

Lorsque le rendu se fait côté client, il est possible d'utiliser Wikimedia Commons pour fournir une image statique de repli aux utilisateurs noscript. Ceci est une solution temporaire le temps qu'un nouveau service soit mis en place pour fournir la génération côté serveur.

L'utilisateur doit d'abord téléverser le graphe statique dans Wikimedia Commons.

Les images de repli ont deux variables fallback et fallbackWidth.

fallback est relatif à un nom de fichier de Wikimedia Commons.

fallbackWidth est la largeur de repli des images, en pixels.

Ces variables sont passées au graphique de la manière suivante :

<graph fallback="Graph test seddon.png" fallbackWidth=450>

Là où les modules lua sont utilisés comme Module:Graph, ces variables peuvent être fournies par la fonction de la balise. Si on avait choisi Template:Graph:Chart , cela ressemblerait à :

{{safesubst:#tag:graph|{{safesubst:#invoke:Graph|chartWrapper}} | fallback = {{{fallback|''}}} |  fallbackWidth= {{{fallbackWidth|''}}} }}

Il peut être ensuite utilisé dans un modèle de la manière suivante :

{{Graph:Chart|width=400|height=100|xAxisTitle=X|yAxisTitle=Y
 |type=rect|x=1,2,3,4,5,6,7,8|y=10,12,6,14,2,10,7,9|fallback=Graph test seddon.png|fallbackWidth=450}}

Si la largeur de repli fallbackWidth n'est pas fournie, mais qu'une image est définie, alors l'extension dérive la largeur à partir de celle du graphe fourni. La raison de ceci est qu'il existe souvent une différence entre la largeur de l'image générée et la largeur actuelle de l'image.

{{Graph:Chart|width=400|height=100|xAxisTitle=X|yAxisTitle=Y
 |type=rect|x=1,2,3,4,5,6,7,8|y=10,12,6,14,2,10,7,9|fallback=Graph test seddon.png}}

Données externes

Le protocole HTTP(S) ne peut pas être utilisé pour obtenir les données du graphique. À la place, utilisez un des protocoles wiki personnalisés comme wikiraw:, wikiapi:, et autres.

L'extension Graph utilise le paramètre GraphAllowedDomains pour contrôler la résolution de ces protocoles : Note that because queries rely on the structure of wikibase items, they may suddenly stop working if the underlying data is edited and changes, as it may yield incomplete, empty or invalid data that can't be used to create a graph. In these cases the graph will end up empty (see phab:T168601).

$wgGraphAllowedDomains = [
    # clés http et https; liste tous les domaines autorisés pour l'accès aux données externes.
    # Tout domaine listé ici autorise aussi automatiquement tous les sous-domaines.
    # Protocoles personnalisés tels que 'wikiraw' ; définit le protocole à utiliser.
    # De cette manière, wikiraw://en.wikipedia.org/Page devient une requête d'API pour https://en.wikipedia.org/w/api.php?action=query&titles=Page&...
    'https' => [ 'wikipedia.org', 'wikimedia.org', ... ],
    'http' => [ 'wmflabs.org', ... ],
    
    # liste des domaines autorisés pour le wikirawupload : protocole d'accès.
    # Correspondance exacte seulement, sans les sous-domaines.
    'wikirawupload' => [ 'upload.wikimedia.org' ],
    
    # même chose que wikirawupload mais pour les requêtes Sparql de Wikidata
    'wikidatasparql' => [ 'query.wikidata.org' ],
];

Problèmes connus et limites

  • phab:tag/graph - Bogues de l'extension Graph
  • Échecs pour implémenter les dates ISO 8601 donc uniquement les calendriers grégoriens peuvent être utilisés pour les échelles de temps


Fonctionnement interne

Lors de l'analyse syntaxique, l'extension Graph développe tous les paramètres et les expressions du modèle et range les définitions complètes du graphique dans la propriété de page ParserOutput en utilisant le hachage des graphes pour ID.

L'extension graph ajoute du code HTML à la page où il y a des graphes : un ‎<div> comportant l'attribut graph-id. Exemple :

<div class="mw-graph" data-graph-id="72edc224f0a10b343c1e84f63dbfc97cac9bc957">
</div>

L'extension Graph ajoute un module JavaScript ResourceLoader ext.graph à la page qui inclut la bibliothèque Vega, et place le JSON des définitions du graphique dans une variable mediawiki.config nommée wgGraphSpecs. Une fois que le client a chargé ce module, la bibliothèque JavaScript Vega remplit chaque ‎<div> avec un canevas HTML et dessine le graphique à l'intérieur qui remplace l'image statique.

Fonctions de sécurité

‎<graph> peut être configuré pour interdire le référencement de sourcres de données non fiables (Wikimedia par exemple, n'autorise les données que de sites Wikimedia).

Licence

La bibliothèque Vega est distribuée sous une license BSD modifiée acceptable, ce qui nous permet de l'utiliser.

Ceci ressemble à une copie de la licence BSD, avec quelques modifications mineures (acceptables). Ce n'est pas gênant pour nous de l'utiliser bien que, idéalement, on ne doit pas faire de telles modifications dans la licence. C'est mieux lorsque l'on ne fait pas ce type de modification dans la licence que l'on utilise car cela évite toute confusion (comme ici) pour savoir si elle reste valable pour les sources libres.

—Stephen LaPorte

Configuration

wgGraphAllowedDomains

Voir la section sur les données externes.

Autres variables

  • (2015-12-07) - wgGraphUrlBlacklist a été supprimée dans 787d64a11.
  • (2016-01-28) - $var2 a été supprimé dans e0813f85a. Utiliser wgGraphAllowedDomains à la place.
  • (2015-09-30) - wgGraphUserServiceAlways a été supprimée dans b735f63ff4b
  • (2019-07-17) - wgGraphIsTrusted a été supprimée dans cf80f43e15
  • (2020-06) - $wgGraphImgServiceUrl est obsolète.

Activer l'espace de noms Graph

Pour enregistrer les définitions des graphiques en tant que pages séparées dans leur propre espace de noms, vous devez définir JsonConfig .

// See https://www.mediawiki.org/wiki/Extension:JsonConfig
$wgJsonConfigModels['graph.jsonconfig'] = 'graph\Content';
$wgJsonConfigs['graph.jsonconfig'] = array(
	'namespace' => <PICK-A-NS-NUMBER>,
	'nsName' => 'Graph',
	'isLocal' => true,
);

Module de l'Éditeur Visuel

Depuis l'été 2015, l'extension Graph est également associée au module ext.graph.VisualEditor qui permet l'édition de graphique dans l'Éditeur Visuel.

Ce module est le fruit d'un projet du Google Summer of Code 2015. Voir phab:T89287 pour plus de détails.

Visulaeditor Graph extension.png

Ce module permet aux utilisateurs de visualiser les graphiques dans l'Éditeur Visuel, contrairement à certaines extensions. De plus, les utilisateurs peuvent ouvrir une boîte de dialogue pour éditer le type de graphique, ses données et l'espacement. L'interface utilisateur offre aussi un moyen d'éditer les paramètres bruts JSON d'un graphe dans l'éditeur visuel, sans passer par l'éditeur de wikitexte classique, donnant la possibilité aux utilisateurs plus avancés d'ajuster les paramètres qui ne sont pas pris en compte par l'interface.

Cette première étape sert de tremplin au développement de l'édition de graphiques dans l'Éditeur Visuel, et les possibilités d'amélioration et d'extension du module sont nombreuses.

Dépannage des graphiques erronés

Les erreurs avec les graphiques seront consignées dans la console développeur.

Erreur : Arguments de constructeur incorrects (page : T277906)

Pour corriger : remplacez filepath:Earthmap1000x500compac.jpg par filepath:Earthmap1000x500.jpg

Exemple.

TypeError: undefined is not an object (evaluating 'datum.firstYear.value')

To fix: Make sure you have not set default as null

Example.

Voir aussi

  • Extension:GraphViz — pour afficher le graphe d'ensembles de sommets connectés par des arêtes (par exemple de graphiques de notes, comme cette extension)
  • Plotly — la bibliothèque de graphes à source libre JavaScript (avec des possibilité de représentation en 3d)
  • D3 — documents sur le contrôle par les données