Media Wiki Concepts: Difference between revisions
(45 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
=Directory Layout= | =Directory Layout= | ||
<font size=-2> | |||
/ | / | ||
├── etc | ├── etc | ||
│ ├── [[#php.ini|php.ini]] | │ ├── [[PHP#php.ini|php.ini]] | ||
│ └── php.d | │ └── php.d | ||
│ | │ | ||
Line 28: | Line 29: | ||
│ └── ... | │ └── ... | ||
└── ... | └── ... | ||
</font> | |||
=Versions= | =Versions= | ||
See: {{Internal|Media_Wiki_Operations#Get_Media_Wiki_Version|Media Wiki Operations | Get Media Wiki Version}} | |||
= | ==LTS== | ||
Long Term Support | |||
=<tt>LocalSettings.php</tt>= | =<tt>LocalSettings.php</tt>= | ||
{{External|https://www.mediawiki.org/wiki/Manual:LocalSettings.php}} | {{External|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. To enable a change, the web server needs to be restarted with: | 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'> | <syntaxhighlight lang='bash'> | ||
apachectl graceful | apachectl graceful | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<code>LocalSettings.php</code> contains, among others, the following: | |||
==Database Type== | |||
<syntaxhighlight lang='php'> | <syntaxhighlight lang='php'> | ||
$wgDBtype = "mysql"; | $wgDBtype = "mysql"; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Database Hostname== | |||
<syntaxhighlight lang='php'> | <syntaxhighlight lang='php'> | ||
$wgDBserver = "localhost"; | $wgDBserver = "localhost"; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Database User ID== | |||
<syntaxhighlight lang='php'> | <syntaxhighlight lang='php'> | ||
$wgDBuser = "c3kb_wiki"; | $wgDBuser = "c3kb_wiki"; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Database Password== | |||
<syntaxhighlight lang='php'> | <syntaxhighlight lang='php'> | ||
$wgDBpassword = "..."; | $wgDBpassword = "..."; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Database Default Character Set== | |||
<syntaxhighlight lang='php'> | <syntaxhighlight lang='php'> | ||
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary"; | $wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary"; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Database Name== | |||
<syntaxhighlight lang='php'> | <syntaxhighlight lang='php'> | ||
$wgDBname = "c3kb_wiki"; | $wgDBname = "c3kb_wiki"; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====Site Name== | ==<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'> | <syntaxhighlight lang='php'> | ||
$wgSitename = " | $wgSitename = "NovaOrdis Knowledge Base"; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Server Name== | |||
{{External|https://www.mediawiki.org/wiki/Manual:$wgServer}} | {{External|https://www.mediawiki.org/wiki/Manual:$wgServer}} | ||
<syntaxhighlight lang='php'> | <syntaxhighlight lang='php'> | ||
$wgServer = "https://kb.novaordis.com"; | $wgServer = "https://kb.novaordis.com"; | ||
</syntaxhighlight> | </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 | <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://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: | 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: | ||
Line 96: | Line 86: | ||
$wgServer = "http://localhost:10080"; | $wgServer = "http://localhost:10080"; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==wfLoadExtension== | |||
See [[#Extensions|Extensions]] below. | See [[#Extensions|Extensions]] below. | ||
==Site Logo== | |||
{{Internal|Media Wiki Configure Site Logo|Configure 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 | Allow PDF Uploading}} | |||
=<tt>index.php</tt>= | =<tt>index.php</tt>= | ||
See: {{Internal|Media_Wiki_Troubleshooting#PHP_Errors|Media Wiki Troubleshooting | PHP Errors}} | |||
=DefaultSettings.php= | =<tt>DefaultSettings.php</tt>= | ||
=MediaWiki:Common.css= | =<tt>MediaWiki:Common.css</tt>= | ||
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 [[MediaWiki_Extension_SyntaxHighlight#Reduce_Font_Size|SyntaxHighlight extension]] and it can also be used to customize the rendering of HTML tags, such as [[Media_Wiki_Concepts#.3Ccode.3E|<code>]]. | 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|<code>]]</code>. | ||
=Security= | =Security= | ||
{{Internal|Media Wiki Security Concepts|Media Wiki Security Concepts}} | |||
{{Internal|Media Wiki Security Concepts|Security Concepts}} | |||
=Transclusion= | =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. | |||
''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. | |||
=Namespace= | =Namespace= | ||
{{External|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 [[Media_Wiki_Installation#Project_Namespace|wiki initialization procedure]]. | |||
=Templates= | =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. | |||
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 171: | Line 153: | ||
=Extensions= | =Extensions= | ||
{{External|https://www.mediawiki.org/wiki/Manual: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 [[#LocalSettings.php|LocalSettings.php]] as: | 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'> | <syntaxhighlight lang='php'> | ||
wfLoadExtension( 'ExtensionName' ); | wfLoadExtension( 'ExtensionName' ); | ||
Line 178: | Line 160: | ||
To get a list of installed extensions and their versions go to 'Special pages' → Version. | To get a list of installed extensions and their versions go to 'Special pages' → Version. | ||
==Useful Extensions== | ==Useful Extensions== | ||
==== | ====JSBreadCrumbs==== | ||
{{Internal|MediaWiki Extension | {{Internal|MediaWiki Extension JSBreadCrumbs|JSBreadCrumbs}} | ||
====BreadCrumbs2==== | |||
{{Internal|MediaWiki Extension BreadCrumbs2|BreadCrumbs2}} | {{Internal|MediaWiki Extension BreadCrumbs2|BreadCrumbs2}} | ||
====SyntaxHighlight==== | ====SyntaxHighlight==== | ||
Line 185: | Line 168: | ||
====Math==== | ====Math==== | ||
{{Internal|MediaWiki Extension Math|Math}} | {{Internal|MediaWiki Extension Math|Math}} | ||
====BreadCrumbs==== | |||
{{Internal|MediaWiki Extension BreadCrumbs|BreadCrumbs (obsolete)}} | |||
=SELinux Support= | =SELinux Support= | ||
{{External|https://www.mediawiki.org/wiki/SELinux}} | {{External|https://www.mediawiki.org/wiki/SELinux}} | ||
Line 191: | Line 177: | ||
The following HTML tags are handled by MediaWiki: | The following HTML tags are handled by MediaWiki: | ||
===<span id='code_tag'></span><tt><code></tt>=== | ===<span id='code_tag'></span><tt><code></tt>=== | ||
By default, the HTML <code> tag is displayed in the browser's default monospace font. CSS declared in [[Media_Wiki_Concepts#MediaWiki:Common.css|MediaWiki:Common.css]] can be used to modify the rendering of the <code> elements, by adding a sequence similar to: | By default, the HTML <code><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 <code> elements, by adding a sequence similar to: | ||
<syntaxhighlight lang='css'> | <syntaxhighlight lang='css'> | ||
code { | code { | ||
Line 208: | Line 194: | ||
Creates a numbered reference to the bottom of the page: | Creates a numbered reference to the bottom of the page: | ||
<ref>Example</ref> | <ref>Example</ref> | ||
=Skin= | |||
{{External|https://www.mediawiki.org/wiki/Manual:Skin_configuration}} | |||
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:
LTS
Long Term Support
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
$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.
Site Logo
wgFileExtensions
See:
index.php
See:
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
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
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
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
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
BreadCrumbs2
SyntaxHighlight
Math
BreadCrumbs
SELinux Support
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 Tags
<ref>
Creates a numbered reference to the bottom of the page: [1]
Skin
To configure the default skin, set the variable $wgDefaultSkin
in LocalSettings.php
to the lowercase skin name specified in the skin file.
$wgDefaultSkin = "vector";
- ↑ Example