Attachment 'metamarkers.xsl'
Download 1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml"
3 xmlns:html="http://www.w3.org/1999/xhtml"
4 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5 xmlns:msxsl="urn:schemas-microsoft-com:xslt"
6 xmlns:wwmode="urn:WebWorks-Engine-Mode"
7 xmlns:wwlinks="urn:WebWorks-Engine-Links-Schema"
8 xmlns:wwfiles="urn:WebWorks-Engine-Files-Schema"
9 xmlns:wwdoc="urn:WebWorks-Document-Schema"
10 xmlns:wwsplits="urn:WebWorks-Engine-Splits-Schema"
11 xmlns:wwtoc="urn:WebWorks-Engine-TOC-Schema"
12 xmlns:wwbehaviors="urn:WebWorks-Behaviors-Schema"
13 xmlns:wwnotes="urn:WebWorks-Footnote-Schema"
14 xmlns:wwproject="urn:WebWorks-Publish-Project"
15 xmlns:wwpage="urn:WebWorks-Page-Template-Schema"
16 xmlns:wwlocale="urn:WebWorks-Locale-Schema"
17 xmlns:wwprogress="urn:WebWorks-XSLT-Extension-Progress"
18 xmlns:wwlog="urn:WebWorks-XSLT-Extension-Log"
19 xmlns:wwfilesystem="urn:WebWorks-XSLT-Extension-FileSystem"
20 xmlns:wwuri="urn:WebWorks-XSLT-Extension-URI"
21 xmlns:wwstring="urn:WebWorks-XSLT-Extension-StringUtilities"
22 xmlns:wwunits="urn:WebWorks-XSLT-Extension-Units"
23 xmlns:wwfilesext="urn:WebWorks-XSLT-Extension-Files"
24 xmlns:wwprojext="urn:WebWorks-XSLT-Extension-Project"
25 xmlns:wwimaging="urn:WebWorks-XSLT-Extension-Imaging"
26 xmlns:wwexsldoc="urn:WebWorks-XSLT-Extension-Document"
27 xmlns:wwdatetime="urn:WebWorks-Date-Time-Extension"
28 exclude-result-prefixes="xsl msxsl wwmode wwlinks wwfiles wwdoc wwsplits wwtoc wwbehaviors wwnotes wwproject wwpage wwlocale wwprogress wwlog wwfilesystem wwuri wwstring wwunits wwfilesext wwprojext wwimaging wwexsldoc wwdatetime"
29 >
30 <xsl:key name="wwbehaviors-meta-by-name" match="wwbehaviors:META" use="@name" />
31
32
33 <xsl:template name="METAMarkers-Conditions">
34 <xsl:param name="ParamBehaviors" />
35 <xsl:param name="ParamSplit" />
36
37 <xsl:variable name="VarMETADocumentMarkers" select="$ParamBehaviors//wwbehaviors:Marker[@behavior = 'meta-document']/wwdoc:Marker" />
38 <xsl:variable name="VarMETASplitMarkers" select="$ParamBehaviors/wwbehaviors:Behaviors/wwbehaviors:Split[@id = $ParamSplit/@id]//wwbehaviors:Marker[@behavior = 'meta-split']/wwdoc:Marker" />
39 <xsl:variable name="VarMETAMarkers" select="$VarMETADocumentMarkers | $VarMETASplitMarkers" />
40
41 <xsl:if test="count($VarMETAMarkers[1]) > 0">
42 <wwpage:Condition name="meta-markers-exist" />
43 </xsl:if>
44 </xsl:template>
45
46
47 <xsl:template name="METAMarkers-Replacements">
48 <xsl:param name="ParamBehaviors" />
49 <xsl:param name="ParamSplit" />
50
51 <xsl:variable name="VarMETADocumentMarkers" select="$ParamBehaviors//wwbehaviors:Marker[@behavior = 'meta-document']/wwdoc:Marker" />
52 <xsl:variable name="VarMETASplitMarkers" select="$ParamBehaviors/wwbehaviors:Behaviors/wwbehaviors:Split[@id = $ParamSplit/@id]//wwbehaviors:Marker[@behavior = 'meta-split']/wwdoc:Marker" />
53 <xsl:variable name="VarMETAMarkers" select="$VarMETADocumentMarkers | $VarMETASplitMarkers" />
54
55 <!-- All META tag names -->
56 <!-- -->
57 <xsl:variable name="VarMETATagNamesAsXML">
58 <xsl:for-each select="$VarMETAMarkers">
59 <xsl:variable name="VarMETAMarker" select="." />
60
61 <wwbehaviors:META name="{$VarMETAMarker/@name}" />
62 </xsl:for-each>
63 </xsl:variable>
64 <xsl:variable name="VarMETATagNames" select="msxsl:node-set($VarMETATagNamesAsXML)/*" />
65
66 <!-- Unique META tag names -->
67 <!-- -->
68 <xsl:variable name="VarUniqueMETATagNamesAsXML">
69 <xsl:for-each select="$VarMETATagNames">
70 <xsl:variable name="VarMETATagName" select="." />
71
72 <!-- Take first unique entry -->
73 <!-- -->
74 <xsl:if test="count($VarMETATagName | key('wwbehaviors-meta-by-name', $VarMETATagName/@name)[1]) = 1">
75 <xsl:copy-of select="$VarMETATagName" />
76 </xsl:if>
77 </xsl:for-each>
78 </xsl:variable>
79 <xsl:variable name="VarUniqueMETATagNames" select="msxsl:node-set($VarUniqueMETATagNamesAsXML)/*" />
80
81 <wwpage:Replacement name="meta-markers">
82 <xsl:for-each select="$VarUniqueMETATagNames">
83 <xsl:variable name="VarMETATagName" select="." />
84
85 <!-- Define the META tag content -->
86 <!-- -->
87 <xsl:variable name="VarMETATagContent">
88 <xsl:for-each select="$VarMETAMarkers[@name = $VarMETATagName/@name]">
89 <xsl:variable name="VarMETAMarker" select="." />
90
91 <xsl:for-each select="$VarMETAMarker/wwdoc:TextRun/wwdoc:Text">
92 <xsl:variable name="VarText" select="." />
93
94 <xsl:value-of select="$VarText/@value" />
95 </xsl:for-each>
96
97 <xsl:if test="position() < last()">
98 <xsl:text>,</xsl:text>
99 </xsl:if>
100 </xsl:for-each>
101 </xsl:variable>
102
103 <html:meta name="{$VarMETATagName/@name}" content="{$VarMETATagContent}" />
104 </xsl:for-each>
105 </wwpage:Replacement>
106 </xsl:template>
107 </xsl:stylesheet>
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.