MediaWiki: Difference between revisions

From NikkiWiki
Jump to navigation Jump to search
No edit summary
Line 158: Line 158:


# [[mw:$wgDefaultUserOptions|<cite>MediaWiki</cite>: "Default User Options"]]
# [[mw:$wgDefaultUserOptions|<cite>MediaWiki</cite>: "Default User Options"]]
# <u>[[NikkiWiki recent changes|<cite>NikkiWiki</cite>: "<cite>NikkiWiki</cite> recent changes"]]</u>


<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
Line 173: Line 174:
# [[mw:Extension:AutoSitemap|<cite>MediaWiki</cite>: "AutoSitemap"]]
# [[mw:Extension:AutoSitemap|<cite>MediaWiki</cite>: "AutoSitemap"]]
# [[mw:help:namespaces|<cite>MediaWiki</cite>: "Namespaces"]]
# [[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">
<syntaxhighlight lang="php">

Revision as of 2026-04-10T13:26:29

Resources for installing and configuring Wikimedia MediaWiki.

intro

  1. MediaWiki: "What Is MediaWiki?"

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"

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"
  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

sitemap

  1. MediaWiki: "AutoSitemap"
  2. MediaWiki: "Namespaces"
  3. NikkiWiki: "Extensible Markup Language (XML) Sitemap"
wfLoadExtension( 'AutoSitemap' ); # https://www.mediawiki.org/wiki/Extension: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/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

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

syntax highlighting languages

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