<feed xmlns='http://www.w3.org/2005/Atom'>
<title>InputXSLT/test/read_directory, branch master</title>
<subtitle>XSLT extensions for static site generation</subtitle>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/'/>
<entry>
<title>Fix `read_directory` testcase</title>
<updated>2018-10-02T17:04:04+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2018-10-02T17:04:04+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=c6642afaa2d8af9bcde6a805666dfe3566ce4c6e'/>
<id>c6642afaa2d8af9bcde6a805666dfe3566ce4c6e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implemented external "generate" function</title>
<updated>2014-07-12T14:15:42+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2014-07-12T14:15:42+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=086779c6d3d40f244b6aafd6d402fd29b921a735'/>
<id>086779c6d3d40f244b6aafd6d402fd29b921a735</id>
<content type='text'>
* this function essentially provides the same functionality as FunctionTransform with the addition of directly committing the result to the filesystem
** this is needed if one wants to generate doctype-containing transformations from inside a transformation as "write-file" is not able to infer the doctype of a given xalan::XalanNode pointer
** this is a integral limitation of (at least) XSLT 1.0 as implemented in Apache Xalan
*** a document can of course only have a single document type
*** e.g. we can not include a doctype node in the result tree of FunctionTransform
* implemented test case for FunctionGenerate
* transformation "test.xsl" is shared between the FunctionTransform and FunctionGenerate test cases
* modified README.md accordingly
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* this function essentially provides the same functionality as FunctionTransform with the addition of directly committing the result to the filesystem
** this is needed if one wants to generate doctype-containing transformations from inside a transformation as "write-file" is not able to infer the doctype of a given xalan::XalanNode pointer
** this is a integral limitation of (at least) XSLT 1.0 as implemented in Apache Xalan
*** a document can of course only have a single document type
*** e.g. we can not include a doctype node in the result tree of FunctionTransform
* implemented test case for FunctionGenerate
* transformation "test.xsl" is shared between the FunctionTransform and FunctionGenerate test cases
* modified README.md accordingly
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed unnecessary template member methods from TranformationFacade</title>
<updated>2014-07-01T18:54:02+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2014-07-01T18:54:02+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=784ac42a0f05608e3d9c5e15246dbf76ce9e3d51'/>
<id>784ac42a0f05608e3d9c5e15246dbf76ce9e3d51</id>
<content type='text'>
* neither the constructor nor the generate member methods need to be templatized
** only supported "output" argument is now a reference to a "std::basic_ostream&lt;char&gt;" instance
** the caller is responsible for e.g. writing the output to disk
* this was done to simplify the basic interface of InputXSLT
* removed "default_params" testcase along with default parameter generation
** this feature is neither used nor required
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* neither the constructor nor the generate member methods need to be templatized
** only supported "output" argument is now a reference to a "std::basic_ostream&lt;char&gt;" instance
** the caller is responsible for e.g. writing the output to disk
* this was done to simplify the basic interface of InputXSLT
* removed "default_params" testcase along with default parameter generation
** this feature is neither used nor required
</pre>
</div>
</content>
</entry>
<entry>
<title>Updated README.md and added "write-file" test case</title>
<updated>2014-06-27T19:35:46+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2014-06-27T19:35:46+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=a8be7f7dde5cf0d51026de0e6bc4d0f59f41c4b6'/>
<id>a8be7f7dde5cf0d51026de0e6bc4d0f59f41c4b6</id>
<content type='text'>
* slightly improved FunctionTransform test case utility templates
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* slightly improved FunctionTransform test case utility templates
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplified test case result variable definitions</title>
<updated>2014-06-01T15:31:17+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-06-01T15:31:17+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=6b5da054693cd348f3c357dbf1c8cb1979fecf6a'/>
<id>6b5da054693cd348f3c357dbf1c8cb1979fecf6a</id>
<content type='text'>
* variables containing the output of a external function can be defined using the "select" attribute
** tree-like definition is only needed when helper templates such as "transformer" are used
** queries on variables that are instantiated in this fashion need the "self::" prefix before base nodes
* changed includes of the "testcase.xsl" base template to imports
** this signifies that the importing template is based on the imported template
** ... and this is exactly what we want to define
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* variables containing the output of a external function can be defined using the "select" attribute
** tree-like definition is only needed when helper templates such as "transformer" are used
** queries on variables that are instantiated in this fashion need the "self::" prefix before base nodes
* changed includes of the "testcase.xsl" base template to imports
** this signifies that the importing template is based on the imported template
** ... and this is exactly what we want to define
</pre>
</div>
</content>
</entry>
<entry>
<title>Revamped external function result trees</title>
<updated>2014-05-31T12:18:48+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-05-31T12:18:48+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=1a744712426c9c19019b8ebebdd0c703aae204a6'/>
<id>1a744712426c9c19019b8ebebdd0c703aae204a6</id>
<content type='text'>
* the root node of the result tree of each function is a domain element
** i.e. the root node of "read-xml-file" is "file", the root node of "read-directory" is "directory"
* the root node contains the result state of the function call encoded in a "result" attribute
** possible values are "success" and "error"
** the root node may contain additional attributes such as the target path of a called transformation
* the actual function result is contained within the child nodes of the function root node
** i.e. the XML file tree returned by "read-xml-file" is a child of the function root node
** if specific errors occured they are also returned as child nodes of the function root node
*** this is currently only the case for "transform" where transformation errors are returned as "error" value node childs of the function root node
* updated test cases accordingly
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* the root node of the result tree of each function is a domain element
** i.e. the root node of "read-xml-file" is "file", the root node of "read-directory" is "directory"
* the root node contains the result state of the function call encoded in a "result" attribute
** possible values are "success" and "error"
** the root node may contain additional attributes such as the target path of a called transformation
* the actual function result is contained within the child nodes of the function root node
** i.e. the XML file tree returned by "read-xml-file" is a child of the function root node
** if specific errors occured they are also returned as child nodes of the function root node
*** this is currently only the case for "transform" where transformation errors are returned as "error" value node childs of the function root node
* updated test cases accordingly
</pre>
</div>
</content>
</entry>
<entry>
<title>Expanded "read-directory" test case</title>
<updated>2014-05-27T19:25:40+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-05-27T19:25:40+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=802d416040aa31d72defa7a9227cd31b0885bc60'/>
<id>802d416040aa31d72defa7a9227cd31b0885bc60</id>
<content type='text'>
* verifying type attribute and extension value node if available
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* verifying type attribute and extension value node if available
</pre>
</div>
</content>
</entry>
<entry>
<title>Added "external-text-formatter" test case</title>
<updated>2014-05-26T18:13:11+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-05-26T18:13:11+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=6efa3385ae0fab5f7b6e3a113d1da18cfbed8591'/>
<id>6efa3385ae0fab5f7b6e3a113d1da18cfbed8591</id>
<content type='text'>
* test case requires markdown.pl formatter to be available in "/usr/bin/"
* updated README.md to mention "external-text-formatter" instead of "execute"
* updated "read-directory" test case reference file
* included library resolution test into "read-file" and "read-xml-file" test cases
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* test case requires markdown.pl formatter to be available in "/usr/bin/"
* updated README.md to mention "external-text-formatter" instead of "execute"
* updated "read-directory" test case reference file
* included library resolution test into "read-file" and "read-xml-file" test cases
</pre>
</div>
</content>
</entry>
<entry>
<title>Implemented ResultNodeFacade as a DOM node construction helper</title>
<updated>2014-05-24T11:59:42+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-05-24T11:59:42+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=085935ddd577b0c65b4330318b5ba20492d93126'/>
<id>085935ddd577b0c65b4330318b5ba20492d93126</id>
<content type='text'>
* wraps result node construction and appends it to root node on destruction
* offers a simpler interface for common node construction patterns
* simplifies result node construction in all external function implementations
** most noticeable in FunctionReadDirectory
* expanded FunctionReadDirectory result nodes by name, extension, and full-path nodes
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* wraps result node construction and appends it to root node on destruction
* offers a simpler interface for common node construction patterns
* simplifies result node construction in all external function implementations
** most noticeable in FunctionReadDirectory
* expanded FunctionReadDirectory result nodes by name, extension, and full-path nodes
</pre>
</div>
</content>
</entry>
<entry>
<title>Added test case base template and improved transformer helper template</title>
<updated>2014-05-21T18:30:37+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-05-21T18:30:37+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=283101c02a7e6a71f221fe731168e9b0096e3766'/>
<id>283101c02a7e6a71f221fe731168e9b0096e3766</id>
<content type='text'>
* test case base template contains the basic test case markup
** it was mostly created to include include-path resolution into the test cases
* improved transformer helper template by separating the external function call into its own variable
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* test case base template contains the basic test case markup
** it was mostly created to include include-path resolution into the test cases
* improved transformer helper template by separating the external function call into its own variable
</pre>
</div>
</content>
</entry>
<entry>
<title>Sorting FilesystemContext iteration results</title>
<updated>2014-05-13T14:30:58+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-05-13T14:30:58+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=b3bf487144a1a2978cc17d40b6d6ba1c0467fc37'/>
<id>b3bf487144a1a2978cc17d40b6d6ba1c0467fc37</id>
<content type='text'>
* order of items in a directory was varying across platforms which hindered testability
* they are now temporarily copied into a std::vector instance and then sorted using std::sort
* updated "read_directory" test case reference file accordingly
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* order of items in a directory was varying across platforms which hindered testability
* they are now temporarily copied into a std::vector instance and then sorted using std::sort
* updated "read_directory" test case reference file accordingly
</pre>
</div>
</content>
</entry>
<entry>
<title>Implemented basic external transform function</title>
<updated>2014-05-12T16:49:24+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-05-12T16:49:24+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=c4fcfa9b39d9c29ecbc3ac1c12b7e5b2beb24a6d'/>
<id>c4fcfa9b39d9c29ecbc3ac1c12b7e5b2beb24a6d</id>
<content type='text'>
* "InputXSLT:transform" expects two input arguments and executes the given transformation into the given target file
** this function respresents a important step in the direction of making it possible to write an actual static site generator on top of InputXSLT using XSLT
* added basic "transform" test case
* updated README.md to include this new function
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* "InputXSLT:transform" expects two input arguments and executes the given transformation into the given target file
** this function respresents a important step in the direction of making it possible to write an actual static site generator on top of InputXSLT using XSLT
* added basic "transform" test case
* updated README.md to include this new function
</pre>
</div>
</content>
</entry>
<entry>
<title>Added default target file and path parameters</title>
<updated>2014-05-09T19:29:39+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-05-09T19:29:39+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=47b3bb0882a838ba794f105f3dc93ec45f5e1727'/>
<id>47b3bb0882a838ba794f105f3dc93ec45f5e1727</id>
<content type='text'>
* the transformation is now provided with default parameters such as the target file and its parent directory
* added appropriate test case
** default_params
* test frontend now doesn't provide a "test" parameter anymore
* extracted parameter setter into separate member method "setParameters" of TransformationFacade
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* the transformation is now provided with default parameters such as the target file and its parent directory
* added appropriate test case
** default_params
* test frontend now doesn't provide a "test" parameter anymore
* extracted parameter setter into separate member method "setParameters" of TransformationFacade
</pre>
</div>
</content>
</entry>
<entry>
<title>Implemented black-box test cases</title>
<updated>2014-05-08T19:16:31+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-05-08T19:16:31+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/InputXSLT/commit/?id=947603b5d7f05053a93a3cfe257fa7ab11304a90'/>
<id>947603b5d7f05053a93a3cfe257fa7ab11304a90</id>
<content type='text'>
* the directories below "./test" contain test cases
** "transformation.xsl" and the expected result as "reference.xml"
** tests are performed by "check.sh"
*** returns diff on error
* this system enables simple verification of external function results
** way simpler than C++ unit tests would be in this scenario
* expanded cmake instructions to automatically execute the test cases
* old example transformation was removed
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* the directories below "./test" contain test cases
** "transformation.xsl" and the expected result as "reference.xml"
** tests are performed by "check.sh"
*** returns diff on error
* this system enables simple verification of external function results
** way simpler than C++ unit tests would be in this scenario
* expanded cmake instructions to automatically execute the test cases
* old example transformation was removed
</pre>
</div>
</content>
</entry>
</feed>
