[yelp-xsl] [xslt/mallard] Support for Mallard Facets extension
- From: Shaun McCance <shaunm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [yelp-xsl] [xslt/mallard] Support for Mallard Facets extension
- Date: Thu, 16 Dec 2010 21:54:44 +0000 (UTC)
commit 8ae6cd6b99c5b25387097176ea2bcb19daf0817d
Author: Shaun McCance <shaunm gnome org>
Date: Thu Dec 16 16:53:06 2010 -0500
[xslt/mallard] Support for Mallard Facets extension
xslt/mallard/common/mal-link.xsl | 122 ++++++++++++++++++++---
xslt/mallard/html/Makefile.am | 1 +
xslt/mallard/html/mal2html-facets.xsl | 173 +++++++++++++++++++++++++++++++++
xslt/mallard/html/mal2html-page.xsl | 97 ++++++++++++++-----
xslt/mallard/html/mal2xhtml.xsl | 1 +
5 files changed, 355 insertions(+), 39 deletions(-)
---
diff --git a/xslt/mallard/common/mal-link.xsl b/xslt/mallard/common/mal-link.xsl
index b762d02..559199d 100644
--- a/xslt/mallard/common/mal-link.xsl
+++ b/xslt/mallard/common/mal-link.xsl
@@ -17,18 +17,19 @@ Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:cache="http://projectmallard.org/cache/1.0/"
xmlns:mal="http://projectmallard.org/1.0/"
+ xmlns:cache="http://projectmallard.org/cache/1.0/"
+ xmlns:facet="http://projectmallard.org/facet/1.0/"
xmlns:e="http://projectmallard.org/experimental/"
xmlns:exsl="http://exslt.org/common"
xmlns:str="http://exslt.org/strings"
- exclude-result-prefixes="mal e str"
+ exclude-result-prefixes="mal cache facet e exsl str"
version="1.0">
<!--!!==========================================================================
Mallard Links
Common linking utilities for Mallard documents.
-:Revision:version="1.0" date="2010-01-02"
+:Revision:version="1.0" date="2010-01-02" status="final"
This stylesheets contains various utilities for handling links in Mallard
documents. The templates in this stylesheet make it easier to handle the
@@ -40,7 +41,7 @@ linking systems.
<!--@@==========================================================================
mal.cache.file
The location of the cache file.
-:Revision:version="1.0" date="2010-01-02"
+:Revision:version="1.0" date="2010-01-02" status="final"
In order to locate and process links between pages, this stylesheet requires
a Mallard cache file. Use this parameter to pass the path to a valid cache
@@ -52,7 +53,7 @@ file.
<!--@@==========================================================================
mal.cache
The cache document as a node set.
-:Revision:version="1.0" date="2010-01-02"
+:Revision:version="1.0" date="2010-01-02" status="final"
This parameter points to the root #{cache:cache} element of a Mallard cache
document. By default, it selects the root element from the file provided in
@@ -73,6 +74,14 @@ mal.cache.key
use="concat(@type, ':', @xref)"/>
+<!--============================================================================
+mal.facet.all.key
+-->
+<xsl:key name="mal.facet.all.key"
+ match="mal:page[mal:info/facet:tag] | mal:section[mal:info/facet:tag]"
+ use="''"/>
+
+
<!--@@==========================================================================
mal.link.extension
The filename extension for output files.
@@ -97,7 +106,7 @@ some Mallard extension formats.
<!--**==========================================================================
mal.link.linkid
Output the fully qualified link ID for a page or section.
-:Revision:version="1.0" date="2010-01-02"
+:Revision:version="1.0" date="2010-01-02" status="final"
$node: The #{page} or #{section} element to generate a link ID for.
This template outputs the fully qualified link ID for a page or section. For
@@ -128,7 +137,7 @@ template or *{mal.link.xref.linkid}.
<!--**==========================================================================
mal.link.xref.linkid
Output the fully qualified link ID for an #{xref} attribute.
-:Revision:version="1.0" date="2010-01-02"
+:Revision:version="1.0" date="2010-01-02" status="final"
$node: The element containing an #{xref} attribute.
$xref: The #{xref} value to generate a link ID from.
@@ -151,7 +160,7 @@ See *{mal.link.linkid} for more on link IDs.
<!--**==========================================================================
mal.link.content
Output the content for a #{link} element.
-:Revision:version="1.0" date="2010-01-02"
+:Revision:version="1.0" date="2010-01-02" status="final"
$node: The #{link} or other element creating the link.
$xref: The #{xref} attribute of ${node}.
$href: The #{href} attribute of ${node}.
@@ -212,7 +221,7 @@ page or section cannot be found, ${xref} is used as the text content.
<!--%%==========================================================================
mal.link.content.mode
Output the content for a link from the contents of a #{title} element.
-:Revision:version="1.0" date="2010-01-02"
+:Revision:version="1.0" date="2010-01-02" status="final"
This mode is applied to the contents of a #{title} element by *{mal.link.content}.
By default, it returns the string value of its input. Stylesheets that use
@@ -226,7 +235,7 @@ By default, it returns the string value of its input. Stylesheets that use
<!--**==========================================================================
mal.link.target
Output the target URL for a #{link} or other linking element.
-:Revision:version="1.0" date="2010-01-02"
+:Revision:version="1.0" date="2010-01-02" status="final"
$node: The #{link} or other element creating the link.
$xref: The #{xref} attribute of ${node}.
$href: The #{href} attribute of ${node}.
@@ -270,7 +279,7 @@ Otherwise, the link will point to ${href}.
<!--**==========================================================================
mal.link.tooltip
Output the tooltip for a #{link} or other linking element.
-:Revision:version="1.0" date="2010-01-02"
+:Revision:version="1.0" date="2010-01-02" status="final"
$node: The #{link} or other element creating the link.
$xref: The #{xref} attribute of ${node}.
$href: The #{href} attribute of ${node}.
@@ -304,7 +313,7 @@ tooltip for #{mailto:} URLs in ${href}.
<!--**==========================================================================
mal.link.guidelinks
Output the guide links for a page or section.
-:Revision:version="1.0" date="2010-03-19"
+:Revision:version="1.0" date="2010-03-19" status="final"
$node: The #{page} or #{section} element to generate links for.
This template outputs all the guide links for a page or section, whether
@@ -365,7 +374,7 @@ The output is a result tree fragment. To use these results, call
<!--**==========================================================================
mal.link.topiclinks
Output the topic links for a page or section.
-:Revision:version="1.0" date="2010-03-19"
+:Revision:version="1.0" date="2010-03-19" status="final"
$node: The #{page} or #{section} element to generate links for.
This template outputs all the topic links for a guide page or section, whether
@@ -522,7 +531,7 @@ The output is a result tree fragment. To use these results, call
<!--**==========================================================================
mal.link.seealsolinks
Output the see-also links for a page or section.
-:Revision:version="1.0" date="2010-03-19"
+:Revision:version="1.0" date="2010-03-19" status="final"
$node: The #{page} or #{section} element to generate links for.
This template outputs all the see-also links for a page or section, whether
@@ -679,4 +688,89 @@ FIXME:
</xsl:choose>
</xsl:template>
+
+<!--**==========================================================================
+mal.link.facetlinks
+Output the facet links for a facets page or section.
+:Revision:version="1.0" date="2010-12-16" status="final"
+$node: The #{page} or #{section} element to generate links for.
+
+This template outputs all the facet links for facets page or section. Links are
+output for each page or section that matches all #{facet:match} elements from
+${node}, excluding those which will be included in descendant facets nodes. It
+outputs each of the links as a #{link} element within the Mallard namespace.
+Each #{link} element has an #{xref} attribute pointing to the target page
+or section.
+
+Each #{link} element contains a #{title} with #{type="sort"} providing the
+sort title of the target page or section. The results are not sorted when
+returned from this template. Use #{xsl:sort} on the sort titles to sort
+the results.
+
+Each #{link} element contains a copy of all the #{facet:tag} elements from
+the #{info} element of the target page or section.
+
+The output is a result tree fragment. To use these results, call
+#{exsl:node-set} on them.
+-->
+<xsl:template name="mal.link.facetlinks">
+ <xsl:param name="node" select="."/>
+ <xsl:if test="$node/mal:info/facet:match">
+ <xsl:for-each select="$mal.cache">
+ <xsl:for-each select="key('mal.facet.all.key', '')">
+ <xsl:variable name="fnode" select="."/>
+ <xsl:variable name="linkid">
+ <xsl:call-template name="mal.link.linkid">
+ <xsl:with-param name="node" select="$fnode"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="include">
+ <xsl:for-each select="$node/ancestor-or-self::*/mal:info/facet:match">
+ <xsl:variable name="match" select="."/>
+ <xsl:choose>
+ <xsl:when test="@values">
+ <xsl:if test="not(str:split($fnode/mal:info/facet:tag[ key = $match/@key]/@values)
+ = str:split($match/@values))">
+ <xsl:text>x</xsl:text>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="not($fnode/mal:info/facet:tag[ key = $match/@key])">
+ <xsl:text>x</xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="exclude">
+ <xsl:for-each select="$node//mal:section/mal:info/facet:match">
+ <xsl:variable name="match" select="."/>
+ <xsl:choose>
+ <xsl:when test="@values">
+ <xsl:if test="str:split($fnode/mal:info/facet:tag[ key = $match/@key]/@values)
+ = str:split($match/@values)">
+ <xsl:text>x</xsl:text>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$fnode/mal:info/facet:tag[ key = $match/@key]">
+ <xsl:text>x</xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:if test="not(contains($include, 'x')) and not(contains($exclude, 'x'))">
+ <mal:link xref="{$linkid}">
+ <mal:title type="sort">
+ <xsl:value-of select="normalize-space($fnode/mal:info/mal:title[ type = 'sort'][1])"/>
+ </mal:title>
+ <xsl:copy-of select="mal:info/facet:tag"/>
+ </mal:link>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+</xsl:template>
+
</xsl:stylesheet>
diff --git a/xslt/mallard/html/Makefile.am b/xslt/mallard/html/Makefile.am
index f1ff895..07c2525 100644
--- a/xslt/mallard/html/Makefile.am
+++ b/xslt/mallard/html/Makefile.am
@@ -2,6 +2,7 @@ xsldir=$(datadir)/yelp-xsl/xslt/mallard/html
xsl_DATA = \
mal2html-block.xsl \
+ mal2html-facets.xsl \
mal2html-inline.xsl \
mal2html-list.xsl \
mal2html-media.xsl \
diff --git a/xslt/mallard/html/mal2html-facets.xsl b/xslt/mallard/html/mal2html-facets.xsl
new file mode 100644
index 0000000..7ae06a0
--- /dev/null
+++ b/xslt/mallard/html/mal2html-facets.xsl
@@ -0,0 +1,173 @@
+<?xml version='1.0' encoding='UTF-8'?><!-- -*- indent-tabs-mode: nil -*- -->
+<!--
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU Lesser General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program; see the file COPYING.LGPL. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:mal="http://projectmallard.org/1.0/"
+ xmlns:cache="http://projectmallard.org/cache/1.0/"
+ xmlns:facet="http://projectmallard.org/facet/1.0/"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:str="http://exslt.org/strings"
+ xmlns="http://www.w3.org/1999/xhtml"
+ exclude-result-prefixes="mal cache facet exsl str"
+ version="1.0">
+
+<!--!!==========================================================================
+Mallard to HTML - Facets
+Support the Mallard Facets extension.
+
+This stylesheet contains templates and supporting JavaScript for the Mallard
+Facets extension.
+-->
+
+<!--**==========================================================================
+mal2html.facets.controls
+Output the controls to filter faceted links.
+$node: The facets #{page} or #{section} to generate controls for.
+
+REMARK: Describe this template
+-->
+<xsl:template name="mal2html.facets.controls">
+ <xsl:param name="node" select="."/>
+ <xsl:variable name="choices" select="$node/mal:info/facet:choice"/>
+ <xsl:if test="count($choices) > 0">
+ <div class="facets">
+ <xsl:for-each select="$choices">
+ <div class="facet">
+ <div class="title">
+ <xsl:apply-templates mode="mal2html.inline.mode" select="facet:title/node()"/>
+ </div>
+ <ul>
+ <xsl:for-each select="facet:case">
+ <li>
+ <label>
+ <input type="checkbox" checked="checked" class="facet">
+ <xsl:attribute name="data-facet-key">
+ <xsl:value-of select="../@key"/>
+ </xsl:attribute>
+ <xsl:attribute name="data-facet-values">
+ <xsl:value-of select="@values"/>
+ </xsl:attribute>
+ </input>
+ <span>
+ <xsl:apply-templates mode="mal2html.inline.mode"/>
+ </span>
+ </label>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </div>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+
+<!--**==========================================================================
+mal2html.facets.links
+Output the links for a facets node.
+:Revision:version="1.0" date="2010-12-16" status="final"
+$node: The facets #{page} or #{section} element to generate links for.
+
+This template outputs links for a facets node. It gets the links from
+*{mal.link.facetlinks}, sorts them, and outputs HTML #{a} elements for each
+link. Each #{a} element has data attribute for each facet tag in ${node} in
+the form of #{data-facet-KEY="VALUES"}, where #{KEY} is the key of the facet
+tag and VALUES is the values.
+-->
+<xsl:template name="mal2html.facets.links">
+ <xsl:param name="node" select="."/>
+ <div>
+ <xsl:variable name="facetlinks">
+ <xsl:call-template name="mal.link.facetlinks">
+ <xsl:with-param name="node" select="$node"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:for-each select="exsl:node-set($facetlinks)/mal:link">
+ <xsl:sort select="mal:title[ type = 'sort']"/>
+ <xsl:variable name="link" select="."/>
+ <xsl:variable name="xref" select="@xref"/>
+ <xsl:for-each select="$mal.cache">
+ <xsl:call-template name="mal2html.page.linkdiv">
+ <xsl:with-param name="source" select="$node"/>
+ <xsl:with-param name="target" select="key('mal.cache.key', $xref)"/>
+ <xsl:with-param name="attrs">
+ <a>
+ <xsl:for-each select="$link/facet:tag">
+ <xsl:attribute name="data-facet-{ key}">
+ <xsl:value-of select="@values"/>
+ </xsl:attribute>
+ </xsl:for-each>
+ </a>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:for-each>
+ </div>
+</xsl:template>
+
+
+<!--**==========================================================================
+mal2html.facets.js
+
+REMARK: FIXME
+-->
+<xsl:template name="mal2html.facets.js">
+ <script type="text/javascript" language="javascript"><xsl:text><![CDATA[
+$(document).ready(function () {
+ $('input.facet').change(function () {
+ var control = $(this);
+ var content = control.closest('div.body,div.sect');
+ content.find('a').each(function () {
+ var link = $(this);
+ var facets = link.parents('div.body,div.sect').children('div.contents').children('div.facets').children('div.facet');
+ var visible = true;
+ for (var i = 0; i < facets.length; i++) {
+ var facet = facets.slice(i, i + 1);
+ var facetvis = false;
+ var inputs = facet.find('input.facet:checked');
+ for (var j = 0; j < inputs.length; j++) {
+ var input = inputs.slice(j, j + 1);
+ var inputvis = false;
+ var key = input.attr('data-facet-key');
+ var values = input.attr('data-facet-values').split(' ');
+ for (var k = 0; k < values.length; k++) {
+ if (link.is('a[data-facet-' + key + ' ~= "' + values[k] + '"]')) {
+ inputvis = true;
+ break;
+ }
+ }
+ if (inputvis) {
+ facetvis = true;
+ break;
+ }
+ }
+ if (!facetvis) {
+ visible = false;
+ break;
+ }
+ }
+ if (!visible)
+ link.hide();
+ else
+ link.show();
+ });
+ });
+});
+]]></xsl:text></script>
+
+</xsl:stylesheet>
diff --git a/xslt/mallard/html/mal2html-page.xsl b/xslt/mallard/html/mal2html-page.xsl
index 32ec2dc..2de6b9d 100644
--- a/xslt/mallard/html/mal2html-page.xsl
+++ b/xslt/mallard/html/mal2html-page.xsl
@@ -21,8 +21,7 @@ Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
xmlns:e="http://projectmallard.org/experimental/"
xmlns:exsl="http://exslt.org/common"
xmlns="http://www.w3.org/1999/xhtml"
- extension-element-prefixes="exsl"
- exclude-result-prefixes="mal e"
+ exclude-result-prefixes="mal e exsl"
version="1.0">
<!--!!==========================================================================
@@ -71,15 +70,17 @@ Each copyright is output in a nested #{div} element with #{class="copyright"}.
<!--**==========================================================================
mal2html.page.linkdiv
-Outputs an automatic link block from a guide to a page
-$source: The #{page} or #{section} element containing the link
-$target: The element from the cache file of the page being linked to
+Output an automatic link block from a guide to a page.
+$source: The #{page} or #{section} element containing the link.
+$target: The element from the cache file of the page being linked to.
+$attrs: A set of extra data attributes to add to the #{a} element.
REMARK: Describe this template
-->
<xsl:template name="mal2html.page.linkdiv">
<xsl:param name="source" select="."/>
<xsl:param name="target"/>
+ <xsl:param name="attrs"/>
<a>
<xsl:attribute name="href">
<xsl:call-template name="mal.link.target">
@@ -87,6 +88,7 @@ REMARK: Describe this template
<xsl:with-param name="xref" select="$target/@id"/>
</xsl:call-template>
</xsl:attribute>
+ <xsl:copy-of select="exsl:node-set($attrs)/*/@*"/>
<div class="linkdiv">
<div class="title">
<span class="title">
@@ -499,38 +501,48 @@ REMARK: Describe this template
<!-- page | section -->
<xsl:template match="mal:page | mal:section">
+ <xsl:variable name="type" select="/mal:page/@type"/>
<xsl:variable name="topiclinks">
- <xsl:call-template name="mal.link.topiclinks"/>
+ <xsl:if test="$type = 'guide'">
+ <xsl:call-template name="mal.link.topiclinks"/>
+ </xsl:if>
</xsl:variable>
<xsl:variable name="topicnodes" select="exsl:node-set($topiclinks)/*"/>
<xsl:variable name="allgroups">
- <xsl:text> </xsl:text>
- <xsl:for-each select="e:links[ type = 'topic']">
- <xsl:choose>
- <xsl:when test="@groups">
- <xsl:value-of select="@groups"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>#default</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
+ <xsl:if test="$type = 'guide'">
<xsl:text> </xsl:text>
- </xsl:for-each>
+ <xsl:for-each select="e:links[ type = 'topic']">
+ <xsl:choose>
+ <xsl:when test="@groups">
+ <xsl:value-of select="@groups"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>#default</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text> </xsl:text>
+ </xsl:for-each>
+ </xsl:if>
</xsl:variable>
<div class="hgroup">
<xsl:apply-templates mode="mal2html.title.mode" select="mal:title"/>
<xsl:apply-templates mode="mal2html.title.mode" select="mal:subtitle"/>
</div>
<div class="contents">
+ <xsl:if test="$type = 'facets'">
+ <xsl:call-template name="mal2html.facets.controls"/>
+ </xsl:if>
<xsl:for-each
select="*[not(self::mal:section or self::mal:title or self::mal:subtitle)]">
<xsl:choose>
<xsl:when test="preceding-sibling::mal:section"/>
<xsl:when test="self::e:links[ type = 'topic']">
- <xsl:apply-templates select=".">
- <xsl:with-param name="allgroups" select="$allgroups"/>
- <xsl:with-param name="links" select="$topicnodes"/>
- </xsl:apply-templates>
+ <xsl:if test="$type = 'guide'">
+ <xsl:apply-templates select=".">
+ <xsl:with-param name="allgroups" select="$allgroups"/>
+ <xsl:with-param name="links" select="$topicnodes"/>
+ </xsl:apply-templates>
+ </xsl:if>
</xsl:when>
<xsl:when test="self::e:links">
<xsl:apply-templates select="."/>
@@ -540,10 +552,15 @@ REMARK: Describe this template
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
- <xsl:if test="not(e:links[ type = 'topic'])">
- <xsl:call-template name="mal2html.links.topic">
- <xsl:with-param name="links" select="$topicnodes"/>
- </xsl:call-template>
+ <xsl:if test="$type = 'guide'">
+ <xsl:if test="not(e:links[ type = 'topic'])">
+ <xsl:call-template name="mal2html.links.topic">
+ <xsl:with-param name="links" select="$topicnodes"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="$type = 'facets'">
+ <xsl:call-template name="mal2html.facets.links"/>
</xsl:if>
</div>
<xsl:apply-templates mode="mal2html.section.mode" select="mal:section"/>
@@ -833,6 +850,31 @@ span.hi {
background-color: </xsl:text>
<xsl:value-of select="$color.yellow_background"/><xsl:text>;
}
+
+div.facets {
+ display: inline-block;
+ padding: 6px;
+ background-color: </xsl:text>
+ <xsl:value-of select="$color.yellow_background"/><xsl:text>;
+ border: solid 1px </xsl:text>
+ <xsl:value-of select="$color.blue_border"/><xsl:text>;
+}
+div.facet {
+ vertical-align: top;
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 1em;
+ margin-</xsl:text><xsl:value-of select="$right"/><xsl:text>: 1em;
+}
+div.facet div.title { margin: 0; }
+div.facet li {
+ margin: 0; padding: 0;
+ list-style-type: none;
+}
+div.facet input {
+ vertical-align: middle;
+ margin: 0;
+}
</xsl:text>
<xsl:if test="$mal2html.editor_mode">
<xsl:text>
@@ -877,4 +919,9 @@ div.linkdiv div.desc {
</xsl:if>
</xsl:template>
+<!--%# html.js.mode -->
+<xsl:template mode="html.js.mode" match="mal:page">
+ <xsl:call-template name="mal2html.facets.js"/>
+</xsl:template>
+
</xsl:stylesheet>
diff --git a/xslt/mallard/html/mal2xhtml.xsl b/xslt/mallard/html/mal2xhtml.xsl
index b15404d..5bebb6b 100644
--- a/xslt/mallard/html/mal2xhtml.xsl
+++ b/xslt/mallard/html/mal2xhtml.xsl
@@ -40,6 +40,7 @@ REMARK: Describe this module
<xsl:param name="mal.link.extension" select="$html.extension"/>
<xsl:include href="mal2html-block.xsl"/>
+<xsl:include href="mal2html-facets.xsl"/>
<xsl:include href="mal2html-inline.xsl"/>
<xsl:include href="mal2html-list.xsl"/>
<xsl:include href="mal2html-media.xsl"/>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]