예제 #1
0
 protected virtual void WriteContent(JsonRenderer renderer, TObject obj)
 {
     if (obj is ContainerInline containerInline)
     {
         renderer.WriteContentProperty(containerInline);
     }
 }
예제 #2
0
 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();
 }
예제 #3
0
 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());
     }
 }
예제 #4
0
        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);
            }
        }
예제 #5
0
 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);
         }
     }
 }
예제 #6
0
 protected override string GetText(JsonRenderer renderer, HtmlEntityInline obj) => obj.Transcoded.ToString();
예제 #7
0
 protected override string GetText(JsonRenderer renderer, LiteralInline obj) => obj.Content.ToString();
예제 #8
0
 protected override string GetType(JsonRenderer renderer, LineBreakInline obj) => "br";
예제 #9
0
 protected override string GetType(JsonRenderer renderer, LinkInline obj) => obj.IsImage ? "image" : "link";
예제 #10
0
 protected abstract string GetText(JsonRenderer renderer, TObject obj);
예제 #11
0
 protected override string GetType(JsonRenderer renderer, EmphasisInline obj) => obj.DelimiterCount > 1 ? "strong" : "emphasis";
예제 #12
0
 protected sealed override string GetType(JsonRenderer renderer, TObject obj) => "text";
예제 #13
0
 protected override string GetText(JsonRenderer renderer, DelimiterInline obj) => obj.ToLiteral();
예제 #14
0
 protected override void WriteData(JsonRenderer renderer, AutolinkInline obj)
 {
     renderer.WriteProperty("title", obj.Url);
     renderer.WriteProperty("url", obj.IsEmail ? "mailto:" + obj.Url : obj.Url);
 }
예제 #15
0
 protected override string GetType(JsonRenderer renderer, CodeInline obj) => "tagref";
예제 #16
0
 protected override string GetType(JsonRenderer renderer, AutolinkInline obj) => "link";
예제 #17
0
 protected override void WriteContent(JsonRenderer renderer, ParagraphBlock obj) => renderer.WriteContentProperty(obj.Inline);
예제 #18
0
 protected override string GetType(JsonRenderer renderer, ParagraphBlock obj) => "paragraph";
예제 #19
0
 protected override void Write(JsonRenderer renderer, TObject obj)
 {
     renderer.WriteTextContent(GetText(renderer, obj));
 }
예제 #20
0
 protected override void Write(JsonRenderer renderer, DelimiterInline obj)
 {
     base.Write(renderer, obj);
     renderer.WriteChildren(obj);
 }
예제 #21
0
 protected virtual void WriteData(JsonRenderer renderer, TObject obj)
 {
 }
예제 #22
0
 protected override void WriteData(JsonRenderer renderer, TObject obj)
 {
 }