Age | Commit message (Collapse) | Author |
|
* this was done to simplifiy support data queries while resolving the main datasource
|
|
|
|
* added "tags.xsl" meta datasource
** augments tags and their articles extracted from the content tree with article data from the article datasource
* added basic tag page template
* renamed "pages" directory to "page" as it is more intuitive from a user perspective
|
|
* otherwise it is not easily possible to add additional datasource layers between the content and result generation level
* changed meta url appropriately
|
|
* articles are tagged by symlinking them to the appropriate "tag" in the "tags" directory
* tags are resolved by the article datasource transformation
* added tags for the example articles
|
|
* articles contain the handle and date in their file name
** i.e. it is split using XPath string functions
** usage of the ISO date format provides automatic ordering
* added some articles from my blog as example data
|
|
* enables representing the result folder structure in the source
** e.g. the "page.xsl" transformation is located in "source/pages" and the result is therefore written to "target/pages"
** this enables simplification of target metadata as it is now automatically relative to the level
* modified page template accordingly
|
|
* root template iterates through the levels and calls the "process" template for each stylesheet
* the "process" template handles metadata extraction and main datasource resolution
** calls "compile" template for generation preparation
* the "compile" template resolves the support datasources, merges the final datasource and resolves the target path using additional helper templates
* actual generation of the result is preformed by the "generate" template as before
|
|
|
|
* they are overlapping between the different main datasource modes
|
|
* 'h1' node is used as title and any other node as content
* modified result page transformation accordingly
|
|
|
|
* "source" directory contains layers as subdirectories
** ordered by their name
** e.g. layer 0 is "00_content" and contains the content alongside some metadata
* transformations contained within the "source" layers are processed sequentally
* transformations define their requirements in a "meta" variable
** the "meta" variable is interpreted by the core transformation "generate.xsl"
* requirements are currently datasources and target information
** every transformation may have one datasource of type "main"
*** this data source offers e.g. the option to iterate over it
** every transformation may have a arbitrary number of "support" datasources
*** e.g. "meta" is a support datasource
** the target node may provide a fixed target path or a Xpath to be evaluated
* the result of each transformation is written to the appropriate layer of the "result" directory
* this approach to XSLT based static site generation should be quite flexible and offer good expandability
** e.g. adding new datasource options and types
|
|
* page template is called by the pages compiler
* modified master transformation to match new meta structure
* the context variable needed by the context transformation now has to be defined in every template using the transformation
** this is needed to accomodate different input DOM structures
|
|
* templates in 'template/compiler' are automatically generated
** required datasources are extracted and merged automatically
** 'pages.xsl' is currently a dummy compiler
* moved context helper templates into context stylesheet
* added compiler directory to meta DOM
* modified generator and transformer helper templates to enable usage of DOM as input
|
|
* handles basic output structure
* provides XSLT standard template "text()/@*" redefinition to prevent unwanted output of unmatched elements
|
|
* i.e. first the content source is mapped
* after that every transformation in 'template/datasource/' is called using the content map as input
** the output of the datasource transformations is stored in 'datasource/'
|
|
* handles inclusion of the meta DOM in the input source of transformations called through that template
** i.e. simplifies transformation chaining
|
|
* including example data and current "/home/adrian" layout
|