public MarkdownNonParagraphBlockToken(IMarkdownRule rule, IMarkdownContext context, InlineContent content, SourceInfo sourceInfo) { Rule = rule; Context = context; Content = content; SourceInfo = sourceInfo; }
public MarkdownParagraphBlockToken(IMarkdownRule rule, IMarkdownContext context, InlineContent inlineTokens, SourceInfo sourceInfo) { Rule = rule; Context = context; InlineTokens = inlineTokens; SourceInfo = sourceInfo; }
public MarkdownHeadingBlockToken(IMarkdownRule rule, IMarkdownContext context, InlineContent content, string id, int depth, SourceInfo sourceInfo) { Rule = rule; Context = context; Content = content; Id = id; Depth = depth; SourceInfo = sourceInfo; }
public MarkdownHeadingBlockToken(IMarkdownRule rule, IMarkdownContext context, InlineContent content, string id, int depth, string rawMarkdown) { Rule = rule; Context = context; Content = content; Id = id; Depth = depth; RawMarkdown = rawMarkdown; }
public virtual IMarkdownToken TryMatch(IMarkdownParser parser, IMarkdownParsingContext context) { if (context.IsInParagraph) { return(null); } if (Html != Regexes.Block.Html || parser.Options.LegacyMode) { return(TryMatchOld(parser, context)); } var match = context.Match(HtmlMatcher); if (match?.Length > 0) { var sourceInfo = context.Consume(match.Length); var elementName = match.GetGroup("element")?.GetValue(); bool isPre = parser.Options.Sanitizer == null && ("pre".Equals(elementName, StringComparison.OrdinalIgnoreCase) || "script".Equals(elementName, StringComparison.OrdinalIgnoreCase) || "style".Equals(elementName, StringComparison.OrdinalIgnoreCase)); if (parser.Options.Sanitize) { return(new TwoPhaseBlockToken( this, parser.Context, sourceInfo, (p, t) => new MarkdownParagraphBlockToken( t.Rule, t.Context, p.TokenizeInline(t.SourceInfo), t.SourceInfo))); } else { return(new TwoPhaseBlockToken( this, parser.Context, sourceInfo, (p, t) => { InlineContent ic; if (isPre) { ic = new InlineContent( ImmutableArray.Create <IMarkdownToken>( new MarkdownRawToken( this, parser.Context, t.SourceInfo))); } else { var c = new MarkdownInlineContext( ImmutableList.Create <IMarkdownRule>( new MarkdownPreElementInlineRule(), new MarkdownTagInlineRule(), new MarkdownTextInlineRule())); p.SwitchContext(c); ic = new InlineContent(p.Tokenize(t.SourceInfo)); p.SwitchContext(t.Context); } return new MarkdownHtmlBlockToken( t.Rule, t.Context, ic, t.SourceInfo); })); } } return(null); }