InputXSLT
…is a Apache Xalan and Xerces based XSLT extension enabling access to external commands, the filesystem and calling further transformations from inside a transformation.
Why?!
Contrary to popular opinion I actually like XSLT as a content transformation language and have built - amongst other things - my personal website on top of it. While I used the XSLT based Symphony CMS for that particular endeavour, the intention behind this project is to develop XSLT extensions enabling the development of static site generators using XSLT as both a template and application language.
Current features:
- external
read-file
function for read-only access to both plain and xml files - external
read-directory
function for read-only directory traversal - external
generate
function for executing transformations and optionally committing the result directly to the filesystem - external
external-command
function for executing external commands such as text formatters and capturing their output - external
write-file
function for writing files
Examples:
The test
directory contains black-box test cases for every external function provided by this application which may be used as basic usage examples.
InputXSLT:read-file
(plain)InputXSLT:read-file
(xml)InputXSLT:read-directory
InputXSLT:generate
InputXSLT:generate
(fs)InputXSLT:external-command
(text formatting) (requires markdown.pl)InputXSLT:write-file
The new version of my personal blog is currently being developed based on this project and makes for a good example of how static sites may be generated using InputXSLT.
Requirements:
- CMake
- C++ compiler with C++14 support
- Apache Xalan XSLT Processor (preferably built with ICU flags)
- Apache Xerces XML Library
- Boost Filesystem
- Boost Program Options
- Boost Process