Ejemplo n.º 1
0
        private static void TestOthers(BuildDocumenter documenter,
                                       TestOptions options)
        {
            string helpRegisterDir = Path.Combine(sampleDir, @"SampleRegisterTopics\");

            // Prepare the documents and project file paths
            //string projectFile  = Path.Combine(helpRegisterDir, "Topics.xml");
            string projectFile  = Path.Combine(helpRegisterDir, "Topics.sandtopics");
            string documentsDir = Path.Combine(helpRegisterDir, "Documents");

            // First add the conceptual contents for the topics...
            ConceptualGroup registerGroup = new ConceptualGroup(
                "HelpRegister User Manual", TestGroupIds.RegisterTopicsGroupId);

            registerGroup.RunningHeaderText = "Sandcastle HelpRegister: User Manual";
            registerGroup.CreateContent(documentsDir, projectFile);
            string       mediaLinks   = Path.Combine(helpRegisterDir, "MediaContent.media");
            MediaContent mediaContent = new MediaContent(mediaLinks,
                                                         Path.Combine(helpRegisterDir, "Media"));

            //mediaContent.Load();
            registerGroup.AddMedia(mediaContent);

            ConceptualContent content = registerGroup.Content;

            registerGroup.ContentFile = new BuildFilePath(Path.Combine(workingDir,
                                                                       "OtherConceptual" + BuildFileExts.ConceptualGroupExt));

            content.ContentFile = new BuildFilePath(Path.Combine(workingDir,
                                                                 "OtherConceptual" + BuildFileExts.ConceptualContentExt));

            documenter.AddGroup(registerGroup);
        }
Ejemplo n.º 2
0
        private static void TestMain(BuildDocumenter documenter,
                                     TestOptions options)
        {
            string helpTestDir = Path.Combine(sampleDir, @"SampleTopics\");

            // Prepare the documents and project file paths
            //string projectFile = Path.Combine(helpTestDir, "Topics.xml");
            string projectFile  = Path.Combine(helpTestDir, "Topics.sandtopics");
            string documentsDir = Path.Combine(helpTestDir, "Documents");

            // First add the conceptual contents for the topics...
            ConceptualGroup testsGroup = new ConceptualGroup(
                "Test Topics", TestGroupIds.SampleTopicsGroupId);

            testsGroup.ChangeHistory     = ConceptualChangeHistory.ShowFreshnessDate;
            testsGroup.RunningHeaderText = "Sandcastle Helpers: Test Topics";
            testsGroup.CreateContent(documentsDir, projectFile);
            string       mediaLinks   = Path.Combine(helpTestDir, "MediaContent.media");
            MediaContent mediaContent = new MediaContent(mediaLinks,
                                                         Path.Combine(helpTestDir, "Media"));

            //mediaContent.Load();
            testsGroup.AddMedia(mediaContent);

            testsGroup.AddSnippet(new CodeSnippetContent(Path.Combine(
                                                             helpTestDir, "CodeSnippetSample.snippets")));

            ConceptualContent content = testsGroup.Content;

            testsGroup.ContentFile = new BuildFilePath(Path.Combine(workingDir,
                                                                    "MainConceptual" + BuildFileExts.ConceptualGroupExt));

            content.ContentFile = new BuildFilePath(Path.Combine(workingDir,
                                                                 "MainConceptual" + BuildFileExts.ConceptualContentExt));

            documenter.AddGroup(testsGroup);
        }
Ejemplo n.º 3
0
        protected override bool OnExecute(BuildContext context)
        {
            BuildLogger logger = context.Logger;

            BuildGroupContext groupContext = context.GroupContexts[_group.Id];

            if (groupContext == null)
            {
                throw new BuildException(
                          "The group context is not provided, and it is required by the build system.");
            }

            if (_group == null)
            {
                if (logger != null)
                {
                    logger.WriteLine("StepConceptualInit: No conceptual group is attached to this step.",
                                     BuildLoggerLevel.Error);
                }

                return(false);
            }
            if (!_group.IsInitialized)
            {
                if (logger != null)
                {
                    logger.WriteLine("StepConceptualInit: The attached conceptual group is not initialized.",
                                     BuildLoggerLevel.Error);
                }

                return(false);
            }

            ConceptualContent content = _group.Content;
            bool outputTopics         = true;
            bool applyVisitors        = true;

            string tempText = groupContext["$OutputTopics"];

            if (!String.IsNullOrEmpty(tempText))
            {
                outputTopics = Convert.ToBoolean(tempText);
            }
            tempText = groupContext["$ApplyVisitors"];
            if (!String.IsNullOrEmpty(tempText))
            {
                applyVisitors = Convert.ToBoolean(tempText);
            }

            // Make sure the require directories are all created...
            string workingDir = context.WorkingDirectory;

            string ddueXmlDir  = Path.Combine(workingDir, groupContext["$DdueXmlDir"]);
            string ddueCompDir = Path.Combine(workingDir, groupContext["$DdueXmlCompDir"]);
            string ddueHtmlDir = Path.Combine(workingDir, groupContext["$DdueHtmlDir"]);

            if (!Directory.Exists(ddueXmlDir))
            {
                Directory.CreateDirectory(ddueXmlDir);
            }
            if (!Directory.Exists(ddueCompDir))
            {
                Directory.CreateDirectory(ddueCompDir);
            }
            if (!Directory.Exists(ddueHtmlDir))
            {
                Directory.CreateDirectory(ddueHtmlDir);
            }

            // Some content sources will directly generate the project files
            // required for the conceptual help compilation and will not required
            // the default visitors to be applies.
            // Apply the visitors to create the project/supporting files...
            if (applyVisitors || outputTopics)
            {
                ConceptualProjectVisitor projVisitor = new ConceptualProjectVisitor();

                projVisitor.ApplyAdapters = applyVisitors;
                projVisitor.OutputTopics  = outputTopics;

                projVisitor.Initialize(context);
                projVisitor.Visit(_group);
                projVisitor.Uninitialize();
                projVisitor.Dispose();
            }

            // Finally, write out the conceptual project settings...
            this.WriteSettings(groupContext);

            return(true);
        }