diff --git a/packages/draft-js-export-html/src/stateToHTML.js b/packages/draft-js-export-html/src/stateToHTML.js index d90b7fac..c040bfc7 100644 --- a/packages/draft-js-export-html/src/stateToHTML.js +++ b/packages/draft-js-export-html/src/stateToHTML.js @@ -30,7 +30,7 @@ type RenderConfig = { style?: StyleDescr; }; -type BlockRenderer = (block: ContentBlock) => ?string; +type BlockRenderer = (block: ContentBlock, generator?: MarkupGenerator) => ?string; type BlockRendererMap = {[blockType: string]: BlockRenderer}; type StyleMap = {[styleName: string]: RenderConfig}; @@ -233,7 +233,7 @@ class MarkupGenerator { blockRenderers != null && blockRenderers.hasOwnProperty(blockType) ? blockRenderers[blockType] : null; - let customRendererOutput = customRenderer ? customRenderer(block) : null; + let customRendererOutput = customRenderer ? customRenderer(block, this) : null; // Renderer can return null, which will cause processing to continue as normal. if (customRendererOutput != null) { this.output.push(customRendererOutput); diff --git a/packages/draft-js-export-html/typings/index.d.ts b/packages/draft-js-export-html/typings/index.d.ts index ec40b149..17e30f39 100644 --- a/packages/draft-js-export-html/typings/index.d.ts +++ b/packages/draft-js-export-html/typings/index.d.ts @@ -3,9 +3,12 @@ declare module 'draft-js-export-html' { import draftjs = require("draft-js"); + type MarkupGenerator = { + renderBlockContent(block: draftjs.ContentBlock): string; + } type BlockStyleFn = (block: draftjs.ContentBlock) => RenderConfig|undefined; type EntityStyleFn = (entity: draftjs.EntityInstance) => RenderConfig|undefined; - type BlockRenderer = (block: draftjs.ContentBlock) => string; + type BlockRenderer = (block: draftjs.ContentBlock, generator?: MarkupGenerator) => string; type RenderConfig = { element?: string; attributes?: any;