Release Date:
15 Jun 2010


A default master stylesheet that can be used for HTML5 output with Symphony. It validates and uses class names for the new HTML5 markup elements such as article, nav, header, footer, section, and so on. You can make this pure HTML5 by searching for those tags and replacing them as necessary.

One other small addition addition is that the template will automatically minify all the markup for smaller filesize and quicker load times. To disable this comment out the third to last line which reads <xsl:strip-space elements="*"/> and change indent="no" to indent="yes" in the output declaration in line 8.

And, of course, feel free to use and abuse this as fits your needs.

Change Log:


  1. Updated JavaScript.
  2. Fixed wrong parameters.
  3. Added default template apply as in original master.xsl.

Should now work to just drop this in to replace the original master.xsl file with only adding footer information.


  • Initial launch1.2.2.3.


View Raw
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="">

<xsl:import href="../utilities/page-title.xsl"/>
<xsl:import href="../utilities/navigation.xsl"/>
<xsl:import href="../utilities/date-time.xsl"/>

<xsl:output method="html" omit-xml-declaration="yes" indent="no" />

<xsl:variable name="is-logged-in" select="/data/events/login-info/@logged-in"/>

<xsl:template match="/">
	<xsl:text disable-output-escaping="yes">&lt;</xsl:text>!DOCTYPE html<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
	<html lang="en">
			<!-- Start Page Data -->
			<meta charset="utf-8" />
			<meta name="title" content="{$page-title}" />
			<meta name="description" content="" />
			<meta name="tags" content="" />
			<title><xsl:call-template name="page-title"/></title>
			<!-- End Page Data -->
			<!-- Start Fav Icons -->
			<link rel="shortcut icon" href="/favicon.ico" />
			<link rel="icon" type="images/png" href="/favicon.png" />
			<!-- End Fav Icons -->
			<!-- Start CSS Links -->
			<link rel="stylesheet" media="screen" href="{$workspace}/css/reset.css" />
			<link rel="stylesheet" media="screen" href="{$workspace}/css/styles.css" />
			<!-- End CSS Links -->
			<!-- Start In-Page JavaScript -->
				document.documentElement.className = "js";
			<!-- End In-Page JavaScript -->
		<body id="{$current-page}-page">
			<!-- Start Container -->
			<div id="container">
				<!-- Start Header -->
				<div class="header" id="masthead">
					<!-- Start Logo -->
					<p id="logo"><xsl:value-of select="$page-title"/></p>
					<!-- End Logo -->
					<!-- Start Main Navigation -->
					<div class="nav" id="main-nav">
						<xsl:apply-templates select="data/navigation"/>
					<!-- End Main Navigation -->
				<!-- End Header -->
				<!-- Start Content -->
				<div class="article" id="content">
				<!-- End Content -->
				<!-- Start Footer -->
				<div class="footer" id="site-info">
				<!-- End Footer -->
			<!-- End Container -->
			<!-- Start Javascript Links -->
			<script src=""></script>
			<script src=""></script>
			<!-- End Javascript Links -->

<xsl:strip-space elements="*"/>


Discuss this XSLT Utility

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details