LifeDesign Learning Zone

Mediawiki-customization-fr

De wikiducamp
Révision datée du 1 novembre 2019 à 19:48 par Xtof (discussion | contributions) (→‎activer les belles urls)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche


Cette page a démarré sur iwc:mediawiki-customization et migrera sur iwc:mediawiki-customization-fr

Cette page documente les personnalisations produites sur MediaWiki pour notre communauté.

extensions

extensions IndieWeb

https://github.com/indieweb/mediawiki-extensions

  • AllowAnchorTags - autorise l'insertion de balises d'ancre <a> à l'intérieur du wikitexte
  • notitle - ajoute une balise __NOTITLE__ d'ajouter son propre titre de page
  • raw - vous permet d'embarquer du HTML brut dans les pages wiki en utilisant raw
  • RelWebmention - ajoute un endpoint webmention aux pages wiki
  • LassoAuth - active l'authentification connexion web via le proxy d'authentification Lasso
  • Calendar - ajoute un marqueur <calendar> pour la création d'un calendrier mensuel unique

dfn

https://github.com/aaronpk/mediawiki-mf2-dfn

Ajoute un marqueur p-summary autour de la première phrase qui contient un marqueur <dfn>

CategoryTree

mf2 parser

Le wiki requiert un parseur Microformats pour pouvoir produire quelques trucs. Copiez le repo php-mf2 dans votre dossier extensions.

extensions activées

wfLoadExtension('Cite');
wfLoadExtension('ParserFunctions');
wfLoadExtension('Auth_remoteuser');
wfLoadExtension('CategoryTree');

require_once('extensions/php-mf2/Mf2/Parser.php');
require_once('extensions/dfn/dfn.php');

require_once('extensions/IndieWeb/raw.php');
require_once('extensions/IndieWeb/notitle.php');
require_once('extensions/IndieWeb/AllowAnchorTags.php');
require_once('extensions/IndieWeb/RelWebmention.php');
require_once('extensions/IndieWeb/Calendar.php');
require_once('extensions/IndieWeb/LassoAuth.php');

config extension

LassoAuth::$auth = 'https://sso.indieweb.org/';
LassoAuth::$wiki = 'https://indieweb.org/';

$wgPingbackEndpoint = 'https://webmention.io/indiewebcamp/xmlrpc';
$wgWebmentionEndpoint = 'https://webmention.io/indiewebcamp/webmention';

personnalisations modifiables

Voir MediaWiki:Common.css pour la CSS personnalisée utilisée sur ce wiki.

configuration

Ajoutez ce qui suit aux LocalSettings.php

activer les belles urls

Le wiki est installé dans le dossier wiki sur le serveur, mais nous voulons que les URLs soient sous la forme ducamp.me/exemple.

$wgScriptPath = '/wiki';
$wgScriptExtension  = ".php";
$wgArticlePath = '/$1';
$wgUsePathInfo = true;
$wgCapitalLinks = false;

permissions utilisateurs

$wgGroupPermissions['*']['read'] = true;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['autocreateaccount'] = true;
$wgGroupPermissions['user']['move'] = true;
$wgGroupPermissions['user']['movefile'] = true;
$wgGroupPermissions['user']['delete'] = true;
$wgGroupPermissions['user']['undelete'] = true;
$wgGroupPermissions['user']['browsearchive'] = true;
$wgGroupPermissions['user']['rollback'] = true;
$wgDefaultUserOptions ['editsection'] = true;
$wgAllowUserSkin = true;
$wgAllowUserCss = true;
$wgAllowUserJs = true;

copyright

$wgEnableCreativeCommonsRdf = true;
$wgRightsPage = "IndieWebCamp:Copyrights"; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl = "http://creativecommons.org/publicdomain/zero/1.0/";
$wgRightsText = "a CC0 public domain dedication";
$wgRightsIcon = "https://i.creativecommons.org/p/zero/1.0/88x31.png";
$wgEnableCreativeCommonsRdf = true;

permettre plus de téléchargements de fichiers

$wgFileExtensions[] = 'pdf';
$wgFileExtensions[] = 'txt';
$wgFileExtensions[] = 'svg';
$wgFileExtensions[] = 'ai';

autres

$wgEnableUploads = true;
$wgAllowImageTag = true;
$wgNoFollowLinks = false;
$wgAllowExternalImages = true;
$wgCookieExpiration = 180 * 86400;
$wgSecureLogin = true;
$wgCookieSecure = true;

set up https://www.mediawiki.org/wiki/Manual:$wgRCFeeds to the secret lair of Loqi

skin

Nous utilisons la skin Vector par défaut pour le wiki, avec quelques personnalisations mineures afin d'ajouter du marquage Microformats aux pages.

Dans skins/Vector/VectorTemplate.php, faites les modifications décrites sur https://aaronparecki.com/2018/01/14/3/

page d'accueil

MediaWiki refuse de servir la page d'accueil à partir de / et insiste pour la rediriger à la place vers /Main_Page. Il est possible de renommer cette page vers quelque chose comme /Accueil, mais même ça ce n'est pas génial. Nous voulons que la page d'accueil soit servie sur simplement https://indieweb.org/. Pour faire ça, il y un fichier séparé index.php à la racine du serveur, qui renvoie en fait un miroir de la page MediaWiki.

<?php
$opts = array('title' => 'Main_Page');
if(array_key_exists('useskin',$_GET))
  $opts['useskin'] = $_GET['useskin'];
$ch = curl_init('https://indieweb.org/wiki/index.php?'.http_build_query($opts));
// Pass the HTTP_COOKIE header through for auth
if(array_key_exists('HTTP_COOKIE', $_SERVER)) {
	curl_setopt($ch, CURLOPT_HTTPHEADER, array(
		'Cookie: ' . $_SERVER['HTTP_COOKIE']
	));
}

header('Link: <https://webmention.io/indiewebcamp/webmention>; rel="webmention"');

// No-cache if the user is logged in
if(isset($_SERVER['REMOTE_USER'])) {
  header('Cache-Control: no-cache');
}

curl_exec($ch);


Voir aussi