示例#1
0
 protected void CreateRewriters()
 {
     Rewriter = MarkdownTokenRewriterFactory.Composite(
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureNoteBlockToken t) => new DfmNoteBlockToken(t.Rule, t.Context, t.NoteType.Substring("AZURE.".Length), t.Content, t.SourceInfo)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureBlockquoteBlockToken t) => new MarkdownBlockquoteBlockToken(t.Rule, t.Context, t.Tokens, t.SourceInfo)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, MarkdownLinkInlineToken t) => new MarkdownLinkInlineToken(t.Rule, t.Context, NormalizeAzureLink(t.Href, MarkdownExtension, t.Context, t.SourceInfo.Markdown), t.Title, t.Content, t.SourceInfo)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureSelectorBlockToken t) => new DfmSectionBlockToken(t.Rule, t.Context, GenerateAzureSelectorAttributes(t.SelectorType, t.SelectorConditions), t.SourceInfo)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureHtmlMetadataBlockToken t) => new DfmYamlHeaderBlockToken(t.Rule, t.Context, GenerateYamlHeaderContent(t.Properties, t.Tags), t.SourceInfo)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureMigrationIncludeBlockToken t) => new DfmIncludeBlockToken(t.Rule, t.Context, t.Src, t.Name, t.Title, t.SourceInfo.Markdown, t.SourceInfo)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureMigrationIncludeInlineToken t) => new DfmIncludeInlineToken(t.Rule, t.Context, t.Src, t.Name, t.Title, t.SourceInfo.Markdown, t.SourceInfo)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureVideoBlockToken t) => new DfmVideoBlockToken(t.Rule, t.Context, GenerateAzureVideoLink(t.Context, t.VideoId, t.SourceInfo.Markdown), t.SourceInfo)
             )
         );
 }
示例#2
0
 public DfmEngine CreateDfmEngine(object renderer)
 {
     return(new DfmEngine(
                CreateParseContext().SetBaseFolder(_baseDir ?? string.Empty).SetFallbackFolders(_fallbackFolders),
                MarkdownTokenRewriterFactory.Composite(
                    MarkdownTokenRewriterFactory.FromLambda(GetTabGroupIdRewriter()),
                    Rewriter),
                renderer,
                Options)
     {
         TokenTreeValidator = TokenTreeValidator,
         TokenAggregators = TokenAggregators,
     });
 }
示例#3
0
 protected void CreateRewriters()
 {
     Rewriter = MarkdownTokenRewriterFactory.Composite(
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureIncludeInlineToken t) => new DfmIncludeInlineToken(t.Rule, t.Context, t.Src, t.Name, t.Title, t.Raw, t.RawMarkdown)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureIncludeBlockToken t) => new DfmIncludeBlockToken(t.Rule, t.Context, t.Src, t.Name, t.Title, t.Raw, t.RawMarkdown)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureNoteBlockToken t) => new DfmNoteBlockToken(t.Rule, t.Context, t.NoteType.Substring("AZURE.".Length), t.Content, t.RawMarkdown)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureBlockquoteBlockToken t) => new DfmBlockquoteBlockToken(t.Rule, t.Context, t.Tokens, t.RawMarkdown)
             )
         );
 }
示例#4
0
 protected void CreateRewriters()
 {
     Rewriter = MarkdownTokenRewriterFactory.Composite(
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureNoteBlockToken t) => new DfmNoteBlockToken(t.Rule, t.Context, t.NoteType.Substring("AZURE.".Length), t.Content, t.RawMarkdown)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureBlockquoteBlockToken t) => new MarkdownBlockquoteBlockToken(t.Rule, t.Context, t.Tokens, t.RawMarkdown)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, MarkdownLinkInlineToken t) => new MarkdownLinkInlineToken(t.Rule, t.Context, AppendDefaultExtension(t.Href, MarkdownExtension), t.Title, t.Content, t.RawMarkdown)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureSelectorBlockToken t) => new DfmSectionBlockToken(t.Rule, t.Context, GenerateAzureSelectorAttributes(t.SelectorType, t.SelectorConditions), t.RawMarkdown)
             ),
         MarkdownTokenRewriterFactory.FromLambda(
             (IMarkdownRewriteEngine e, AzureHtmlMetadataBlockToken t) => new DfmYamlHeaderBlockToken(t.Rule, t.Context, GenerateYamlHeaderContent(t.Properties, t.Tags), t.RawMarkdown)
             )
         );
 }
示例#5
0
        public void ParseWithBadRewrite()
        {
            const string source = @"
# Heading
";

            var builder = new GfmEngineBuilder(new Options());

            builder.Rewriter =
                MarkdownTokenRewriterFactory.Loop(
                    MarkdownTokenRewriterFactory.Composite(
                        MarkdownTokenRewriterFactory.FromLambda(
                            (IMarkdownRewriteEngine e, MarkdownHeadingBlockToken t) => new MarkdownTextToken(t.Rule, t.Context, t.RawMarkdown, t.RawMarkdown)
                            ),
                        MarkdownTokenRewriterFactory.FromLambda(
                            (IMarkdownRewriteEngine e, MarkdownTextToken t) => new MarkdownHeadingBlockToken(t.Rule, t.Context, new InlineContent(ImmutableArray <IMarkdownToken> .Empty), "aaaa", 1, t.RawMarkdown)
                            )
                        ),
                    10);
            var engine = builder.CreateEngine(new HtmlRenderer());

            Assert.Throws <InvalidOperationException>(() => engine.Markup(source));
        }