protected virtual void WriteContent(JsonRenderer renderer, TObject obj) { if (obj is ContainerInline containerInline) { renderer.WriteContentProperty(containerInline); } }
protected override void Write(JsonRenderer renderer, TObject obj) { renderer.WriteTextEnd(); renderer.JsonWriter.WriteStartObject(); renderer.WriteProperty("type", GetType(renderer, obj)); WriteData(renderer, obj); WriteContent(renderer, obj); renderer.JsonWriter.WriteEndObject(); }
public static string ToJson(MarkdownDocument document) { using (var sw = new StringWriter()) { var jsonRenderer = new Jr.JsonRenderer(sw); _Pipeline.Setup(jsonRenderer); jsonRenderer.Render(document); return(sw.ToString()); } }
protected override void WriteContent(JsonRenderer renderer, CodeInline obj) { var content = obj.Content; var tag = Extension.GetTagName(content); if (tag != null) { renderer.WriteProperty("tag", content); renderer.WriteProperty("text", tag); } else { renderer.WriteProperty("text", content); } }
protected override void WriteData(JsonRenderer renderer, LinkInline obj) { var(url, title, nsfw) = obj.GetData(); renderer.WriteProperty("title", title); renderer.WriteProperty("url", url); if (obj.IsImage) { if (nsfw is null) { renderer.WriteProperty("nsfw", false); } else { renderer.WriteProperty("nsfw", nsfw); } } }
protected override string GetText(JsonRenderer renderer, HtmlEntityInline obj) => obj.Transcoded.ToString();
protected override string GetText(JsonRenderer renderer, LiteralInline obj) => obj.Content.ToString();
protected override string GetType(JsonRenderer renderer, LineBreakInline obj) => "br";
protected override string GetType(JsonRenderer renderer, LinkInline obj) => obj.IsImage ? "image" : "link";
protected abstract string GetText(JsonRenderer renderer, TObject obj);
protected override string GetType(JsonRenderer renderer, EmphasisInline obj) => obj.DelimiterCount > 1 ? "strong" : "emphasis";
protected sealed override string GetType(JsonRenderer renderer, TObject obj) => "text";
protected override string GetText(JsonRenderer renderer, DelimiterInline obj) => obj.ToLiteral();
protected override void WriteData(JsonRenderer renderer, AutolinkInline obj) { renderer.WriteProperty("title", obj.Url); renderer.WriteProperty("url", obj.IsEmail ? "mailto:" + obj.Url : obj.Url); }
protected override string GetType(JsonRenderer renderer, CodeInline obj) => "tagref";
protected override string GetType(JsonRenderer renderer, AutolinkInline obj) => "link";
protected override void WriteContent(JsonRenderer renderer, ParagraphBlock obj) => renderer.WriteContentProperty(obj.Inline);
protected override string GetType(JsonRenderer renderer, ParagraphBlock obj) => "paragraph";
protected override void Write(JsonRenderer renderer, TObject obj) { renderer.WriteTextContent(GetText(renderer, obj)); }
protected override void Write(JsonRenderer renderer, DelimiterInline obj) { base.Write(renderer, obj); renderer.WriteChildren(obj); }
protected virtual void WriteData(JsonRenderer renderer, TObject obj) { }
protected override void WriteData(JsonRenderer renderer, TObject obj) { }