Ejemplo n.º 1
0
        public void GenerateArgumentNullTest1()
        {
            var prefs = CreatePreferenceSet();

             var markupGenerator = new MarkupGenerator(prefs);
             markupGenerator.Generate(null);
        }
        private void btnGenerateMarkup_Click(object sender, RoutedEventArgs e)
        {
            if (txtDocumentName.Text != String.Empty)
            {
                StreamWriter writer = new StreamWriter(txtSavePath.Text);
                if ((bool)rbtnHTML.IsChecked)
                {
                    generator = new HTMLGenerator();
                    if (txtHeaderTextPath.Text != "" && txtFooterTextPath.Text != "")
                    {
                        ((HTMLGenerator)generator).generateMarkup(txtDocumentName.Text, txtHeaderTextPath.Text, txtFooterTextPath.Text, txtDocumentTitle.Text);
                    }
                    else
                    {
                        ((HTMLGenerator)generator).generateMarkup(txtDocumentName.Text);
                    }

                    System.Diagnostics.Process.Start(txtSavePath.Text);
                }
                else if ((bool)rbtnMarkDown.IsChecked)
                {
                    generator = new MarkdownGenerator();
                    generator.generateMarkup(txtDocumentName.Text);
                }
                writer.Write(generator.docText.ToString());
                writer.Close();
                MessageBox.Show("File Generation Complete");
            }
        }
Ejemplo n.º 3
0
        public void GenerateArgumentNullTest1()
        {
            var prefs = CreatePreferenceSet();

            var markupGenerator = new MarkupGenerator(prefs);

            Assert.Throws(typeof(ArgumentNullException), () => markupGenerator.Generate(null));
        }
Ejemplo n.º 4
0
        public void DontGenerateTest()
        {
            IPreferenceSet prefs = CreatePreferenceSet();
             prefs.Stub(x => x.Get<bool>(Preference.WebGenCopyXml)).Return(false);
             prefs.Stub(x => x.Get<bool>(Preference.WebGenCopyHtml)).Return(false);

             IEnumerable<SlotModel> slots = CreateSlotModelCollection();
             var markupGenerator = new MarkupGenerator(prefs);
             markupGenerator.Generate(slots);

             Assert.IsNull(markupGenerator.XmlFilePaths);
             Assert.IsNull(markupGenerator.HtmlFilePaths);
        }
Ejemplo n.º 5
0
        public void DontGenerateTest()
        {
            IPreferenceSet prefs = CreatePreferenceSet();

            prefs.Stub(x => x.Get <bool>(Preference.WebGenCopyXml)).Return(false);
            prefs.Stub(x => x.Get <bool>(Preference.WebGenCopyHtml)).Return(false);

            var slots           = CreateSlotModelCollection();
            var markupGenerator = new MarkupGenerator(prefs);

            markupGenerator.Generate(slots);

            Assert.IsNull(markupGenerator.XmlFilePaths);
            Assert.IsNull(markupGenerator.HtmlFilePaths);
        }
Ejemplo n.º 6
0
        public void GenerateHtmlTest()
        {
            IPreferenceSet prefs = CreatePreferenceSet();
             IEnumerable<SlotModel> slots = CreateSlotModelCollection();

             var markupGenerator = new MarkupGenerator(prefs);
             markupGenerator.GenerateHtml(slots);

             Assert.AreEqual(6, markupGenerator.HtmlFilePaths.Count());
             Assert.AreEqual(Path.Combine(Path.GetTempPath(), "index.html"), markupGenerator.HtmlFilePaths.ElementAt(0));
             Assert.AreEqual(Path.Combine(Path.GetTempPath(), "mobile.html"), markupGenerator.HtmlFilePaths.ElementAt(1));
             Assert.AreEqual(Path.Combine(Path.GetTempPath(), "summary.html"), markupGenerator.HtmlFilePaths.ElementAt(2));
             Assert.AreEqual(Path.Combine(Path.GetTempPath(), "mobilesummary.html"), markupGenerator.HtmlFilePaths.ElementAt(3));
             Assert.AreEqual(Path.Combine(Path.GetTempPath(), "Test2.html"), markupGenerator.HtmlFilePaths.ElementAt(4));
             Assert.AreEqual(Path.Combine(Path.GetTempPath(), "Test1.html"), markupGenerator.HtmlFilePaths.ElementAt(5));
        }
Ejemplo n.º 7
0
        public void GenerateXmlTest()
        {
            IPreferenceSet prefs = CreatePreferenceSet();
            var            slots = CreateSlotModelCollection();

            var markupGenerator = new MarkupGenerator(prefs);

            markupGenerator.GenerateXml(slots);

            string folderPath = Path.Combine(Path.GetTempPath(), "hfm-" + Environment.UserName);

            Assert.AreEqual(3, markupGenerator.XmlFilePaths.Count());
            Assert.AreEqual(Path.Combine(folderPath, "SlotSummary.xml"), markupGenerator.XmlFilePaths.ElementAt(0));
            Assert.AreEqual(Path.Combine(folderPath, "Test2.xml"), markupGenerator.XmlFilePaths.ElementAt(1));
            Assert.AreEqual(Path.Combine(folderPath, "Test1.xml"), markupGenerator.XmlFilePaths.ElementAt(2));
        }
Ejemplo n.º 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="searchModel">The search model to be output as metatags</param>
        /// <param name="onlyShowIfCrawlerOrDebug">Only output the metatags if the request is from the crawler or the application is in debug mode.</param>
        /// <returns></returns>
        public static string OutputMetaFor(SearchModelBase searchModel, bool onlyShowIfCrawlerOrDebug = true)
        {
            if (searchModel == null)
            {
                return("<!-- Searchmodel was null -->");
            }

            if (onlyShowIfCrawlerOrDebug && !HttpContext.Current.Request.IsSeekitCrawler() && !HttpContext.Current.IsDebuggingEnabled)
            {
                return(string.Empty);
            }

            var generator = new MarkupGenerator();

            return(generator.GenerateMetaTags(searchModel));
        }
Ejemplo n.º 9
0
        public void GenerateXmlTest()
        {
            IPreferenceSet prefs = CreatePreferenceSet();
             IEnumerable<SlotModel> slots = CreateSlotModelCollection();

             var markupGenerator = new MarkupGenerator(prefs);
             markupGenerator.GenerateXml(slots);

             Assert.AreEqual(3, markupGenerator.XmlFilePaths.Count());
             Assert.AreEqual(Path.Combine(Path.GetTempPath(), "SlotSummary.xml"), markupGenerator.XmlFilePaths.ElementAt(0));
             Assert.AreEqual(Path.Combine(Path.GetTempPath(), "Test2.xml"), markupGenerator.XmlFilePaths.ElementAt(1));
             Assert.AreEqual(Path.Combine(Path.GetTempPath(), "Test1.xml"), markupGenerator.XmlFilePaths.ElementAt(2));
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Runs the documentation building logic
        /// </summary>
        /// <param name="projectFile">Project file of C# project to build the documentation for</param>
        /// <returns>Async task</returns>
        public async Task RunAsync(string projectFile)
        {
            if (string.IsNullOrEmpty(projectFile))
            {
                throw new ArgumentNullException(nameof(projectFile));
            }
            if (!File.Exists(projectFile))
            {
                throw new ArgumentException($"Project file {projectFile} doesn't exist");
            }

            var projectDir = new FileInfo(projectFile).DirectoryName;

            if (projectDir == null)
            {
                throw new Exception($"Can't get the project directory from {projectFile}");
            }

            //Read MS API local documentation to get the links to MS API online documentation
            MsApiDocEngine.ReadLocalDoc();

            //Prepare add-ons
            var addOns = GetAddOns();

            //Build code model
            var root = await ModelBuilder.BuildFromProjectSourcesAsync(projectFile, addOns);

            //Prepare for the output
            var targetBase = OutputOptions.Target; //full name w/o extension

            if (string.IsNullOrEmpty(targetBase))
            {
                targetBase = Path.Combine(projectDir, "doc");                                   //if not set, proj dir will be used and file doc.html/doc.md
            }
            var targetDir      = new FileInfo(targetBase).DirectoryName;
            var targetFileBase = new FileInfo(targetBase).Name;

            if (OutputOptions.SplitNs)
            {
                root.ProcessingInfo.SplitFileType = SplitTypeEnum.Namespace;
            }
            if (OutputOptions.SplitType)
            {
                root.ProcessingInfo.SplitFileType = SplitTypeEnum.Type;
            }

            root.ProcessingInfo.BaseMainFile = targetFileBase;

            //Generate markup outputs
            if (OutputOptions.Markdown)
            {
                var writer = new MarkupGenerator(
                    // ReSharper disable once AssignNullToNotNullAttribute
                    Path.Combine(targetDir, $"{targetFileBase}.{OutputOptions.MarkdownExtension}"), root,
                    new MarkdownMarkupProvider(OutputOptions));
                await writer.WriteModelAsync(OutputOptions.Title);
            }

            if (OutputOptions.Html)
            {
                var writer = new MarkupGenerator(
                    // ReSharper disable once AssignNullToNotNullAttribute
                    Path.Combine(targetDir, $"{targetFileBase}.{OutputOptions.HtmlExtension}"), root,
                    new HtmlMarkupProvider(OutputOptions));

                await writer.WriteModelAsync(OutputOptions.Title);
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Writes the source-only packages pages into the output
        /// </summary>
        /// <param name="root">Code model root</param>
        /// <param name="markup">Markup provider</param>
        /// <param name="generator">Markup generator</param>
        /// <returns>Async task</returns>
        public async Task WriteOwnPagesAsync(RootMember root, IMarkupProvider markup, MarkupGenerator generator)
        {
            if (SourceOnlyPackages == null || SourceOnlyPackages.Count < 1)
            {
                return;
            }

            if (OutputOptions.SplitNs && !OutputOptions.SplitType)
            {
                //split by Ns only -> all source only packages will be on single page
                await generator.SplitAsync(GetPackagePagesFileName());
            }
            foreach (var nuProps in SourceOnlyPackages.OrderBy(p => p.PackageId))
            {
                if (OutputOptions.SplitType)
                {
                    //split by Type -> each source only packages will be on dedicated page
                    await generator.SplitAsync(GetPackagePageFileName(nuProps));
                }

                await markup.WriteH2Async($"{nuProps.PackageId} Source only package", GetPackageAnchor(nuProps));

                await markup.WriteParaAsync(
                    markup.Small(
                        new Txt()
                        .AddIf($"Version: {nuProps.PackageVersion}", !string.IsNullOrEmpty(nuProps.PackageVersion))
                        .AddIf(markup.LineBreak(), !string.IsNullOrEmpty(nuProps.PackageVersion))
                        .AddIf($"Tags: {nuProps.PackageTags}", !string.IsNullOrEmpty(nuProps.PackageTags))
                        .AddIf(markup.LineBreak(), !string.IsNullOrEmpty(nuProps.PackageTags))
                        .Add($"Includes: {nuProps.IncludesType}")
                        .Add(markup.LineBreak())
                        .Add($"Declaring file: { PathUtils.GetRelativeSourceFile(nuProps.DeclaringFile,root.ProjectRootDir)}")
                        ));

                await markup.WriteParaAsync(nuProps.PackageDescription);

                if (nuProps.Usings != null && nuProps.Usings.Count > 0)
                {
                    await markup.WriteParaAsync(new Txt()
                                                .Add(markup.Bold("Usings"))
                                                .Add(markup.DescriptionList(
                                                         u =>
                    {
                        var refPkg = SourceOnlyPackages.FirstOrDefault(p => p.PackageId == u.PackageId);
                        return(refPkg == null ? u.PackageId : Link(u.PackageId, refPkg, markup));
                    },
                                                         u => string.IsNullOrEmpty(u.PackageVersion) ? string.Empty : $"version: {u.PackageVersion}",
                                                         nuProps.Usings)));
                }

                if (nuProps.ExternalReferences != null && nuProps.ExternalReferences.Count > 0)
                {
                    await markup.WriteParaAsync(new Txt()
                                                .Add(markup.Bold("References needed"))
                                                .Add(markup.DescriptionList(
                                                         er => er,
                                                         er => string.Empty,
                                                         nuProps.ExternalReferences)));
                }

                if (nuProps.PackageRemarksSource != null &&
                    root.AllMembersByDocId.TryGetValue(nuProps.PackageRemarksSource, out var member))
                {
                    var remarksDocumentation = member.Documentation?.GetRemarks(member)?.Render(markup, member);
                    if (!string.IsNullOrEmpty(remarksDocumentation))
                    {
                        await markup.WriteH3Async("Remarks");

                        await markup.WriteParaAsync(remarksDocumentation);
                    }
                }

                if (MembersBySourceOnlyPackage.TryGetValue(nuProps, out var members) && members.Count > 0)
                {
                    await markup.WriteParaAsync(new Txt()
                                                .Add(markup.Bold("Package members"))
                                                .Add(markup.DescriptionList(
                                                         m => markup.Link($"{m.Name} ({m.MemberKind})", m),
                                                         m => m.Documentation?.GetSummary(m)?.Render(markup, m),
                                                         members)));
                }
                await markup.WriteParaAsync(new Txt()
                                            .Add(markup.Bold("Sources"))
                                            .Add(markup.DescriptionList(
                                                     f => $"{PathUtils.GetRelativeSourceFile(f,root.ProjectRootDir)}",
                                                     f => string.Empty,
                                                     nuProps.PackageFiles)));

                await generator.WritePageFooterAsync();
            }
        }
Ejemplo n.º 12
0
        public override void mode_started()
        {
            // Lamp show
            change_lampshow();

            Game.score_display.layer.enabled = false;

            Animation anim = new Animation().load(@"animations\williams_animated.dmd");

            this.williams_logo = new AnimatedLayer(false, true, false, 1, anim.frames.ToArray());

            anim           = new Animation().load(@"animations\ballcross.dmd");
            this.ballcross = new AnimatedLayer(false, true, false, 1, anim.frames.ToArray());

            anim         = new Animation().load(@"animations\dm_logo.dmd");
            this.dm_logo = new AnimatedLayer(false, true, false, 1, anim.frames.ToArray());

            anim          = new Animation().load(@"animations\pcc_logo.dmd");
            this.pcc_logo = new AnimatedLayer(false, true, false, 1, anim.frames.ToArray());

            anim             = new Animation().load(@"animations\github_fork.dmd");
            this.github_logo = new AnimatedLayer(false, true, false, 1, anim.frames.ToArray());

            presents_layer = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font09Bx7.dmd"), FontJustify.Center, true);
            presents_layer.set_text("PRESENTS");
            //testfontlayer_04B37 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("04B-03-7px.dmd"), FontJustify.Center, true);
            //testfontlayer_07x4 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font07x4.dmd"), FontJustify.Center, true);
            //testfontlayer_07x5 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font07x5.dmd"), FontJustify.Center, true);
            //testfontlayer_09Bx7 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font09Bx7.dmd"), FontJustify.Center, true);
            //testfontlayer_09x5 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font09x5.dmd"), FontJustify.Center, true);
            //testfontlayer_09x6 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font09x6.dmd"), FontJustify.Center, true);
            //testfontlayer_09x7 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font09x7.dmd"), FontJustify.Center, true);
            //testfontlayer_14x10 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font14x10.dmd"), FontJustify.Center, true);
            //testfontlayer_14x8 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font14x8.dmd"), FontJustify.Center, true);
            //testfontlayer_14x9 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font14x9.dmd"), FontJustify.Center, true);
            //testfontlayer_18x10 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font18x10.dmd"), FontJustify.Center, true);
            //testfontlayer_18x11 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font18x11.dmd"), FontJustify.Center, true);
            //testfontlayer_18x12 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font18x12.dmd"), FontJustify.Center, true);
            //testfontlayer_eurostile = new TextLayer(128 / 2, 0, FontManager.instance.font_named("eurostile.dmd"), FontJustify.Center, true);

            //testfontlayer_04B37.set_text("FONT04B037");
            //testfontlayer_07x4.set_text("FONT07x4");
            //testfontlayer_07x5.set_text("FONT07x5");
            //testfontlayer_09Bx7.set_text("FONT09Bx7");
            //testfontlayer_09x5.set_text("FONT09x5");
            //testfontlayer_09x6.set_text("FONT09x6");
            //testfontlayer_09x7.set_text("FONT09x7");
            //testfontlayer_14x10.set_text("FONT14x10");
            //testfontlayer_14x8.set_text("FONT14x8");
            //testfontlayer_14x9.set_text("FONT14x9");
            //testfontlayer_18x10.set_text("FONT18x10");
            //testfontlayer_18x11.set_text("FONT18x11");
            //testfontlayer_18x12.set_text("FONT18x12");
            //testfontlayer_eurostile.set_text("Eurostile 123");

            MarkupGenerator gen = new MarkupGenerator();

            gen.font_plain = FontManager.instance.font_named("Font09x7.dmd");
            gen.font_bold  = FontManager.instance.font_named("Font09Bx7.dmd");

            Frame credits_frame = gen.frame_for_markup(@"

[CREDITS]

[Game Rules and Coding]
[Jimmy Lipham]

[Special Thanks]
[Gerry Stellenberg]
[Adam Preble]");

            this.credits_layer = new PanningLayer(128, 32, credits_frame, new Pair <int, int>(0, 0),
                                                  new Pair <int, int>(0, 1), false);
            this.credits_layer.composite_op = DMDBlendMode.DMDBlendModeCopy;

            List <Pair <int, Layer> > script = new List <Pair <int, Layer> >();

            script.Add(new Pair <int, Layer>(7, williams_logo));
            script.Add(new Pair <int, Layer>(4, presents_layer));
            script.Add(new Pair <int, Layer>(10, dm_logo));
            script.Add(new Pair <int, Layer>(1, ballcross));
            script.Add(new Pair <int, Layer>(5, pcc_logo));
            script.Add(new Pair <int, Layer>(5, github_logo));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_eurostile));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_04B37));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_07x4));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_07x5));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_09Bx7));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_09x5));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_09x6));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_09x7));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_14x10));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_14x8));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_14x9));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_18x10));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_18x11));
            //script.Add(new Pair<int, Layer>(5, testfontlayer_18x12));
            //script.Add(new Pair<int,Layer>(30, credits_layer));

            this.layer = new ScriptedLayer(128, 32, script);

            // Blinky start button
            Game.Lamps["startButton"].Schedule(0x00ff00ff, 0, false);
        }
Ejemplo n.º 13
0
      public void GenerateArgumentNullTest1()
      {
         var prefs = CreatePreferenceSet();

         var markupGenerator = new MarkupGenerator(prefs);
         Assert.Throws(typeof(ArgumentNullException), () => markupGenerator.Generate(null));
      }