/// <summary>
        /// Setups this extension for the specified renderer.
        /// </summary>
        /// <param name="pipeline">The pipeline used to parse the document.</param>
        /// <param name="renderer">The renderer.</param>
        public void Setup(MarkdownPipeline pipeline, IMarkdownRenderer renderer)
        {
            if (renderer == null)
            {
                throw new ArgumentNullException(nameof(renderer));
            }

            // Make sure "renderer" is an instance of TextRendererBase<HtmlRenderer>
            TextRendererBase <HtmlRenderer> htmlRenderer = renderer as TextRendererBase <HtmlRenderer>;

            if (htmlRenderer == null)
            {
                return;
            }

            // Make sure we remove the original code block renderer if it's still there
            CodeBlockRenderer originalCodeBlockRenderer = htmlRenderer.ObjectRenderers.FindExact <CodeBlockRenderer>();

            if (originalCodeBlockRenderer != null)
            {
                htmlRenderer.ObjectRenderers.Remove(originalCodeBlockRenderer);
            }

            // Add our custom code block renderer
            htmlRenderer.ObjectRenderers.AddIfNotAlready(new SyntaxHighlighterCodeBlockRenderer(originalCodeBlockRenderer, Options));
        }
예제 #2
0
 public void TearDown()
 {
     _basic           = null;
     _blockBasic      = null;
     _basicLoc        = null;
     _blockBaseString = null;
 }
        protected override IMarkdownRenderer CreateRenderer(TextWriter writer)
        {
            var renderer = new HtmlRenderer(writer);

            CodeBlockRenderer codeBlockRenderer = null;

            foreach (var objectRenderer in renderer.ObjectRenderers)
            {
                codeBlockRenderer = objectRenderer as CodeBlockRenderer;
                if (codeBlockRenderer != null)
                {
                    break;
                }
            }

            var cpCodeBlockRenderer = new CPCodeBlockRenderer();

            if (codeBlockRenderer != null)
            {
                renderer.ObjectRenderers.Replace <CodeBlockRenderer>(cpCodeBlockRenderer);
            }
            else
            {
                renderer.ObjectRenderers.Add(cpCodeBlockRenderer);
            }

            return(renderer);
        }
 public HighlightJsCodeBlockRenderer(
     IHighlightJsEngine highlightJsEngine,
     CodeBlockRenderer underlyingRenderer = null)
 {
     _highlightJsEngine  = highlightJsEngine;
     _underlyingRenderer = underlyingRenderer ?? new CodeBlockRenderer();
 }
예제 #5
0
 public void Setup()
 {
     document = new MigraDocCore.DocumentObjectModel.Document();
     // Workaround for a quirk in the migradoc API.
     _          = document.AddSection().Elements;
     pdfBuilder = new PdfBuilder(document, PdfOptions.Default);
     renderer   = new CodeBlockRenderer();
     block      = CreateCodeBlock("this is source code");
 }
예제 #6
0
        public void Setup()
        {
            // Basic LOC params
            _basicLoc = "var x = 1;";
            _basic    = new CodeBlockRenderer(_basicLoc);

            // Block Code params
            _blockBaseString = "if (true)";
            _blockBasic      = new CodeBlockRenderer(_blockBaseString, true);

            // block in block string
            _blockBlockBaseString = "if (false)";
        }
 /// <summary>
 /// Initializes a new code block renderer with specified <paramref name="fallback"/>.
 /// </summary>
 /// <param name="fallback">A fallback code block renderer.</param>
 /// <param name="options">The options for configuration the syntax highlighter extension.</param>
 public SyntaxHighlighterCodeBlockRenderer(CodeBlockRenderer fallback, SyntaxHighlighterOptions options)
 {
     Fallback = fallback ?? new CodeBlockRenderer();
     Options  = options ?? new SyntaxHighlighterOptions();
 }
 /// <summary>
 /// Initializes a new code block renderer with default options.
 /// </summary>
 public SyntaxHighlighterCodeBlockRenderer()
 {
     Fallback = new CodeBlockRenderer();
     Options  = new SyntaxHighlighterOptions();
 }
 public PrismCodeBlockOverrideRenderer(CodeBlockRenderer codeBlockRenderer) : base(codeBlockRenderer)
     => this.codeBlockRenderer = codeBlockRenderer;
 public SyntaxHighlightingCodeBlockRenderer(CodeBlockRenderer underlyingRenderer = null, IStyleSheet customCss = null)
 {
     _underlyingRenderer = underlyingRenderer ?? new CodeBlockRenderer();
     _customCss          = customCss;
 }
예제 #11
0
 public PreCodeRenderer(CodeBlockRenderer originalCodeBlockRenderer = null)
 {
     this.originalCodeBlockRenderer = originalCodeBlockRenderer ?? new CodeBlockRenderer();
 }
예제 #12
0
 public PrismCodeBlockRenderer(CodeBlockRenderer codeBlockRenderer)
 {
     this.codeBlockRenderer = codeBlockRenderer ?? new CodeBlockRenderer();
 }
예제 #13
0
 public SyntaxRenderer(CodeBlockRenderer underlyingRenderer)
 {
     _underlyingRenderer = underlyingRenderer ?? new CodeBlockRenderer();
 }
예제 #14
0
 public SyntaxHighlightingCodeBlockRenderer(CodeBlockRenderer underlyingRenderer = null)
 {
     _underlyingRenderer = underlyingRenderer ?? new CodeBlockRenderer();
 }
 public CustomCodeBlockRenderer(CodeBlockRenderer underlyingRenderer = null)
 {
     _underlyingRenderer = underlyingRenderer ?? new CodeBlockRenderer();
 }
 public SyntaxHighlightingCodeBlockRenderer(CodeBlockRenderer underlyingRenderer = null)
 {
     _underlyingRenderer = underlyingRenderer ?? new CodeBlockRenderer();
     formatter           = new HtmlClassFormatter();
 }