diff options
Implemented new "layered" site generation architecture
* "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
Diffstat (limited to 'utility')
-rw-r--r-- | utility/context.xsl | 47 | ||||
-rw-r--r-- | utility/generator.xsl | 22 | ||||
-rw-r--r-- | utility/master.xsl | 68 | ||||
-rw-r--r-- | utility/reader.xsl | 16 | ||||
-rw-r--r-- | utility/transformer.xsl | 20 | ||||
-rw-r--r-- | utility/writer.xsl | 20 |
6 files changed, 68 insertions, 125 deletions
diff --git a/utility/context.xsl b/utility/context.xsl deleted file mode 100644 index 9dbfdc9..0000000 --- a/utility/context.xsl +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet - version="1.0" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:xalan="http://xml.apache.org/xalan" - xmlns:InputXSLT="function.inputxslt.application" - exclude-result-prefixes="xalan InputXSLT" -> - -<xsl:include href="generator.xsl"/> -<xsl:include href="transformer.xsl"/> - -<xsl:template name="transform_in_context"> - <xsl:param name="input"/> - <xsl:param name="transformation"/> - - <xsl:call-template name="transformer"> - <xsl:with-param name="input"> - <data> - <xsl:copy-of select="$context"/> - <xsl:copy-of select="$input"/> - </data> - </xsl:with-param> - <xsl:with-param name="transformation" select="$transformation"/> - </xsl:call-template> -</xsl:template> - -<xsl:template name="generate_in_context"> - <xsl:param name="input"/> - <xsl:param name="transformation"/> - <xsl:param name="target"/> - - <xsl:call-template name="generator"> - <xsl:with-param name="input"> - <data> - <xsl:copy-of select="$context"/> - <xsl:copy-of select="$input"/> - </data> - </xsl:with-param> - <xsl:with-param name="transformation" select="$transformation"/> - <xsl:with-param name="target" select="$target"/> - </xsl:call-template> -</xsl:template> - -<xsl:template match="text()|@*"/> - -</xsl:stylesheet> diff --git a/utility/generator.xsl b/utility/generator.xsl deleted file mode 100644 index eb65996..0000000 --- a/utility/generator.xsl +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet - version="1.0" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:xalan="http://xml.apache.org/xalan" - xmlns:InputXSLT="function.inputxslt.application" - exclude-result-prefixes="xalan InputXSLT" -> - -<xsl:template name="generator"> - <xsl:param name="input"/> - <xsl:param name="transformation"/> - <xsl:param name="target"/> - - <xsl:copy-of select="InputXSLT:generate( - $input, - $transformation, - $target - )/self::generation"/> -</xsl:template> - -</xsl:stylesheet> diff --git a/utility/master.xsl b/utility/master.xsl new file mode 100644 index 0000000..01bfd3c --- /dev/null +++ b/utility/master.xsl @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet + version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:xalan="http://xml.apache.org/xalan" + xmlns:InputXSLT="function.inputxslt.application" + exclude-result-prefixes="xalan InputXSLT" +> + +<xsl:output + method="xml" + doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" + doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" + omit-xml-declaration="yes" + encoding="UTF-8" + indent="yes" +/> + +<xsl:variable name="url" select="datasource/meta/url"/> + +<xsl:template match="/"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="author" content="Adrian Kummerländer" /> + <meta name="robots" content="all"/> + <meta name="viewport" content="width=device-width,initial-scale=1.0"/> + + <title><xsl:call-template name="title-text"/> @ /home/adrian</title> + <link rel="stylesheet" type="text/css" href="{$url}/main.css" /> + + <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> +</head> +<body> + <div id="wrapper"> + <div id="content"> + <div id="nav_wrap"> + <h1><xsl:value-of select="datasource/meta/title"/></h1> + <ul> + <li><a href="{$url}">Start</a></li> + <li><a href="{$url}/archiv">Archiv</a></li> + <li><a href="{$url}/projekte">Projekte</a></li> + <li><a href="{$url}/seiten/kontakt">Kontakt</a></li> + <li class="last_item"><a href="{$url}/rss">RSS</a></li> + </ul> + </div> + <div id="main"> + <xsl:apply-templates /> + </div> + <div id="footer_wrap"> + </div> + <div id="last_line"> + <a href="https://github.com/KnairdA/InputXSLT">Gemacht mit XSLT</a> + <ul> + <li><a href="{$url}/seiten/kontakt">Kontakt</a></li> + <li class="last_item"><a href="{$url}/rss">RSS</a></li> + </ul> + </div> + </div> + </div> +</body> +</html> +</xsl:template> + +<xsl:template match="text()|@*"/> + +</xsl:stylesheet> + diff --git a/utility/reader.xsl b/utility/reader.xsl deleted file mode 100644 index 31d6fcc..0000000 --- a/utility/reader.xsl +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet - version="1.0" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:xalan="http://xml.apache.org/xalan" - xmlns:InputXSLT="function.inputxslt.application" - exclude-result-prefixes="xalan InputXSLT" -> - -<xsl:template name="reader"> - <xsl:param name="path"/> - - <xsl:copy-of select="InputXSLT:read-file($path)/self::file/*"/> -</xsl:template> - -</xsl:stylesheet> diff --git a/utility/transformer.xsl b/utility/transformer.xsl deleted file mode 100644 index 0812f33..0000000 --- a/utility/transformer.xsl +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet - version="1.0" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:xalan="http://xml.apache.org/xalan" - xmlns:InputXSLT="function.inputxslt.application" - exclude-result-prefixes="xalan InputXSLT" -> - -<xsl:template name="transformer"> - <xsl:param name="input"/> - <xsl:param name="transformation"/> - - <xsl:copy-of select="InputXSLT:transform( - $input, - $transformation - )/self::transformation/*"/> -</xsl:template> - -</xsl:stylesheet> diff --git a/utility/writer.xsl b/utility/writer.xsl deleted file mode 100644 index 42e9502..0000000 --- a/utility/writer.xsl +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet - version="1.0" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:xalan="http://xml.apache.org/xalan" - xmlns:InputXSLT="function.inputxslt.application" - exclude-result-prefixes="xalan InputXSLT" -> - -<xsl:template name="writer"> - <xsl:param name="source"/> - <xsl:param name="target"/> - - <xsl:copy-of select="InputXSLT:write-file( - $target, - $source - )"/> -</xsl:template> - -</xsl:stylesheet> |