Technical Details: Difference between revisions

From Lawries Tunes Archive
Jump to navigationJump to search
(Add link to Html5mediator extension)
(Update details to reflect use of new custom ABCjs extension)
Line 2: Line 2:
* [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)
* [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
* [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:NewArticleTemplate NewArticleTemplate] - to support inclusion of template content into the editor when creating new pages
* [https://www.mediawiki.org/wiki/Extension:NewArticleTemplate NewArticleTemplate] - to support inclusion of template content 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 :-)


== ABCjs Extension ==
It also relies very much on:
* [http://abcjs.net ABC Javascript (abcjs)] - an open source javascript engine for rendering abc formatted tunes as sheet music entirely in the browser
This site very much relies on the [http://abcjs.net ABC Javascript (abcjs)] open source javascript engine for rendering abc formatted tunes as sheet music entirely in the browser.


Integration of the [http://abcjs.net abcjs] package required a custom [https://www.mediawiki.org/wiki/Manual:Hooks/BeforePageDisplay onBeforePageDisplay()] hook to include and configure the required <code>abcjs_plugin_2.1-min.js</code> javascript package.
Integration of this [http://abcjs.net abcjs] package required a custom extension ''ABCjs'' that was written specifically to support this site.


And management of the Tune classification tags is assisted by a custom [https://www.mediawiki.org/wiki/Manual:Hooks/EditPage::attemptSave EditPage::attemptSave] hook that scans the abc notation of a tune page being saved, and automatically adds/updates the required Category tags at the end of the page.
This extension adds a [https://www.mediawiki.org/wiki/Manual:Hooks/BeforePageDisplay 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 [https://www.mediawiki.org/wiki/Manual:Hooks/EditPage::attemptSave 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.
Copyright on these various packages is as shown on their respective sites.

Revision as of 02:23, 10 September 2015

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.
  • NewArticleTemplate - to support inclusion of template content 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.