From 340b79f78563a1b381cb37739f678b3d13400f68 Mon Sep 17 00:00:00 2001 From: Lyes Saadi Date: Sun, 27 Jul 2025 03:01:31 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20(maximaliste)=20d'extensions=20(il=20fa?= =?UTF-8?q?udra=20peut-=C3=AAtre=20en=20=C3=A9liminer)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/services/mediawiki.nix | 55 ++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/modules/services/mediawiki.nix b/modules/services/mediawiki.nix index 042f516..0b6095f 100644 --- a/modules/services/mediawiki.nix +++ b/modules/services/mediawiki.nix @@ -16,12 +16,22 @@ in owner = "mediawiki"; }; + environment.systemPackages = with pkgs; [ + imagemagick + + # For the PdfHandler extension + ghostscript + poppler-utils + ]; + services.phpfpm.pools.mediawiki.phpOptions = '' upload_max_filesize = 512M post_max_size = 512M max_execution_time = 1000 max_input_time = 2000 default_socket_timeout = 2000 + extension = ${pkgs.phpExtensions.mbstring}/lib/php/extensions/mbstring.so + extension = ${pkgs.phpExtensions.luasandbox}/lib/php/extensions/luasandbox.so ''; services.nginx.clientMaxBodySize = "512M"; @@ -51,6 +61,10 @@ in # Files and Uploads $wgMaxUploadSize = 512 * 1024 * 1024; + $wgUseImageMagick = true; + $wgImageMagickConvertCommand = '${ pkgs.imagemagick }/bin/convert'; + $wgStrictFileExtensions = false; + $wgFileExtensions[] = 'pdf'; # Limite mémoire, quand on fait de gros importi (9M de xml), le parser # prends plus que 50M @@ -113,6 +127,12 @@ in # Extensions $wgWikiEditorRealtimePreview = true; + $wgCiteBookReferencing = true; + $wgPdfProcessor = '${ pkgs.ghostscript }/bin/gs'; + $wgPdfPostProcessor = $wgImageMagickConvertCommand; + $wgPdfInfo = '${ pkgs.poppler-utils }/bin/pdfinfo'; + $wgPdftoText = '${ pkgs.poppler-utils }/bin/pdftotext'; + $wgScribuntoDefaultEngine = 'luasandbox'; # Custom Namespaces define("NS_ARCHIVE", 3000); @@ -139,13 +159,32 @@ in extensions = { # Enables embedded extensions - Math = null; - MultimediaViewer = null; - Nuke = null; - SyntaxHighlight_GeSHi = null; - TemplateData = null; - VisualEditor = null; - WikiEditor = null; + AbuseFilter = null; # pour faire de la modération + CategoryTree = null; # pour faire des arbres de catégories + Cite = null; # pour faire des références/footnotes + CiteThisPage = null; # pour avoir la citation (à la bibtex) d'une page + CodeEditor = null; # pour éditer des macros/scripts wiki + DiscussionTools = null; # pour des pages de discussion intéractives + Echo = null; # pour le système de notification du wiki + Gadgets = null; # pour avoir un système d'outils activable par les users + ImageMap = null; # pour mettre des widgets sur des images + Math = null; # pour avoir des maths LaTeX + MultimediaViewer = null; # pour avoir un affichage sympa des images + Nuke = null; # pour purger des pages + PageImages = null; # pour set la bonne image représentant un article + ParserFunctions = null; # pour la logique et les fonctions de base du templating + PdfHandler = null; # pour afficher les pdfs + Poem = null; # pour afficher des blocks de texte respectant l'espacement (poèmes, écrits) + ReplaceText = null; # pour du méga-renommage à travers le wiki + Scribunto = null; # pour faire du scripting et des templates pour le wiki + SyntaxHighlight_GeSHi = null; # pour avoir de la coloration syntaxique + TemplateData = null; # pour faire de la doc sur les templates + # TemplateStyles = null; # pour styliser les templates (bundlé pour la prochaine version de mediawiki) + TextExtracts = null; # pour set le bon text représentant un article + Thanks = null; # pour remercier des gens en notif + TitleBlacklist = true; # pour faire de la modération + VisualEditor = null; # pour éditer visuellement les pages + WikiEditor = null; # pour éditer le code wiki des pages # Bundled with next version, put as null in the next update TemplateStyles = pkgs.fetchFromGitHub { @@ -159,8 +198,6 @@ in }; # Popups - TextExtracts = null; - PageImages = null; Popups = pkgs.fetchFromGitHub { name = "Popups"; owner = "wikimedia";