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 'template')
-rw-r--r-- | template/compiler/pages.xsl | 33 | ||||
-rw-r--r-- | template/datasource/pages.xsl | 32 | ||||
-rw-r--r-- | template/output/master.xsl | 64 | ||||
-rw-r--r-- | template/output/page.xsl | 23 |
4 files changed, 0 insertions, 152 deletions
diff --git a/template/compiler/pages.xsl b/template/compiler/pages.xsl deleted file mode 100644 index dbde8c9..0000000 --- a/template/compiler/pages.xsl +++ /dev/null @@ -1,33 +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:output - method="xml" - omit-xml-declaration="no" - encoding="UTF-8" - indent="yes" -/> - -<xsl:include href="utility/context.xsl"/> - -<xsl:variable name="context" select="/data/meta"/> - -<xsl:variable name="datasources"> - <file name="pages.xml"/> -</xsl:variable> - -<xsl:template match="datasource[@name = 'pages.xml']/entry"> - <xsl:call-template name="generate_in_context"> - <xsl:with-param name="input" select="."/> - <xsl:with-param name="transformation" select="string('[template/output/page.xsl]')"/> - <xsl:with-param name="target" select="concat($context/target/output, '/pages/', @handle)"/> - </xsl:call-template> -</xsl:template> - -</xsl:stylesheet> diff --git a/template/datasource/pages.xsl b/template/datasource/pages.xsl deleted file mode 100644 index 5c036c9..0000000 --- a/template/datasource/pages.xsl +++ /dev/null @@ -1,32 +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="[utility/datasource.xsl]"/> -<xsl:include href="[utility/formatter.xsl]"/> - -<xsl:template match="source/pages/file[./extension = '.md']"> - <entry handle="{./name}"> - <xsl:choose> - <xsl:when test="./extension = '.md'"> - <xsl:call-template name="formatter"> - <xsl:with-param name="format">/usr/bin/markdown</xsl:with-param> - <xsl:with-param name="source" select="InputXSLT:read-file(./full)/text()"/> - </xsl:call-template> - </xsl:when> - <xsl:when test="./extension = '.xml'"> - <xsl:copy-of select="InputXSLT:read-file(./full)/*"/> - </xsl:when> - <xsl:otherwise> - <xsl:copy-of select="InputXSLT:read-file(./full)/text()"/> - </xsl:otherwise> - </xsl:choose> - </entry> -</xsl:template> - -</xsl:stylesheet> diff --git a/template/output/master.xsl b/template/output/master.xsl deleted file mode 100644 index fa00f9e..0000000 --- a/template/output/master.xsl +++ /dev/null @@ -1,64 +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: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:template match="data"> -<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"/></title> - <link rel="stylesheet" type="text/css" href="{/meta/target/public}/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="/meta/title"/></h1> - <ul> - <li><a href="{/meta/target/public}">Start</a></li> - <li><a href="{/meta/target/public}/archiv">Archiv</a></li> - <li><a href="{/meta/target/public}/projekte">Projekte</a></li> - <li><a href="{/meta/target/public}/seiten/kontakt">Kontakt</a></li> - <li class="last_item"><a href="{/meta/target/public}/rss">RSS</a></li> - </ul> - </div> - <div id="main"> - <xsl:apply-templates select="/entry"/> - </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="{/meta/target/public}/seiten/kontakt">Kontakt</a></li> - <li class="last_item"><a href="{/meta/target/public}/rss">RSS</a></li> - </ul> - </div> - </div> - </div> -</body> -</html> -</xsl:template> - -</xsl:stylesheet> - diff --git a/template/output/page.xsl b/template/output/page.xsl deleted file mode 100644 index a271e4a..0000000 --- a/template/output/page.xsl +++ /dev/null @@ -1,23 +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="master.xsl"/> -<xsl:include href="[utility/date-time.xsl]"/> - -<xsl:template name="title-text"> - <xsl:value-of select="/entry/h1"/> @ /home/adrian -</xsl:template> - -<xsl:template match="data/entry"> - <div class="last article"> - <xsl:copy-of select="./*"/> - </div> -</xsl:template> - -</xsl:stylesheet> |