public override string ToMarkdown(MarkdownTranslationContext ctx) { string content = ""; switch (type) { case HeaderType.H1: content = "# "; break; case HeaderType.H2: content = "## "; break; case HeaderType.H3: content = "### "; break; case HeaderType.H4: content = "#### "; break; } string htype = content; content += base.ToMarkdown(ctx); return(content + "\n"); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { string c = base.ToMarkdown(ctx); c = string.Join("\n", c.Split('\n').Select(l => l == "" ? "" : "> " + l)); return(c); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { if (AncestorIs(DmlElementType.CodeBlock, DmlElementType.InlineCode)) { return(Content); } return(Content.Replace("*", "\\*").Replace("~~", "\\~~").Replace("_", "\\_")); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { if (AncestorIs(DmlElementType.CodeBlock, DmlElementType.InlineCode)) { return(base.ToMarkdown(ctx)); } return("<span id=\"" + Attributes["id"] + "\">" + base.ToMarkdown(ctx) + "</span>"); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { if (AncestorIs(DmlElementType.CodeBlock, DmlElementType.InlineCode)) { return(base.ToMarkdown(ctx)); } return("<sup>" + base.ToMarkdown(ctx) + "</sup>"); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { string content = base.ToMarkdown(ctx); if (AncestorIs(DmlElementType.CodeBlock, DmlElementType.InlineCode)) { return(content); } return("**" + content + "**"); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { string content = base.ToMarkdown(ctx); if (AncestorIs(DmlElementType.CodeBlock, DmlElementType.InlineCode)) { return(content); } return("<span style=\"" + Attributes["style"] + "\">" + content + "</span>"); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { string href = (Attributes.ContainsKey("href") ? Attributes["href"] : "").Trim(); string title = (Attributes.ContainsKey("title") ? Attributes["title"] : "").Trim(); if (AncestorIs(DmlElementType.CodeBlock, DmlElementType.InlineCode)) { return(string.Format("[[ {0} | {1} | {2} ]]", base.ToMarkdown(ctx), href, title)); } return($"[{base.ToMarkdown(ctx)}]({href} \"{title}\")"); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { string src = (Attributes.ContainsKey("src") ? Attributes["src"] : "").Trim(); string alt = (Attributes.ContainsKey("alt") ? Attributes["alt"] : "").Trim(); string title = (Attributes.ContainsKey("title") ? Attributes["title"] : "").Trim(); if (AncestorIs(DmlElementType.CodeBlock, DmlElementType.InlineCode)) { return(string.Format("[{ {0} | {1} | {2} }]", alt, src, title)); } return($"![{alt}]({src} \"{title}\")"); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { string content = ""; if (!isBlock) { content = base.ToMarkdown(ctx); int needed = 0; while (content.Contains("".PadLeft(needed++, '`'))) { ; } string wrap = "".PadLeft(needed - 1, '`'); content = wrap + "" + content + "" + wrap; } else { string lang = (Attributes.ContainsKey("class") ? Attributes["class"] : ""); string body = base.ToMarkdown(ctx); int needed = 2; while (body.Contains("".PadLeft(needed++, '`'))) { ; } string wrap = "".PadLeft(needed, '`'); if (ctx.CodeBlockSupport.HasFlag(CodeBlockSupport.Full)) { body = body.TrimEnd('\n'); } else if (ctx.CodeBlockSupport.HasFlag(CodeBlockSupport.Multiline)) { body = string.Join("\n", body.Split('\n').Where(s => s != string.Empty)); // -> Remove empty spaces, MD doesn't continue the block with them } else { var bodyparts = body.Split('\n'); if (bodyparts.Last() == "") { bodyparts = bodyparts.Take(bodyparts.Length - 1).ToArray(); } body = string.Join("\n", bodyparts.Select(s => s != string.Empty ? s : wrap + "\n" + wrap)); // -> Close and re open in different code blocks } content = wrap + lang + "\n" + body + "\n" + wrap + "\n\n"; // End with two NewLines } return(content); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { string content = base.ToMarkdown(ctx); var parts = content.Split('\n'); // Beauty hack: Check if after the first "\n" there is an indentation // in that case, use the \n, if not, discard it if (parts.Count() > 1 && !parts[1].StartsWith(" ")) { parts = parts.Skip(1).ToArray(); } content = string.Join("\n", parts); if ((int)Properties["indents"] == 0) { content += "\n"; } return(content); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { ListNode parent = Parent as ListNode; int level = 0; if (parent.Properties.ContainsKey("indents")) { level = (int)parent.Properties["indents"] * 4; } else { parent.Properties["indents"] = level; } if (complete) { return("\n" + "".PadRight(level, ' ') + "- [x] " + base.ToMarkdown(ctx)); } return("\n" + "".PadRight(level, ' ') + "- [ ] " + base.ToMarkdown(ctx)); }
public virtual string ToMarkdown(MarkdownTranslationContext ctx) => string.Join("", Children.Select(c => c.ToMarkdown(ctx)));
public override string ToMarkdown(MarkdownTranslationContext ctx) { return("- - - -"); }
public override string ToMarkdown(MarkdownTranslationContext ctx) { return(base.ToMarkdown(ctx) + "\n"); }