Mike Gerwitz

Activist for User Freedom

aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'src/current/dot/defnode-attr.xsl')
-rw-r--r--src/current/dot/defnode-attr.xsl70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/current/dot/defnode-attr.xsl b/src/current/dot/defnode-attr.xsl
new file mode 100644
index 0000000..778835a
--- /dev/null
+++ b/src/current/dot/defnode-attr.xsl
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Outputs graph visualization of dependencies in DOT format
+-->
+
+<xsl:stylesheet version="2.0"
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+
+ xmlns:dot="http://www.lovullo.com/calc/dot"
+ xmlns:preproc="http://www.lovullo.com/rater/preproc">
+
+<xsl:import href="./attr-color.xsl" />
+<xsl:import href="./attr-shape.xsl" />
+<xsl:import href="./attr-extern.xsl" />
+<xsl:import href="./attr-keep.xsl" />
+
+
+<!--
+ External nodes should be styled as such
+-->
+<xsl:template mode="dot:defnode-attr" priority="5" match="
+ preproc:sym[ @src and not( @src='' ) ]
+ ">
+
+ <dot:attr name="label">
+ <xsl:value-of select="@src" />
+ <xsl:text>/\n</xsl:text>
+ <xsl:value-of select="@name" />
+ </dot:attr>
+
+ <dot:attr name="tooltip">
+ <xsl:value-of select="@src" />
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="@name" />
+ </dot:attr>
+</xsl:template>
+
+
+
+<!--
+ Default node attributes
+-->
+<xsl:template match="preproc:sym" mode="dot:defnode-attr" priority="1">
+</xsl:template>
+
+
+<!--
+ Render an attribute list as a comma-delimited string
+
+ Expects a tree of dot:attr nodes where @name is the name of the attribute, and
+ its normalized text is the value. The value will be quoted; double quotes must
+ be manually escaped prior to calling this template.
+-->
+<xsl:template name="dot:render-attr-list">
+ <xsl:param name="attr-list" />
+
+ <xsl:for-each select="$attr-list/dot:attr">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+
+ <xsl:value-of select="@name" />
+ <xsl:text>="</xsl:text>
+ <xsl:value-of select="normalize-space( text() )" />
+ <xsl:text>"</xsl:text>
+ </xsl:for-each>
+</xsl:template>
+
+</xsl:stylesheet>