Development:Index: Difference between revisions

From COMP15212 Wiki
pc>Yuron
No edit summary
gravatar W81054ch [userbureaucratinterface-adminsysopPHRhYmxlIGNsYXNzPSJ0d3BvcHVwIj48dHI+PHRkIGNsYXNzPSJ0d3BvcHVwLWVudHJ5dGl0bGUiPkdyb3Vwczo8L3RkPjx0ZD51c2VyPGJyIC8+YnVyZWF1Y3JhdDxiciAvPmludGVyZmFjZS1hZG1pbjxiciAvPnN5c29wPGJyIC8+PC90ZD48L3RyPjwvdGFibGU+] (talk | contribs)
m (1 revision imported)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page details information related to the development of this Mediawiki-driven website, serving as documentation for the code written for the wiki. For information regarding how to make use of this wiki's features once it's been set up, refer to [[Help:Index]].
This page details information related to the development of this Mediawiki-driven website, serving as documentation for the code written for the wiki. For information regarding how to make use of this wiki's features once it's been set up, refer to [[Help:Index]].
== Extensions ==
== Extensions ==
*Semantic Mediawiki is used to provide:
*[https://www.mediawiki.org/wiki/Extension:Semantic_MediaWiki Semantic Mediawiki] is used to provide:
**Page summaries
**Page summaries
**Priority levels
**Priority levels
Line 7: Line 7:
**Dependencies
**Dependencies


*Scribunto (Lua scripting) is used to provide:
*[https://www.mediawiki.org/wiki/Extension:Scribunto Scribunto] (Lua scripting) is used to provide:
**Article dependencies (Lua is needed to support adding an arbitrary number of dependencies to a single box)
**Article dependencies (Lua is needed to support adding an arbitrary number of dependencies to a single box)


*A Syntax Highlighting extension is used to provide syntax highlighting for code in the wiki.
*A [https://www.mediawiki.org/wiki/Extension:SyntaxHighlight Syntax Highlighting extension] is used to provide syntax highlighting for code in the wiki.


*Widgets is used to provide:
*[https://www.mediawiki.org/wiki/Extension:Widgets Widgets] is used to provide:
**Page demonstrations ([{{canonicalurl:Special:AllPages|namespace=274}} List of widgets])
**Page demonstrations ([{{canonicalurl:Special:AllPages|namespace=274}} List of widgets])


*[[Development:UserDash|UserDash]] is the extension that drives most other features specific to this site, including:
*[[Development:UserDash|UserDash]] is the extension that drives most other features specific to this site, including:
**[[Special:Dashboard]], which currently holds the contents of the account profile page from MESH, rather than the Dashboard.
**[[Special:Profile]], various graphs related to a user's progress through this wiki.
**[[Special:Dashboard]], a page directed towards guiding a user to their next page to read.
**The rating and page tagging system
**The rating and page tagging system
**Page graphs
**Page graphs, summoned by the <nowiki></pagegraph></nowiki> tag (though a separate template is used to actually include the pagegraph)
**[[Special:Contents|Contents]] page
**[[Special:Contents|Contents]] page


*The skin Chameleon is used to provide Bootstrap to the wiki.
*A simple custom extension, [https://gitlab.cs.man.ac.uk/w81054ch/showwidget ShowWidget], is used to show a widget alone, for embedding in stuff outside of MediaWiki.
**'''The Bootstrap extension the Chameleon skin comes with does not include tooltip.js from Bootstrap. Replace line 68 in extensions/Bootstrap/src/Definition/V4ModuleDefinition with ''' <code> 'tooltip'          => [ 'styles' => 'tooltip', 'scripts' => 'tooltip.js', 'dependencies' => [ 'popper', 'js-util' ] ],> </code> ''' to fix this. This needs to be done every time Composer is used to update components, as this change would be overwritten.'''
**This widget provides the special page [[Special:ShowWidget]], which requires an argument widget={widget name} to function properly


== Migration ==
*The skin [https://www.mediawiki.org/wiki/Skin:Chameleon Chameleon] is used to provide a Bootstrap look to the wiki.
#First, copy over the wiki installation, including the extensions, skin, and custom configurations in LocalSettings.php, or start from a fresh installation and append the needed extensions/configurations to LocalSettings.php afterwards.
**'''The Bootstrap extension the Chameleon skin comes with does not include tooltip.js from Bootstrap. Run the command ''' <code>sed -i "s/'styles' => 'tooltip',/& 'scripts' => 'tooltip.js',/" extensions/Bootstrap/src/Definition/V4ModuleDefinition.php</code> ''' from the Mediawiki base directory to fix this. This needs to be done every time Composer is used to update components, as this change would be overwritten.'''
##
 
#Second, migrate all pages in the wiki:
== Backup ==
##Run <code> php maintenance/dumpBackup.php --current > backup.xml </code> to dump all pages into backup.xml
To backup the contents of the wiki, one needs to obtain the page contents, as well as the media files.
##Restore backup.xml with the special page Special:Import on the target server
*To obtain the page backup, run  <code>php maintenance/dumpBackup.php --current > backup.xml</code>
##*Special:Import also requires an "interwiki prefix", which doesn't matter for a migration
*To obtain the media file backup, run the bespoke <code>exportImage.sh</code> script to obtain Mediafiles.zip.
#Third, migrate all images:
<code>backup.xml</code> and <code>Mediafiles.zip</code> together comprise a full wiki content backup.
##Run the bespoke <code>exportImage.sh</code> on the source server to obtain MediaFiles.zip
 
##Copy MediaFiles.zip to ~/ (user directory) on the destination
== Re-installation ==
##Run the bespoke importImage.sh on the destination to restore images
#First, run <code>git clone https://gitlab.cs.man.ac.uk/w81054ch/operating-systems-wiki-installer.git .</code> (don't miss the <code>.</code> at the end!) in your MediaWiki installation directory to download the installation pack.
#Lastly, refresh the extension databases with <code>php maintenance/update.php</code>, and refresh the Semantic Mediawiki database with <code> php extensions/SemanticMediaWiki/maintenance/rebuildData.php </code>
#*If the wiki had been edited since the last time that repository is updated, create the two backup files and overwrite the files in the cloned repository. Then, if possible, commit and push the new backups back to the repository.
#Then, simply run <code>./install.sh</code> to install the wiki, paying attention to the instructions or warnings that may appear.
The <code>install.sh</code> should guide you through the rest of re-installation, including automatic restoration of backups.


=== Further setup ===
=== Further setup ===
For the rating chart in Special:Profile to work properly, the values UDStartYear, UDStartMonth, UDStartDay, UDStartHour, UDEndWeek and UDVacationWeeks in extensions/UserDash/extension.json must be set to sensible values.
For the rating chart in Special:Profile to work properly, the values UDStartYear, UDStartMonth, UDStartDay, UDStartHour, UDEndWeek and UDVacationWeeks in extensions/UserDash/extension.json must be set to sensible values.

Latest revision as of 10:38, 28 August 2019

This page details information related to the development of this Mediawiki-driven website, serving as documentation for the code written for the wiki. For information regarding how to make use of this wiki's features once it's been set up, refer to Help:Index.

Extensions

  • Scribunto (Lua scripting) is used to provide:
    • Article dependencies (Lua is needed to support adding an arbitrary number of dependencies to a single box)
  • UserDash is the extension that drives most other features specific to this site, including:
    • Special:Profile, various graphs related to a user's progress through this wiki.
    • Special:Dashboard, a page directed towards guiding a user to their next page to read.
    • The rating and page tagging system
    • Page graphs, summoned by the </pagegraph> tag (though a separate template is used to actually include the pagegraph)
    • Contents page
  • A simple custom extension, ShowWidget, is used to show a widget alone, for embedding in stuff outside of MediaWiki.
    • This widget provides the special page Special:ShowWidget, which requires an argument widget={widget name} to function properly
  • The skin Chameleon is used to provide a Bootstrap look to the wiki.
    • The Bootstrap extension the Chameleon skin comes with does not include tooltip.js from Bootstrap. Run the command sed -i "s/'styles' => 'tooltip',/& 'scripts' => 'tooltip.js',/" extensions/Bootstrap/src/Definition/V4ModuleDefinition.php from the Mediawiki base directory to fix this. This needs to be done every time Composer is used to update components, as this change would be overwritten.

Backup

To backup the contents of the wiki, one needs to obtain the page contents, as well as the media files.

  • To obtain the page backup, run php maintenance/dumpBackup.php --current > backup.xml
  • To obtain the media file backup, run the bespoke exportImage.sh script to obtain Mediafiles.zip.

backup.xml and Mediafiles.zip together comprise a full wiki content backup.

Re-installation

  1. First, run git clone https://gitlab.cs.man.ac.uk/w81054ch/operating-systems-wiki-installer.git . (don't miss the . at the end!) in your MediaWiki installation directory to download the installation pack.
    • If the wiki had been edited since the last time that repository is updated, create the two backup files and overwrite the files in the cloned repository. Then, if possible, commit and push the new backups back to the repository.
  2. Then, simply run ./install.sh to install the wiki, paying attention to the instructions or warnings that may appear.

The install.sh should guide you through the rest of re-installation, including automatic restoration of backups.

Further setup

For the rating chart in Special:Profile to work properly, the values UDStartYear, UDStartMonth, UDStartDay, UDStartHour, UDEndWeek and UDVacationWeeks in extensions/UserDash/extension.json must be set to sensible values.