protected override void Write(XamlMarkdownWriter renderer, CodeInline code) { renderer.WriteStartObject(typeof(Span)); renderer.WriteResourceMember(null, MarkdownXamlStyle.Code); renderer.WriteStartItems(nameof(Span.Inlines), true); renderer.WriteText(code.Content); renderer.WriteEndItems(); renderer.WriteEndObject(); } // proc Write
protected override void Write(XamlMarkdownWriter renderer, MdTable table) { renderer.WriteStartObject(typeof(WpfTable)); renderer.WriteResourceMember(null, MarkdownXamlStyle.Table); var t = new WpfTable(); renderer.WriteStartItems(nameof(WpfTable.Columns)); foreach (var col in table.ColumnDefinitions) { renderer.WriteStartObject(typeof(WpfTableColumn)); renderer.WriteMember(nameof(WpfTableColumn.Width), (col?.Width ?? 0) != 0 ? new GridLength(col.Width, GridUnitType.Star) : GridLength.Auto ); renderer.WriteEndObject(); } renderer.WriteEndItems(); renderer.WriteStartItems(nameof(WpfTable.RowGroups)); renderer.WriteStartObject(typeof(WpfTableRowGroup)); renderer.WriteStartItems(nameof(WpfTableRowGroup.Rows)); foreach (var c in table) { var row = (MdTableRow)c; renderer.WriteStartObject(typeof(WpfTableRow)); if (row.IsHeader) { renderer.WriteResourceMember(null, MarkdownXamlStyle.TableHeader); } renderer.WriteStartItems(nameof(WpfTableRow.Cells)); for (var i = 0; i < row.Count; i++) { var cell = (MdTableCell)row[i]; renderer.WriteStartObject(typeof(WpfTableCell)); renderer.WriteResourceMember(null, MarkdownXamlStyle.TableCell); if (cell.ColumnSpan > 1) { renderer.WriteMember(nameof(WpfTableCell.ColumnSpan), cell.ColumnSpan); } if (cell.RowSpan > 1) { renderer.WriteMember(nameof(WpfTableCell.RowSpan), cell.RowSpan); } 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.WriteMember(nameof(WpfTableCell.TextAlignment), TextAlignment.Center); break; case TableColumnAlign.Right: renderer.WriteMember(nameof(WpfTableCell.TextAlignment), TextAlignment.Right); break; case TableColumnAlign.Left: renderer.WriteMember(nameof(WpfTableCell.TextAlignment), TextAlignment.Left); break; } } renderer.WriteItems(cell); renderer.WriteEndObject(); } renderer.WriteEndItems(); renderer.WriteEndObject(); } renderer.WriteEndItems(); renderer.WriteEndObject(); renderer.WriteEndItems(); renderer.WriteEndObject(); } // proc Write