You have decided to start a website using MediaWiki as the content management system.  Maybe the website is going to be about gambling online or maybe it is going to be about windowsill gardening.  It really does not matter, because to MediaWiki it is all just text and images, and if you want to get even more technical, just a bunch of ones and zeros.

The core of MediaWiki is very generic, because it is “general”.  A lot of the bells and whistles that you see on a variety of websites are controlled by the extensions.  In fact, you cannot even install templates from Wikipedia without first installing extensions.  And to top it all off, even the “recommended ones” that come with MediaWiki core are not enough to handle imported extensions from Wikipedia.

Over the last 2 days, I went through all of the MediaWiki extensions (1600+ and counting), and reduced the list down to 615 (from a first pass).  From these, there are ones that I know for a fact are “you can’t live without”, and some which does not up to MW 1.36 Standards.  Sorry, but MediaWiki made changes to Mustache to make things easier to use templates in 1.36 that are not in 1.35, so I am personally skipping over 1.35 and considering 1.36 to be the LTS version.

Why is it better to install MediaWiki 1.36 rather than MediaWiki 1.35?

All HTML 5 entities are not accepted.  Finally.  $wgExtensionFunctions is being phased out.  Use MediaWikiServices instead.  $wgSkinMetaTags added to handle OpenGroup (SEO for social media).  Settings related to database replication changed from SLAVE to REPLICA.  The following settings were deprecated in 1.35 and removed in 1.36: $wgParserConf, $wgEnableRestAPI, $wgPagePropsHaveSortkey.  Settings that referefenced “BlackList” were changed to PasswordCannotMatchDefaults and PasswordNotInCommonList.

There are also a bunch of other breaking changes that were added in 1.35.  Most of them revolve around “enough is enough” with using old outdated standards and changing DB references from SLAVE to REPLICA and other changes related to calling databases.

What should I know before I start to import templates and modules from Wikipedia into my own instance of MediaWiki?

All of the extensions that you need to import templates from Wikipedia (or the other related sites) are not included in MediaWiki core or even the list of extensions that is included in an initial install of MediaWiki.

These are the extensions that are a “Must have”.  Ones dealing with security and spamming I have left off, because I currently am dealing with very small wikis with very limited editors (aka, private wiki).

  • Gadgets
  • Nuke
  • ParserFunctions
  • RenameUser
  • WikiEditor
  • Cite
  • ImageMap
  • InputBox
  • Interwiki
  • PdfHandler
  • SyntaxHighlight
  • CiteThisPage
  • Categorytree
  • CodeEditor
  • ReplaceText
  • PageImages
  • Scribunto (modules)
  • TextExtracts
  • TemplateData

The next list is a list of extensions that are included in MediaWiki sites that I feel are important.

  • BetaFeatures
  • TemplateStyles
  • TemplateData
  • TemplateWizard
  • Gadgets
  • ParserFunctions
  • TimedMediaHandler
  • Translate

Which extensions that are used on MediaWiki Sites should I install on my own instance of MediaWiki?

  • Capiunto
  • CategoryTree
  • Collection
  • ContactPage
  • Disambiguator
  • DonationInterface
  • DynamicPageList3
  • EasyTimeline
  • Echo
  • ApprovedRevs
  • Gadgets
  • GeoCrumbs
  • GeoData
  • Graph
  • Interwiki
  • InterwikiSorting
  • JsonConfig
  • Kartographer
  • LabeledSectionTransclusion
  • LandingCheck
  • LoginNotify
  • Math
  • MediaModeration
  • Newsletter
  • Nuke
  • PageAssessments
  • Paragraph-based Edit Conflict Interface
  • PdfHandler
  • RenameUser
  • SubPageList3
  • SubpagSortKey
  • SyntaxHighlight
  • UniversalLangugeSelector

Which MediaWiki Extensions are even worth considering?

The following is not a complete list, but more reflects what I do use MediaWiki for.  I left out Extension Bundles (a group of extensions written by the same author that are designed to work together) and a lot of extensions that are just designed to interface with third-party applications (3D graphing, etc.).  I also left out Authorization extensions, and social media extensions.

Within this list, there are ones that are my personal favorites and other ones that I plan to do further research on.

  • AbsenteeLandlord
  • AccountInfo
  • AddMessages
  • AddPersonalUrls (Favorite)
  • AddThis (Favorite)
  • AdminLinks (Favorite)
  • AdvancedMeta
  • AdvancedSearch
  • Advancedbacklinks
  • AllTimeZones (Favorite)
  • AnchorHandler
  • AnonPrivacy
  • ApprovedRevs
  • Arrays (Favorite)
  • ArticleCreationWorkflow
  • ArticleIndex (Favorite)
  • ArticleRatings (Favorite)
  • ArticleToCategory2 (Favorite)
  • Attachments (Favorite)
  • AuthorProtect
  • AutoCategoriseUploads
  • AutoCreateCategoryPages
  • AutoProxyBlock
  • AutoSitemap
  • BetaFeatures (Favorite)
  • BibManager
  • BiblioPlus
  • BlogPage
  • BoilerPlate
  • BoilerRoom
  • BreadCrumbs2 (Favorite)
  • CSS
  • Calendar (Favorite)
  • Capiunto (Favorite)
  • Cargo (Favorite)
  • Carp
  • CategorySearchSuggestions
  • CategorySortHeaders (Favorite)
  • CategoryTagSorter (Favorite)
  • CategoryToolbox
  • CategoryTree (Favorite)
  • CategoryWatch
  • ChangeAuthor (Favorite)
  • ChangeUserPasswords
  • Chat
  • Checkpoint
  • CirrusSearch
  • Cite (Favorite)
  • CiteDrawer (Favorite)
  • CiteThisPage (Favorite)
  • CleanChanges
  • CodeEditor (Favorite)
  • CodeMirror (Favorite)
  • CollaborationKit
  • CollapsibleSections (Favorite)
  • Collection (Favorite)
  • Comments (Favorite)
  • ConfigManager
  • ConfirmAccount
  • ContactPage (Favorite)
  • ContributionCredits
  • ContributionScores
  • ContributionsList
  • Contributors (Favorite)
  • CountDownClock
  • CourseEditor (Favorite)
  • CrawlableAllPages (Favorite)
  • CreateAPage
  • CreatePage
  • CreatePageUw
  • CreateRedirect
  • CreateUserPage
  • CreatedPagesList
  • CreditsSource
  • Crossreference
  • CustomHeader
  • CustomSubtitle
  • Dashiki
  • DataDump
  • DataTable2
  • DataTables
  • DataTransfer (Favorite)
  • DebugTemplates
  • DeleteBatch
  • DeletePagesForGood
  • DeleteUserPages
  • Description2 (Favorite)
  • Diagnosis
  • DidYouKnow (Favorite)
  • DisableAccount
  • Disambiguator (Favorite)
  • DisplayTitle (Favorite)
  • DocBookExport
  • DonateBoxInSidebar
  • DonateButton
  • DonationInterface
  • DownloadBook
  • Drafts
  • DumpsOnDemand
  • DynamicPageList3 (Favorite)
  • DynamicPageListEngine (Favorite)
  • DynamicSidebar (Favorite)
  • Echo (Favorite)
  • EditAccount
  • EditNotify (Favorite)
  • EditSimilar
  • EditSubpages (Favorite)
  • Elastica
  • ElectronPdfService (Favorite)
  • EmailPage
  • EntitySchema
  • Examples (Favorite)
  • ExcludeRandom
  • ExcludeSubpages
  • Expressions
  • ExtJSBase (Favorite)
  • ExternalArticles
  • ExternalData
  • ExternalLinkConfirm
  • Favorites
  • Figures
  • FileAnnotations
  • FileExporter
  • FileImporter
  • FilterListUsers
  • FilterSpecialPages
  • FontAwesome
  • ForceTocOnEveryPage
  • Gadgets (Favorite)
  • Genealogy
  • GeoCrumbs (Favorite)
  • GeoData (Favorite)
  • GetUserName
  • Graph (Favorite)
  • GroupWhitelist
  • HAWelcome
  • HTMLTags
  • HeadScript
  • HeaderExtension
  • HeaderFooter (Favorite)
  • HelpPages
  • HierarchyBuilder
  • HighlightLinksInCategory (Favorite)
  • HitCounters
  • HostStats
  • Html2Wiki
  • IPInfo
  • ImageMap (Favorite)
  • ImageSizeInfoFunctions
  • ImageTweaks
  • ImportFreeImages
  • ImportUsers
  • Inbox
  • IncidentReporting
  • IndexFunctions
  • Info
  • InlineCategorizer
  • InputBox
  • Insider
  • Internalwhitelist (Favorite)
  • Interwiki (Favorite)
  • InterwikiExtracts (Favorite)
  • InterwikiSorting (Favorite)
  • InviteSignup
  • IssueTracker2
  • Javascriptslideshow
  • JsonConfig (Favorite)
  • JsonData (Favorite)
  • Kartographer (Favorite)
  • LabeledSectionTransclusion (Favorite)
  • LandingCheck
  • LanguageSelector (Favorite)
  • LastModified (Favorite)
  • LastUserLogin (Favorite)
  • LegalLogin
  • Linebreaks-extension
  • Lingo
  • LinkFilter
  • LinkSuggest
  • LinkTarget
  • LinkTitles
  • Linter
  • ListTransclusions
  • LockAuthor
  • Lockdown (Favorite)
  • LogEntry
  • LoginNotify (Favorite)
  • LogoFunctions
  • LookupUser
  • LoopFunctions
  • Loops
  • LuaCollections
  • LuaLexer
  • MWUnit
  • MagicNumberedHeadings
  • MaintenanceShell
  • ManageWiki
  • MapSources
  • Maps (Favorite)
  • MarkAsHelpful
  • MassEditRegex
  • MassMessage
  • Mathjax
  • Matomo
  • MatomoAnalytics
  • MediaModeration
  • MediaSearch
  • MediaUploader
  • Memento
  • MetaMaster
  • Metadata
  • MiniInvite
  • MintyDocs
  • MissedPages
  • MixedNamespaceSearchSuggestions (Favorite)
  • Moderation (Favorite)
  • MsCalendar
  • MsCatSelect
  • MsInsert
  • MsLinks
  • MsUpload
  • MsWikiEditor
  • MultiBoilerplate (Favorite)
  • MultiLanguageManager (Favorite)
  • MyVariables (Favorite)
  • NSFileRepo
  • NamespaceData
  • NamespaceHTML
  • NamespaceManager
  • NamespacePath (Favorite)
  • NamespacePopups
  • NamespaceRelations (Favorite)
  • NamespaceSidebar (Favorite)
  • NativeSvgHandler (Favorite)
  • NaturalLanguageList
  • NearbyPages
  • Network
  • NewArticleTemplates
  • NewSignupPage
  • NewestPages
  • NewsBox
  • NewsTicker
  • Newsletter (Favorite)
  • NoBogusUserpages
  • NoCat
  • NoTitle
  • Nuke (Favorite)
  • NukeDPL (Favorite)
  • Numberedheadings
  • NumerAlpha
  • OOJsUIAjaxLogin
  • OneColumnAllPages
  • OnlineStatusBar
  • OpenGraphMeta
  • PDFEmbed
  • PageAssessments (Favorite)
  • PageCreationNotif
  • PageEditRestrictions
  • PageForms (Favorite)
  • PageImages (Favorite)
  • PageInCat
  • PageNameFormula
  • PageNotice
  • PagePopups
  • PageSchemas
  • PageTools
  • PageTriage
  • PaginateText (Favorite)
  • PanScroll
  • ParserFunctions (Favorite)
  • ParsoidBatchAPI
  • Patroller
  • PdfBook
  • PdfHandler (Favorite)
  • Petition
  • PhpTags
  • PhpTagsFunctions
  • PhpTagsWidgets
  • PhpTagsWiki
  • Pickle
  • PictureGame
  • PipeEscape (Favorite)
  • Pluso
  • PollNY (Favorite)
  • Popups (Personally prefer the gadget version or the ToolTip version)
  • PortableInfobox
  • PreferencesList
  • PrivateDomains
  • ProcessCite
  • PronunciationRecording
  • ProofreadPage (Favorite)
  • ProtectSite
  • ProtectionIndicator
  • PubmedParser-main
  • Purge (Favorite)
  • PurgePage
  • Push
  • PushAll
  • PushToWatch (Favorite)
  • QRLite
  • QueryViz
  • QuickSearchLookup
  • QuickSurveys
  • QuickUploadZone
  • Quiz (Favorite)
  • QuizGame
  • RSS
  • RandomArea
  • RandomGameUnit
  • RandomImage
  • RandomImageByCategory
  • RandomInCategory
  • RandomPages
  • RandomSelection
  • ReadingLists
  • Realnames
  • ReassignEdits
  • RecentActivity
  • RecentChangesLogFilter
  • RecordWizard
  • RefreshSiteStatsTable
  • RegexBlock
  • RegexFunctions
  • RelMicroformat
  • RelatedArticles (Favorite)
  • RemoveRedlinks
  • Renameuser (Favorite)
  • ReplaceSet
  • ReplaceText (Favorite)
  • Report
  • RevisionCommentSupplement
  • RevisionSlider
  • RightFunctions
  • RottenLinks
  • SVGEdit
  • SafeDelete
  • SaferHTMLTag
  • Sanctions-main
  • SandboxLink
  • SaneCase
  • Sarcasm
  • SaveSpinner
  • Screenplay
  • Scribunto (Favorite)
  • SearchExtraNS
  • SearchStats
  • Sections-count
  • SecureInclude
  • SecureLinkFixer
  • SecureSessions
  • ShortDescription (Favorite)
  • ShowMe
  • ShowRealUsernames (Favorite)
  • SidebarDonateBox (Favorite)
  • SimpleBatchUpload (Favorite)
  • SimpleBlogPage (Favorite)
  • SimpleCalendar (Favorite)
  • SimpleChanges
  • SimpleFooterLink (Favorite)
  • SimpleMathJax (Favorite)
  • SimpleSkins (Favorite)
  • SimpleSort (Favorite)
  • SimpleTable (Favorite)
  • SimpleTerms (Favorite)
  • SiteSettings
  • SkinCustomiser
  • SkinPerNamespace
  • SkinPerPage
  • Skinny
  • SoftRedirector
  • SoftwareVersion (Favorite)
  • SourceProtection
  • SpamBlacklist
  • SpamDiffTool
  • SpamRegex
  • Special404 (Favorite)
  • SpecialUserScore
  • SpellingApi
  • SpellingDictionary
  • SphinxSearch
  • SplitPrivateWiki
  • Spoilers
  • StaffEdits (Favorite)
  • StaffPowers (Favorite)
  • StopForumSpam
  • StructuredNavigation
  • SubPageList3 (Favorite)
  • SubpageFun
  • SubpageSortkey (Favorite)
  • SubpageWatchlist
  • Sudo
  • SyntaxHighlightPages
  • SyntaxHighlight_GeSHi (Favorite)
  • SystemGifts
  • Tabber
  • TableEdit
  • Tabs
  • TemplateData (Favorite)
  • TemplateEdit
  • TemplateSandbox
  • TemplateStyles (Favorite)
  • TemplateStylesExtender (Favorite)
  • TemplateWizard (Favorite)
  • TextExtracts (Favorite)
  • TextScroller (Favorite)
  • Thanks (Favorite)
  • Theme
  • TimeMachine
  • TimedMediaHandler
  • Timeline (Favorite)
  • TimelineTable (Favorite)
  • TinyMCE
  • TitleBlacklist
  • TitleIcon (Favorite)
  • TitleKey
  • TocTree
  • TopLink-main
  • TorBlock
  • Translate
  • TranslateSvg
  • TranslateWiki
  • TreeAndMenu
  • TwoColConflict
  • UniversalLanguageSelector (Favorite)
  • UnusedRedirects
  • UploadFields
  • UploadWizard
  • UrlGetParameters
  • UseResource
  • UserActivity
  • UserAgreement
  • UserBoard
  • UserExport
  • UserFunctions
  • UserGifts
  • UserGroups
  • UserHistory
  • UserLoginLog
  • UserMerge
  • UserOptionStats
  • UserPageEditProtection
  • UserPageViewTracker
  • UserProtect
  • UserRelationship
  • UserStats
  • UserStatus
  • UserWelcome
  • VIKI
  • Variables (Favorite)
  • VariablesLua (Favorite)
  • VersionCompare
  • VikiTitleIcon (Favorite)
  • VoiceCommander
  • VoteNY (Favorite)
  • WSStats
  • WantedPagesFromNS
  • WatchSubpages
  • WebChat
  • WebToolsManager
  • WhiteSpace
  • WhitelistPages
  • WhoIsWatching
  • WhosOnline
  • Widgets
  • WikEdDiff
  • WikiCategoryTagCloud
  • WikiEditor (Favorite)
  • WikiSEO
  • WikiShare
  • WikiTextLoggedInOut
  • Wikioutliner
  • Wikispeech
  • WikispeechSpeechDataCollector
  • Wiretap
  • pChart4mw

What skins should I install to use with MediaWiki?  Is Timeless the best MediaWiki skin?

I have messed around with different skins, but I always go back to Timeless.  I have done a few changes to the Timeless skin to meet my needs, but for the most part it works right out the box.

Here are some changes that I did do:

  • Fixed the skin so it works with SocialProfile to display a user’s avatar.
  • Changed the skin so it will only display 1 side menu and then use the rest of the screen as the main body.
  • Changed the skin to have the option of not displaying any side menus at all.  The sidemenus become a drop down menu at the top.  The content window takes up the whole screen.
  • Included w3css to be included in the skin resources.
  • Included w3.js javascript in the skin resources.
  • Include fontawesome in the skin resources.

Did I ever need to modify the core code of MediaWiki?

Yes.  I always change the core code so that the dir=auto is functioning correctly in the body.  This allows RTL text in any textbox to have the cursor automatically go to the right side when a user starts to type in RTL text.

I also modify the Wikieditor to display only the special characters that I think my users will find most useful.  If your whole website is RTL text, then this will not be an issue for you. My website uses a combination of LTR and RTL text.

What other pages, templates, modules should I import and/or setup?

The help pages are useful, but then there is an extension that will automatically redirect the user to MediaWiki’s help pages if the page is not on your site.  These other pages you need to set up.  You can start from a copy from Wikipedia or you can just create your own from scratch.  Sometimes if you import a template and you do not copy over these pages, the template may not function correctly.  Infoboxes are an example.

  • MediaWiki:Common.css
  • MediaWiki:Common.js
  • MediaWiki:Sidebar
  • Project:Privacy policy
  • Project:About
  • Project:Disclaimers
  • Project:Contact
  • Project:Terms of use

As for templates and modules, there are too many to list here.  But, in my opinion, some of these templates are written to handle every language in every situation, and contain a lot of extraneous code that your wiki may not need.  In other words, it may cause your MediaWiki install to slow down.  Pages that load slower are given a lower rank than pages that load faster, especially with mobile loading.

What other tips and tricks to setting up MediaWiki should I be aware of ?

First make sure that your Apache is setup correctly including defining your server host.  Second, make sure that you have caching setup correctly.  Verify that your images are setup correctly for processing both jpg and svg file types.  Svg files are processed differently than jpg files.  And in general, test the functionality you are going to use for your site.

Summary

As with any CMS installation, you can make a MediaWiki installation that screams MediaWiki installation, or you make an MediaWiki installation that is unique for your needs.  But as with any project, you have to figure out what is needed for your website.

Similar Posts

Leave a Reply