CodeBlockComponent Class

This build component is used to search for <code> XML comment tags and colorize the code within them. It can also include code from an external file or a region within the file.

Definition

Namespace: Sandcastle.Tools.BuildComponents
Assembly: Sandcastle.Tools.BuildComponents (in Sandcastle.Tools.BuildComponents.dll) Version: 2024.12.21.0
public class CodeBlockComponent : BuildComponentCore
Inheritance
Object    BuildComponentCore    CodeBlockComponent

Remarks

The colorizer files are only copied once and only if code is actually colorized. If the files already exist (i.e. additional content has replaced them), they are not copied either. That way, you can customize the color style sheet as you see fit without modifying the default style sheet.

Example

Example configuration
<!-- Code block component configuration.  This must appear before
     the TransformComponent. -->
<component id="Code Block Component">
    <!-- Base path for relative filenames in source
         attributes (optional). -->
    <basePath value="..\SandcastleComponents" />

    <!-- Base output paths for the files (required).  These should
         match the parent folder of the output path of the HTML files
         used in the SaveComponent instances. -->
    <outputPaths>
      <path value="Output\HtmlHelp1\" />
      <path value="Output\MSHelpViewer\" />
      <path value="Output\Website\" />
    </outputPaths>

    <!-- 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 sheet file (required)
        CSS style sheet file (required)
        Script file (required)
        Disabled (optional, leading whitespace normalization only)
        Default language (optional)
        Enable line numbering (optional)
        Enable outlining (optional)
        Keep XML comment "see" tags within the code (optional)
        Tab size for unknown languages (optional, 0 = use default)
        Use language name as default title (optional) -->
    <colorizer syntaxFile="highlight.xml" styleFile="highlight.xsl"
      stylesheet="highlight.css" scriptFile="highlight.js"
      disabled="false" language="cs" numberLines="false" outlining="false"
      keepSeeTags="false" tabSize="0" defaultTitle="true" />
</component>
Examples as used in XML comments.
<example>
A basic code block that uses the configuration defaults:
<code>
/// Code to colorize
</code>

Override options with block-specific options:
<code language="xml" numberLines="true" outlining="false" tabSize="8" >
    &lt;XmlTags/&gt;
</code>

An entire external file or a delimited region from it can be
included.  This allows you to compile your example code externally
to ensure that it is still valid and saves you from maintaining it
in two places.

Retrieve all code from an external file.  Use VB.NET syntax.
<code source="..\Examples\WholeDemo.vb" language="vbnet"/>

Retrieve a specific #region from an external file.
<code source="..\Examples\SeveralExamples.vb"
    region="Example 1" language="vbnet"/>

Keep <see> tags within comments so that they are converted to
links to the help topics.
<code keepSeeTags="true">
int x = this.<see cref="CountStuff">CountStuff</see>(true);

string value = this.<see cref="System.Object.ToString">
<code>

<example>

Constructors

CodeBlockComponent Constructor

Properties

BuildAssembler This read-only property returns a reference to the build assembler instance using the component
(Inherited from BuildComponentCore)
GroupId This is used to set an optional group ID for use with component events
(Inherited from BuildComponentCore)

Methods

Apply This is implemented to perform the code colorization.
(Overrides BuildComponentCoreApply(XmlDocument, String))
Dispose This implements the Dispose() interface to properly dispose of the build component.
(Inherited from BuildComponentCore)
Dispose(Boolean) At disposal, copy the script and style files if any topics with code blocks were encountered
(Overrides BuildComponentCoreDispose(Boolean))
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Finalize This handles garbage collection to ensure proper disposal of the build component if not done explicitly with Dispose.
(Inherited from BuildComponentCore)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets the Type of the current instance.
(Inherited from Object)
Initialize This abstract method must be overridden to initialize the component
(Overrides BuildComponentCoreInitialize(XPathNavigator))
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
OnComponentEvent This can be used to raise the ComponentEvent event with the specified event arguments.
(Inherited from BuildComponentCore)
ToStringReturns a string that represents the current object.
(Inherited from Object)
WriteMessage(MessageLevel, String, Object) This can be used to report a message
(Inherited from BuildComponentCore)
WriteMessage(String, MessageLevel, String, Object) This can be used to report a message for a specific topic ID
(Inherited from BuildComponentCore)

See Also