Development

Canasta: About Canasta > Contents

Table of contents

Overview

Canasta is, at heart, a MediaWiki Docker image. There are other Docker images available for MediaWiki, but one big strength of Canasta is that it bundles in a variety of related software, including 10 skins and 152 extensions. Below are the list of skins and extensions that come included. By default, only the Vector skin, out of all of these skins and extensions, is actually "installed"; in order to install any of the rest in your container, you just have to add a call to wfLoadSkin() or wfLoadExtension() for it to your LocalSettings.php file.

There are (theoretically) dozens of skins, and over 1,000 extensions, available for MediaWiki. So how was the set of skins and extensions in Canasta decided on?

First, all of the skins and extensions that are bundled in with the official distribution of MediaWiki (5 skins and 30 extensions in all) are included in Canasta; see here for the full list. Beyond this group, the general criteria are that they must work well with Canasta's MediaWiki version (1.39); they must be well-maintained, and be likely to remain well-maintained in the future; and they must provide important functionality that no other extension or skin that's included does.

Administrators who want to add some skin or extension that is not in this list to their wiki can easily do so in the standard way: by downloading it, adding it to either the skins/ or extensions/ directory, and adding the relevant call to either wfLoadSkin() or wfLoadExtension() to LocalSettings.php.

Skins included in Canasta

Extensions included in Canasta

Administrative tools

Admin Links · DeleteBatch · Interwiki

Analytics

Contribution Scores · Editcount · GoogleAnalyticsMetrics · GTag · RottenLinks · UserPageViewTracker · WatchAnalytics · WhoIsWatching · WhosOnline

Automated page creation & modification

Data Transfer · Page Exchange · Replace Text

Communication & notification

CommentStreams · ContactPage · DismissableSiteNotice · Echo · GlobalNotice · MassMessage · MassMessageEmail · NewUserMessage · Semantic Tasks · Semantic Watchlist · Thanks

Data storage & display

Cargo · Disambiguator · External Data · PageImages · Semantic Breadcrumb Links · Semantic Compound Queries · SemanticDependencyUpdater · Semantic Drilldown · Semantic Extra Special Properties · Semantic MediaWiki · Semantic Result Formats · Semantic Scribunto · SimpleChanges · SubPageList

Editing

CharInsert · CodeEditor · CodeMirror · InputBox · LinkSuggest · Linter · Page Forms · SaveSpinner · Semantic Forms Select · TemplateData · TemplateSandbox · TemplateWizard · TinyMCE · VEForAll · VisualEditor · WikiEditor

File upload & handling

AWS · CommonsMetadata · GoogleDocCreator · ImageMap · MediaUploader · MsUpload · MultimediaViewer · PdfHandler · SimpleBatchUpload · TimedMediaHandler · UploadWizard

HTML & multimedia support

EmbedVideo (fork) · Flex Diagrams · Graph · HTML Tags · Maps · Math · Mermaid · SimpleMathJax · Widgets

Interface & display customization

BetaFeatures · Display Title · Gadgets · Header Footer · Header Tabs · SkinPerPage · SyntaxHighlight · TemplateStyles · Title Icon

Meta tags

Description2 · OpenGraphMeta · WikiSEO

PDF export

Collection

Read & write access

Approved Revs · LockAuthor · Lockdown

Search

AdvancedSearch · CirrusSearch · Elastica

Social tools

AJAXPoll · SocialProfile · VoteNY

Spam control

AbuseFilter · ConfirmEdit · Nuke · SmiteSpam · SpamBlacklist · TitleBlacklist

Translation

UniversalLanguageSelector

User management

CheckUser · EditAccount · LookupUser · Renameuser · UserMerge

User registration

AntiSpoof · ConfirmAccount · Email Authorization · JWTAuth · LDAPAuthentication2 · LDAPAuthorization · LDAPProvider · OATHAuth · OpenID Connect · PluggableAuth · WSOAuth

Other wikitext additions

Arrays · Cite · CiteThisPage · Labeled Section Transclusion · LinkTarget · Lingo · Loops · MagicNoCache · MintyDocs · MyVariables · NumerAlpha · ParserFunctions · Poem · RegularTooltips · Scribunto · UrlGetParameters · UserFunctions · Variables

Non-wikitext display utilities

Bootstrap · BootstrapComponents · BreadCrumbs2 · CategoryTree · MobileFrontend · Popups · SandboxLink · SecureLinkFixer

Other

CookieWarning · EventLogging · EventStreamConfig · RevisionSlider · TextExtracts

Overall contents

The overall contents of Canasta are as follows:

Being a Docker image, Canasta places some files and directories in the host operating system as bind mounts - files and directories associated with the image but which are not contained in the Docker image's container itself, and which the administrator can thus modify, because they will not be removed or overwritten if the Docker image is updated. Canasta also stores the database outside of the Docker image, although this is stored as a volume (named "mysql-data-volume") and not a bind mount.

In Canasta, there are six bind mounts, which appear in the host OS as the files LocalSettings.php and composer.local.json, and the directories images/, extensions/, settings/ and skins/. Besides the database itself, these are the only six files or directories that administrators should modify.

Canasta file layout
The files and directories contained in the Canasta Docker image, and (to the right) how they appear to the administrator.

An explanation of the relevant parts of the Canasta image:

Canasta includes tree
The "real" LocalSettings.php file, the one read directly by MediaWiki, is at the top; below it are the files that it directly or indirectly includes, i.e. reads from.