public DfmEngineBuilder(Options options) : base(options) { var inlineRules = InlineRules.ToList(); var index = inlineRules.FindLastIndex(s => s is MarkdownLinkInlineRule); if (index < 0) throw new ArgumentException("MarkdownLinkInlineRule should exist!"); inlineRules.Insert(index + 1, new DfmXrefInlineRule()); inlineRules.Insert(index + 1, new DfmEmailInlineRule()); inlineRules.Insert(index, new DfmIncludeInlineRule()); index = inlineRules.FindIndex(s => s is MarkdownTextInlineRule); inlineRules[index] = new DfmTextInlineRule(); var blockRules = BlockRules.ToList(); index = blockRules.FindLastIndex(s => s is MarkdownNewLineBlockRule); if (index < 0) throw new ArgumentException("MarkdownNewLineBlockRule should exist!"); blockRules.Insert(index + 1, new DfmIncludeBlockRule()); blockRules.Insert(index + 2, new DfmYamlHeaderBlockRule()); blockRules.Insert(index + 3, new DfmSectionBlockRule()); blockRules.Insert(index + 4, new DfmFencesBlockRule()); blockRules.Insert(index + 5, new DfmNoteBlockRule()); var gfmIndex = blockRules.FindIndex(item => item is GfmParagraphBlockRule); blockRules[gfmIndex] = new DfmParagraphBlockRule(); var markdownBlockQuoteIndex = blockRules.FindIndex(item => item is MarkdownBlockquoteBlockRule); blockRules[markdownBlockQuoteIndex] = new DfmBlockquoteBlockRule(); InlineRules = inlineRules.ToImmutableList(); BlockRules = blockRules.ToImmutableList(); Rewriter = InitMarkdownStyle(GetContainer()); }
public DfmEngineBuilder(Options options) : base(options) { var inlineRules = InlineRules.ToList(); // xref auto link must be before MarkdownAutoLinkInlineRule var index = inlineRules.FindIndex(s => s is MarkdownAutoLinkInlineRule); if (index < 0) { throw new ArgumentException("MarkdownAutoLinkInlineRule should exist!"); } inlineRules.Insert(index, new DfmXrefAutoLinkInlineRule()); index = inlineRules.FindLastIndex(s => s is MarkdownLinkInlineRule); if (index < 0) { throw new ArgumentException("MarkdownLinkInlineRule should exist!"); } inlineRules.Insert(index + 1, new DfmXrefShortcutInlineRule()); inlineRules.Insert(index + 1, new DfmEmailInlineRule()); // xref link inline rule must be before MarkdownLinkInlineRule inlineRules.Insert(index, new DfmXrefLinkInlineRule()); inlineRules.Insert(index, new DfmIncludeInlineRule()); index = inlineRules.FindIndex(s => s is MarkdownTextInlineRule); inlineRules[index] = new DfmTextInlineRule(); var blockRules = BlockRules.ToList(); index = blockRules.FindLastIndex(s => s is MarkdownNewLineBlockRule); if (index < 0) { throw new ArgumentException("MarkdownNewLineBlockRule should exist!"); } blockRules.Insert(index + 1, new DfmIncludeBlockRule()); blockRules.Insert(index + 2, new DfmYamlHeaderBlockRule()); blockRules.Insert(index + 3, new DfmSectionBlockRule()); blockRules.Insert(index + 4, new DfmFencesBlockRule()); blockRules.Insert(index + 5, new DfmNoteBlockRule()); var gfmIndex = blockRules.FindIndex(item => item is GfmParagraphBlockRule); blockRules[gfmIndex] = new DfmParagraphBlockRule(); var markdownBlockQuoteIndex = blockRules.FindIndex(item => item is MarkdownBlockquoteBlockRule); blockRules[markdownBlockQuoteIndex] = new DfmBlockquoteBlockRule(); InlineRules = inlineRules.ToImmutableList(); BlockRules = blockRules.ToImmutableList(); Rewriter = InitMarkdownStyle(GetContainer()); }
public DfmEngineBuilder(Options options, string baseDir = null, string templateDir = null, IReadOnlyList<string> fallbackFolders = null) : base(options) { _baseDir = baseDir ?? string.Empty; _fallbackFolders = fallbackFolders ?? new List<string>(); var inlineRules = InlineRules.ToList(); // xref auto link must be before MarkdownAutoLinkInlineRule var index = inlineRules.FindIndex(s => s is MarkdownAutoLinkInlineRule); if (index < 0) { throw new ArgumentException("MarkdownAutoLinkInlineRule should exist!"); } inlineRules.Insert(index, new DfmXrefAutoLinkInlineRule()); index = inlineRules.FindLastIndex(s => s is MarkdownLinkInlineRule); if (index < 0) { throw new ArgumentException("MarkdownLinkInlineRule should exist!"); } inlineRules.Insert(index + 1, new DfmXrefShortcutInlineRule()); inlineRules.Insert(index + 1, new DfmEmailInlineRule()); inlineRules.Insert(index + 1, new DfmFencesInlineRule()); // xref link inline rule must be before MarkdownLinkInlineRule inlineRules.Insert(index, new DfmIncludeInlineRule()); index = inlineRules.FindIndex(s => s is MarkdownTextInlineRule); if (index < 0) { throw new ArgumentException("MarkdownTextInlineRule should exist!"); } inlineRules[index] = new DfmTextInlineRule(); var blockRules = BlockRules.ToList(); index = blockRules.FindLastIndex(s => s is MarkdownCodeBlockRule); if (index < 0) { throw new ArgumentException("MarkdownNewLineBlockRule should exist!"); } blockRules.InsertRange( index + 1, new IMarkdownRule[] { new DfmIncludeBlockRule(), new DfmVideoBlockRule(), new DfmYamlHeaderBlockRule(), new DfmSectionBlockRule(), new DfmFencesBlockRule(), new DfmNoteBlockRule() }); var markdownBlockQuoteIndex = blockRules.FindIndex(item => item is MarkdownBlockquoteBlockRule); if (markdownBlockQuoteIndex < 0) { throw new ArgumentException("MarkdownBlockquoteBlockRule should exist!"); } blockRules[markdownBlockQuoteIndex] = new DfmBlockquoteBlockRule(); InlineRules = inlineRules.ToImmutableList(); BlockRules = blockRules.ToImmutableList(); Rewriter = InitMarkdownStyle(GetContainer(), baseDir, templateDir); }
public DfmEngineBuilder(Options options, string baseDir = null, string templateDir = null, IReadOnlyList <string> fallbackFolders = null) : base(options) { _baseDir = baseDir ?? string.Empty; _fallbackFolders = fallbackFolders ?? new List <string>(); var inlineRules = InlineRules.ToList(); // xref auto link must be before MarkdownAutoLinkInlineRule var index = inlineRules.FindIndex(s => s is MarkdownAutoLinkInlineRule); if (index < 0) { throw new ArgumentException("MarkdownAutoLinkInlineRule should exist!"); } inlineRules.Insert(index, new DfmXrefAutoLinkInlineRule()); index = inlineRules.FindLastIndex(s => s is MarkdownLinkInlineRule); if (index < 0) { throw new ArgumentException("MarkdownLinkInlineRule should exist!"); } inlineRules.Insert(index + 1, new DfmXrefShortcutInlineRule()); inlineRules.Insert(index + 1, new DfmEmailInlineRule()); inlineRules.Insert(index + 1, new DfmFencesRule()); // xref link inline rule must be before MarkdownLinkInlineRule inlineRules.Insert(index, new DfmIncludeInlineRule()); index = inlineRules.FindIndex(s => s is MarkdownTextInlineRule); if (index < 0) { throw new ArgumentException("MarkdownTextInlineRule should exist!"); } inlineRules[index] = new DfmTextInlineRule(); var blockRules = BlockRules.ToList(); index = blockRules.FindLastIndex(s => s is MarkdownCodeBlockRule); if (index < 0) { throw new ArgumentException("MarkdownNewLineBlockRule should exist!"); } blockRules.InsertRange( index + 1, new IMarkdownRule[] { new DfmIncludeBlockRule(), new DfmVideoBlockRule(), new DfmYamlHeaderBlockRule(), new DfmSectionBlockRule(), new DfmFencesRule(), new DfmNoteBlockRule() }); var gfmIndex = blockRules.FindIndex(item => item is GfmParagraphBlockRule); if (gfmIndex < 0) { throw new ArgumentException("GfmParagraphBlockRule should exist!"); } blockRules[gfmIndex] = new DfmParagraphBlockRule(); var markdownBlockQuoteIndex = blockRules.FindIndex(item => item is MarkdownBlockquoteBlockRule); if (markdownBlockQuoteIndex < 0) { throw new ArgumentException("MarkdownBlockquoteBlockRule should exist!"); } blockRules[markdownBlockQuoteIndex] = new DfmBlockquoteBlockRule(); InlineRules = inlineRules.ToImmutableList(); BlockRules = blockRules.ToImmutableList(); Rewriter = InitMarkdownStyle(GetContainer(), baseDir, templateDir); }