MediaWiki provides a rich core feature set and a mechanism to attach extensions to provide additional functionality.
Due to the strong emphasis on multilingualism in the Wikimedia projects, internationalization and localization has received significant attention by developers. The user interface has been fully or partially translated into more than 300 languages, and can be further customized by site administrators (the entire interface is editable through the wiki).
Because Wikipedia is one of the world's largest websites, achieving scalability through multiple layers of caching and database replication has also been a major concern for developers. Wikipedia and other Wikimedia projects continue to define a large part of the requirement set for MediaWiki.
One of the earliest differences between MediaWiki (and its predecessor, UseModWiki) and other wiki engines was the use of "free links" instead of CamelCase. Where, in a typical wiki, text like "WorldWideWeb" would have to be typed to create a link to a page about the World Wide Web, links in MediaWiki are created by surrounding words with double square brackets, and any spaces between them are left intact, e.g. [[World Wide Web]]. This change was logical for the purpose of creating an encyclopedia, where accuracy in titles is very important.
To make editing long pages such as comprehensive Wikipedia articles easier, MediaWiki allows the editing of a subsection of a page (as identified by its header).
Rich content:
MediaWiki supports rich content generated through specialized syntax. For example, the software comes with support for rendering mathematical formulas using LaTeX and a special parser written in OCaml. Similar functionality for other content, ranging from graphical timelines over mathematical plotting and musical scores to Egyptian hieroglyphs, is available in the form of extensions and also aesthetic sense has improved considerably.
As the name MediaWiki suggests, the software has become ever more powerful at dealing with a wide variety of uploaded media files. Its richest functionality is in the area of images, where image galleries and thumbnails can be generated with relative ease. There is also support for Exif metadata. The use of MediaWiki to operate the Wikimedia Commons, one of the largest free content media archives, has driven the need for further functionality in this area.
MediaWiki currently provides no native WYSIWYG support, though it does come with a graphical toolbar for simplifying the process of learning the wiki syntax. Wikia, though, has developed an extension that uses a modified version of the popular FCKeditor to edit wiki code graphically. MediaWiki also has a simple interface to allow the transparent use of external editors for uploaded files and wiki pages.
Organization:
MediaWiki provides many features beyond hyperlinks for structuring content. One of the earliest features is namespaces. One of Wikipedia's earliest problems had been the separation of encyclopedic content from pages pertaining to maintenance and communal discussion, as well as personal pages about encyclopedia editors. Namespaces are prefixes before a page title (such as "User:" or "Talk:") that serve as descriptors for the page's purpose and allow multiple pages with different functions to exist under the same title. For instance, a page titled "[[The Terminator]]", in the default namespace, could describe the 1984 movie starring Arnold Schwarzenegger, while a page titled "[[User:The Terminator]]" could be a profile describing a user who chooses this name as a pseudonym. More commonly, each page and each namespace has an associated "Talk:" page which can be used to discuss its contents, such as "User talk:" or "Template talk:". The purpose of having discussion pages is to allow content to be separated from discussion surrounding the content.
Namespaces can be viewed as folders which separate different basic types of information or functionality. Custom namespaces can be added by the site administrators. There are 16 namespaces by default for content, with 2 "pseudo-namespaces" used for dynamically generated "Special:" pages and links to media files. Each namespace on MediaWiki is numbered: content page namespaces have even numbers and talk page namespaces have odd numbers.
In addition to namespaces, content can be ordered using subpages. This simple feature provides automatic breadcrumbs from a page of the pattern [[Page title/Subpage title]] to the component before the slash (in this case, "Page title").
Customization:
If the feature is enabled, users can customize their stylesheets and configure client-side JavaScript to be executed with every pageview. On Wikipedia, this has led to a large number of additional tools and helpers developed through the wiki and shared among users. For instance, Lupin's navigation popups is a custom JavaScript tool that shows previews of articles when the user hovers over links, and also provides shortcuts for common maintenance tasks. Another example is wikEd, a full-featured MediaWiki-integrated text editor that provides syntax highlighting and search and replace functions.
The entire MediaWiki user interface can be edited through the wiki itself by users with the necessary permissions (typically so-called "administrators"). This is done through a special namespace with the prefix "MediaWiki:", where each page title identifies a particular user interface message. The "MediaWiki:" namespace was also originally used for creating custom text blocks that could then be dynamically loaded into other pages using a special syntax. This content was later moved into its own namespace, "Template:".
Templates are text blocks which can be dynamically loaded inside another page whenever that page is requested. The template "tag" is simply a special link in double curly brackets (for example "{{Disputed|date=October 2008}}") which calls the template (in this case located at Template:Disputed) to load where the tag is. Templates support parameters, so that parts of the text can be substituted for each specific use case. A related method, called template substitution (called by adding subst: at the beginning of a template tag) inserts (like a copy and paste operation) the contents of the template into the target page, instead of loading the template contents dynamically whenever the page is loaded. This limits the consistency of using templates, but may be useful in certain cases, and is (perhaps) less demanding on the server.
Templates have found many different uses, such as:
- Creating complex table layouts which are used consistently across multiple pages, and where only the content of the tables gets inserted using template parameters.
- Identifying problems with a Wikipedia article by putting a template in the article. This template will then output a graphical box stating that the article is disputed, and also categorize it so that articles of this nature can be located.
- Sending users standard messages when they are blocked from editing, when their behavior is considered inappropriate, and so on.
MediaWiki has the user interface in different languages. A language for the wiki content itself can also be set, to be sent in the "Content-Language" HTTP header and "lang" HTML attribute.
The MediaWiki codebase contains various "hooks" using callback functions to add additional code in an extensible way. This allows developers to write extensions without modifying the core or having to submit their code for review. Installing an extension typically consists of adding a line to the configuration file, though in some cases additional changes such as database updates are required.
Bugzilla:
Bugs in the MediaWiki software can arise for a variety of reasons, including developmental oversight and unforeseen changes as the result of new releases. These bugs are reported to Bugzilla.wikimedia.org, a Bugzilla (alternatively known as Mediazilla) bug tracker project for Wikimedia founded in August 2004, where they are assigned a bug number and later resolved by MediaWiki developers. Minor feature requests and enhancements to the software are also requested on Bugzilla.wikimedia.org.
No comments:
Post a Comment