示例#1
0
 protected override void Write(MarkdownRenderer renderer, QuoteBlock obj)
 {
     if (renderer == null)
     {
         return;
     }
     renderer.AppendQuote(Themes.Theme.StyleId.QuoteBlock, Themes.Theme.StyleId.QuoteBlock);
     renderer.WriteChildren(obj);
     renderer.CloseLayout();
 }
示例#2
0
        protected override void Write(MarkdownRenderer renderer, MathBlock obj)
        {
            if (renderer == null)
            {
                return;
            }

            renderer.AppendFrame(Themes.Theme.StyleId.MathBlock);
            renderer.AppendLeafRawLines(obj, Themes.Theme.StyleId.None);
            renderer.CloseLayout();
        }
示例#3
0
        protected override void Write(MarkdownRenderer renderer, CodeBlock obj)
        {
            if (renderer == null)
            {
                return;
            }

            var fencedCodeBlock = obj as FencedCodeBlock;

            if (fencedCodeBlock?.Info != null)
            {
            }
            renderer.AppendFrame(Themes.Theme.StyleId.CodeBlock);
            renderer.AppendLeafRawLines(obj, Themes.Theme.StyleId.None);
            renderer.CloseLayout();
        }
示例#4
0
        protected override void Write(MarkdownRenderer renderer, Table obj)
        {
            if (obj == null || renderer == null)
            {
                return;
            }

            var  result         = new Grid();
            bool hasColumnWidth = obj.ColumnDefinitions?.Any(a => a.Width != 0.0f && a.Width != 1.0f) ?? false;

            if (hasColumnWidth)
            {
                result.ColumnDefinitions = new ColumnDefinitionCollection();
                foreach (var item in obj.ColumnDefinitions)
                {
                    result.ColumnDefinitions.Add(new ColumnDefinition()
                    {
                        Width = item.Width
                    });
                }
            }

            int rowCount = 0;

            foreach (var item in obj)
            {
                var row = (TableRow)item;
                for (int columnCount = 0; columnCount < row.Count; columnCount++)
                {
                    var cell = row[columnCount] as TableCell;

                    var stack = new StackLayout();
                    renderer.TemporaryTargetLayout = stack;
                    renderer.AddLayout(stack, renderer.Theme.GetStyleFromStyleId(
                                           row.IsHeader ? Themes.Theme.StyleId.TableCellHeader : Themes.Theme.StyleId.TableCellBody));
                    renderer.Write(cell);
                    renderer.CloseLayout();
                    result.Children.Add(stack, columnCount, rowCount);
                }
                rowCount++;
            }
        }