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"); } }
public void GenerateArgumentNullTest1() { var prefs = CreatePreferenceSet(); var markupGenerator = new MarkupGenerator(prefs); Assert.Throws(typeof(ArgumentNullException), () => markupGenerator.Generate(null)); }
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); }
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); }
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)); }
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)); }
/// <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)); }
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)); }
/// <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); } }
/// <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(); } }
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); }