X-Git-Url: http://git.indexdata.com/?p=mkws-moved-to-github.git;a=blobdiff_plain;f=tools%2Fhtdocs%2Fwhitepaper.markdown;h=3ff637cc4eaf135616b51a7d15600e7db5bcc780;hp=8cc4d427fb64c0a9827e227b9d4c1c246d8b321b;hb=5efe3e0da33faa330449e00546fb5e62aad2b4ae;hpb=0f999f7421d0ae0b6d5aae661dea27fd3ecef469 diff --git a/tools/htdocs/whitepaper.markdown b/tools/htdocs/whitepaper.markdown index 8cc4d42..3ff637c 100644 --- a/tools/htdocs/whitepaper.markdown +++ b/tools/htdocs/whitepaper.markdown @@ -19,13 +19,13 @@ Index Data provides several different toolkits for communicating with its metasearching middleware, trading off varying degrees of flexibility against convenience: -* libpz2.js -- a low-level JavaScript library for interrogating the +* pz2.js -- a low-level JavaScript library for interrogating the Service Proxy and Pazpar2. It allows the HTML/JavaScript programmer to create JavaScript applications display facets, records, etc. that are fetched from the metasearching middleware. * masterkey-ui-core -- a higher-level, complex JavaScript library that - uses libpz2.js to provide the pieces needed for building a + uses pz2.js to provide the pieces needed for building a full-featured JavaScript application. * MasterKey Demo UI -- an example of a searching application built on @@ -128,7 +128,7 @@ Configuration ------------- Many aspects of the behaviour of MKWS can be modified by setting -parameters into the `mkws_config` hash. **This must be done *before* +parameters into the `mkws_config` object. **This must be done *before* including the MKWS JavaScript** so that when that code is executed it can refer to the configuration values. So the HTML header looks like this: @@ -137,7 +137,7 @@ this: var mkws_config = { lang: "da", sort_default: "title", - query_width: 60, + query_width: 60 }; @@ -205,6 +205,40 @@ day, a welcome message or a help page. This can be done by placing an but will be hidden when a search is made. +### Customised display using Handlebars templates + +Certain aspects of the widget-set's display can be customised by +providing Handlebars templates with well-known IDs that begin with the +string `mkwsTemplate`. At present, the supported templates are: + +* `mkwsTemplateSummary` -- used for each summary record in a list of + results. + +* `mkwsTemplateRecord` -- used when displaying a full record. + +For both of these the metadata record is passed in, and its fields can +be referenced in the template. As well as the metadata fields +(`md-*`), two special fields are provided to the `mkwsTemplateSummary` +template, for creating popup links for full records. These are `_id`, +which must be provided as the `id` attribute of a link tag, and +`_onclick`, which must be provided as the `onclick` attribute. + +For example, an application can install a simple author+title summary +record in place of the usual one providing the following template: + + + +For details of Handlebars template syntax, see +[the online documentation](http://handlebarsjs.com/). + + ### Responsive design Metasearching applications may need to appear differently on @@ -269,10 +303,11 @@ Reference Guide The configuration object `mkws_config` may be created before including the MKWS JavaScript code to modify default behaviour. This structure -is a hash, whose entries are described in the table below. All entries -are options, but if specified must be given values of the specified -type. If ommitted, each setting takes the indicated default value; -long default values are in footnotes to keep the table reasonably narrow. +is a key-value lookup table, whose entries are described in the table +below. All entries are options, but if specified must be given values +of the specified type. If ommitted, each setting takes the indicated +default value; long default values are in footnotes to keep the table +reasonably narrow. --- Element Type Default Description @@ -356,16 +391,16 @@ structure. ### Language specification Support for another UI language can be added by providing an entry in -the `mkws_config` hash whose name is `language_` followed by the name -of the language: for example, `language_Arabic` to support -Arabic. Then value of this entry must be a hash, mapping the -English-language strings of the UI into their equivalents in the -specified language. For example: +the `mkws_config` object whose name is `language_` followed by the +name of the language: for example, `language_French` to support +French. Then value of this entry must be a key-value lookup table, +mapping the English-language strings of the UI into their equivalents +in the specified language. For example: var mkws_config = { - language_Arabic: { - "Authors": "الكتاب", - "Subjects": "المواضيع", + language_French: { + "Authors": "Auteurs", + "Subjects": "Sujets", // ... and others ... } } @@ -414,9 +449,9 @@ the invocation is a single line of JavaScript: This code should be inserted in the page at the position where the metasearch should occur. -When invoking this plugin, a hash of named options may be passed in to -modify the default behaviour, as in the exaple above. The available -options are as follows: +When invoking this plugin, a key-value lookup table of named options +may be passed in to modify the default behaviour, as in the exaple +above. The available options are as follows: --- Element Type Default Description