Пример #1
0
        private static string GetText(IInline inline)
        {
            switch (inline)
            {
            case LiteralInline literal:
                return(GetTextFromLiteral(literal));

            case LinkInline link:
                return(GetTextFromLink(link));

            case AutolinkInline autoLink:
                return(autoLink.Url);

            case CodeInline code:
                return(code.Content);

            case EmphasisInline emphasis:
                return(GetTextFromInlineContainer(emphasis));

            case HtmlInline html:
                return(html.Tag);

            case HtmlEntityInline htmlEntity:
                return(htmlEntity.Transcoded.Text);

            case LineBreakInline lineBreak:
                return(Environment.NewLine);

            default:
                return(string.Empty);
            }
        }
Пример #2
0
    public IInlineElement Execute(IInline inline)
    {
        var textRun = (LiteralInline)inline;

        return(new Text
        {
            Content = Markdig.Markdown.ToPlainText(textRun.Content.Text)
        });
    }
Пример #3
0
        private static void WriteInline(IInline inline)
        {
            switch (inline)
            {
            case LiteralInline literal:
                SysConsole.Write(GetTextFromLiteral(literal));
                return;

            case LinkInline link:
                MarkdownConsole.WriteLink(GetUrlFromLink(link), link.Title);
                return;

            case AutolinkInline autoLink:
                MarkdownConsole.WriteLink(autoLink.Url);
                return;

            case CodeInline code:
                MarkdownConsole.WriteCode(code.Content);
                return;

            case EmphasisInline emphasis:
                string text = GetTextFromInlineContainer(emphasis);
                if (emphasis.IsDouble)
                {
                    MarkdownConsole.WriteBold(text);
                }
                else
                {
                    MarkdownConsole.WriteItalic(text);
                }
                return;

            case HtmlInline html:
                MarkdownConsole.WriteHtml(html.Tag);
                return;

            case HtmlEntityInline htmlEntity:
                MarkdownConsole.WriteHtml(htmlEntity.Transcoded.Text);
                return;

            case LineBreakInline lineBreak:
                SysConsole.WriteLine();
                return;
            }
        }
Пример #4
0
 public void Add(IInline element)
 {
     if (pLines.Count == 0)
     {
         ParagraphLine pLine = new ParagraphLine();
         pLine.Add(element);
         pLines.Add(pLine);
     }
     else
     {
         ParagraphLine pLine = pLines.Last();
         if (pLine.Width + element.GetXCoordinateDelta() > width)
         {
             pLine = new ParagraphLine();
             pLine.Add(element);
             pLines.Add(pLine);
         }
         else
         {
             pLine.Add(element);
         }
     }
 }
Пример #5
0
 public Span AddChild(IInline childToAdd)
 {
     return(new Span(children.Add(childToAdd)));
 }
Пример #6
0
 public Span(IInline content)
 {
     children = ImmutableList <IInline> .Empty.Add(content);
 }
Пример #7
0
 public Strong(IInline content)
 {
     Content = content;
 }
Пример #8
0
 public ListItem(ushort level, IInline content)
 {
     Content = content;
     Level   = Math.Max(level, (ushort)1);
 }
Пример #9
0
 public Highlight(IInline content, Color highlightColor)
 {
     Content = content;
     Color   = highlightColor;
 }
Пример #10
0
 public Header(ushort level, IInline content)
     : this(content)
 {
     Level = Math.Max(level, (ushort)1);
 }
Пример #11
0
 public Link(IInline content, string address)
 {
     Content = content;
     Address = address;
 }
Пример #12
0
 public CodeBlock(IInline content)
     : this(string.Empty, content)
 {
     // no operation
 }
Пример #13
0
 public CodeBlock(string language, IInline content)
 {
     Content  = content;
     Language = language;
 }
Пример #14
0
 public OrderedListItem(IInline content)
     : base(1, content)
 {
     // no operation
 }
Пример #15
0
 public OrderedListItem(ushort number, ushort level, IInline content)
     : base(level, content)
 {
     Number = number;
 }
Пример #16
0
 public OrderedListItem(ushort number, IInline content)
     : base(1, content)
 {
     Number = number;
 }
 public void Add(IInline element)
 {
     elements.Add(element);
 }
Пример #18
0
 public Span InsertAt(int index, IInline childToAdd)
 {
     return(new Span(children.Insert(index, childToAdd)));
 }
Пример #19
0
 public Paragraph(IInline content)
 {
     Content = content;
 }
Пример #20
0
 public ListItem(IInline content)
     : this(1, content)
 {
     // no operation
 }
Пример #21
0
 public Header(IInline content)
 {
     Content = content;
 }
Пример #22
0
 public Strikethrough(IInline content)
 {
     Content = content;
 }
Пример #23
0
 public Heading(int level, IInline inline)
 {
     Level   = level;
     Inlines = new[] { inline };
 }
Пример #24
0
 public CodeInline(IInline content)
 {
     Content = content;
 }
Пример #25
0
 public Inserted(IInline content)
 {
     Content = content;
 }
Пример #26
0
 public Italic(IInline content)
 {
     Content = content;
 }
Пример #27
0
 public IInlineElement Execute(IInline inline)
 {
     throw new NotImplementedException();
 }
Пример #28
0
 public Marked(IInline content)
 {
     Content = content;
 }