public Program() { var option = DocfxFlavoredMarked.CreateDefaultOptions(); option.LegacyMode = true; _builder = new DfmEngineBuilder(option); }
public DfmService( DfmServiceProvider provider, string baseDir, string templateDir, ICompositionContainer container, ImmutableDictionary <string, string> tokens, IReadOnlyList <string> fallbackFolders, IReadOnlyDictionary <string, object> parameters) { var options = DocfxFlavoredMarked.CreateDefaultOptions(); options.LegacyMode = provider.LegacyMode; options.ShouldFixId = provider.ShouldFixId; options.ShouldExportSourceInfo = true; _builder = new DfmEngineBuilder( options, baseDir, templateDir, fallbackFolders, container); _builder.TokenTreeValidator = MarkdownTokenTreeValidatorFactory.Combine(provider.TokenTreeValidator); _tokens = tokens; _renderer = CustomizedRendererCreator.CreateRenderer(new DfmRenderer { Tokens = _tokens }, provider.DfmRendererPartProviders, parameters); foreach (var c in provider.DfmEngineCustomizers) { c.Customize(_builder, parameters); } _incrementalContextHash = ComputeIncrementalContextHash(baseDir, templateDir, provider.TokenTreeValidator, parameters); }
public void Customize(DfmEngineBuilder builder, IReadOnlyDictionary <string, object> parameters) { var index = builder.BlockRules.FindIndex(r => r is MarkdownHeadingBlockRule); builder.BlockRules = builder.BlockRules.Insert( index, new ImageComparisonBlockRule()); }
private MarkdownMigrateTool(string rendererName) { var option = DocfxFlavoredMarked.CreateDefaultOptions(); option.LegacyMode = true; _builder = new DfmEngineBuilder(option); _render = InitRenderer(rendererName); }
public DfmService(string baseDir, string templateDir, ImmutableDictionary <string, string> tokens, IEnumerable <IMarkdownTokenTreeValidator> tokenTreeValidator, IReadOnlyList <string> fallbackFolders = null) { var options = DocfxFlavoredMarked.CreateDefaultOptions(); _builder = DocfxFlavoredMarked.CreateBuilder(baseDir, templateDir, options, fallbackFolders); _builder.TokenTreeValidator = MarkdownTokenTreeValidatorFactory.Combine(tokenTreeValidator); _renderer = new YamlHeaderMarkdownRenderer(); }
public DfmService(string baseDir, string templateDir, ImmutableDictionary <string, string> tokens, IMarkdownTokenTreeValidator tokenTreeValidator, IReadOnlyList <string> fallbackFolders = null) { var options = DocfxFlavoredMarked.CreateDefaultOptions(); options.ShouldExportSourceInfo = true; _builder = DocfxFlavoredMarked.CreateBuilder(baseDir, templateDir, options, fallbackFolders); _builder.TokenTreeValidator = tokenTreeValidator; _tokens = tokens; }
static DfmPreview() { var option = DocfxFlavoredMarked.CreateDefaultOptions(); option.LegacyMode = true; var builder = new DfmEngineBuilder(option); _engine = builder.CreateDfmEngine(new DfmRenderer()); }
public MarkdigMarkdownRewritersTests() { var option = DocfxFlavoredMarked.CreateDefaultOptions(); option.LegacyMode = true; var builder = new DfmEngineBuilder(option); _engine = builder.CreateDfmEngine(new MarkdigMarkdownRenderer()); }
public void TestDfmTagValidate() { var builder = new DfmEngineBuilder(new Options() { Mangle = false }); var mrb = new MarkdownValidatorBuilder( new ContainerConfiguration() .WithAssembly(typeof(DocfxFlavoredMarkdownTest).Assembly) .CreateContainer()); mrb.AddTagValidators(new[] { new MarkdownTagValidationRule { TagNames = new List <string> { "em", "div" }, MessageFormatter = "Invalid tag({0})!", Behavior = TagValidationBehavior.Error, OpeningTagOnly = true, }, new MarkdownTagValidationRule { TagNames = new List <string> { "h1" }, MessageFormatter = "Warning tag({0})!", Behavior = TagValidationBehavior.Warning, }, }); mrb.AddValidators(new[] { new MarkdownValidationRule { ContractName = HtmlMarkdownTokenValidatorProvider.ContractName, } }); builder.Rewriter = mrb.CreateRewriter(); var engine = builder.CreateDfmEngine(new DfmRenderer()); var listener = new TestLoggerListener("test!!!!" + "." + MarkdownValidatorBuilder.MarkdownValidatePhaseName); Logger.RegisterListener(listener); string result; using (new LoggerPhaseScope("test!!!!")) { result = engine.Markup(@"<div><i>x</i><EM>y</EM><h1>z</h1></div>", "test"); } Logger.UnregisterListener(listener); Assert.Equal("<div><i>x</i><EM>y</EM><h1>z</h1></div>", result); Assert.Equal(5, listener.Items.Count); Assert.Equal(new[] { HtmlMarkdownTokenValidatorProvider.WarningMessage, "Invalid tag(div)!", "Invalid tag(EM)!", "Warning tag(h1)!", "Warning tag(h1)!" }, from item in listener.Items select item.Message); }
public MarkdownMigrateTool(string workingFolder = ".", bool useLegacyMode = true, MigrationRule rule = MigrationRule.All) { _useLegacyMode = useLegacyMode; _rule = rule; var option = DocfxFlavoredMarked.CreateDefaultOptions(); option.LegacyMode = _useLegacyMode; _builder = new DfmEngineBuilder(option, workingFolder); _workingFolder = workingFolder.EndsWith("\\") || workingFolder.EndsWith("/") ? workingFolder : workingFolder + "\\"; }
public DfmService(string baseDir, string templateDir, ImmutableDictionary <string, string> tokens, IEnumerable <IMarkdownTokenTreeValidator> tokenTreeValidator, IReadOnlyList <string> fallbackFolders = null) { var options = DocfxFlavoredMarked.CreateDefaultOptions(); options.ShouldExportSourceInfo = true; _builder = DocfxFlavoredMarked.CreateBuilder(baseDir, templateDir, options, fallbackFolders); _builder.TokenTreeValidator = MarkdownTokenTreeValidatorFactory.Combine(tokenTreeValidator); _tokens = tokens; _incrementalContextHash = ComputeIncrementalContextHash(baseDir, templateDir, tokenTreeValidator); }
public void Customize(DfmEngineBuilder builder, IReadOnlyDictionary <string, object> parameters) { // insert inline rule at the top builder.InlineRules = builder.InlineRules.Insert(0, new EnvironmentVariableInlineRule()); // insert block rule above header rule. Why? I dunno, that's what the docs say: // https://dotnet.github.io/docfx/tutorial/intro_markdown_lite.html#select-token-kind var blockIndex = builder.BlockRules.FindIndex(r => r is MarkdownHeadingBlockRule); builder.BlockRules = builder.BlockRules.Insert(blockIndex, new LuceneNoteBlockRule()); }
public DfmHtmlRender(bool useLegacyMode = true) { var option = DocfxFlavoredMarked.CreateDefaultOptions(); option.LegacyMode = useLegacyMode; var builder = new DfmEngineBuilder(option); Engine = builder.CreateDfmEngine(this); Renderer = this; Options = option; Links = null; }
public void TestDfmTagValidate() { var builder = new DfmEngineBuilder(new MarkdownLite.Options() { Mangle = false }); var mrb = new MarkdownRewriterBuilder(null); mrb.AddValidators( new MarkdownTagValidationRule { TagNames = new List <string> { "em", "div" }, MessageFormatter = "Invalid tag({0})!", Behavior = TagRewriteBehavior.Error, OpeningTagOnly = true, }, new MarkdownTagValidationRule { TagNames = new List <string> { "h1" }, MessageFormatter = "Invalid tag({0}), Removed!", Behavior = TagRewriteBehavior.ErrorAndRemove, }); builder.Rewriter = mrb.Create(); var engine = builder.CreateDfmEngine(new DfmRenderer()); var listener = new TestLoggerListener("test!!!!"); Logger.RegisterListener(listener); string result; using (new LoggerPhaseScope("test!!!!")) { result = engine.Markup(@"<div><i>x</i><EM>y</EM><h1>z</h1></div>", "test"); } Logger.UnregisterListener(listener); Assert.Equal("<div><i>x</i><EM>y</EM>z</div>", result); Assert.Equal(4, listener.Items.Count); Assert.Equal(new[] { "Invalid tag(div)!", "Invalid tag(EM)!", "Invalid tag(h1), Removed!", "Invalid tag(h1), Removed!" }, from item in listener.Items select item.Message); }
public void Customize(DfmEngineBuilder builder, IReadOnlyDictionary <string, object> parameters) { // insert inline rule at the top builder.InlineRules = builder.InlineRules.Insert(0, new EnvironmentVariableInLinkInlineRule()); builder.InlineRules = builder.InlineRules.Insert(0, new EnvironmentVariableInlineRule()); // LUCENENET TODO: The inline text replacement still isn't working. Not sure why. //builder.InlineRules = builder.InlineRules.Insert(0, new EnvironmentVariableDfmTextInlineRule()); //// Find the MarkdownLinkInlineRule position, and insert rules to replace text within the link before it //var markdownLinkInlineRuleIndex = builder.InlineRules.FindIndex(r => r is MarkdownLinkInlineRule); //builder.InlineRules.Insert(markdownLinkInlineRuleIndex, new EnvironmentVariableInLinkInlineRule()); //builder.InlineRules = Replace<DfmTextInlineRule, EnvironmentVariableDfmTextInlineRule>(builder.InlineRules); // insert block rule above header rule. Why? I dunno, that's what the docs say: // https://dotnet.github.io/docfx/tutorial/intro_markdown_lite.html#select-token-kind var blockIndex = builder.BlockRules.FindIndex(r => r is MarkdownHeadingBlockRule); builder.BlockRules = builder.BlockRules.Insert(blockIndex, new LuceneNoteBlockRule()); // LUCENENET TODO: The code replacement still isn't working (or even matching). Not sure why. //builder.BlockRules = Replace<MarkdownCodeBlockRule, EnvironmentVariableInCodeBlockRule>(builder.BlockRules); }
public MarkdigMarkdownRenderer(Stack <IMarkdownToken> processedBlockTokens, string basePath, bool useLegacyMode = true, MigrationRule rule = MigrationRule.All) { var option = DocfxFlavoredMarked.CreateDefaultOptions(); option.LegacyMode = useLegacyMode; var builder = new DfmEngineBuilder(option); var render = new DfmRenderer(); _dfmEngine = builder.CreateDfmEngine(render); _dfmHtmlRender = new DfmHtmlRender(useLegacyMode); _rule = rule; var parameter = new MarkdownServiceParameters { BasePath = basePath, Extensions = new Dictionary <string, object> { { "EnableSourceInfo", false } } }; _service = new MarkdigMarkdownService(parameter); _processedBlockTokens = processedBlockTokens; }
public DfmService(string baseDir) { _builder = DocfxFlavoredMarked.CreateBuilder(baseDir); }
public void TestDfmTagValidate() { var builder = new DfmEngineBuilder(new MarkdownLite.Options() { Mangle = false }); var mrb = new MarkdownRewriterBuilder(null); mrb.AddValidators( new MarkdownTagValidationRule { TagNames = new List<string> { "em", "div" }, MessageFormatter = "Invalid tag({0})!", Behavior = TagRewriteBehavior.Error, OpeningTagOnly = true, }, new MarkdownTagValidationRule { TagNames = new List<string> { "h1" }, MessageFormatter = "Invalid tag({0}), Removed!", Behavior = TagRewriteBehavior.ErrorAndRemove, }); builder.Rewriter = mrb.Create(); var engine = builder.CreateEngine(new DfmRenderer()); var listener = new TestLoggerListener("test!!!!"); Logger.RegisterListener(listener); string result; using (new LoggerPhaseScope("test!!!!")) { result = engine.Markup(@"<div><i>x</i><EM>y</EM><h1>z</h1></div>", "test"); } Logger.UnregisterListener(listener); Assert.Equal("<div><i>x</i><EM>y</EM>z</div>", result); Assert.Equal(4, listener.Items.Count); Assert.Equal(new[] { "Invalid tag(div)!", "Invalid tag(EM)!", "Invalid tag(h1), Removed!", "Invalid tag(h1), Removed!" }, from item in listener.Items select item.Message); }
public DfmJsonTokenTreeService(string baseDir, ImmutableDictionary <string, string> tokens, IMarkdownTokenTreeValidator tokenTreeValidator) { _builder = DocfxFlavoredMarked.CreateBuilder(baseDir); _builder.TokenTreeValidator = tokenTreeValidator; _tokens = tokens; }
public HostService(string baseDir, IEnumerable <FileModel> models) { _engine = DocfxFlavoredMarked.CreateBuilder(baseDir); LoadCore(models); }
public DfmService(string baseDir, ImmutableDictionary <string, string> tokens) { _builder = DocfxFlavoredMarked.CreateBuilder(baseDir); _tokens = tokens; }
public DfmJsonTokenTreeService(string baseDir, IMarkdownTokenTreeValidator tokenTreeValidator) { _builder = DocfxFlavoredMarked.CreateBuilder(baseDir); _builder.TokenTreeValidator = tokenTreeValidator; }