1 | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
---|
2 | xmlns:MSHelp="http://msdn.microsoft.com/mshelp"
|
---|
3 | xmlns:mshelp="http://msdn.microsoft.com/mshelp"
|
---|
4 | xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5"
|
---|
5 | xmlns:xlink="http://www.w3.org/1999/xlink"
|
---|
6 | xmlns:msxsl="urn:schemas-microsoft-com:xslt"
|
---|
7 | >
|
---|
8 |
|
---|
9 | <xsl:template name="autogenSeeAlsoLinks">
|
---|
10 |
|
---|
11 | <!-- a link to the containing type on all list and member topics -->
|
---|
12 | <xsl:if test="($group='member' or $group='list')">
|
---|
13 | <xsl:variable name="typeTopicId">
|
---|
14 | <xsl:choose>
|
---|
15 | <xsl:when test="/document/reference/topicdata/@typeTopicId">
|
---|
16 | <xsl:value-of select="/document/reference/topicdata/@typeTopicId"/>
|
---|
17 | </xsl:when>
|
---|
18 | <xsl:otherwise>
|
---|
19 | <xsl:value-of select="/document/reference/containers/type/@api"/>
|
---|
20 | </xsl:otherwise>
|
---|
21 | </xsl:choose>
|
---|
22 | </xsl:variable>
|
---|
23 | <div class="seeAlsoStyle">
|
---|
24 | <referenceLink target="{$typeTopicId}" display-target="format">
|
---|
25 | <include item="SeeAlsoTypeLinkText">
|
---|
26 | <parameter>{0}</parameter>
|
---|
27 | <parameter>
|
---|
28 | <xsl:choose>
|
---|
29 | <xsl:when test="/document/reference/topicdata/@typeTopicId">
|
---|
30 | <xsl:value-of select="/document/reference/apidata/@subgroup"/>
|
---|
31 | </xsl:when>
|
---|
32 | <xsl:otherwise>
|
---|
33 | <xsl:value-of select="/document/reference/containers/type/apidata/@subgroup"/>
|
---|
34 | </xsl:otherwise>
|
---|
35 | </xsl:choose>
|
---|
36 | </parameter>
|
---|
37 | </include>
|
---|
38 | </referenceLink>
|
---|
39 | </div>
|
---|
40 | <!--
|
---|
41 | <div class="seeAlsoStyle">
|
---|
42 | <include item="SeeAlsoTypeLinkText">
|
---|
43 | <parameter>
|
---|
44 | <referenceLink target="{$typeTopicId}" />
|
---|
45 | </parameter>
|
---|
46 | <parameter>
|
---|
47 | <xsl:choose>
|
---|
48 | <xsl:when test="/document/reference/topicdata/@typeTopicId">
|
---|
49 | <xsl:value-of select="/document/reference/apidata/@subgroup"/>
|
---|
50 | </xsl:when>
|
---|
51 | <xsl:otherwise>
|
---|
52 | <xsl:value-of select="/document/reference/containers/type/apidata/@subgroup"/>
|
---|
53 | </xsl:otherwise>
|
---|
54 | </xsl:choose>
|
---|
55 | </parameter>
|
---|
56 | </include>
|
---|
57 | </div>
|
---|
58 | -->
|
---|
59 | </xsl:if>
|
---|
60 |
|
---|
61 | <!-- a link to the type's All Members list -->
|
---|
62 | <xsl:variable name="allMembersTopicId">
|
---|
63 | <xsl:choose>
|
---|
64 | <xsl:when test="/document/reference/topicdata/@allMembersTopicId">
|
---|
65 | <xsl:value-of select="/document/reference/topicdata/@allMembersTopicId"/>
|
---|
66 | </xsl:when>
|
---|
67 | <xsl:when test="$group='member' or ($group='list' and $subgroup='overload')">
|
---|
68 | <xsl:value-of select="/document/reference/containers/type/topicdata/@allMembersTopicId"/>
|
---|
69 | </xsl:when>
|
---|
70 | </xsl:choose>
|
---|
71 | </xsl:variable>
|
---|
72 | <xsl:if test="normalize-space($allMembersTopicId) and not($allMembersTopicId=$key)">
|
---|
73 | <div class="seeAlsoStyle">
|
---|
74 | <referenceLink target="{$allMembersTopicId}" display-target="format">
|
---|
75 | <include item="SeeAlsoMembersLinkText">
|
---|
76 | <parameter>{0}</parameter>
|
---|
77 | </include>
|
---|
78 | </referenceLink>
|
---|
79 | </div>
|
---|
80 | <!--
|
---|
81 | <div class="seeAlsoStyle">
|
---|
82 | <include item="SeeAlsoMembersLinkText">
|
---|
83 | <parameter>
|
---|
84 | <referenceLink target="{$allMembersTopicId}" />
|
---|
85 | </parameter>
|
---|
86 | </include>
|
---|
87 | </div>
|
---|
88 | -->
|
---|
89 | </xsl:if>
|
---|
90 |
|
---|
91 | <xsl:if test="/document/reference/memberdata/@overload">
|
---|
92 | <!-- a link to the overload topic -->
|
---|
93 | <div class="seeAlsoStyle">
|
---|
94 | <referenceLink target="{/document/reference/memberdata/@overload}" display-target="format" show-parameters="false">
|
---|
95 | <include item="SeeAlsoOverloadLinkText">
|
---|
96 | <parameter>{0}</parameter>
|
---|
97 | </include>
|
---|
98 | </referenceLink>
|
---|
99 | </div>
|
---|
100 | </xsl:if>
|
---|
101 |
|
---|
102 | <!-- a link to the namespace topic -->
|
---|
103 | <xsl:variable name="namespaceId">
|
---|
104 | <xsl:value-of select="/document/reference/containers/namespace/@api"/>
|
---|
105 | </xsl:variable>
|
---|
106 | <xsl:if test="normalize-space($namespaceId)">
|
---|
107 | <div class="seeAlsoStyle">
|
---|
108 | <referenceLink target="{$namespaceId}" display-target="format">
|
---|
109 | <include item="SeeAlsoNamespaceLinkText">
|
---|
110 | <parameter>{0}</parameter>
|
---|
111 | </include>
|
---|
112 | </referenceLink>
|
---|
113 | </div>
|
---|
114 | <!--
|
---|
115 | <div class="seeAlsoStyle">
|
---|
116 | <include item="SeeAlsoNamespaceLinkText">
|
---|
117 | <parameter>
|
---|
118 | <referenceLink target="{$namespaceId}" />
|
---|
119 | </parameter>
|
---|
120 | </include>
|
---|
121 | </div>
|
---|
122 | -->
|
---|
123 | </xsl:if>
|
---|
124 |
|
---|
125 | </xsl:template>
|
---|
126 |
|
---|
127 | <xsl:variable name="typeId">
|
---|
128 | <xsl:choose>
|
---|
129 | <xsl:when test="/document/reference/topicdata[@group='api'] and /document/reference/apidata[@group='type']">
|
---|
130 | <xsl:value-of select="$key"/>
|
---|
131 | </xsl:when>
|
---|
132 | <xsl:when test="/document/reference/topicdata/@typeTopicId">
|
---|
133 | <xsl:value-of select="/document/reference/topicdata/@typeTopicId"/>
|
---|
134 | </xsl:when>
|
---|
135 | <xsl:otherwise>
|
---|
136 | <xsl:value-of select="/document/reference/containers/type/@api"/>
|
---|
137 | </xsl:otherwise>
|
---|
138 | </xsl:choose>
|
---|
139 | </xsl:variable>
|
---|
140 |
|
---|
141 | <!-- indent by 2*n spaces -->
|
---|
142 | <xsl:template name="indent">
|
---|
143 | <xsl:param name="count" />
|
---|
144 | <xsl:if test="$count > 1">
|
---|
145 | <xsl:text>  </xsl:text>
|
---|
146 | <xsl:call-template name="indent">
|
---|
147 | <xsl:with-param name="count" select="$count - 1" />
|
---|
148 | </xsl:call-template>
|
---|
149 | </xsl:if>
|
---|
150 | </xsl:template>
|
---|
151 |
|
---|
152 | <!-- Gets the substring after the last occurence of a period in a given string -->
|
---|
153 | <xsl:template name="subString">
|
---|
154 | <xsl:param name="name" />
|
---|
155 |
|
---|
156 | <xsl:choose>
|
---|
157 | <xsl:when test="contains($name, '.')">
|
---|
158 | <xsl:call-template name="subString">
|
---|
159 | <xsl:with-param name="name" select="substring-after($name, '.')" />
|
---|
160 | </xsl:call-template>
|
---|
161 | </xsl:when>
|
---|
162 | <xsl:otherwise>
|
---|
163 | <xsl:value-of select="$name" />
|
---|
164 | </xsl:otherwise>
|
---|
165 | </xsl:choose>
|
---|
166 |
|
---|
167 | </xsl:template>
|
---|
168 |
|
---|
169 | <xsl:template name="codeSection">
|
---|
170 | <xsl:param name="codeLang" />
|
---|
171 | <div class="code">
|
---|
172 | <span codeLanguage="{$codeLang}">
|
---|
173 | <table width="100%" cellspacing="0" cellpadding="0">
|
---|
174 | <tr>
|
---|
175 | <th>
|
---|
176 | <xsl:variable name="codeLangLC" select="translate($codeLang,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz ')"/>
|
---|
177 | <!-- Added JavaScript to look for AJAX snippets as JScript represents javascript snippets-->
|
---|
178 | <xsl:if test="$codeLangLC='visualbasic' or $codeLangLC='csharp' or $codeLangLC='managedcplusplus' or $codeLangLC='jsharp' or $codeLangLC='jscript' or $codeLangLC='javascript' or $codeLangLC='xaml'">
|
---|
179 | <include item="{$codeLang}"/>
|
---|
180 | </xsl:if>
|
---|
181 | <xsl:text> </xsl:text>
|
---|
182 | </th>
|
---|
183 | <th>
|
---|
184 | <span class="copyCode" onclick="CopyCode(this)" onkeypress="CopyCode_CheckKey(this, event)" onmouseover="ChangeCopyCodeIcon(this)" onmouseout="ChangeCopyCodeIcon(this)" tabindex="0">
|
---|
185 | <img class="copyCodeImage" name="ccImage" align="absmiddle">
|
---|
186 | <includeAttribute name="title" item="copyImage" />
|
---|
187 | <includeAttribute name="src" item="iconPath">
|
---|
188 | <parameter>copycode.gif</parameter>
|
---|
189 | </includeAttribute>
|
---|
190 | </img>
|
---|
191 | <include item="copyCode"/>
|
---|
192 | </span>
|
---|
193 | </th>
|
---|
194 | </tr>
|
---|
195 | <tr>
|
---|
196 | <td colspan="2">
|
---|
197 | <!-- alansm: fix bug 321956 - use apply-templates rather than copy-of, so ddue:codeFeaturedElement nodes are transformed -->
|
---|
198 | <pre><xsl:text/><xsl:apply-templates/><!--<xsl:copy-of select="node()"/>--><xsl:text/></pre>
|
---|
199 | </td>
|
---|
200 | </tr>
|
---|
201 | </table>
|
---|
202 | </span>
|
---|
203 | </div>
|
---|
204 |
|
---|
205 | </xsl:template>
|
---|
206 |
|
---|
207 | <!-- sireeshm: fix bug 361746 - use copy-of, so that span class="keyword", "literal" and "comment" nodes are copied to preserve code colorization in snippets -->
|
---|
208 | <xsl:template match="ddue:span[@class='keyword' or @class='literal' or @class='comment']">
|
---|
209 | <xsl:copy-of select="."/>
|
---|
210 | </xsl:template>
|
---|
211 |
|
---|
212 | <xsl:template name="nonScrollingRegionTypeLinks">
|
---|
213 | <include item="nonScrollingTypeLinkText">
|
---|
214 | <parameter>{0}</parameter>
|
---|
215 | <parameter>
|
---|
216 | <xsl:choose>
|
---|
217 | <xsl:when test="/document/reference/topicdata/@typeTopicId">
|
---|
218 | <xsl:value-of select="/document/reference/apidata/@subgroup"/>
|
---|
219 | </xsl:when>
|
---|
220 | <xsl:otherwise>
|
---|
221 | <xsl:value-of select="/document/reference/containers/type/apidata/@subgroup"/>
|
---|
222 | </xsl:otherwise>
|
---|
223 | </xsl:choose>
|
---|
224 | </parameter>
|
---|
225 | </include>
|
---|
226 | </xsl:template>
|
---|
227 |
|
---|
228 | <xsl:template name="mshelpCodelangAttributes">
|
---|
229 | <xsl:param name="snippets" />
|
---|
230 | <xsl:for-each select="$snippets">
|
---|
231 |
|
---|
232 | <xsl:if test="not(@language=preceding::*/@language)">
|
---|
233 | <xsl:variable name="codeLang">
|
---|
234 | <xsl:choose>
|
---|
235 | <xsl:when test="@language = 'VBScript' or @language = 'vbs'">
|
---|
236 | <xsl:text>VBScript</xsl:text>
|
---|
237 | </xsl:when>
|
---|
238 | <xsl:when test="@language = 'VisualBasic' or @language = 'vb' or @language = 'vb#' or @language = 'VB' or @language = 'kbLangVB'" >
|
---|
239 | <xsl:text>kbLangVB</xsl:text>
|
---|
240 | </xsl:when>
|
---|
241 | <xsl:when test="@language = 'CSharp' or @language = 'c#' or @language = 'cs' or @language = 'C#'" >
|
---|
242 | <xsl:text>CSharp</xsl:text>
|
---|
243 | </xsl:when>
|
---|
244 | <xsl:when test="@language = 'ManagedCPlusPlus' or @language = 'cpp' or @language = 'cpp#' or @language = 'c' or @language = 'c++' or @language = 'C++' or @language = 'kbLangCPP'" >
|
---|
245 | <xsl:text>kbLangCPP</xsl:text>
|
---|
246 | </xsl:when>
|
---|
247 | <xsl:when test="@language = 'JSharp' or @language = 'j#' or @language = 'jsharp' or @language = 'VJ#'">
|
---|
248 | <xsl:text>VJ#</xsl:text>
|
---|
249 | </xsl:when>
|
---|
250 | <xsl:when test="@language = 'JScript' or @language = 'js' or @language = 'jscript#' or @language = 'jscript' or @language = 'JScript' or @language = 'kbJScript'">
|
---|
251 | <xsl:text>kbJScript</xsl:text>
|
---|
252 | </xsl:when>
|
---|
253 | <xsl:when test="@language = 'XAML' or @language = 'xaml'">
|
---|
254 | <xsl:text>XAML</xsl:text>
|
---|
255 | </xsl:when>
|
---|
256 | <xsl:when test="@language = 'JavaScript' or @language = 'javascript'">
|
---|
257 | <xsl:text>JavaScript</xsl:text>
|
---|
258 | </xsl:when>
|
---|
259 | <xsl:when test="@language = 'xml'">
|
---|
260 | <xsl:text>xml</xsl:text>
|
---|
261 | </xsl:when>
|
---|
262 | <xsl:when test="@language = 'html'">
|
---|
263 | <xsl:text>html</xsl:text>
|
---|
264 | </xsl:when>
|
---|
265 | <xsl:when test="@language = 'vb-c#'">
|
---|
266 | <xsl:text>visualbasicANDcsharp</xsl:text>
|
---|
267 | </xsl:when>
|
---|
268 | <xsl:otherwise>
|
---|
269 | <xsl:text>other</xsl:text>
|
---|
270 | </xsl:otherwise>
|
---|
271 | </xsl:choose>
|
---|
272 | </xsl:variable>
|
---|
273 | <xsl:choose>
|
---|
274 | <xsl:when test="$codeLang='other'" />
|
---|
275 | <!-- If $codeLang is already authored, then do nothing -->
|
---|
276 | <xsl:when test="/document/metadata/attribute[@name='codelang']/text() = $codeLang" />
|
---|
277 | <xsl:otherwise>
|
---|
278 | <xsl:call-template name="codeLang">
|
---|
279 | <xsl:with-param name="codeLang" select="$codeLang" />
|
---|
280 | </xsl:call-template>
|
---|
281 | </xsl:otherwise>
|
---|
282 | </xsl:choose>
|
---|
283 | </xsl:if>
|
---|
284 |
|
---|
285 | </xsl:for-each>
|
---|
286 | </xsl:template>
|
---|
287 |
|
---|
288 | <xsl:template name="codeLang">
|
---|
289 | <xsl:param name="codeLang" />
|
---|
290 | <MSHelp:Attr Name="codelang" Value="{$codeLang}" />
|
---|
291 | </xsl:template>
|
---|
292 |
|
---|
293 | </xsl:stylesheet>
|
---|