﻿<configuration>
<dduetools>
    <builder>
      <components>

        <!-- Create skeleton document -->
        <component type="Microsoft.Ddue.Tools.CopyFromFileComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
            <data file="{@PresentationPath}transforms\skeleton.xml" />
            <copy source="/*" target="/" />
        </component>

        <!-- Copy in reflection data -->
        <component type="Microsoft.Ddue.Tools.CopyFromIndexComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
          <index name="reflection" value="/reflection/apis/api" key="@id" cache="10">
            <data base="{@SandcastlePath}Data\Reflection" recurse="true" files="*.xml" />
            <data files="reflection.xml" />
          </index>
          <copy name="reflection" source="*" target="/document/reference" />
        </component>

        <!-- Copy in container data -->
        <component type="Microsoft.Ddue.Tools.CopyFromIndexComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
            <copy name="reflection" key="string(/document/reference/containers/namespace/@api)" source="*[not(local-name()='elements')]" target="/document/reference/containers/namespace" />
        </component>

        <component type="Microsoft.Ddue.Tools.ForEachComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
          <variable expression="/document/reference/containers//type/@api" />
          <components>
            <component type="Microsoft.Ddue.Tools.CopyFromIndexComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
              <copy name="reflection" source="apidata|typedata|templates|attributes" target="/document/reference/containers//type[@api=$key]" />
            </component>
          </components>
        </component>

        <!-- Generate syntax -->
        <component type="Microsoft.Ddue.Tools.IfThenComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
          <if condition="not(starts-with($key,'Overload:') or starts-with($key,'R:'))" />
          <then>
            <component type="Microsoft.Ddue.Tools.SyntaxComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
              <syntax input="/document/reference" output="/document/syntax" />
              <generators>
{@SyntaxFilters}
              </generators>
            </component>
          </then>
        </component>

        <!-- Copy in comments -->
        <component type="Microsoft.Ddue.Tools.CopyFromIndexComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
          <index name="comments" value="/doc/members/member" key="@name" cache="100">
{@FrameworkCommentList}
{@CommentFileList}
          </index>
          <copy name="comments" source="*" target="/document/comments" />
        </component>

        <!-- Copy in reflection data and comments for members -->
        <component type="Microsoft.Ddue.Tools.ForEachComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
          <variable expression="/document/reference/elements/element/@api" />
          <components>
            <component type="Microsoft.Ddue.Tools.IfThenComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
              <if condition="not(/document/reference/elements//element[@api=$key]/*)" />
              <then>
                <component type="Microsoft.Ddue.Tools.CopyFromIndexComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
                    <copy name="reflection" source="*[not(local-name()='elements')]" target="/document/reference/elements//element[@api=$key]" />
                </component>
              </then>
            </component>
            <component type="Microsoft.Ddue.Tools.CopyFromIndexComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
              <copy name="comments" source="summary|overloads" target="/document/reference/elements/element[@api=$key]" />
            </component>
          </components>
        </component>

        <!-- Copy in comments for the member's declaring type. -->
        <component type="Microsoft.Ddue.Tools.CopyFromIndexComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
          <copy name="comments" key="string(/document/reference/containers/type/@api)" source="summary" target="/document/reference/containers" />
        </component>

        <!-- Show missing documentation component configuration.  This must
         appear before the TransformComponent. -->
        <component type="SandcastleBuilder.Components.ShowMissingComponent"
          assembly="{@SHFBFolder}SandcastleBuilder.Components.dll"
          id="Show Missing Documentation Component">
            <!-- All elements are optional. -->

            <!-- Auto-document constructors (true by default) -->
            <AutoDocumentConstructors value="{@AutoDocumentConstructors}" />

            <!-- Auto-document dispose methods (true by default) -->
            <AutoDocumentDisposeMethods value="{@AutoDocumentDisposeMethods}" />

            <!-- Show missing param tags (true by default) -->
            <ShowMissingParams value="{@ShowMissingParams}" />

            <!-- Show missing typeparam tags (true by default) -->
            <ShowMissingTypeParams value="{@ShowMissingTypeParams}" />

            <!-- Show missing remarks tags (false by default) -->
            <ShowMissingRemarks value="{@ShowMissingRemarks}" />

            <!-- Show missing returns tags (true by default) -->
            <ShowMissingReturns value="{@ShowMissingReturns}" />

            <!-- Show missing summary tags (true by default) -->
            <ShowMissingSummaries value="{@ShowMissingSummaries}" />

            <!-- Show missing value tags (false by default) -->
            <ShowMissingValues value="{@ShowMissingValues}" />

            <!-- Show missing namespace comments (true by default) -->
            <ShowMissingNamespaces value="{@ShowMissingNamespaces}" />

            <!-- Show missing include targets (true by default) -->
            <ShowMissingIncludeTargets value="{@ShowMissingIncludeTargets}" />

            <!-- Shared content file containing the localized messages
                 (optional) -->
            <contentFile filename="SharedBuilderContent.xml" />
        </component>

        <!-- Version information component configuration.  This must appear
             before the TransformComponent.  See also: PostTransformComponent -->
        <component type="SandcastleBuilder.Components.VersionInfoComponent"
          assembly="{@SHFBFolder}SandcastleBuilder.Components.dll"
          id="Version Information Component">
            <!-- Reflection information file for version info (required) -->
            <reflectionFile filename="reflection.xml" />
        </component>

        <!-- Code block component configuration.  This must appear before the
             TransformComponent.  See also: PostTransformComponent. -->
        <component type="SandcastleBuilder.Components.CodeBlockComponent"
          assembly="{@SHFBFolder}SandcastleBuilder.Components.dll"
          id="Code Block Component">
            <!-- Base path for relative filenames in source attributes (optional) -->
            <basePath value="{@HtmlEncProjectFolder}" />

            <!-- Connect to language filter (optional).  If omitted,
                 language filtering is enabled by default. -->
            <languageFilter value="true" />

            <!-- Allow missing source files (Optional).  If omitted,
                 it will generate errors if referenced source files
                 are missing. -->
            <allowMissingSource value="false" />

            <!-- Remove region markers from imported code blocks.  If omitted,
                 region markers in imported code blocks are left alone. -->
            <removeRegionMarkers value="false" />

            <!-- Code colorizer options (required).
                 Attributes:
                    Language syntax configuration file (required)
                    XSLT style file (required)
                    "Copy" image file URL (required)
                    Default language (optional)
                    Enable line numbering (optional)
                    Enable outlining (optional)
                    Keep XML comment "see" tags within the code (optional)
                    Tab size override (optional, 0 = Use syntax file setting)
                    Use language name as default title (optional) -->
            <colorizer syntaxFile="{@SHFBFolder}Colorizer\highlight.xml"
                styleFile="{@SHFBFolder}Colorizer\highlight.xsl"
                copyImageUrl="../icons/CopyCode.gif"
                language="cs" numberLines="false" outlining="false"
                keepSeeTags="false" tabSize="0" defaultTitle="true" />
        </component>

        <!-- transform -->
        <component type="Microsoft.Ddue.Tools.TransformComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
          <transform file="{@PresentationPath}transforms\main_sandcastle.xsl">
            <argument key="metadata" value="true" />
            <argument key="languages">
{@SyntaxFiltersDropDown}
            </argument>
          </transform>
        </component>

        <!-- Post-transform component configuration.  This must appear after the
             TransformComponent.  See also: CodeBlockComponent. -->
        <component type="SandcastleBuilder.Components.PostTransformComponent"
          assembly="{@SHFBFolder}SandcastleBuilder.Components.dll"
          id="Post-transform Component">
            <!-- Code colorizer files (required).
                 Attributes:
                    Stylesheet file (required)
                    Script file (required)
                    "Copy" image file (required) -->
            <colorizer stylesheet="{@SHFBFolder}Colorizer\highlight.css"
                scriptFile="{@SHFBFolder}Colorizer\highlight.js"
                copyImage="{@SHFBFolder}Colorizer\CopyCode.gif" />

            <!-- Base output paths for the files (required).  These should match
                 the parent folder of the output path of the HTML files (see
                 each of the SaveComponent instances below). -->
            <outputPaths>
{@HelpFormatOutputPaths}
            </outputPaths>

            <!-- Logo image file (optional).  Filename is required. The height,
                 width, altText, placement, and alignment attributes are
                 optional. -->
            <logoFile filename="" height="0" width="0" altText=""
                placement="left" alignment="left" />
        </component>

        <!-- Multi-format output component.  This must wrap the component set
             unique to each output file format. -->
        <component type="SandcastleBuilder.Components.MultiFormatOutputComponent"
          assembly="{@SHFBFolder}SandcastleBuilder.Components.dll"
          id="Multi-format Output Component">
          <!-- This defines the formats to generate -->
          <build formats="{@HelpFileFormat}" />

          <!-- This defines the set of components for HTML Help 1 files -->
          <helpOutput format="HtmlHelp1">
            <!-- Resolve shared content -->
            <component type="Microsoft.Ddue.Tools.SharedContentComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
                <content file="{@PresentationPath}content\{@LanguageFolder}shared_content.xml" />
                <content file="{@PresentationPath}content\{@LanguageFolder}reference_content.xml" />
                <content file="{@SandcastlePath}Presentation\Shared\content\{@LanguageFolder}syntax_content.xml" />
                <!-- These must be last in order to override other elements! -->
                <content file="SharedBuilderContent.xml" />
                <content file="PresentationStyleBuilderContent.xml" />
{@ResourceItemFiles}
            </component>

            <!-- Resolve reference links -->
            <component type="Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2"
              assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll"
              locale="{@Locale}" linkTarget="{@SdkLinkTarget}">
                <targets base="{@SandcastlePath}Data\Reflection" recurse="true" files="*.xml" type="{@HtmlSdkLinkType}" />
                <targets files="reflection.xml" type="Local" />
            </component>

            <!-- Save the result -->
            <component type="Microsoft.Ddue.Tools.SaveComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
                <save base="Output\HtmlHelp1\html" path="concat(/html/head/meta[@name='file']/@content,'.htm')" indent="{@IndentHtml}"
                  omit-xml-declaration="true" add-xhtml-namespace="false" />
            </component>
          </helpOutput>

          <!-- This defines the set of components for MS Help 2 files -->
          <helpOutput format="MSHelp2">
            <!-- Resolve shared content -->
            <component type="Microsoft.Ddue.Tools.SharedContentComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
                <content file="{@PresentationPath}content\{@LanguageFolder}shared_content.xml" />
                <content file="{@PresentationPath}content\{@LanguageFolder}reference_content.xml" />
                <content file="{@SandcastlePath}Presentation\Shared\content\{@LanguageFolder}syntax_content.xml" />
                <!-- These must be last in order to override other elements! -->
                <content file="SharedBuilderContent.xml" />
                <content file="PresentationStyleBuilderContent.xml" />
{@ResourceItemFiles}
            </component>

            <!-- Insert additional MS Help 2 attributes -->
            <component id="MS Help 2 Attributes"
              type="SandcastleBuilder.Components.MSHelpAttrComponent"
              assembly="{@SHFBFolder}SandcastleBuilder.Components.dll">
{@HelpAttributes}
            </component>

            <!-- Resolve reference links -->
            <component type="Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2"
              assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll"
              locale="{@Locale}" linkTarget="{@SdkLinkTarget}">
                <targets base="{@SandcastlePath}Data\Reflection" recurse="true" files="*.xml" type="{@MSHelp2SdkLinkType}" />
                <targets files="reflection.xml" type="Index" />
            </component>

            <!-- Save the result -->
            <component type="Microsoft.Ddue.Tools.SaveComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
                <save base="Output\MSHelp2\html" path="concat(/html/head/meta[@name='file']/@content,'.htm')" indent="{@IndentHtml}"
                  omit-xml-declaration="true" add-xhtml-namespace="false" />
            </component>
          </helpOutput>

          <!-- This defines the set of components for MS Help Viewer files -->
          <helpOutput format="MSHelpViewer">
            <!-- Resolve shared content -->
            <component type="Microsoft.Ddue.Tools.SharedContentComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
                <content file="{@PresentationPath}content\{@LanguageFolder}shared_content_mshc.xml" />
                <content file="{@PresentationPath}content\{@LanguageFolder}reference_content.xml" />
                <content file="{@SandcastlePath}Presentation\Shared\content\{@LanguageFolder}syntax_content.xml" />
                <!-- These must be last in order to override other elements! -->
                <content file="SharedBuilderContent.xml" />
                <content file="PresentationStyleBuilderContent.xml" />
{@ResourceItemFiles}
            </component>

            <!-- Resolve reference links -->
            <component type="Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2"
              assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll"
              locale="{@Locale}" linkTarget="{@SdkLinkTarget}">
                <targets base="{@SandcastlePath}Data\Reflection" recurse="true" files="*.xml" type="{@MSHelpViewerSdkLinkType}" />
                <targets files="reflection.xml" type="Id" />
            </component>

            <!-- Add MS Help Viewer metadata -->
            <component type="SandcastleBuilder.Components.MSHCComponent"
              assembly="{@SHFBFolder}SandcastleBuilder.Components.dll">
              <data self-branded="{@SelfBranded}" topic-version="{@TopicVersion}" toc-file="toc.xml"
                toc-parent="{@ApiTocParentId}" toc-parent-version="{@TocParentVersion}" locale="{@Locale}" />
            </component>

            <!-- Save the result -->
            <component type="Microsoft.Ddue.Tools.SaveComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
                <save base="Output\MSHelpViewer\html" path="concat(/html/head/meta[@name='file']/@content,'.htm')" indent="{@IndentHtml}"
                  omit-xml-declaration="false" add-xhtml-namespace="true" />
            </component>
          </helpOutput>

          <!-- This defines the set of components for websites -->
          <helpOutput format="Website">
            <!-- Resolve shared content -->
            <component type="Microsoft.Ddue.Tools.SharedContentComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
                <content file="{@PresentationPath}content\{@LanguageFolder}shared_content.xml" />
                <content file="{@PresentationPath}content\{@LanguageFolder}reference_content.xml" />
                <content file="{@SandcastlePath}Presentation\Shared\content\{@LanguageFolder}syntax_content.xml" />
                <!-- These must be last in order to override other elements! -->
                <content file="SharedBuilderContent.xml" />
                <content file="PresentationStyleBuilderContent.xml" />
{@ResourceItemFiles}
            </component>

            <!-- Resolve reference links -->
            <component type="Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2"
              assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll"
              locale="{@Locale}" linkTarget="{@SdkLinkTarget}">
                <targets base="{@SandcastlePath}Data\Reflection" recurse="true" files="*.xml" type="{@WebsiteSdkLinkType}" />
                <targets files="reflection.xml" type="Local" />
            </component>

            <!-- Save the result -->
            <component type="Microsoft.Ddue.Tools.SaveComponent" assembly="{@SandcastlePath}ProductionTools\BuildComponents.dll">
                <save base="Output\Website\html" path="concat(/html/head/meta[@name='file']/@content,'.htm')" indent="{@IndentHtml}"
                  omit-xml-declaration="true" add-xhtml-namespace="false" />
            </component>
          </helpOutput>
        </component>

      </components>
    </builder>
  </dduetools>
</configuration>
