private void InitializePatternList() { _markdownPatterns = new MarkdownPatternList { // Headers { "hash_header", @"(\#+)[ ]*(.+?)[ ]*\#*(\r\n)+", this.CreateHashHeader }, // This is a dirty hack to tell avoid hash_headers, if it's not a beginning of a line { "hash_header2", @"(\r\n)+(\#+)[ ]*(.+?)[ ]*\#*(\r\n)+", this.CreateHashHeader2 }, { "underline_header", @"(.+?)[ ]*\r\n(==+|--+)[ ]*(\r\n)+", this.CreateUnderlineHeader }, // Code blocks { "tick_codeblock", @"```\w*(\r\n)*((.|\r\n)*?)```(\r\n)*", this.CreateTickCodeBlock } }; if (this._parserMode == ParserMode.Full) { _markdownPatterns.Append( new MarkdownPatternList { // Paragraph spans { "hardbreak", @"[ ]{2}\r\n", this.CreateHardBreakSpan }, { "softbreak", @"(\r\n){{1}}", this.CreateSoftBreakSpan }, { "new_paragraph", @"(\r\n){{2,}}", this.CreateParagraph }, { "hyperlink", @"\[(.+?)\]\((https?://[^'\"">\s]+)?\)", this.CreateHyperlinkSpan }, { "bold", @"\*\*(.+?)\*\*", this.CreateBoldSpan }, { "italic", @"\*(.+?)\*", this.CreateItalicSpan } } ); } }
public void Append(MarkdownPatternList list) { _patternList.AddRange(list); }