protected override void Write(NormalizeRenderer renderer, LinkInline link) { if (link.IsImage) { return; } renderer.WriteChildren(link); if (link.Label != null) { renderer.Write(link.Label); } else if (!string.IsNullOrEmpty(link.Url) && !UrlMatchesChildInline(link)) { renderer.Write(" (").Write(link.Url).Write(")"); if (!string.IsNullOrEmpty(link.Title)) { renderer.Write(" \""); renderer.Write(link.Title.Replace(@"""", @"\""")); renderer.Write("\""); } } }
protected override void Write(NormalizeRenderer renderer, LinkInline link) { if (link.IsImage) { renderer.Write('!'); } renderer.Write('['); renderer.WriteChildren(link); renderer.Write(']'); if (link.Label != null) { if (link.FirstChild is LiteralInline literal && literal.Content.Length == link.Label.Length && literal.Content.Match(link.Label)) { // collapsed reference and shortcut links if (!link.IsShortcut) { renderer.Write("[]"); } } else { // full link renderer.Write('[').Write(link.Label).Write(']'); } }
protected override void Write(NormalizeRenderer renderer, EmphasisInline obj) { var emphasisText = new string(obj.DelimiterChar, obj.DelimiterCount); renderer.Write(emphasisText); renderer.WriteChildren(obj); renderer.Write(emphasisText); }
protected override void Write(NormalizeRenderer renderer, LiteralInline obj) { if (obj.IsFirstCharacterEscaped && obj.Content.Length > 0 && obj.Content[obj.Content.Start].IsAsciiPunctuation()) { renderer.Write('\\'); } renderer.Write(ref obj.Content); }
protected override void Write(NormalizeRenderer renderer, CodeInline obj) { var delimiter = obj.Content.Contains(obj.Delimiter + "") ? new string(obj.Delimiter, 2) : obj.Delimiter + ""; renderer.Write(delimiter); renderer.Write(obj.Content); renderer.Write(delimiter); }
protected override void Write(NormalizeRenderer renderer, LineBreakInline obj) { if (obj.IsHard) { renderer.Write(obj.IsBackslash ? "\\" : " "); } renderer.WriteLine(); }
protected override void Write(NormalizeRenderer renderer, MathBlock obj) { renderer.EnsureLine(); renderer.WriteLine("$$"); renderer.WriteLeafRawLines(obj, true); renderer.Write("$$"); renderer.FinishBlock(renderer.Options.EmptyLineAfterCodeBlock); }
private static string GetBlockText(LeafBlock heading) { using (var stringWriter = new StringWriter()) { var renderer = new NormalizeRenderer(stringWriter); renderer.Write(heading.Inline); return(stringWriter.ToString()); } }
protected override void Write(NormalizeRenderer renderer, LinkInline link) { if (link.IsImage) { renderer.Write('!'); } renderer.Write('['); renderer.WriteChildren(link); renderer.Write(']'); if (link.Label != null) { var literal = link.FirstChild as LiteralInline; if (literal != null && literal.Content.Match(link.Label) && literal.Content.Length == link.Label.Length) { // collapsed reference and shortcut links if (!link.IsShortcut) { renderer.Write("[]"); } } else { // full link renderer.Write('[').Write(link.Label).Write(']'); } } else { if (!string.IsNullOrEmpty(link.Url)) { renderer.Write('(').Write(link.Url); if (!string.IsNullOrEmpty(link.Title)) { renderer.Write(" \""); renderer.Write(link.Title.Replace(@"""", @"\""")); renderer.Write("\""); } renderer.Write(')'); } } }
protected override void Write(NormalizeRenderer renderer, LinkInline link) { if (link.IsImage) { renderer.Write('!'); } renderer.Write('['); renderer.WriteChildren(link); renderer.Write(']'); //if (link.Label != null) //{ // var literal = link.FirstChild as LiteralInline; // if (literal != null && literal.Content.Match(link.Label) && literal.Content.Length == link.Label.Length) // { // // collapsed reference and shortcut links // if (!link.IsShortcut) // { // renderer.Write("[]"); // } // } // else // { // // full link // renderer.Write('[').Write(link.Label).Write(']'); // } //} //else //{ if (!string.IsNullOrEmpty(link.Url)) { //var url = AideDeJeu.Tools.Helpers.RemoveDiacritics(link.Url).Replace(".md#", "_") + ".md"; renderer.Write('(').Write(link.Url); if (!string.IsNullOrEmpty(link.Title)) { renderer.Write(" \""); renderer.Write(link.Title.Replace(@"""", @"\""")); renderer.Write("\""); } renderer.Write(')'); } //} }
protected override void Write(NormalizeRenderer renderer, CodeInline obj) { var delimiterCount = 0; string content = obj.Content; for (var i = 0; i < content.Length; i++) { var index = content.IndexOf(obj.Delimiter, i); if (index == -1) { break; } var count = 1; for (i = index + 1; i < content.Length; i++) { if (content[i] == obj.Delimiter) { count++; } else { break; } } if (delimiterCount < count) { delimiterCount = count; } } var delimiterRun = new string(obj.Delimiter, delimiterCount + 1); renderer.Write(delimiterRun); if (content.Length != 0) { if (content[0] == obj.Delimiter) { renderer.Write(' '); } renderer.Write(content); if (content[content.Length - 1] == obj.Delimiter) { renderer.Write(' '); } } else { renderer.Write(' '); } renderer.Write(delimiterRun); }
protected override void Write(NormalizeRenderer renderer, LinkInline obj) { renderer.Write(obj.Url); }
protected override void Write(NormalizeRenderer renderer, TaskList obj) { renderer.Write("["); renderer.Write(obj.Checked ? "X" : " "); renderer.Write("]"); }
protected override void Write(NormalizeRenderer renderer, Mention obj) { renderer.Write(obj.Name); }
protected override void Write(NormalizeRenderer renderer, MathInline obj) { renderer.Write('$'); renderer.Write(ref obj.Content); renderer.Write('$'); }
protected override void Write(NormalizeRenderer renderer, AutolinkInline obj) { renderer.Write('<').Write(obj.Url).Write('>'); }
protected override void Write(NormalizeRenderer renderer, DelimiterInline obj) { renderer.Write(obj.ToLiteral()); renderer.WriteChildren(obj); }
protected override void Write(NormalizeRenderer renderer, DisplayLinkInline obj) { renderer.Write(obj.DisplayLink.ToString()); }
protected override void Write(NormalizeRenderer renderer, HtmlInline obj) { renderer.Write(obj.Tag); }
protected override void Write(NormalizeRenderer renderer, JiraLink obj) { renderer.Write(obj.ProjectKey); renderer.Write("-"); renderer.Write(obj.Issue); }
protected override void Write(NormalizeRenderer renderer, HtmlEntityInline obj) { renderer.Write(obj.Original); }
protected override void Write(NormalizeRenderer renderer, Table obj) { renderer.EnsureLine(); foreach (var row in obj.OfType <TableRow>()) { renderer.Write(PipeSeparator); foreach (var tableCell in row) { renderer.Write(MarginSeparator); renderer.Render(tableCell); renderer.Write(MarginSeparator); renderer.Write(PipeSeparator); } renderer.WriteLine(); if (row.IsHeader) { bool alignmentEnabled = obj.ColumnDefinitions.Any(c => c.Alignment != TableColumnAlign.Left); renderer.Write(PipeSeparator); foreach (var column in obj.ColumnDefinitions) { renderer.Write(MarginSeparator); if (alignmentEnabled && (column.Alignment == TableColumnAlign.Left || column.Alignment == TableColumnAlign.Center)) { renderer.Write(AlignmentChar); } renderer.Write(HeaderSeparator); if (alignmentEnabled && (column.Alignment == TableColumnAlign.Right || column.Alignment == TableColumnAlign.Center)) { renderer.Write(AlignmentChar); } renderer.Write(MarginSeparator); renderer.Write(PipeSeparator); } renderer.WriteLine(); } } renderer.FinishBlock(true); }
protected override void Write(NormalizeRenderer renderer, Hashtag obj) { renderer.Write(obj.Tag); }