Esempio n. 1
0
        public MarkdownList(MarkdownMatch match)
            : base(match)
        {
            var  itemDelimiterRegex          = match.Groups["listitemdelimiter"].Value;
            char firstNonWhiteSpaceCharacter = itemDelimiterRegex.Trim()[0];

            this.IsOrdered = char.IsNumber(firstNonWhiteSpaceCharacter);

            if (this.IsOrdered)
            {
                itemDelimiterRegex = itemDelimiterRegex
                                     .Replace(firstNonWhiteSpaceCharacter.ToString(), @"\d+")
                                     .Replace(".", @"\.")
                                     .Replace(")", @"\)");
            }
            else
            {
                itemDelimiterRegex = itemDelimiterRegex.Replace("*", @"\*");
            }

            string rawListMarkdown = Regex.Replace(match.MatchValue, @"^" + itemDelimiterRegex, string.Empty);

            this.ItemDelimiterRegex = @"(\r\n|\n)+" + itemDelimiterRegex;

            this.Children = Regex.Split(rawListMarkdown, this.ItemDelimiterRegex)
                            .Where(x => !string.IsNullOrWhiteSpace(x))
                            .Select(x => (DomItem) new MarkdownListItem(x, parent: this, recursiveParser: match.RecursiveParser))
                            .ToList();

            this.Value = string.Join(string.Empty, this.Children.Select(x => x.UniqueKey));
        }
Esempio n. 2
0
 public H4(MarkdownMatch match)
     : base(match)
 {
 }
Esempio n. 3
0
 public Strikethrough(MarkdownMatch match)
     : base(match)
 {
 }
Esempio n. 4
0
 public Bold(MarkdownMatch match)
     : base(match)
 {
 }
Esempio n. 5
0
 public HeaderBase(MarkdownMatch match)
     : base(match)
 {
 }
Esempio n. 6
0
 public HorizontalRule(MarkdownMatch match)
     : base(match)
 {
 }
Esempio n. 7
0
 public Blockquote(MarkdownMatch match)
     : base(match)
 {
 }
Esempio n. 8
0
 public DomItem(MarkdownMatch match)
     : this(match?.Groups["capture"].Value, match?.Parent, match?.RecursiveParser)
 {
     this.FullMatchValue = match?.MatchValue;
 }
Esempio n. 9
0
 public InlineCode(MarkdownMatch match)
     : base(match)
 {
 }
Esempio n. 10
0
 public Link(MarkdownMatch match)
     : base(match)
 {
     this.Url      = match.Groups["url"].Value;
     this.LinkText = match.Groups["linktext"].Value;
 }
Esempio n. 11
0
 public Italics(MarkdownMatch match)
     : base(match)
 {
 }
Esempio n. 12
0
 public BlockCode(MarkdownMatch match)
     : base(match)
 {
 }
Esempio n. 13
0
 public Image(MarkdownMatch match)
     : base(match)
 {
     this.Url     = match.Groups["url"].Value;
     this.AltText = match.Groups["alttext"].Value;
 }
Esempio n. 14
0
 public HtmlTag(MarkdownMatch match)
     : base(match)
 {
 }
Esempio n. 15
0
 public CodeBase(MarkdownMatch match)
     : base(match)
 {
 }