Buildlist

The Buildlist is a critical artifact to the site build process, but it effectively stands on the side, and is not actually one of the items encountered in our top-down tour of those objects that do make up the site's hierarchical set of page construction elements. The Buildlist is more a recipe than an ingredient. It is where Modules get matched to Pages, where Pages get their list of Modules.

Page Composition. The buildlist.xml is the locus for the set of "page recipes" that—for every single page on the website—determine which named Modules ("instanceName"), go into precisely which Positions (e.g. "_a"), within which Page Layout Zone (e.g. "b_ma_co1"), inside which Page Layout, at what 'path' (URL) in the website (sitemap). It is also where one further "page-centric" item is recorded: the text string for the HTML <title>.

The "document order" of entries in this large and growing file is not significant (<page> entries are not sorted by path (URL)). The way the Buildlist is principally used (the premiere "use-case") is to find a particular page (with its unique URL), via the straightforward "look-up" mechanism of doing a find within the text file. In this way you can discover all Modules used for a particular page.

In the case of creating a new page, do your find on the path to a similar existing page, to get to a <page> entry that is a useful "jumpstart" to copy and paste, as you create the Buildlist entry for your new page.

Finally, of course the corollary to these kinds of look-ups is that you can also do a find on the unique "instanceName" of a given Module, to be led to the Page(s) on which it is used.

[Tip]Tip

(Future) Automation Possibilities. This kind of manual interaction with the buildlist.xml file serves as a good "requirements document" for future development of applications that might write out new <page> entries, given the minimal set of new information required. Other ideas include: putting some kind of form interface onto the file; or decomposing it into constituent <page> entry mini-documents (which might be managed in a database rather than file system).