SIFD Digital Archive - Internals


Internal Structure

For the curious, this is how it is put together:

The top level folder must contain a folder.des file to give some descriptive information about the contents.

Each sub-folder contains the data for a specific album of the archive.  Each of these include an xxx.html file, where xxx is typically (but not necessarily) the name of the sub-folder, and this html file contains the mark-up needed to display the contents of the sub-folder.  Each sub-folder also contains an xxx.all file to document the components of this sub-folder where xxx is the same as for the xxx.html file and is used (as described below) to build all the html files that form the archive.

The html files imbed various javascript programs to instruct the browser how to handle all the different items that form the archive.  The main piece of javascript code used for music and documentation albums is the dmlsetup.js file.  The equivalent javascript code used for video albums is the vjssetup.js file.  Common routines used by the various music players are contained in the dmlplcommon.js file.  (Note that not all browsers will allow you to view these files!).

The HTML5 music player is contained in the dmlplay1.html file and the matching HTML5 playlist player is contained in the dmllist1.html file.  The Soundmanager 2 music player is contained in the dmlplay2.html file and the matching Soundmanager 2 playlist player is contained in the dmllist2.html file.  The Wavesurfer music player is contained in the dmlplay3.html file and the matching Wavesurfer playlist player is contained in the dmllist3.html file. 

Touch and pointer support is provided by the hammer javascript library.  The html music playlist support and the Soundmanager 2 music player support is provided by the Soundmanager 2 javascript library.  The Wavesurfer music player support is provided by the wavesurfer.js javascript library.  Video player support is provided by the videojs javascript library.  The playlist zip facility is provided by the jszip javascript library.  (Note that these links require a live internet connection).

Any changes made to the archive must be reflected in the appropriate xxx.all files or by the addition of new sub-folders with their own xxx.all files.  Once the changes are complete the html index files and the individual album html files that form the archive must be rebuilt by executing the makehtml.cmd Rexx script.  (Again, note that not all browsers will allow you to view this file and a live internet connection is needed for the Rexx reference!).  The makehtml.cmd command must be invoked at the top level of the archive where the main index html files are to be created.