<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>PSfD: Team Blog : Morgan Skinner</title><link>http://blogs.msdn.com/psfd/archive/tags/Morgan+Skinner/default.aspx</link><description>Tags: Morgan Skinner</description><dc:language>en-GB</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Windows Workflow Foundation</title><link>http://blogs.msdn.com/psfd/archive/2005/09/16/468849.aspx</link><pubDate>Fri, 16 Sep 2005 18:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:468849</guid><dc:creator>psfd</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/psfd/comments/468849.aspx</comments><wfw:commentRss>http://blogs.msdn.com/psfd/commentrss.aspx?PostID=468849</wfw:commentRss><wfw:comment>http://blogs.msdn.com/psfd/rsscomments.aspx?PostID=468849</wfw:comment><description>&lt;P&gt;&lt;SPAN class=156284214-16092005&gt;&lt;FONT face=Arial size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;This article describes how you can get a great design time experience from your custom Windows Workflow Foundation activities. For more details&lt;/FONT&gt; &lt;A href="http://www.morganskinner.com/Articles/ActivityValidation"&gt;click here&lt;/A&gt;.&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;For details about the Windows Workflow Foundation go to &lt;/FONT&gt;&lt;A title=http://www.windowsworkflow.net/ href="http://www.windowsworkflow.net/"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;http&lt;/FONT&gt;://www.windowsworkflow.net&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#0000ff&gt; .&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=156284214-16092005&gt;&lt;FONT face=Arial color=#000000 size=2&gt;--Morgan&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=468849" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/psfd/archive/tags/PSfD/default.aspx">PSfD</category><category domain="http://blogs.msdn.com/psfd/archive/tags/Morgan+Skinner/default.aspx">Morgan Skinner</category></item><item><title>NDOC Revision History Tags</title><link>http://blogs.msdn.com/psfd/archive/2005/04/18/409460.aspx</link><pubDate>Mon, 18 Apr 2005 21:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:409460</guid><dc:creator>psfd</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/psfd/comments/409460.aspx</comments><wfw:commentRss>http://blogs.msdn.com/psfd/commentrss.aspx?PostID=409460</wfw:commentRss><wfw:comment>http://blogs.msdn.com/psfd/rsscomments.aspx?PostID=409460</wfw:comment><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I've been working a lot with &lt;/FONT&gt;&lt;A href="http://ndoc.sourceforge.net/"&gt;&lt;FONT face=Verdana size=2&gt;NDOC&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; recently and find the new &lt;/FONT&gt;&lt;A href="http://ndoc.sourceforge.net/content/extensibility.htm"&gt;&lt;FONT face=Verdana size=2&gt;extensibility&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; feature excellent. In the team I'm working with at the moment they wanted to be able to define a revision history section that would be displayed within the documentation, so after reading the docs I knocked up the following tags...&lt;/FONT&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face=Verdana size=2&gt;&amp;lt;revisionHistory&amp;gt;
  &amp;lt;revision author="Morgan Skinner" date="08/04/2005"&amp;gt;Initial Version&amp;lt;/revision&amp;gt;
&amp;lt;/revisionHistory&amp;gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;FONT face=Verdana size=2&gt;Then when I compile the documentation I then get the following in the output...&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;FONT face=Verdana size=2&gt;  &lt;IMG src="http://www.morganskinner.com/images/revisionhistory.png"&gt;&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The main issue I came up with was getting the output to look the same as the NDOC stuff - this boils down to using the same CSS styles as are used by NDOC, which aren't well document (well, aren't really documented at all as far as I can see). Being a firm fan of &lt;/FONT&gt;&lt;A href="http://www.aisto.com/roeder/dotnet"&gt;&lt;FONT face=Verdana size=2&gt;Reflector&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; I had a poke around within the NDoc.Documenter.Msdn2 assembly and found the .xslt files used by NDOC. Then I found the appropriate styles for the stuff I wanted to put in and now have a nice integrated solution. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;In order to get all this magic to work, you need to create a .xslt file of your own to process your tags. You set this in the NDOC project using the ExtensibilityStylesheet property of the solution, and that's about all there is to it. I've created another folder in my .NET project called 'Documentation' and stored the .xslt file there (my NDOC project lives in the root directory for my project too). The .xslt for this is shown below...&lt;/FONT&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT face="Courier New"&gt;&amp;lt;xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:MSHelp="http://msdn.microsoft.com/mshelp"&amp;gt;
  &amp;lt;xsl:template match="revisionHistory" mode="after-remarks-section"&amp;gt;
    &amp;lt;h4 class="dtH4"&amp;gt;Revision History&amp;lt;/h4&amp;gt;
        &amp;lt;div class="tablediv"&amp;gt;
      &amp;lt;table class="dtTABLE" cellspacing="0" width="100%" &amp;gt;
        &amp;lt;tr valign="top"&amp;gt;
                &amp;lt;th width="20%"&amp;gt;Author&amp;lt;/th&amp;gt;
                &amp;lt;th width="20%"&amp;gt;Date&amp;lt;/th&amp;gt;
                &amp;lt;th width="60%"&amp;gt;Description&amp;lt;/th&amp;gt;
        &amp;lt;/tr&amp;gt;
        &amp;lt;xsl:call-template name="revisions"/&amp;gt;
          &amp;lt;/table&amp;gt;
      &amp;lt;/div&amp;gt;
  &amp;lt;/xsl:template&amp;gt;
  &amp;lt;xsl:template name="revisions"&amp;gt;
    &amp;lt;xsl:for-each select="revision"&amp;gt;
      &amp;lt;tr valign="top"&amp;gt;
        &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select="@author"/&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select="@date"/&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;&amp;lt;xsl:apply-templates select="." mode="slashdoc"/&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;/tr&amp;gt;
    &amp;lt;/xsl:for-each&amp;gt;
  &amp;lt;/xsl:template&amp;gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The main thing of note here is the use of &amp;lt;xsl:apply-templates select="." mode="slashdoc"/&amp;gt; within the descriptive part of the stylesheet - this ensures that any sub-tags (such as &amp;lt;see&amp;gt;) in your description will be processed by NDOC, thereby permitting you to link to other topics in your help file.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;With the stylesheet setup you should now be able to compile your help file and get a new section including the revision history section.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The two styles I'm using here are dtH4 for the heading and dtTABLE. I found these by looking at the .xslt resources within the NDoc.Documenter.Msdn2 assembly. There are a lot of .xslt files included within the assembly but probably the most useful to start looking at is NDoc.Documenter.Msdn2.xslt.common.xslt.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;If you would like to download the .xslt file rather than type it in yourself, click &lt;A href="http://www.morganskinner.com/Articles/RevisionHistory/customtags.xslt"&gt;here&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=409460" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/psfd/archive/tags/PSfD/default.aspx">PSfD</category><category domain="http://blogs.msdn.com/psfd/archive/tags/Morgan+Skinner/default.aspx">Morgan Skinner</category></item></channel></rss>