MediaWiki: Difference between revisions

From NikkiWiki
Jump to navigation Jump to search
Removed redirect to Webdevelopment
Tag: Removed redirect
No edit summary
 
(31 intermediate revisions by the same user not shown)
Line 1: Line 1:
Resources for installing and configuring <strong>[[mw:Main Page|Wikimedia MediaWiki]]</strong>.
Resources for installing and configuring <strong>Wikimedia MediaWiki</strong>.


* [[mw:What is MediaWiki?|<cite>MediaWiki</cite>: "What Is MediaWiki?"]]
== intro ==
 
# [[mw:What is MediaWiki?|<cite>MediaWiki</cite>: "What Is MediaWiki?"]]
# [[wikipedia:MediaWiki|<cite>Wikipedia</cite>: "MediaWiki"]]
# [[mw:Main Page|<cite>MediaWiki</cite>: "Main Page"]]


== installing ==
== installing ==


* [[mw:Version lifecycle#Versions and their end-of-life|<cite>MediaWiki</cite>: "Version Lifecycle"]]
# [[mw:Version lifecycle#Versions and their end-of-life|<cite>MediaWiki</cite>: "Version Lifecycle"]]
* [[mw:Manual:Installing MediaWiki|<cite>MediaWiki</cite>: "Installing MediaWiki"]]
# [[mw:Manual:Installing MediaWiki|<cite>MediaWiki</cite>: "Installing MediaWiki"]]


== security ==
== security ==


* [[mw:Manual:Securing database passwords|<cite>MediaWiki</cite>: "Securing Database Passwords"]]
# [[mw:Manual:Securing database passwords|<cite>MediaWiki</cite>: "Securing Database Passwords"]]
* [[mw:Manual:Preventing access#Removing the Login link from all pages|<cite>MediaWiki</cite>: "Preventing Access (Removing the Login Link from All Pages)"]]
# [[mw:Manual:Preventing access#Removing the Login link from all pages|<cite>MediaWiki</cite>: "Preventing Access (Removing the Login Link from All Pages)"]]
 
<syntaxhighlight lang="php">
$wgHooks['SkinTemplateNavigation::Universal'][] = function ( $skinTemplate, &$links ) {
unset( $links['user-menu']['createaccount'] );
unset( $links['user-menu']['login'] );
unset( $links['user-menu']['login-private'] );
unset( $links['user-menu']['anoncontribs'] );
};
# https://www.mediawiki.org/wiki/Preventing_access#Removing_the_Login_link_from_all_pages
</syntaxhighlight>


== linking ==
== linking ==


* [[mw:Manual:Short URL/Apache|<cite>MediaWiki</cite>: "Apache Short URL"]]
# [[mw:Manual:Short URL/Apache|<cite>MediaWiki</cite>: "Apache Short URL"]]
* <u>[[HTACCESS#MediaWiki shortlinks|<cite>NikkiWiki</cite>: "Apache Hypertext Transfer Protocol Server Access (HTACCESS)"]]</u>
# <u>[[HTACCESS#MediaWiki shortlinks|<cite>NikkiWiki</cite>: "Apache Hypertext Transfer Protocol Server Access (HTACCESS)"]]</u>
* [https://help.dreamhost.com/hc/articles/215457827/ <cite>DreamHost Knowledge Base</cite>: "Adding a Subdomain"]
# [https://help.dreamhost.com/hc/articles/215457827/ <cite>DreamHost Knowledge Base</cite>: "Adding a Subdomain"]
 
<syntaxhighlight lang="php">
/*
The Uniform Resource Locator (URL) base path to the directory containing the wiki; defaults for all runtime URL paths are based off of this.
For more information on customizing the URLs (like "/w/index.php/page_title" to "/wiki/page_title") please see: "https://www.mediawiki.org/wiki/short_URL".
*/
$wgScriptPath = "/w";
$wgArticlePath = "/wiki/$1";
# https://www.mediawiki.org/wiki/manual:short_URL/Apache#LocalSettings.php
</syntaxhighlight>


== timezone ==
== timezone ==


* <u>[[PHPRC#timezone|<cite>NikkiWiki</cite>: "Personal Homepage Hypertext Preprocessor Runtime Configuration (PHPRC)"]]</u>
# <u>[[PHPRC#timezone|<cite>NikkiWiki</cite>: "Personal Homepage Hypertext Preprocessor Runtime Configuration (PHPRC)"]]</u>
* [[mw:Manual:$wgLocaltimezone|<cite>MediaWiki</cite>: "Local Timezone"]]
# [[mw:$wgLocaltimezone|<cite>MediaWiki</cite>: "Local Timezone"]]
 
<syntaxhighlight lang="php">
# Timezone.
$wgLocaltimezone = "America/New_York"; # https://www.php.net/timezones.america.php
# https://www.mediawiki.org/wiki/$wgLocaltimezone
</syntaxhighlight>


== mainpage ==
== mainpage ==


* [[mw:mainpage|<cite>MediaWiki</cite>: "Mainpage"]]
# [[mw:Mainpage|<cite>MediaWiki</cite>: "Mainpage"]]
* <u>[[mediawiki:mainpage|<cite>NikkiWiki</cite>: "MediaWiki Mainpage"]]</u>
# <u>[[mediawiki:mainpage|<cite>NikkiWiki</cite>: "MediaWiki Mainpage"]]</u>
# <u>[[NikkiWiki mainpage|<cite>NikkiWiki</cite>: "NikkiWiki Mainpage"]]</u>


== citations ==
== citations ==


* <u>[[mediawiki:sitesubtitle|<cite>NikkiWiki</cite>: "MediaWiki Site Subtitle"]]</u>
# <u>[[mediawiki:sitesubtitle|<cite>NikkiWiki</cite>: "MediaWiki Site Subtitle"]]</u>
* [[mw:Extension:CiteThisPage|<cite>MediaWiki</cite>: "Cite This Page"]]
# [[mw:Extension:CiteThisPage|<cite>MediaWiki</cite>: "Cite This Page"]]
* <u>[[mediawiki:citethispage-content|<cite>NikkiWiki</cite>: "Cite This Page Content"]]</u>
# <u>[[mediawiki:citethispage-content|<cite>NikkiWiki</cite>: "Cite This Page Content"]]</u>
 
== footer ==
 
# [[mw:Footer#Customizing the built-in items|<cite>MediaWiki</cite>: "Footer (Customizing the Built-In Items)"]]
 
=== privacy policy footer ===
 
# <u>[[mediawiki:privacy|<cite>NikkiWiki</cite>: "MediaWiki (Privacy)"]]</u>
# <u>[[mediawiki:privacypage|<cite>NikkiWiki</cite>: "MediaWiki (Privacy Page)"]]</u>
# <u>[[privacy|<cite>NikkiWiki</cite>: "<cite>NikkiWiki</cite> Privacy Policy"]]</u>
 
=== aboutpage footer ===
 
# <u>[[mediawiki:aboutsite|<cite>NikkiWiki</cite>: "MediaWiki (About Site)"]]</u>
# <u>[[mediawiki:aboutpage|<cite>NikkiWiki</cite>: "MediaWiki (Aboutpage)"]]</u>
# <u>[[about NikkiWiki|<cite>NikkiWiki</cite>: "About <cite>NikkiWiki</cite>"]]</u>
 
=== disclaimer footer ===
 
# <u>[[mediawiki:disclaimers|<cite>NikkiWiki</cite>: "MediaWiki (Disclaimers)"]]</u>
# <u>[[mediawiki:disclaimerpage|<cite>NikkiWiki</cite>: "MediaWiki (Disclaimer Page)"]]</u>
# <u>[[disclaimer|<cite>NikkiWiki</cite>: "<cite>NikkiWiki</cite> Disclaimer"]]</u>
 
== contact page ==
 
# [[mw:Extension:ConfirmEdit|<cite>MediaWiki</cite>: "Confirm Edit"]]
# [[mw:Extension:ContactPage|<cite>MediaWiki</cite>: "Contact Page"]]
# <u>[[mediawiki:contactpage-label|<cite>NikkiWiki</cite>: "MediaWiki (Contact Page Label)"]]</u>
# <u>[[mediawiki:contactpage-pagetext|<cite>NikkiWiki</cite>: "MediaWiki (Contact Page Text)"]]</u>
# <u>[[NikkiWiki contact page|<cite>NikkiWiki</cite>: "<cite>NikkiWiki</cite> Contact Page"]]</u>
 
<syntaxhighlight lang="php">
wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/QuestyCaptcha' ]);
$wgCaptchaClass = 'QuestyCaptcha';
# Add your questions using this format:
$wgCaptchaQuestions = [
'Question 1?' => 'answer 1', # Answers are case insensitive.
'Question 2?' => 'answer 2'
];
# https://www.mediawiki.org/wiki/Extension:ConfirmEdit
 
wfLoadExtension( 'ContactPage' );
$wgContactConfig['default'] = [
'RecipientEmail' => 'nicolesharp@example.net', # Example only; not a real email address.
'RecipientName' => 'Nicole Sharp',
'SenderEmail' => null, # Defaults to "$wgPasswordSender"; may be changed as required.
'SenderName' => null,
'RequireDetails' => true,
'IncludeIP' => false,
'MustBeLoggedIn' => false,
'MustHaveEmail' => false, # "True" means the user submitting the form must have an associated email address.
'NameReadonly' => false,
'EmailReadonly' => false,
'SubjectReadonly' => false,
'UseCustomBlockMessage' => false,
'Redirect' => null,
'RLModules' => [], # Resource loader modules to add to the form display page.
'RLStyleModules' => [], # Resource loader Cascading Stylesheet (CSS) modules to add to the form display page.
'AdditionalFields' => [
'Text' => [
'label-message' => 'emailmessage',
'type' => 'textarea',
'required' => true
]
],
'FieldsMergeStrategy' => null
];
 
$wgCaptchaTriggers['contactpage'] = true;
$wgHooks['SkinAddFooterLinks'][] = function( Skin $skin, string $key, array &$footerlinks ) {
if ( $key === 'places' ) {
$footerlinks['contact'] = Html::element( 'a',
[
'href' => 'https://www.nicolesharp.net/wiki/special:contact', # URL to "special:contact".
'rel' => 'noreferrer noopener' # Not required but recommended for security reasons.
],
$skin->msg( 'contactpage-label' )->text()
);
};
};
 
# https://www.mediawiki.org/wiki/Extension:ContactPage
</syntaxhighlight>
 
== following ==
 
# [[mw:$wgNoFollowLinks|<cite>MediaWiki</cite>: "NOFOLLOW Links"]]
 
<syntaxhighlight lang="php">
$wgNoFollowLinks = false; # https://www.mediawiki.org/wiki/$wgNoFollowLinks
</syntaxhighlight>
 
== recent changes ==
 
# [[mw:$wgDefaultUserOptions#Available preferences|<cite>MediaWiki</cite>: "Default User Options (Available Preferences)"]]
# <u>[[NikkiWiki recent changes|<cite>NikkiWiki</cite>: "<cite>NikkiWiki</cite> recent changes"]]</u>
 
<syntaxhighlight lang="php">
$wgDefaultUserOptions['rcenhancedfilters-disable'] = 1;
$wgDefaultUserOptions['usenewrc'] = 0;
$wgDefaultUserOptions['hidecategorization'] = 0;
$wgDefaultUserOptions['rclimit'] = 1000;
$wgDefaultUserOptions['rcdays'] = 90;
$wgDefaultUserOptions['date'] = "ISO 8601";
# https://www.mediawiki.org/wiki/$wgDefaultUserOptions#Available_preferences
</syntaxhighlight>
 
== sitemap ==
 
# [[mw:Extension:AutoSitemap|<cite>MediaWiki</cite>: "AutoSitemap"]]
# [[mw:help:namespaces|<cite>MediaWiki</cite>: "Namespaces"]]
# <u>[https://www.nicolesharp.net/w/sitemap.xml <cite>NikkiWiki</cite>: "Extensible Markup Language (XML) Sitemap"]</u>
 
<syntaxhighlight lang="php">
wfLoadExtension( 'AutoSitemap' );
$wgAutoSitemap["exclude_namespaces"] = [
NS_MEDIAWIKI, 
NS_TEMPLATE
];
$wgAutoSitemap["priority"][NS_MAIN] = 1.0; # 1.0000
$wgAutoSitemap["priority"][NS_FILE] = 0.9; # 0.9231
$wgAutoSitemap["priority"][NS_CATEGORY] = 0.8; # 0.8462
$wgAutoSitemap["priority"][NS_USER] = 0.8; # 0.7692
$wgAutoSitemap["priority"][NS_HELP] = 0.7; # 0.6923
$wgAutoSitemap["priority"][NS_PROJECT] = 0.6; # 0.6154
$wgAutoSitemap["priority"][NS_TALK] = 0.5; # 0.5385
$wgAutoSitemap["priority"][NS_FILE_TALK] = 0.5; # 0.4615
$wgAutoSitemap["priority"][NS_CATEGORY_TALK] = 0.4; # 0.3846
$wgAutoSitemap["priority"][NS_USER_TALK] = 0.3; # 0.3077
$wgAutoSitemap["priority"][NS_HELP_TALK] = 0.2; # 0.2308
$wgAutoSitemap["priority"][NS_PROJECT_TALK] = 0.2; # 0.1538
$wgAutoSitemap["priority"][NS_TEMPLATE_TALK] = 0.1; # 0.0769
$wgAutoSitemap["priority"][NS_MEDIAWIKI_TALK] = 0.0; # 0.0000
/*
https://www.mediawiki.org/wiki/Extension:AutoSitemap
https://www.mediawiki.org/wiki/help:namespaces
Maxima: float([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]/13) ;
*/
</syntaxhighlight>
 
== number of categories ==
 
# [[mw:$wgAllowSlowParserFunctions|<cite>MediaWiki</cite>: "Allow Slow Parser Functions"]]
# [[mw:help:Magic words#Statistics|<cite>MediaWiki</cite>: "Magic Words (Statistics)"]]
 
<syntaxhighlight lang="php">
$wgAllowSlowParserFunctions = true;
/*
https://www.mediawiki.org/wiki/$wgAllowSlowParserFunctions
https://www.mediawiki.org/wiki/Help:Magic_words#Statistics
*/
</syntaxhighlight>


== syntax highlighting ==
== syntax highlighting ==


* [[mw:Extension:Highlightjs Integration|<cite>MediaWiki</cite>: "Highlight JavaScript (HighlightJS) Integration"]]
Highlight JavaScript (HighlightJS) Integration is a drop-in replacement for SyntaxHighlight Pygments.&ensp; With the exception of languages supported by HighlightJS but not supported by Pygments, all MediaWiki markup written with HighlightJS Integration will also work with SyntaxHighlight Pygments as long as you use the same SYNTAXHIGHLIGHT element and the same language codes.
* [https://www.github.com/Nicolas01/Highlightjs_Integration/ <cite>Microsoft GitHub</cite>: "HighlightJS Integration"]
 
* [https://www.github.com/highlightjs/cdn-release/ <cite>Microsoft GitHub</cite>: "HighlightJS Content Delivery Network (CDN) Release"]
# [[mw:Extension:Highlightjs Integration|<cite>MediaWiki</cite>: "HighlightJS Integration"]]
* [[mw:Extension:SyntaxHighlight|<cite>MediaWiki</cite>: "Syntax Highlight"]]
# [https://www.github.com/Nicolas01/Highlightjs_Integration/ <cite>Microsoft GitHub</cite>: "HighlightJS Integration"]
* [https://www.highlightjs.org/demo/ <cite>HighlightJS</cite>: "Demo"]
# [https://www.github.com/highlightjs/cdn-release/ <cite>Microsoft GitHub</cite>: "HighlightJS Content Delivery Network (CDN) Release"]
* [https://highlightjs.readthedocs.io/en/latest/supported-languages.html <cite>HighlightJS Documentation</cite>: "Supported Languages"]
# [[mw:Extension:SyntaxHighlight|<cite>MediaWiki</cite>: "Syntax Highlight"]]
* [https://www.pygments.org/languages/ <cite>Pygments Syntax Highlighter</cite>: "Languages"]
# [https://www.highlightjs.org/demo/ <cite>HighlightJS</cite>: "Demo"]
 
Disable the SyntaxHighlight Extension <em>before</em> enabling the HighlightJS Integration Extension.
 
<syntaxhighlight lang="php">
# wfLoadExtension( 'SyntaxHighlight_GeSHi' );
 
wfLoadExtension( 'Highlightjs_Integration' ); # https://www.mediawiki.org/wiki/Extension:Highlightjs_Integration#Installation
</syntaxhighlight>
 
=== syntax highlighting languages ===
 
In order to ensure that pages with HighlightJS Integration are exportable to SyntaxHighlight Pygments, you need to check and make sure that you are using language codes supported by both libraries.
 
# [https://highlightjs.readthedocs.io/en/latest/supported-languages.html <cite>HighlightJS Documentation</cite>: "Supported Languages"]
# [https://www.pygments.org/languages/ <cite>Pygments Syntax Highlighter</cite>: "Languages"]


[[category:webdevelopment]]
[[category:wikidevelopment]]
[[category:PHP]]

Latest revision as of 2026-04-12T17:00:04

Resources for installing and configuring Wikimedia MediaWiki.

intro

  1. MediaWiki: "What Is MediaWiki?"
  2. Wikipedia: "MediaWiki"
  3. MediaWiki: "Main Page"

installing

  1. MediaWiki: "Version Lifecycle"
  2. MediaWiki: "Installing MediaWiki"

security

  1. MediaWiki: "Securing Database Passwords"
  2. MediaWiki: "Preventing Access (Removing the Login Link from All Pages)"
$wgHooks['SkinTemplateNavigation::Universal'][] = function ( $skinTemplate, &$links ) {
	unset( $links['user-menu']['createaccount'] );
	unset( $links['user-menu']['login'] );
	unset( $links['user-menu']['login-private'] );
	unset( $links['user-menu']['anoncontribs'] );
};
# https://www.mediawiki.org/wiki/Preventing_access#Removing_the_Login_link_from_all_pages

linking

  1. MediaWiki: "Apache Short URL"
  2. NikkiWiki: "Apache Hypertext Transfer Protocol Server Access (HTACCESS)"
  3. DreamHost Knowledge Base: "Adding a Subdomain"
/*
The Uniform Resource Locator (URL) base path to the directory containing the wiki; defaults for all runtime URL paths are based off of this.
For more information on customizing the URLs (like "/w/index.php/page_title" to "/wiki/page_title") please see: "https://www.mediawiki.org/wiki/short_URL".
*/
$wgScriptPath = "/w";
$wgArticlePath = "/wiki/$1";
# https://www.mediawiki.org/wiki/manual:short_URL/Apache#LocalSettings.php

timezone

  1. NikkiWiki: "Personal Homepage Hypertext Preprocessor Runtime Configuration (PHPRC)"
  2. MediaWiki: "Local Timezone"
# Timezone.
$wgLocaltimezone = "America/New_York"; # https://www.php.net/timezones.america.php
# https://www.mediawiki.org/wiki/$wgLocaltimezone

mainpage

  1. MediaWiki: "Mainpage"
  2. NikkiWiki: "MediaWiki Mainpage"
  3. NikkiWiki: "NikkiWiki Mainpage"

citations

  1. NikkiWiki: "MediaWiki Site Subtitle"
  2. MediaWiki: "Cite This Page"
  3. NikkiWiki: "Cite This Page Content"

footer

  1. MediaWiki: "Footer (Customizing the Built-In Items)"

privacy policy footer

  1. NikkiWiki: "MediaWiki (Privacy)"
  2. NikkiWiki: "MediaWiki (Privacy Page)"
  3. NikkiWiki: "NikkiWiki Privacy Policy"

aboutpage footer

  1. NikkiWiki: "MediaWiki (About Site)"
  2. NikkiWiki: "MediaWiki (Aboutpage)"
  3. NikkiWiki: "About NikkiWiki"

disclaimer footer

  1. NikkiWiki: "MediaWiki (Disclaimers)"
  2. NikkiWiki: "MediaWiki (Disclaimer Page)"
  3. NikkiWiki: "NikkiWiki Disclaimer"

contact page

  1. MediaWiki: "Confirm Edit"
  2. MediaWiki: "Contact Page"
  3. NikkiWiki: "MediaWiki (Contact Page Label)"
  4. NikkiWiki: "MediaWiki (Contact Page Text)"
  5. NikkiWiki: "NikkiWiki Contact Page"
wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/QuestyCaptcha' ]);
$wgCaptchaClass = 'QuestyCaptcha';
# Add your questions using this format:
$wgCaptchaQuestions = [
	'Question 1?' => 'answer 1', # Answers are case insensitive.
	'Question 2?' => 'answer 2'
];
# https://www.mediawiki.org/wiki/Extension:ConfirmEdit

wfLoadExtension( 'ContactPage' );
$wgContactConfig['default'] = [
	'RecipientEmail' => 'nicolesharp@example.net', # Example only; not a real email address.
	'RecipientName' => 'Nicole Sharp',
	'SenderEmail' => null, # Defaults to "$wgPasswordSender"; may be changed as required.
	'SenderName' => null,
	'RequireDetails' => true,
	'IncludeIP' => false,
	'MustBeLoggedIn' => false,
	'MustHaveEmail' => false, # "True" means the user submitting the form must have an associated email address.
	'NameReadonly' => false,
	'EmailReadonly' => false,
	'SubjectReadonly' => false,
	'UseCustomBlockMessage' => false,
	'Redirect' => null,
	'RLModules' => [], # Resource loader modules to add to the form display page.
	'RLStyleModules' => [], # Resource loader Cascading Stylesheet (CSS) modules to add to the form display page.
	'AdditionalFields' => [
		'Text' => [
			'label-message' => 'emailmessage',
			'type' => 'textarea',
			'required' => true
		]
	],
	'FieldsMergeStrategy' => null
];

$wgCaptchaTriggers['contactpage'] = true;
$wgHooks['SkinAddFooterLinks'][] = function( Skin $skin, string $key, array &$footerlinks ) {
	if ( $key === 'places' ) {
		$footerlinks['contact'] = Html::element( 'a',
			[
				'href' => 'https://www.nicolesharp.net/wiki/special:contact', # URL to "special:contact".
				'rel' => 'noreferrer noopener' # Not required but recommended for security reasons.
			],
		$skin->msg( 'contactpage-label' )->text()
		);
	};
};

# https://www.mediawiki.org/wiki/Extension:ContactPage

following

  1. MediaWiki: "NOFOLLOW Links"
$wgNoFollowLinks = false; # https://www.mediawiki.org/wiki/$wgNoFollowLinks

recent changes

  1. MediaWiki: "Default User Options (Available Preferences)"
  2. NikkiWiki: "NikkiWiki recent changes"
$wgDefaultUserOptions['rcenhancedfilters-disable'] = 1;
$wgDefaultUserOptions['usenewrc'] = 0;
$wgDefaultUserOptions['hidecategorization'] = 0;
$wgDefaultUserOptions['rclimit'] = 1000;
$wgDefaultUserOptions['rcdays'] = 90;
$wgDefaultUserOptions['date'] = "ISO 8601";
# https://www.mediawiki.org/wiki/$wgDefaultUserOptions#Available_preferences

sitemap

  1. MediaWiki: "AutoSitemap"
  2. MediaWiki: "Namespaces"
  3. NikkiWiki: "Extensible Markup Language (XML) Sitemap"
wfLoadExtension( 'AutoSitemap' );
$wgAutoSitemap["exclude_namespaces"] = [
	NS_MEDIAWIKI,   
	NS_TEMPLATE
];
$wgAutoSitemap["priority"][NS_MAIN] = 1.0; # 1.0000
$wgAutoSitemap["priority"][NS_FILE] = 0.9; # 0.9231
$wgAutoSitemap["priority"][NS_CATEGORY] = 0.8; # 0.8462
$wgAutoSitemap["priority"][NS_USER] = 0.8; # 0.7692
$wgAutoSitemap["priority"][NS_HELP] = 0.7; # 0.6923
$wgAutoSitemap["priority"][NS_PROJECT] = 0.6; # 0.6154
$wgAutoSitemap["priority"][NS_TALK] = 0.5; # 0.5385
$wgAutoSitemap["priority"][NS_FILE_TALK] = 0.5; # 0.4615
$wgAutoSitemap["priority"][NS_CATEGORY_TALK] = 0.4; # 0.3846
$wgAutoSitemap["priority"][NS_USER_TALK] = 0.3; # 0.3077
$wgAutoSitemap["priority"][NS_HELP_TALK] = 0.2; # 0.2308
$wgAutoSitemap["priority"][NS_PROJECT_TALK] = 0.2; # 0.1538
$wgAutoSitemap["priority"][NS_TEMPLATE_TALK] = 0.1; # 0.0769
$wgAutoSitemap["priority"][NS_MEDIAWIKI_TALK] = 0.0; # 0.0000
/*
https://www.mediawiki.org/wiki/Extension:AutoSitemap
https://www.mediawiki.org/wiki/help:namespaces
Maxima: float([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]/13) ;
*/

number of categories

  1. MediaWiki: "Allow Slow Parser Functions"
  2. MediaWiki: "Magic Words (Statistics)"
$wgAllowSlowParserFunctions = true;
/*
https://www.mediawiki.org/wiki/$wgAllowSlowParserFunctions
https://www.mediawiki.org/wiki/Help:Magic_words#Statistics
*/

syntax highlighting

Highlight JavaScript (HighlightJS) Integration is a drop-in replacement for SyntaxHighlight Pygments.  With the exception of languages supported by HighlightJS but not supported by Pygments, all MediaWiki markup written with HighlightJS Integration will also work with SyntaxHighlight Pygments as long as you use the same SYNTAXHIGHLIGHT element and the same language codes.

  1. MediaWiki: "HighlightJS Integration"
  2. Microsoft GitHub: "HighlightJS Integration"
  3. Microsoft GitHub: "HighlightJS Content Delivery Network (CDN) Release"
  4. MediaWiki: "Syntax Highlight"
  5. HighlightJS: "Demo"

Disable the SyntaxHighlight Extension before enabling the HighlightJS Integration Extension.

# wfLoadExtension( 'SyntaxHighlight_GeSHi' );

wfLoadExtension( 'Highlightjs_Integration' ); # https://www.mediawiki.org/wiki/Extension:Highlightjs_Integration#Installation

syntax highlighting languages

In order to ensure that pages with HighlightJS Integration are exportable to SyntaxHighlight Pygments, you need to check and make sure that you are using language codes supported by both libraries.

  1. HighlightJS Documentation: "Supported Languages"
  2. Pygments Syntax Highlighter: "Languages"