示例#1
0
        protected override void Write(PPTXRenderer renderer, EmphasisInline obj)
        {
            var cloneFont = renderer.Writer.CurrentFont.Clone();

            if (obj.DelimiterChar == '*' || obj.DelimiterChar == '_')
            {
                if (obj.IsDouble)
                {
                    cloneFont.Bold = true;
                }
                else
                {
                    cloneFont.Italic = true;
                }
            }
            else if (obj.DelimiterChar == '~')
            {
                if (obj.IsDouble)
                {
                    cloneFont.Strike = true;
                }
            }

            renderer.Writer.FontStack.Push(cloneFont);

            renderer.WriteChildren(obj);

            renderer.Writer.FontStack.Pop();
        }
示例#2
0
        protected static PPTXDocument ToPPTxDocument(string markdown, PPTXSetting options = null, MarkdownPipeline pipeline = null)
        {
            options = options ?? new PPTXSetting()
            {
                SlideSize = EPPTXSlideSizeValues.Screen4x3
            };

            pipeline = pipeline ?? new MarkdownPipelineBuilder()
                       .UsePipeTables()
                       .UseEmphasisExtras()
                       .Build();

            var document = Markdig.Markdown.Parse(markdown, pipeline);

            var pptx = new PPTXDocument();

            var slide = new SlideManager(pptx, options);

            var renderer = new PPTXRenderer(slide, options);

            pipeline.Setup(renderer);

            renderer.Render(document);

            slide.EndSheet();

            return(pptx);
        }
示例#3
0
        private void WriteHyperLink(PPTXRenderer renderer, LinkInline link)
        {
            renderer.PushHyperLink(new PPTXLink()
            {
                LinkKey = link.Url,
                LinkURL = link.Url
            });

            if (link.Label != null)
            {
                var literal = link.FirstChild as LiteralInline;
                if (literal != null && literal.Content.Match(link.Label) && literal.Content.Length == link.Label.Length)
                {
                }
                else
                {
                    // full link
                    renderer.Write(link.Label);
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(link.Url))
                {
                    renderer.WriteChildren(link);
                }
            }

            renderer.PopHyperLink();
        }
示例#4
0
        protected override void Write(PPTXRenderer renderer, LinkInline link)
        {
            if (link.IsImage)
            {
                renderer.EndTextArea();

                WriteImageLink(renderer, link);
            }
            else
            {
                WriteHyperLink(renderer, link);
            }
        }
 protected override void Write(PPTXRenderer renderer, HtmlEntityInline obj)
 {
     renderer.Write(obj.Original);
 }
示例#6
0
 protected override void Write(PPTXRenderer renderer, CodeInline obj)
 {
     renderer.PushInlineSetting(renderer.Options.InlineCode);
     renderer.Write(obj.Content);
     renderer.PopBlockSetting();
 }
 protected override void Write(PPTXRenderer renderer, DelimiterInline obj)
 {
     renderer.WriteChildren(obj);
 }
示例#8
0
 protected override void Write(PPTXRenderer renderer, AutolinkInline obj)
 {
     renderer.Write(obj.Url);
 }
示例#9
0
 protected override void Write(PPTXRenderer renderer, HtmlInline obj)
 {
     renderer.Write(obj.Tag);
 }
示例#10
0
 protected override void Write(PPTXRenderer renderer, LineBreakInline obj)
 {
     renderer.WriteReturn();
 }
示例#11
0
 private void WriteImageLink(PPTXRenderer renderer, LinkInline link)
 {
     renderer.WriteImage(new PPTXImage(link.Url));
 }
示例#12
0
 protected override void Write(PPTXRenderer renderer, LiteralInline obj)
 {
     renderer.Write(ref obj.Content);
 }