Exemple #1
0
        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 }
                }
                    );
            }
        }
Exemple #2
0
 public void Append(MarkdownPatternList list)
 {
     _patternList.AddRange(list);
 }