/// <summary>
        /// This specifies the token items used by the conceptual topics.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        protected void OnTokensReplacedItem(string keyword, XPathNavigator navigator)
        {
            if (_group == null)
            {
                throw new BuildException(
                          "There is not build group to provide the media/arts contents.");
            }

            bool replaceTokens = true;

            ConceptualPreTransConfiguration preTrans = _engineSettings.PreTrans;

            if (preTrans != null && preTrans.ResolveTokens)
            {
                replaceTokens = false;
            }

            if (replaceTokens)
            {
                XmlWriter xmlWriter = navigator.InsertAfter();

                // <replace elements="/*//ddue:token[text()!='autoOutline']" item="string(.)" />
                xmlWriter.WriteStartElement("replace");
                xmlWriter.WriteAttributeString("elements", @"/*//ddue:token[text()!='autoOutline']");
                xmlWriter.WriteAttributeString("item", "string(.)");
                xmlWriter.WriteEndElement();

                xmlWriter.Close();
            }

            navigator.DeleteSelf();
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConceptualPreTransConfiguration"/> class
 /// with parameters copied from the specified instance of the
 /// <see cref="ConceptualPreTransConfiguration"/> class, a copy constructor.
 /// </summary>
 /// <param name="source">
 /// An instance of the <see cref="ConceptualPreTransConfiguration"/> class from which the
 /// initialization parameters or values will be copied.
 /// </param>
 /// <exception cref="ArgumentNullException">
 /// If the parameter <paramref name="source"/> is <see langword="null"/>.
 /// </exception>
 public ConceptualPreTransConfiguration(
     ConceptualPreTransConfiguration source)
     : base(source)
 {
     _resolveTokens         = source._resolveTokens;
     _outlineTokens         = source._outlineTokens;
     _outlineDepth          = source._outlineDepth;
     _lineBreakTokens       = source._lineBreakTokens;
     _tableIconColumnTokens = source._tableIconColumnTokens;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ConceptualEngineSettings"/> class
        /// with the default parameters.
        /// </summary>
        public ConceptualEngineSettings()
            : base("Sandcastle.Conceptual.ConceptualEngineSettings", BuildEngineType.Conceptual)
        {
            IBuildNamedList <BuildComponentConfiguration> componentConfigurations
                = this.ComponentConfigurations;

            if (componentConfigurations != null)
            {
                ConceptualPreTransConfiguration preTrans =
                    new ConceptualPreTransConfiguration();

                ConceptualIntelliSenseConfiguration intelliSense =
                    new ConceptualIntelliSenseConfiguration();

                ConceptualCloneConfiguration cloneDocument =
                    new ConceptualCloneConfiguration();

                ConceptualPostTransConfiguration postTrans =
                    new ConceptualPostTransConfiguration();

                ConceptualCodeConfiguration codeComponent =
                    new ConceptualCodeConfiguration();

                ConceptualMathConfiguration mathComponent =
                    new ConceptualMathConfiguration();

                ConceptualMediaConfiguration mediaComponent =
                    new ConceptualMediaConfiguration();

                ConceptualLinkConfiguration topicLinkComponent =
                    new ConceptualLinkConfiguration();

                ConceptualReferenceLinkConfiguration referenceLinkComponent =
                    new ConceptualReferenceLinkConfiguration();

                ConceptualSharedConfiguration sharedComponent =
                    new ConceptualSharedConfiguration();

                componentConfigurations.Add(preTrans);
                componentConfigurations.Add(intelliSense);
                componentConfigurations.Add(codeComponent);
                componentConfigurations.Add(mathComponent);
                componentConfigurations.Add(mediaComponent);
                componentConfigurations.Add(postTrans);
                componentConfigurations.Add(cloneDocument);
                componentConfigurations.Add(topicLinkComponent);
                componentConfigurations.Add(referenceLinkComponent);
                componentConfigurations.Add(sharedComponent);
            }
        }
        /// <summary>
        /// This creates a new build object that is a deep copy of the current
        /// instance.
        /// </summary>
        /// <returns>
        /// A new build object that is a deep copy of this instance.
        /// </returns>
        public override BuildComponentConfiguration Clone()
        {
            ConceptualPreTransConfiguration options = new ConceptualPreTransConfiguration(this);

            return(options);
        }