Difference between revisions of "Technical Details"
m (1 revision imported) |
(Replace use of NewArticleTemplate with MultiBoilerplate) |
||
Line 1: | Line 1: | ||
This site is constructed using: | This site is constructed using: | ||
* [http://www.mediawiki.org/ Mediawiki] - for the core wiki infrastructure that allows collaborative editing and viewing of the content | * [http://www.mediawiki.org/ Mediawiki] - for the core wiki infrastructure that allows collaborative editing and viewing of the content | ||
− | with the following extensions added: | + | with the following extensions added: |
* ABCjs - custom extension providing support for setting categories and rendering abc music notation on wiki pages (see below) | * ABCjs - custom extension providing support for setting categories and rendering abc music notation on wiki pages (see below) | ||
* [https://www.mediawiki.org/wiki/Extension:Html5mediator Html5mediator] - support embedded HTML5 audio (and video) players | * [https://www.mediawiki.org/wiki/Extension:Html5mediator Html5mediator] - support embedded HTML5 audio (and video) players | ||
* [https://www.mediawiki.org/wiki/Extension:Multi-Category_Search MultiCategorySearch] - to support searching for tunes over multiple categories. Note the code for this extension has been customised for use on this site. | * [https://www.mediawiki.org/wiki/Extension:Multi-Category_Search MultiCategorySearch] - to support searching for tunes over multiple categories. Note the code for this extension has been customised for use on this site. | ||
− | * [https://www.mediawiki.org/wiki/Extension: | + | * [https://www.mediawiki.org/wiki/Extension:MultiBoilerplate MultiBoilerplate] - to support inclusion of template content (esp for Tune pages) from drop-down menu into the editor when creating new pages |
* [https://www.mediawiki.org/wiki/Extension:Newest_Pages Newest_Pages] - to display the latest pages (mostly tunes) added to the site | * [https://www.mediawiki.org/wiki/Extension:Newest_Pages Newest_Pages] - to display the latest pages (mostly tunes) added to the site | ||
* [https://www.mediawiki.org/wiki/Extension:Replace_Text Replace_Text] - to let admins do bulk page edits when we change our mind on format :-) | * [https://www.mediawiki.org/wiki/Extension:Replace_Text Replace_Text] - to let admins do bulk page edits when we change our mind on format :-) |
Revision as of 13:19, 9 February 2016
This site is constructed using:
- Mediawiki - for the core wiki infrastructure that allows collaborative editing and viewing of the content
with the following extensions added:
- ABCjs - custom extension providing support for setting categories and rendering abc music notation on wiki pages (see below)
- Html5mediator - support embedded HTML5 audio (and video) players
- MultiCategorySearch - to support searching for tunes over multiple categories. Note the code for this extension has been customised for use on this site.
- MultiBoilerplate - to support inclusion of template content (esp for Tune pages) from drop-down menu into the editor when creating new pages
- Newest_Pages - to display the latest pages (mostly tunes) added to the site
- Replace_Text - to let admins do bulk page edits when we change our mind on format :-)
ABCjs Extension
This site very much relies on the ABC Javascript (abcjs) open source javascript engine for rendering abc formatted tunes as sheet music entirely in the browser.
Integration of this abcjs package required a custom extension ABCjs that was written specifically to support this site.
This extension adds a BeforePageDisplay() hook to include and configure the abcjs_plugin javascript package (currently using v2.1), that renders abc music notation as a score, on all pages that match the required content criteria (see extension comments for details).
And management of the Tune classification tags is assisted by adding EditPage::attemptSave hook that scans the abc notation of a tune page being saved, and automatically adds/updates the required Key, Meter and Rhythm Category tags at the end of the page.
Copyright on these various packages is as shown on their respective sites.