Supporting Custom tags in Sandcastle
Sandcastle supports C# (and VB) xml tags for developer documentation comments. The list of c# tags are available at https://msdn2.microsoft.com/en-us/library/5ast78ax.aspx. We added the following new custom nDoc tags in November CTP (https://www.microsoft.com/downloads/details.aspx?FamilyId=E82EA71D-DA89-42EE-A715-696E3A4873B2&displaylang=en):
1. <overloads>
2. <preliminary>
3. <threadsafety>
4. <note>
These custom tags are supported in nDoc and you can see the tags under tag reference section at https://ndoc.sourceforge.net/usersguide.html.
This blog provides details on how to define your custom tags. To support custom tags the user can modify the presentation transforms (XSLT) that are shipped with Sandcastle. The following steps provides details:
1) Add the custom tag to the code in C# file [test.cs]:
/// <customTag>This is a custom tag.</customTag>
public class StoredNumber
{
}
2) Compile the C# file and extract the /// comments to, say comments.xml.
csc /t:library /doc:comments.xml test.cs
The custom tag will be included in the XML.
3) Update main_sandcastle.xsl with the following:
<xsl:template name="body">
<!--Add this depending on where we want our custom tag to be displayed-->
<xsl:apply-templates select="/document/comments/customTag" />
</xsl:template>
<xsl:template match="customTag">
<!--Customstyle can be defined in Presentaion.css stylesheet-->
<div class="CustomStyle">
<xsl:apply-templates />
</div>
</xsl:template>
The resulting page for the topic would look like the following with custom tag at the top of the page:
Comments
Anonymous
November 22, 2006
Hi Anand, This feature calls the following question: if I modify Sandcastle XSL files, can I distribute the modified version? The current answer is, I think, no, because the file is licensed as a part of the software, under "don't modify" and "don't distribute" clauses. It would be necessary to release the XSL files under a more liberal license, or, the best, under the public domain. Otherwise the 'custom tags' feature cannot be used legally... GaelAnonymous
November 22, 2006
Good point Gael. I will check this with Microsoft legal contact and will let you know. We cannot meet all the custom tags and this is the bext way to go. I will see if we can exclude the presentation tansforms from the license. Anand..Anonymous
November 25, 2006
Un post sur le blog de Sandcastle explique comment gérer les tags personnalisés, en particulier la modificationAnonymous
November 26, 2006
About two weeks ago, Microsoft have released a new CTP for Sandcastle . For those still in the dark,Anonymous
December 10, 2006
Un post sur le blog de Sandcastle explique comment gérer les tags personnalisés, en particulier la modificationAnonymous
November 07, 2007
The DocProject 1.9.0 Release Candidate is now available on CodePlex. I'm still working on updating theAnonymous
January 16, 2012
Hello, anything new about the Licence thing here?Anonymous
March 25, 2012
The comment has been removedAnonymous
March 26, 2013
So is this legal?Anonymous
May 31, 2013
Hi Anand, first of all, congratulations. Your post was very usefull, And I've acomplished my goals and have included some custom information along my Class Anotations. Now, I've some complicated issues with custom tag in class member anotations like custom tags in class properties. Do you have some example in how to do that? Thanks in advance.