grim/gir-tools

After much goofing around, chunking!

2016-02-25, Gary Kramlich
23db5e1f5680
Parents 14d9f67ff383
Children a016214e942f
After much goofing around, chunking!
  • +36 -28
    gir2uml.xsl
  • --- a/gir2uml.xsl Wed Feb 24 23:07:34 2016 -0600
    +++ b/gir2uml.xsl Thu Feb 25 23:39:17 2016 -0600
    @@ -5,6 +5,7 @@
    xmlns:exsl="http://exslt.org/common"
    version="1.0"
    exclude-result-prefixes="exsl"
    + extension-element-prefixes="exsl"
    >
    <xsl:output method="text"/>
    <xsl:strip-space elements="*"/>
    @@ -70,45 +71,52 @@
    </xsl:template>
    <xsl:template match="gir:class">
    - <xsl:value-of select="$tab"/>
    - <xsl:value-of select="@name"/>
    - <xsl:text>[shape="none" label=&lt;&lt;table&gt;</xsl:text>
    + <xsl:variable name="content">
    + <xsl:text>digraph {</xsl:text>
    + <xsl:value-of select="$newline-tab"/>
    +
    + <xsl:value-of select="$tab"/>
    + <xsl:value-of select="@name"/>
    + <xsl:text>[shape="none" label=&lt;&lt;table&gt;</xsl:text>
    - <xsl:text>&lt;tr&gt;&lt;td&gt;</xsl:text>
    - <xsl:value-of select="@name"/>
    + <xsl:text>&lt;tr&gt;&lt;td&gt;</xsl:text>
    + <xsl:value-of select="@name"/>
    - <xsl:if test="@abstract = '1'">
    - <xsl:text>&lt;br/&gt;&lt;i&gt;abstract&lt;/i&gt;</xsl:text>
    - </xsl:if>
    + <xsl:if test="@abstract = '1'">
    + <xsl:text>&lt;br/&gt;&lt;i&gt;abstract&lt;/i&gt;</xsl:text>
    + </xsl:if>
    - <xsl:text>&lt;/td&gt;&lt;/tr&gt;</xsl:text>
    + <xsl:text>&lt;/td&gt;&lt;/tr&gt;</xsl:text>
    - <xsl:text>&lt;tr&gt;&lt;td&gt;</xsl:text>
    - <xsl:apply-templates select="gir:property"/>
    - <xsl:text>&lt;/td&gt;&lt;/tr&gt;</xsl:text>
    + <xsl:text>&lt;tr&gt;&lt;td&gt;</xsl:text>
    + <xsl:apply-templates select="gir:property"/>
    + <xsl:text>&lt;/td&gt;&lt;/tr&gt;</xsl:text>
    +
    + <xsl:text>&lt;tr&gt;&lt;td&gt;</xsl:text>
    + <xsl:apply-templates select="(gir:method|gir:virtual-method)"/>
    + <xsl:text>&lt;/td&gt;&lt;/tr&gt;</xsl:text>
    +
    + <xsl:text>&lt;/table&gt;&gt;]</xsl:text>
    + <xsl:value-of select="$newline"/>
    - <xsl:text>&lt;tr&gt;&lt;td&gt;</xsl:text>
    - <xsl:apply-templates select="(gir:method|gir:virtual-method)"/>
    - <xsl:text>&lt;/td&gt;&lt;/tr&gt;</xsl:text>
    + <xsl:value-of select="$newline"/>
    + <xsl:text>}</xsl:text>
    + <xsl:value-of select="$newline"/>
    + </xsl:variable>
    - <xsl:text>&lt;/table&gt;&gt;]</xsl:text>
    - <xsl:value-of select="$newline"/>
    + <xsl:variable name="filename">
    + <xsl:value-of select="@name"/>
    + <xsl:text>.dot</xsl:text>
    + </xsl:variable>
    +
    + <exsl:document href="{$filename}" method="text">
    + <xsl:copy-of select="$content"/>
    + </exsl:document>
    </xsl:template>
    <xsl:template match="gir:namespace">
    - <xsl:text>digraph {</xsl:text>
    - <xsl:value-of select="$newline-tab"/>
    - <xsl:text>graph[label="</xsl:text>
    - <xsl:value-of select="@name"/>
    - <xsl:text>"]</xsl:text>
    - <xsl:value-of select="$newline"/>
    -
    <xsl:apply-templates select="gir:class"/>
    -
    - <xsl:value-of select="$newline"/>
    - <xsl:text>}</xsl:text>
    - <xsl:value-of select="$newline"/>
    </xsl:template>
    <xsl:template match="gir:repository">