X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Fmkws-developer.markdown;h=3d92fc3880d1184ea97b391dc7def07bd8c3be14;hb=313a15df7e666a96019886a7e1ca02c4eaa51387;hp=c678b83e64c16a2d50c2c7acc218cefae7bbf9a2;hpb=c870e985a11ff112ffa67b377a3989974abe09af;p=mkws-moved-to-github.git diff --git a/doc/mkws-developer.markdown b/doc/mkws-developer.markdown index c678b83..3d92fc3 100644 --- a/doc/mkws-developer.markdown +++ b/doc/mkws-developer.markdown @@ -3,6 +3,29 @@ % 11 August 2014 +Required development tools +========================== + +If you are building the widget set, as opposed to just using it, you +will need the following Debian packages (or their equivalents on your +operating system): + + $ sudo apt-get install curl git make unzip \ + pandoc yui-compressor libbsd-resource-perl + +You also need Node.js, but unfortunately the `node-js` package is not +available for Debian wheezy. You can either get it from +wheezy-backports or download the source from +http://nodejs.org/download/ and build it yourself. You need both Node +itself and its package manager NPM: `make install` puts them into +`/usr/local/bin`. + +To compile the default templates you'll need to install the stable +version of Handlebars. Currently it's at 2.0.0 and available by npm: + + $ npm install handlebars@2.0.0 -g + + Overview ======== @@ -148,9 +171,24 @@ be used by the derived widget. `responsive_design_width`. Should be used for "unimportant" widgets that can be omitted from the mobile version of a site. -* TODO subwidget() - -* TODO expandValue() +* `expandValue()` -- + TODO: either document this or remove it from the API. + +* `subwidget(type, overrides, defaults)` -- + Returns the HTML of a subwidget of the specified type, which + can then be inserted into the widget using the + `this.node.html` function. The subwidget is given the same + attributes at the parent widget that invokes this function, + except where overrides are passed in. If defaults are also + provided, then these are used when the parent widget provides + no values. Both the `overrides` and `defaults` arguments are + hashes: the latter is optional. + + See for example the `Credo` widget defined in the example + area's `mkws-widget-credo.js` file. This uses several + invocations of `subwidget` to create a complex compound widget + with numerous text, facet and image panes. TODO: rename this + widget and everything related to it. In addition to these properties and methods of the bare widget object, some kinds of specific widget add other properties of their own. For @@ -243,4 +281,4 @@ TODO: list of events that can be usefully subscribed to. - - - -Copyright (C) 2013-2014 by IndexData ApS, +Copyright (C) 2013-2014 Index Data ApS.