Media Wiki Concepts: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(101 intermediate revisions by the same user not shown)
Line 4: Line 4:
* [[Media Wiki#Subjects|Media Wiki]]
* [[Media Wiki#Subjects|Media Wiki]]


=Transclusion=
=Directory Layout=
 
<font size=-2>
/
├── etc
│    ├── [[PHP#php.ini|php.ini]]
│    └── php.d
└── var/www/mediawiki-X.Y.Z
              ├── [[#LocalSettings.php|LocalSettings.php]]
              ├── includes
              │    └── [[#DefaultSettings.php|DefaultSettings.php]]
              ├── images
              │    ├── .htaccess
              │    ├── archive
              │    ├── lockdir
              │    ├── thumb
              │    └── c
              │        └── cf
              │            └── SomeImage.png
              ├── extensions
              │    ├── BreadCrumbs
              │    ├── CategoryTree
              │     └── ...
               └── ...
</font>
 
=Versions=
See: {{Internal|Media_Wiki_Operations#Get_Media_Wiki_Version|Media Wiki Operations &#124; Get Media Wiki Version}}
==LTS==
Long Term Support
 
=<tt>LocalSettings.php</tt>=
{{External|https://www.mediawiki.org/wiki/Manual:LocalSettings.php}}
The file is located in the root of the MediaWiki installation <code>/var/www/<installation-dir>/LocalSettings.php</code>. A fresh Media Wiki installation does not come with a <code>LocalSettings.php</code> file. The file must be generated by going to a configuration procedure driven by the web site, then manually placed in the directory.
 
To enable a change, the web server needs to be restarted with:
<syntaxhighlight lang='bash'>
apachectl graceful
</syntaxhighlight>
<code>LocalSettings.php</code> contains, among others, the following:
==Database Type==
<syntaxhighlight lang='php'>
$wgDBtype = "mysql";
</syntaxhighlight>
==Database Hostname==
<syntaxhighlight lang='php'>
$wgDBserver = "localhost";
</syntaxhighlight>
==Database User ID==
<syntaxhighlight lang='php'>
$wgDBuser = "c3kb_wiki";
</syntaxhighlight>
==Database Password==
<syntaxhighlight lang='php'>
$wgDBpassword = "...";
</syntaxhighlight>
==Database Default Character Set==
<syntaxhighlight lang='php'>
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
</syntaxhighlight>
==Database Name==
<syntaxhighlight lang='php'>
$wgDBname = "c3kb_wiki";
</syntaxhighlight>
==<span id='Name_of_Wiki'></span><span id='Site_Name'></span>Name of Wiki (Site Name)==
This is a configuration element that needs to be specified during the [[Media_Wiki_Installation#Name_of_Wiki|wiki initialization procedure]], as the '''name of wiki'''. It will appear in the title bar of the browser and in various other places. It is also referred to as '''site name''' and configured in <code>LocalSettings.php</code> as:
<syntaxhighlight lang='php'>
$wgSitename = "NovaOrdis Knowledge Base";
</syntaxhighlight>
 
==Server Name==
{{External|https://www.mediawiki.org/wiki/Manual:$wgServer}}
<syntaxhighlight lang='php'>
$wgServer = "https://kb.novaordis.com";
</syntaxhighlight>
<code>$wgServer</code> contains the base URL of the server, including protocol and optionally the port, if non-standard, but without the trailing slash and without the subdirectory if any (e.g., https&#58;//www.mediawiki.org). The links to the wiki site from inside the pages will contain this value, so it is important to set correctly, otherwise the links embedded in pages will not work.
 
For example, if the site will be accessed over a ssh tunnel from the local host over a non-standard port, then <code>wgServer</code> should be:
<syntaxhighlight lang='php'>
$wgServer = "http://localhost:10080";
</syntaxhighlight>
 
==wfLoadExtension==
See [[#Extensions|Extensions]] below.
==Site Logo==
{{Internal|Media Wiki Configure Site Logo|Configure Site Logo}}
==<tt>wgFileExtensions</tt>==
See: {{Internal|Media_Wiki_Installation#Allow_PDF_Uploading|Media Wiki Installation &#124; Allow PDF Uploading}}


<blockquote style="background-color: AliceBlue; border: solid thin LightSteelBlue;">
=<tt>index.php</tt>=
:https://www.mediawiki.org/wiki/Transclusion<br>
See: {{Internal|Media_Wiki_Troubleshooting#PHP_Errors|Media Wiki Troubleshooting &#124; PHP Errors}}
</blockquote>


''Transclusion'' means the inclusion of the content of a document into another document by reference. The most common situation where transclusion is used is the use of [[#Templates|templates]]: the same content can be included in multiple documents without having having to edit those documents separately.
=<tt>DefaultSettings.php</tt>=


=Namespace=
=<tt>MediaWiki:Common.css</tt>=
A page that contains CSS modifications to be applied to all skins. It can be accessed by name: <code>[[MediaWiki:Common.css]]</code>. If it does not exist, it can be created. It is used by [[MediaWiki_Extension_SyntaxHighlight#Reduce_Font_Size|SyntaxHighlight extension]] and it can also be used to customize the rendering of HTML tags, such as <code>[[Media_Wiki_Concepts#.3Ccode.3E|&lt;code>]]</code>.


<blockquote style="background-color: AliceBlue; border: solid thin LightSteelBlue;">
=Security=
:https://www.mediawiki.org/wiki/Help:Namespaces<br>
{{Internal|Media Wiki Security Concepts|Media Wiki Security Concepts}}
</blockquote>


=Templates=
=Transclusion=
{{External|https://www.mediawiki.org/wiki/Transclusion}}
'''Transclusion''' means the inclusion of the content of a document into another document by reference. The most common situation where transclusion is used is the use of [[#Templates|templates]]: the same content can be included in multiple documents without having having to edit those documents separately.


<blockquote style="background-color: AliceBlue; border: solid thin LightSteelBlue;">
=Namespace=
:https://www.mediawiki.org/wiki/Help:Templates<br>
{{External|https://www.mediawiki.org/wiki/Help:Namespaces}}
</blockquote>
==Project namespace==
Following Wikipedia's example, many wikis keep their policy pages separate from their content pages, in a project namespace. All page titles in this namespace start with a certain prefix, which you can specify here. Usually, this prefix is derived from the name of the wiki, but it cannot contain punctuation characters such as "#" or ":".


The project namespace is configuration element provided during the [[Media_Wiki_Installation#Project_Namespace|wiki initialization procedure]].


A ''template'' is a page in the "Template:" namespace that gets [[#Transclusion|transcluded]] in regular pages that refer to it. This mechanism is useful to disseminate complex content into multiple target pages, while editing the source context in just one place and referring to it via a simple name from the target pages.
=Templates=
{{External|https://www.mediawiki.org/wiki/Help:Templates}}
A '''template''' is a page in the "Template:" namespace that gets [[#Transclusion|transcluded]] in regular pages that refer to it. This mechanism is useful to disseminate complex content into multiple target pages, while editing the source context in just one place and referring to it via a simple name from the target pages.


==Template Declaration==
==Template Declaration==
To start a new template, declare a link in the "Template:" namespace, as shown below
To start a new template, declare a link in the "Template:" namespace, as shown below
<pre>
<pre>
[[Template:TestTemplate]]
[[Template:TestTemplate]]
</pre>
</pre>
follow the link, and edit it. The initiating page will contain the link to the template and can be used for access. For an example of actual template declarations see the "[[Media Wiki Editing#Blockquote|Editing - Blockquote]]" section.
follow the link, and edit it. The initiating page will contain the link to the template and can be used for access. For an example of actual template declarations see the "[[Media Wiki Editing#Blockquote|Editing - Blockquote]]" section.


==Parameterized Templates==
==Parameterized Templates==


MediaWiki performs variable substitution in templates, where the variables are declared as {{{1}}}, {{{2}}}, etc. A template that contains variables is called a ''parameterized template''.
MediaWiki performs variable substitution in templates, where the variables are declared as {{{1}}}, {{{2}}}, etc. A template that contains variables is called a '''parameterized template'''.


==Template Invocation==
==Template Invocation==
Line 60: Line 150:


=ImageMap=
=ImageMap=
{{External|https://www.mediawiki.org/wiki/Extension:ImageMap}}
=Extensions=
{{External|https://www.mediawiki.org/wiki/Manual:Extensions}}
Extensions provide customizations on how MediaWiki looks and works. Extensions can be installed by system administrators. Extensions are usually distributed as modular packages. They are installed in their own "extensions" subdirectory, and, after installation, they are declared in <code>[[#LocalSettings.php|LocalSettings.php]]</code> as:
<syntaxhighlight lang='php'>
wfLoadExtension( 'ExtensionName' );
</syntaxhighlight>
==Installed Extensions==
To get a list of installed extensions and their versions go to 'Special pages' → Version.
==Useful Extensions==
====JSBreadCrumbs====
{{Internal|MediaWiki Extension JSBreadCrumbs|JSBreadCrumbs}}
====BreadCrumbs2====
{{Internal|MediaWiki Extension BreadCrumbs2|BreadCrumbs2}}
====SyntaxHighlight====
{{Internal|MediaWiki Extension SyntaxHighlight|SyntaxHighlight}}
====Math====
{{Internal|MediaWiki Extension Math|Math}}
====BreadCrumbs====
{{Internal|MediaWiki Extension BreadCrumbs|BreadCrumbs (obsolete)}}
=SELinux Support=
{{External|https://www.mediawiki.org/wiki/SELinux}}
=Tags=
==HTML Tags==
The following HTML tags are handled by MediaWiki:
===<span id='code_tag'></span><tt>&lt;code></tt>===
By default, the HTML <code>&lt;code></code> tag is displayed in the browser's default monospace font. CSS declared in <code>[[Media_Wiki_Concepts#MediaWiki:Common.css|MediaWiki:Common.css]]</code> can be used to modify the rendering of the &lt;code> elements, by adding a sequence similar to:
<syntaxhighlight lang='css'>
code {
  font-family: Consolas,"menlo";
  color: DarkSlateGray;
  padding: 1px;
  background-color: #FCFCFC;
  border-color: Gainsboro;
  font-size: 77%;
}
</syntaxhighlight>
Also see: {{Internal|Media_Wiki_Editing#In-Line_Code|MediaWiki Editing &#124; In-Line Code}}{{Internal|HTML code#Overview|HTML &lt;code>}}
==MediaWiki Tags==
===<span id='ref_tag'></span><tt>&lt;ref></tt>===
Creates a numbered reference to the bottom of the page:
<ref>Example</ref>
=Skin=
{{External|https://www.mediawiki.org/wiki/Manual:Skin_configuration}}


{{External:https://www.mediawiki.org/wiki/Extension:ImageMap}}
To configure the default skin, set the variable <code>$wgDefaultSkin</code> in <code>[[#LocalSettings.php|LocalSettings.php]]</code> to the lowercase skin name specified in the skin file.
<syntaxhighlight lang='php'>
$wgDefaultSkin = "vector";
</syntaxhighlight>

Latest revision as of 04:55, 1 January 2024

Internal

Directory Layout

/
├── etc
│    ├── php.ini
│    └── php.d
│
└── var/www/mediawiki-X.Y.Z
              ├── LocalSettings.php
              ├── includes
              │     └── DefaultSettings.php
              ├── images
              │     ├── .htaccess
              │     ├── archive
              │     ├── lockdir
              │     ├── thumb
              │     └── c
              │         └── cf
              │             └── SomeImage.png
              ├── extensions
              │     ├── BreadCrumbs
              │     ├── CategoryTree
              │     └── ...
              └── ...

Versions

See:

Media Wiki Operations | Get Media Wiki Version

LTS

Long Term Support

LocalSettings.php

https://www.mediawiki.org/wiki/Manual:LocalSettings.php

The file is located in the root of the MediaWiki installation /var/www/<installation-dir>/LocalSettings.php. A fresh Media Wiki installation does not come with a LocalSettings.php file. The file must be generated by going to a configuration procedure driven by the web site, then manually placed in the directory.

To enable a change, the web server needs to be restarted with:

apachectl graceful

LocalSettings.php contains, among others, the following:

Database Type

$wgDBtype = "mysql";

Database Hostname

$wgDBserver = "localhost";

Database User ID

$wgDBuser = "c3kb_wiki";

Database Password

$wgDBpassword = "...";

Database Default Character Set

$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";

Database Name

$wgDBname = "c3kb_wiki";

Name of Wiki (Site Name)

This is a configuration element that needs to be specified during the wiki initialization procedure, as the name of wiki. It will appear in the title bar of the browser and in various other places. It is also referred to as site name and configured in LocalSettings.php as:

$wgSitename = "NovaOrdis Knowledge Base";

Server Name

https://www.mediawiki.org/wiki/Manual:$wgServer
$wgServer = "https://kb.novaordis.com";

$wgServer contains the base URL of the server, including protocol and optionally the port, if non-standard, but without the trailing slash and without the subdirectory if any (e.g., https://www.mediawiki.org). The links to the wiki site from inside the pages will contain this value, so it is important to set correctly, otherwise the links embedded in pages will not work.

For example, if the site will be accessed over a ssh tunnel from the local host over a non-standard port, then wgServer should be:

$wgServer = "http://localhost:10080";

wfLoadExtension

See Extensions below.

Configure Site Logo

wgFileExtensions

See:

Media Wiki Installation | Allow PDF Uploading

index.php

See:

Media Wiki Troubleshooting | PHP Errors

DefaultSettings.php

MediaWiki:Common.css

A page that contains CSS modifications to be applied to all skins. It can be accessed by name: MediaWiki:Common.css. If it does not exist, it can be created. It is used by SyntaxHighlight extension and it can also be used to customize the rendering of HTML tags, such as <code>.

Security

Media Wiki Security Concepts

Transclusion

https://www.mediawiki.org/wiki/Transclusion

Transclusion means the inclusion of the content of a document into another document by reference. The most common situation where transclusion is used is the use of templates: the same content can be included in multiple documents without having having to edit those documents separately.

Namespace

https://www.mediawiki.org/wiki/Help:Namespaces

Project namespace

Following Wikipedia's example, many wikis keep their policy pages separate from their content pages, in a project namespace. All page titles in this namespace start with a certain prefix, which you can specify here. Usually, this prefix is derived from the name of the wiki, but it cannot contain punctuation characters such as "#" or ":".

The project namespace is configuration element provided during the wiki initialization procedure.

Templates

https://www.mediawiki.org/wiki/Help:Templates

A template is a page in the "Template:" namespace that gets transcluded in regular pages that refer to it. This mechanism is useful to disseminate complex content into multiple target pages, while editing the source context in just one place and referring to it via a simple name from the target pages.

Template Declaration

To start a new template, declare a link in the "Template:" namespace, as shown below

[[Template:TestTemplate]]

follow the link, and edit it. The initiating page will contain the link to the template and can be used for access. For an example of actual template declarations see the "Editing - Blockquote" section.

Parameterized Templates

MediaWiki performs variable substitution in templates, where the variables are declared as {{{1}}}, {{{2}}}, etc. A template that contains variables is called a parameterized template.

Template Invocation

The template is invoked by enclosing the template name (without the Template: namespace prefix) between {{ }}.

Example:

{{SomeTemplate}}

If the template is parameterized, the parameters are provided in order, after the template name, preceded by "|".

Example:

{{SomeTemplate|paramenter one content|parameter two content}}

ImageMap

https://www.mediawiki.org/wiki/Extension:ImageMap

Extensions

https://www.mediawiki.org/wiki/Manual:Extensions

Extensions provide customizations on how MediaWiki looks and works. Extensions can be installed by system administrators. Extensions are usually distributed as modular packages. They are installed in their own "extensions" subdirectory, and, after installation, they are declared in LocalSettings.php as:

wfLoadExtension( 'ExtensionName' );

Installed Extensions

To get a list of installed extensions and their versions go to 'Special pages' → Version.

Useful Extensions

JSBreadCrumbs

JSBreadCrumbs

BreadCrumbs2

BreadCrumbs2

SyntaxHighlight

SyntaxHighlight

Math

Math

BreadCrumbs

BreadCrumbs (obsolete)

SELinux Support

https://www.mediawiki.org/wiki/SELinux

Tags

HTML Tags

The following HTML tags are handled by MediaWiki:

<code>

By default, the HTML <code> tag is displayed in the browser's default monospace font. CSS declared in MediaWiki:Common.css can be used to modify the rendering of the <code> elements, by adding a sequence similar to:

code {
  font-family: Consolas,"menlo";
  color: DarkSlateGray;
  padding: 1px;
  background-color: #FCFCFC;
  border-color: Gainsboro;
  font-size: 77%;
}

Also see:

MediaWiki Editing | In-Line Code
HTML <code>

MediaWiki Tags

<ref>

Creates a numbered reference to the bottom of the page: [1]

Skin

https://www.mediawiki.org/wiki/Manual:Skin_configuration

To configure the default skin, set the variable $wgDefaultSkin in LocalSettings.php to the lowercase skin name specified in the skin file.

$wgDefaultSkin = "vector";
  1. Example