Ejemplo n.º 1
0
        protected override void Write(BlazorRenderer renderer, DefinitionList list)
        {
            renderer.OpenElement("dl");
            renderer.WriteAttributes(list);

            foreach (var item in list)
            {
                var definitionItem = (DefinitionItem)item;

                for (int i = 0; i < definitionItem.Count; i++)
                {
                    var definitionTermOrContent = definitionItem[i];

                    if (definitionTermOrContent is DefinitionTerm definitionTerm)
                    {
                        renderer.OpenElement("dt");
                        renderer.WriteAttributes(definitionTerm);
                        renderer.WriteChildren(definitionTerm.Inline);
                        renderer.CloseElement();
                    }
                    else
                    {
                        renderer.OpenElement("dd");
                        renderer.WriteAttributes(definitionTermOrContent);
                        renderer.Write(definitionTermOrContent);
                        renderer.CloseElement();
                    }
                }
            }

            renderer.CloseElement();
        }
Ejemplo n.º 2
0
 protected override void Write(BlazorRenderer renderer, AutolinkInline autolink)
 {
     renderer.OpenElement("a");
     renderer.AddAttribute("href", autolink.IsEmail ? $"mailto:{autolink.Url}" : autolink.Url);
     renderer.WriteAttributes(autolink);
     renderer.CloseElement();
 }
Ejemplo n.º 3
0
 protected override void Write(BlazorRenderer renderer, Figure figure)
 {
     renderer.OpenElement("figure");
     renderer.WriteAttributes(figure);
     renderer.WriteChildren(figure);
     renderer.CloseElement();
 }
 protected override void Write(BlazorRenderer renderer, FigureCaption caption)
 {
     renderer.OpenElement("figcaption");
     renderer.WriteAttributes(caption);
     renderer.WriteChildren(caption.Inline);
     renderer.CloseElement();
 }
Ejemplo n.º 5
0
 protected override void Write(BlazorRenderer renderer, FooterBlock footer)
 {
     renderer.OpenElement("footer");
     renderer.WriteAttributes(footer);
     renderer.WriteChildren(footer);
     renderer.CloseElement();
 }
 protected override void Write(BlazorRenderer renderer, YamlFrontMatterBlock yaml)
 {
     renderer.OpenElement("div");
     renderer.AddAttribute("class", "yaml");
     renderer.WriteLeafRawLines(yaml);
     renderer.CloseElement();
 }
Ejemplo n.º 7
0
 protected override void Write(BlazorRenderer renderer, AbbreviationInline abbreviation)
 {
     renderer.OpenElement("abbr");
     renderer.WriteAttribute("title", abbreviation.Abbreviation.Text);
     renderer.WriteAttributes(abbreviation);
     renderer.AddContent(abbreviation.Abbreviation.Label);
     renderer.CloseElement();
 }
Ejemplo n.º 8
0
 protected override void Write(BlazorRenderer renderer, MathInline math)
 {
     renderer.OpenElement("span");
     renderer.WriteAttributes(math);
     renderer.AddContent("\\(");
     renderer.Write(math.Content);
     renderer.AddContent("\\)");
     renderer.CloseElement();
 }
Ejemplo n.º 9
0
 protected override void Write(BlazorRenderer renderer, MathBlock math)
 {
     renderer.OpenElement("div");
     renderer.WriteAttributes(math);
     renderer.AddContent("\\[");
     renderer.WriteLeafRawLines(math);
     renderer.AddContent("\\]");
     renderer.CloseElement();
 }
Ejemplo n.º 10
0
        protected override void Write(BlazorRenderer renderer, FootnoteGroup footnotes)
        {
            renderer.OpenElement("div");
            renderer.AddAttribute("class", "footnotes");
            renderer.AddMarkupContent("<hr />");
            renderer.OpenElement("ol");

            for (int i = 0; i < footnotes.Count; i++)
            {
                var footnote = (Footnote)footnotes[i];
                renderer.OpenElement("li");
                renderer.AddAttribute("id", $"fn:{footnote.Order}");
                renderer.WriteChildren(footnote);
                renderer.CloseElement();
            }

            renderer.CloseElement();
            renderer.CloseElement();
        }
 protected override void Write(BlazorRenderer renderer, LineBreakInline lineBreakInline)
 {
     if (lineBreakInline.IsHard || RenderAsHardlineBreak)
     {
         renderer.OpenElement("br");
         renderer.CloseElement();
     }
     else
     {
         renderer.AddContent(" ");
     }
 }
Ejemplo n.º 12
0
        protected override void Write(BlazorRenderer renderer, EmphasisInline emphasis)
        {
            var elementName = GetDefaultTag(emphasis);

            if (elementName != null)
            {
                renderer.OpenElement(elementName);
                renderer.WriteChildren(emphasis);
                renderer.CloseElement();
            }
            else
            {
                renderer.WriteChildren(emphasis);
            }
        }
Ejemplo n.º 13
0
        protected override void Write(BlazorRenderer renderer, FootnoteLink link)
        {
            renderer.OpenElement("a");

            if (link.IsBackLink)
            {
                renderer.AddAttribute("class", "footnote-back-ref");
                renderer.AddAttribute("href", $"#fnref:{link.Index}");
                renderer.AddContent("&#8617;");
            }
            else
            {
                var order = link.Footnote.Order;
                renderer.AddAttribute("id", $"#fnref:{link.Index}");
                renderer.AddAttribute("class", "footnote-ref");
                renderer.AddAttribute("href", $"#fn:{order}");
                renderer.AddMarkupContent($"<sup>{order}</sup>");
            }

            renderer.CloseElement();
        }
Ejemplo n.º 14
0
        protected override void Write(BlazorRenderer renderer, LinkInline link)
        {
            var url = link.GetDynamicUrl != null?link.GetDynamicUrl() ?? link.Url : link.Url;

            if (link.IsImage)
            {
                renderer.OpenElement("img");
                renderer.AddAttribute("src", url);
            }
            else
            {
                renderer.OpenElement("a");
                renderer.AddAttribute("href", url);
            }

            if (!string.IsNullOrEmpty(link.Title))
            {
                renderer.AddAttribute("title", link.Title);
            }

            renderer.WriteAttributes(link);
            renderer.WriteChildren(link);
            renderer.CloseElement();
        }
Ejemplo n.º 15
0
 protected override void Write(BlazorRenderer renderer, TaskList list)
 {
     renderer.OpenElement("span");
     renderer.AddMarkupContent(list.Checked ? "&#128505;" : "&#9744;");
     renderer.CloseElement();
 }
Ejemplo n.º 16
0
        protected override void Write(BlazorRenderer renderer, Table table)
        {
            renderer.OpenElement("table");

            if (table.ColumnDefinitions.Any(cd => cd.Width > 0 && cd.Width < 1))
            {
                foreach (var tableColumnDefinition in table.ColumnDefinitions)
                {
                    var width      = Math.Round(tableColumnDefinition.Width * 100) / 100;
                    var widthValue = string.Format(CultureInfo.InvariantCulture, "{0:0.##}", width);
                    renderer.OpenElement("col");
                    renderer.AddAttribute("style", $"style=\"width:{widthValue}%\"");
                    renderer.CloseElement();
                }
            }

            bool bodyWritten   = false;
            bool headerWritten = false;

            foreach (var rowObj in table)
            {
                var row = (TableRow)rowObj;

                if (row.IsHeader)
                {
                    if (!headerWritten)
                    {
                        renderer.OpenElement("thead");
                        headerWritten = true;
                    }
                }
                else if (!bodyWritten)
                {
                    if (headerWritten)
                    {
                        renderer.CloseElement();
                    }

                    renderer.OpenElement("tbody");
                    bodyWritten = true;
                }

                renderer.OpenElement("tr");
                renderer.WriteAttributes(row);

                for (int i = 0; i < row.Count; i++)
                {
                    var cell = (TableCell)row[i];
                    renderer.OpenElement(row.IsHeader ? "th" : "td");

                    if (cell.ColumnSpan != 1)
                    {
                        renderer.AddAttribute("colspan", cell.ColumnSpan);
                    }

                    if (cell.RowSpan != 1)
                    {
                        renderer.AddAttribute("rowspan", cell.RowSpan);
                    }

                    if (table.ColumnDefinitions.Count > 0)
                    {
                        var columnIndex = cell.ColumnIndex < 0 || cell.ColumnIndex >= table.ColumnDefinitions.Count ? i : cell.ColumnIndex;
                        columnIndex = columnIndex >= table.ColumnDefinitions.Count ? table.ColumnDefinitions.Count - 1 : columnIndex;

                        var alignment = table.ColumnDefinitions[columnIndex].Alignment;

                        if (alignment.HasValue)
                        {
                            switch (alignment)
                            {
                            case TableColumnAlign.Center:
                                renderer.AddAttribute("style", "text-align:center;");
                                break;

                            case TableColumnAlign.Left:
                                renderer.AddAttribute("style", "text-align:left;");
                                break;

                            case TableColumnAlign.Right:
                                renderer.AddAttribute("style", "text-align:right;");
                                break;
                            }
                        }

                        renderer.WriteAttributes(cell);
                        renderer.Write(cell);
                    }

                    renderer.CloseElement();
                }

                renderer.CloseElement();
            }

            if (bodyWritten)
            {
                renderer.CloseElement();
            }

            renderer.CloseElement();
        }
Ejemplo n.º 17
0
 protected override void Write(BlazorRenderer renderer, CodeInline code)
 {
     renderer.OpenElement("code");
     renderer.AddContent(code.Content);
     renderer.CloseElement();
 }