diff --git a/.gitignore b/.gitignore index 2cb6028..8733a12 100644 --- a/.gitignore +++ b/.gitignore @@ -80,7 +80,6 @@ typings/ # Nuxt.js build / generate output .nuxt -dist # Gatsby files .cache/ diff --git a/.npmignore b/.npmignore index 9f4c8f8..778ea1a 100644 --- a/.npmignore +++ b/.npmignore @@ -4,3 +4,4 @@ tsconfig.json tslint.json .prettierrc .gitignore +.github \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 0000000..19d6d5d --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1,35 @@ +/// +import Code from './renderers/code'; +import Delimiter from './renderers/delimiter'; +import Embed from './renderers/embed'; +import Header from './renderers/header'; +import Image from './renderers/image'; +import List from './renderers/list'; +import Paragraph from './renderers/paragraph'; +import Quote from './renderers/quote'; +import Table from './renderers/table'; +export declare type ConfigProp = Record; +export declare type RenderConfig = Record; +export declare type RenderFn | undefined> = (_: { + data: T; + className?: string; +} & K) => JSX.Element; +export declare type RenderFnWithoutData | undefined> = (_: { + className?: string; +} & K) => JSX.Element; +export declare type RenderersProp = Record>; +export interface Block { + type: string; + data: Record; +} +export interface DataProp { + time: number; + version: string; + blocks: Block[]; +} +declare const Blocks: ({ data, config, renderers, }: { + data: DataProp; + config?: ConfigProp | undefined; + renderers?: RenderersProp | undefined; +}) => JSX.Element; +export { Blocks as default, Code as CodeBlock, Delimiter as DelimiterBlock, Embed as EmbedBlock, Header as HeaderBlock, Image as ImageBlock, List as ListBlock, Paragraph as ParagraphBlock, Quote as QuoteBlock, Table as TableBlock, }; diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..dde7190 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,60 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TableBlock = exports.QuoteBlock = exports.ParagraphBlock = exports.ListBlock = exports.ImageBlock = exports.HeaderBlock = exports.EmbedBlock = exports.DelimiterBlock = exports.CodeBlock = exports.default = void 0; +var react_1 = __importDefault(require("react")); +var code_1 = __importDefault(require("./renderers/code")); +exports.CodeBlock = code_1.default; +var delimiter_1 = __importDefault(require("./renderers/delimiter")); +exports.DelimiterBlock = delimiter_1.default; +var embed_1 = __importDefault(require("./renderers/embed")); +exports.EmbedBlock = embed_1.default; +var header_1 = __importDefault(require("./renderers/header")); +exports.HeaderBlock = header_1.default; +var image_1 = __importDefault(require("./renderers/image")); +exports.ImageBlock = image_1.default; +var list_1 = __importDefault(require("./renderers/list")); +exports.ListBlock = list_1.default; +var paragraph_1 = __importDefault(require("./renderers/paragraph")); +exports.ParagraphBlock = paragraph_1.default; +var quote_1 = __importDefault(require("./renderers/quote")); +exports.QuoteBlock = quote_1.default; +var table_1 = __importDefault(require("./renderers/table")); +exports.TableBlock = table_1.default; +var Blocks = function (_a) { + var data = _a.data, _b = _a.config, config = _b === void 0 ? {} : _b, _c = _a.renderers, renderers = _c === void 0 ? {} : _c; + var defaultRenderers = { + code: code_1.default, + delimiter: delimiter_1.default, + embed: embed_1.default, + header: header_1.default, + image: image_1.default, + list: list_1.default, + paragraph: paragraph_1.default, + quote: quote_1.default, + table: table_1.default, + }; + var availableRenderers = __assign(__assign({}, defaultRenderers), renderers); + return (react_1.default.createElement(react_1.default.Fragment, null, data.blocks.map(function (block, i) { + if (block.type.toString() in availableRenderers) { + // @ts-ignore Todo: find a fix + var Tag = availableRenderers[block.type]; + return react_1.default.createElement(Tag, __assign({ key: i, data: block.data }, config[block.type])); + } + }))); +}; +exports.default = Blocks; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map new file mode 100644 index 0000000..af6a903 --- /dev/null +++ b/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,0DAAoC;AAiF1B,oBAjFH,cAAI,CAiFQ;AAhFnB,oEAA8C;AAiF/B,yBAjFR,mBAAS,CAiFa;AAhF7B,4DAAsC;AAiF3B,qBAjFJ,eAAK,CAiFS;AAhFrB,8DAAwC;AAiF5B,sBAjFL,gBAAM,CAiFU;AAhFvB,4DAAsC;AAiF3B,qBAjFJ,eAAK,CAiFS;AAhFrB,0DAAoC;AAiF1B,oBAjFH,cAAI,CAiFQ;AAhFnB,oEAA8C;AAiF/B,yBAjFR,mBAAS,CAiFa;AAhF7B,4DAAsC;AAiF3B,qBAjFJ,eAAK,CAiFS;AAhFrB,4DAAsC;AAiF3B,qBAjFJ,eAAK,CAiFS;AAjDrB,IAAM,MAAM,GAAG,UAAC,EAQf;QAPC,IAAI,UAAA,EACJ,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAMd,IAAM,gBAAgB,GAAG;QACvB,IAAI,EAAE,cAAI;QACV,SAAS,EAAE,mBAAS;QACpB,KAAK,EAAE,eAAK;QACZ,MAAM,EAAE,gBAAM;QACd,KAAK,EAAE,eAAK;QACZ,IAAI,EAAE,cAAI;QACV,SAAS,EAAE,mBAAS;QACpB,KAAK,EAAE,eAAK;QACZ,KAAK,EAAE,eAAK;KACb,CAAC;IAEF,IAAM,kBAAkB,yBACnB,gBAAgB,GAChB,SAAS,CACb,CAAC;IAEF,OAAO,CACL,8DACG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,kBAAkB,EAAE;YAC/C,8BAA8B;YAC9B,IAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,8BAAC,GAAG,aAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAI,CAAC;SAClE;IACH,CAAC,CAAC,CACD,CACJ,CAAC;AACJ,CAAC,CAAC;AAGU,yBAAO"} \ No newline at end of file diff --git a/dist/renderers/code/index.d.ts b/dist/renderers/code/index.d.ts new file mode 100644 index 0000000..956f4eb --- /dev/null +++ b/dist/renderers/code/index.d.ts @@ -0,0 +1,7 @@ +import { RenderFn } from '../..'; +export interface CodeBlockData { + code: string; + lang?: string; +} +declare const Code: RenderFn; +export default Code; diff --git a/dist/renderers/code/index.js b/dist/renderers/code/index.js new file mode 100644 index 0000000..15e0a26 --- /dev/null +++ b/dist/renderers/code/index.js @@ -0,0 +1,29 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var Code = function (_a) { + var data = _a.data, _b = _a.className, className = _b === void 0 ? '' : _b; + var props = {}; + if (className) { + props.className = className; + } + if (data === null || data === void 0 ? void 0 : data.lang) + props.lang = data.lang; + return react_1.default.createElement("pre", null, (data === null || data === void 0 ? void 0 : data.code) && react_1.default.createElement("code", __assign({}, props), "" + data.code)); +}; +exports.default = Code; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/renderers/code/index.js.map b/dist/renderers/code/index.js.map new file mode 100644 index 0000000..8ced5ef --- /dev/null +++ b/dist/renderers/code/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/code/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAAkC;AAQlC,IAAM,IAAI,GAA4B,UAAC,EAAwB;QAAtB,IAAI,UAAA,EAAE,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAC3D,IAAM,KAAK,GAEP,EAAE,CAAC;IAEP,IAAI,SAAS,EAAE;QACb,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;KAC7B;IAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI;QAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAEvC,OAAO,2CAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,mDAAU,KAAK,GAAG,KAAG,IAAI,CAAC,IAAM,CAAQ,CAAO,CAAC;AAC7E,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC"} \ No newline at end of file diff --git a/dist/renderers/delimiter/index.d.ts b/dist/renderers/delimiter/index.d.ts new file mode 100644 index 0000000..f4686cc --- /dev/null +++ b/dist/renderers/delimiter/index.d.ts @@ -0,0 +1,3 @@ +import { RenderFnWithoutData } from '../..'; +declare const Delimiter: RenderFnWithoutData; +export default Delimiter; diff --git a/dist/renderers/delimiter/index.js b/dist/renderers/delimiter/index.js new file mode 100644 index 0000000..0e742f9 --- /dev/null +++ b/dist/renderers/delimiter/index.js @@ -0,0 +1,27 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var Delimiter = function (_a) { + var _b = _a.className, className = _b === void 0 ? '' : _b; + var props = {}; + if (className) { + props.className = className; + } + return react_1.default.createElement("hr", __assign({}, props)); +}; +exports.default = Delimiter; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/renderers/delimiter/index.js.map b/dist/renderers/delimiter/index.js.map new file mode 100644 index 0000000..e2a7576 --- /dev/null +++ b/dist/renderers/delimiter/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/delimiter/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAG1B,IAAM,SAAS,GAAwB,UAAC,EAAkB;QAAhB,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IACtD,IAAM,KAAK,GAEP,EAAE,CAAC;IAEP,IAAI,SAAS,EAAE;QACb,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;KAC7B;IAED,OAAO,iDAAQ,KAAK,EAAI,CAAC;AAC3B,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/dist/renderers/embed/index.d.ts b/dist/renderers/embed/index.d.ts new file mode 100644 index 0000000..8eeea84 --- /dev/null +++ b/dist/renderers/embed/index.d.ts @@ -0,0 +1,15 @@ +import { RenderFn } from '../..'; +export interface EmbedBlockData { + service: string; + source: string; + embed?: string; + width?: number; + height?: number; + caption?: string; +} +export interface EmbedBlockConfig { + rel?: string; + sandbox?: string | null; +} +declare const Embed: RenderFn; +export default Embed; diff --git a/dist/renderers/embed/index.js b/dist/renderers/embed/index.js new file mode 100644 index 0000000..cbbc730 --- /dev/null +++ b/dist/renderers/embed/index.js @@ -0,0 +1,43 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var html_react_parser_1 = __importDefault(require("html-react-parser")); +var Embed = function (_a) { + var data = _a.data, _b = _a.className, className = _b === void 0 ? '' : _b, _c = _a.rel, rel = _c === void 0 ? 'noreferer nofollower external' : _c, sandbox = _a.sandbox; + var classNames = []; + if (className) + classNames.push(className); + classNames.push("embed-block-service-" + (data === null || data === void 0 ? void 0 : data.service)); + var figureprops = {}; + if (classNames.length > 0) { + figureprops.className = classNames.join(' '); + } + if (data === null || data === void 0 ? void 0 : data.width) { + figureprops.width = data.width.toString(); + } + if (data === null || data === void 0 ? void 0 : data.height) { + figureprops.height = data.height.toString(); + } + if (sandbox) { + figureprops.sandbox = sandbox.toString(); + } + return (react_1.default.createElement("figure", null, + (data === null || data === void 0 ? void 0 : data.embed) ? (react_1.default.createElement("iframe", __assign({ src: data.embed }, figureprops, { frameBorder: "0", "data-src": data.source }))) : (react_1.default.createElement("a", { href: data === null || data === void 0 ? void 0 : data.source, target: "_blank", rel: rel }, data === null || data === void 0 ? void 0 : data.source)), + (data === null || data === void 0 ? void 0 : data.caption) && react_1.default.createElement("figcaption", null, (0, html_react_parser_1.default)(data.caption)))); +}; +exports.default = Embed; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/renderers/embed/index.js.map b/dist/renderers/embed/index.js.map new file mode 100644 index 0000000..32ed9e0 --- /dev/null +++ b/dist/renderers/embed/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/embed/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,wEAAgD;AAiBhD,IAAM,KAAK,GAA+C,UAAC,EAK1D;QAJC,IAAI,UAAA,EACJ,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,WAAqC,EAArC,GAAG,mBAAG,+BAA+B,KAAA,EACrC,OAAO,aAAA;IAEP,IAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,SAAS;QAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,UAAU,CAAC,IAAI,CAAC,0BAAuB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAE,CAAC,CAAC;IAExD,IAAM,WAAW,GAEb,EAAE,CAAC;IAEP,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,WAAW,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9C;IAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE;QACf,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KAC3C;IAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE;QAChB,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KAC7C;IAED,IAAI,OAAO,EAAE;QACX,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;KAC1C;IAED,OAAO,CACL;QACG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAC,CAAC,CAAC,CACb,mDAAQ,GAAG,EAAE,IAAI,CAAC,KAAK,IAAM,WAAW,IAAE,WAAW,EAAC,GAAG,cAAW,IAAI,CAAC,MAAM,IAAW,CAC3F,CAAC,CAAC,CAAC,CACF,qCAAG,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAE,GAAG,IAC5C,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CACX,CACL;QACA,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,kDAAa,IAAA,2BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,CAAc,CACnE,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,KAAK,CAAC"} \ No newline at end of file diff --git a/dist/renderers/header/index.d.ts b/dist/renderers/header/index.d.ts new file mode 100644 index 0000000..2127f07 --- /dev/null +++ b/dist/renderers/header/index.d.ts @@ -0,0 +1,7 @@ +import { RenderFn } from '../..'; +export interface HeaderBlockData { + text: string; + level: number; +} +declare const Header: RenderFn; +export default Header; diff --git a/dist/renderers/header/index.js b/dist/renderers/header/index.js new file mode 100644 index 0000000..2edf994 --- /dev/null +++ b/dist/renderers/header/index.js @@ -0,0 +1,29 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var html_react_parser_1 = __importDefault(require("html-react-parser")); +var Header = function (_a) { + var data = _a.data, _b = _a.className, className = _b === void 0 ? '' : _b; + var props = {}; + if (className) { + props.className = className; + } + var Tag = "h" + ((data === null || data === void 0 ? void 0 : data.level) || 1); + return react_1.default.createElement(Tag, __assign({}, props), (data === null || data === void 0 ? void 0 : data.text) && (0, html_react_parser_1.default)(data.text)); +}; +exports.default = Header; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/renderers/header/index.js.map b/dist/renderers/header/index.js.map new file mode 100644 index 0000000..1bb08a3 --- /dev/null +++ b/dist/renderers/header/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/header/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,wEAAgD;AAQhD,IAAM,MAAM,GAA8B,UAAC,EAAwB;QAAtB,IAAI,UAAA,EAAE,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAC/D,IAAM,KAAK,GAEP,EAAE,CAAC;IAEP,IAAI,SAAS,EAAE;QACb,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;KAC7B;IAED,IAAM,GAAG,GAAG,OAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,KAAI,CAAC,CAAiC,CAAC;IAClE,OAAO,8BAAC,GAAG,eAAK,KAAK,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,IAAA,2BAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAO,CAAC;AAC1E,CAAC,CAAC;AAEF,kBAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/dist/renderers/image/index.d.ts b/dist/renderers/image/index.d.ts new file mode 100644 index 0000000..ba8f4eb --- /dev/null +++ b/dist/renderers/image/index.d.ts @@ -0,0 +1,19 @@ +import { RenderFn } from '../..'; +export interface ImageBlockData { + file: { + url: string; + name?: string; + }; + caption: string; + withBorder: boolean; + withBackground: boolean; + stretched: boolean; + [s: string]: any; +} +export interface ImageBlockConfig { + actionsClassNames?: { + [s: string]: string; + }; +} +declare const Image: RenderFn; +export default Image; diff --git a/dist/renderers/image/index.js b/dist/renderers/image/index.js new file mode 100644 index 0000000..93ce21b --- /dev/null +++ b/dist/renderers/image/index.js @@ -0,0 +1,44 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var html_react_parser_1 = __importDefault(require("html-react-parser")); +var Image = function (_a) { + var _b; + var data = _a.data, _c = _a.className, className = _c === void 0 ? '' : _c, _d = _a.actionsClassNames, actionsClassNames = _d === void 0 ? { + stretched: 'image-block--stretched', + withBorder: 'image-block--with-border', + withBackground: 'image-block--with-background', + } : _d; + var classNames = []; + if (className) + classNames.push(className); + Object.keys(actionsClassNames).forEach(function (actionName) { + if (data && data[actionName] === true && actionName in actionsClassNames) { + // @ts-ignore + classNames.push(actionsClassNames[actionName]); + } + }); + var figureprops = {}; + if (classNames.length > 0) { + figureprops.className = classNames.join(' '); + } + return (react_1.default.createElement("figure", __assign({}, figureprops), + ((_b = data === null || data === void 0 ? void 0 : data.file) === null || _b === void 0 ? void 0 : _b.url) && react_1.default.createElement("img", { src: data.file.url, alt: data.caption || data.file.name }), + (data === null || data === void 0 ? void 0 : data.caption) && react_1.default.createElement("figcaption", null, (0, html_react_parser_1.default)(data.caption)))); +}; +exports.default = Image; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/renderers/image/index.js.map b/dist/renderers/image/index.js.map new file mode 100644 index 0000000..cf38a5a --- /dev/null +++ b/dist/renderers/image/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/image/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,wEAAgD;AAqBhD,IAAM,KAAK,GAA+C,UAAC,EAQ1D;;QAPC,IAAI,UAAA,EACJ,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,yBAIC,EAJD,iBAAiB,mBAAG;QAClB,SAAS,EAAE,wBAAwB;QACnC,UAAU,EAAE,0BAA0B;QACtC,cAAc,EAAE,8BAA8B;KAC/C,KAAA;IAED,IAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,SAAS;QAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE1C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAC,UAAU;QAChD,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,UAAU,IAAI,iBAAiB,EAAE;YACxE,aAAa;YACb,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;SAChD;IACH,CAAC,CAAC,CAAC;IAEH,IAAM,WAAW,GAEb,EAAE,CAAC;IAEP,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,WAAW,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9C;IAED,OAAO,CACL,qDAAY,WAAW;QACpB,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,GAAG,KAAI,uCAAK,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAI;QACnF,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,kDAAa,IAAA,2BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,CAAc,CACnE,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,KAAK,CAAC"} \ No newline at end of file diff --git a/dist/renderers/list/index.d.ts b/dist/renderers/list/index.d.ts new file mode 100644 index 0000000..daa48da --- /dev/null +++ b/dist/renderers/list/index.d.ts @@ -0,0 +1,7 @@ +import { RenderFn } from '../..'; +export interface ListBlockData { + style: 'ordered' | 'unordered'; + items: string[]; +} +declare const List: RenderFn; +export default List; diff --git a/dist/renderers/list/index.js b/dist/renderers/list/index.js new file mode 100644 index 0000000..3704f86 --- /dev/null +++ b/dist/renderers/list/index.js @@ -0,0 +1,29 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var html_react_parser_1 = __importDefault(require("html-react-parser")); +var List = function (_a) { + var data = _a.data, _b = _a.className, className = _b === void 0 ? '' : _b; + var props = {}; + if (className) { + props.className = className; + } + var Tag = ((data === null || data === void 0 ? void 0 : data.style) === 'ordered' ? "ol" : "ul"); + return (react_1.default.createElement(Tag, __assign({}, props), data === null || data === void 0 ? void 0 : data.items.map(function (item, i) { return (react_1.default.createElement("li", { key: i }, (0, html_react_parser_1.default)(item))); }))); +}; +exports.default = List; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/renderers/list/index.js.map b/dist/renderers/list/index.js.map new file mode 100644 index 0000000..db3e953 --- /dev/null +++ b/dist/renderers/list/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/list/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,wEAAgD;AAQhD,IAAM,IAAI,GAA4B,UAAC,EAAwB;QAAtB,IAAI,UAAA,EAAE,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAC3D,IAAM,KAAK,GAEP,EAAE,CAAC;IAEP,IAAI,SAAS,EAAE;QACb,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;KAC7B;IAED,IAAM,GAAG,GAAG,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,MAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAgC,CAAC;IACrF,OAAO,CACL,8BAAC,GAAG,eAAK,KAAK,GACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,CAAC,IAAK,OAAA,CAC5B,sCAAI,GAAG,EAAE,CAAC,IAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,CAAM,CACzC,EAF6B,CAE7B,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC"} \ No newline at end of file diff --git a/dist/renderers/paragraph/index.d.ts b/dist/renderers/paragraph/index.d.ts new file mode 100644 index 0000000..3224cce --- /dev/null +++ b/dist/renderers/paragraph/index.d.ts @@ -0,0 +1,6 @@ +import { RenderFn } from '../..'; +export interface ParagraphBlockData { + text: string; +} +declare const Paragraph: RenderFn; +export default Paragraph; diff --git a/dist/renderers/paragraph/index.js b/dist/renderers/paragraph/index.js new file mode 100644 index 0000000..de20e50 --- /dev/null +++ b/dist/renderers/paragraph/index.js @@ -0,0 +1,28 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var html_react_parser_1 = __importDefault(require("html-react-parser")); +var Paragraph = function (_a) { + var data = _a.data, _b = _a.className, className = _b === void 0 ? '' : _b; + var props = {}; + if (className) { + props.className = className; + } + return react_1.default.createElement("p", __assign({}, props), (data === null || data === void 0 ? void 0 : data.text) && (0, html_react_parser_1.default)(data.text)); +}; +exports.default = Paragraph; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/renderers/paragraph/index.js.map b/dist/renderers/paragraph/index.js.map new file mode 100644 index 0000000..ff0dee0 --- /dev/null +++ b/dist/renderers/paragraph/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/paragraph/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,wEAAgD;AAOhD,IAAM,SAAS,GAAiC,UAAC,EAAwB;QAAtB,IAAI,UAAA,EAAE,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IACrE,IAAM,KAAK,GAEP,EAAE,CAAC;IAEP,IAAI,SAAS,EAAE;QACb,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;KAC7B;IAED,OAAO,gDAAO,KAAK,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,IAAA,2BAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAK,CAAC;AACtE,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/dist/renderers/quote/index.d.ts b/dist/renderers/quote/index.d.ts new file mode 100644 index 0000000..c0031b2 --- /dev/null +++ b/dist/renderers/quote/index.d.ts @@ -0,0 +1,13 @@ +import { RenderFn } from '../..'; +export interface QuoteBlockData { + text: string; + caption?: string; + alignment?: 'left' | 'center'; +} +export interface QuoteBlockConfig { + actionsClassNames?: { + [s: string]: string; + }; +} +declare const Quote: RenderFn; +export default Quote; diff --git a/dist/renderers/quote/index.js b/dist/renderers/quote/index.js new file mode 100644 index 0000000..4664cb6 --- /dev/null +++ b/dist/renderers/quote/index.js @@ -0,0 +1,41 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var html_react_parser_1 = __importDefault(require("html-react-parser")); +var Quote = function (_a) { + var data = _a.data, _b = _a.className, className = _b === void 0 ? '' : _b, _c = _a.actionsClassNames, actionsClassNames = _c === void 0 ? { + alignment: 'text-align-{alignment}', + } : _c; + var classNames = []; + if (data === null || data === void 0 ? void 0 : data.alignment) { + classNames.push(actionsClassNames.alignment.replace('{alignment}', data.alignment)); + } + if (className) + classNames.push(className); + var blockquoteprops = {}; + if (classNames.length > 0) { + blockquoteprops.className = classNames.join(' '); + } + return (react_1.default.createElement("blockquote", __assign({}, blockquoteprops), + (data === null || data === void 0 ? void 0 : data.text) && + data.text + .split('\n\n') + .map(function (paragraph, i) { return (react_1.default.createElement("p", { key: i }, (0, html_react_parser_1.default)(paragraph.split('\n').reduce(function (total, line) { return [total, '
', line].join(''); })))); }), + (data === null || data === void 0 ? void 0 : data.caption) && react_1.default.createElement("footer", null, (0, html_react_parser_1.default)(data.caption)))); +}; +exports.default = Quote; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/renderers/quote/index.js.map b/dist/renderers/quote/index.js.map new file mode 100644 index 0000000..d535033 --- /dev/null +++ b/dist/renderers/quote/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/quote/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,wEAAgD;AAehD,IAAM,KAAK,GAA+C,UAAC,EAM1D;QALC,IAAI,UAAA,EACJ,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,yBAEC,EAFD,iBAAiB,mBAAG;QAClB,SAAS,EAAE,wBAAwB;KACpC,KAAA;IAED,IAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,EAAE;QACnB,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KACrF;IAED,IAAI,SAAS;QAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE1C,IAAM,eAAe,GAEjB,EAAE,CAAC;IAEP,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,eAAe,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClD;IAED,OAAO,CACL,yDAAgB,eAAe;QAC5B,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI;YACT,IAAI,CAAC,IAAI;iBACN,KAAK,CAAC,MAAM,CAAC;iBACb,GAAG,CAAC,UAAC,SAAS,EAAE,CAAC,IAAK,OAAA,CACrB,qCAAG,GAAG,EAAE,CAAC,IACN,IAAA,2BAAe,EAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,IAAI,IAAK,OAAA,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAhC,CAAgC,CAAC,CAAC,CAC/F,CACL,EAJsB,CAItB,CAAC;QACL,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,8CAAS,IAAA,2BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,CAAU,CACvD,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,KAAK,CAAC"} \ No newline at end of file diff --git a/dist/renderers/table/index.d.ts b/dist/renderers/table/index.d.ts new file mode 100644 index 0000000..bffc6f5 --- /dev/null +++ b/dist/renderers/table/index.d.ts @@ -0,0 +1,9 @@ +import { RenderFn } from '../..'; +export interface TableBlockData { + content: string[][]; + header?: string[]; + footer?: string[]; + caption?: string; +} +declare const Table: RenderFn; +export default Table; diff --git a/dist/renderers/table/index.js b/dist/renderers/table/index.js new file mode 100644 index 0000000..0f746c8 --- /dev/null +++ b/dist/renderers/table/index.js @@ -0,0 +1,37 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importDefault(require("react")); +var html_react_parser_1 = __importDefault(require("html-react-parser")); +var Table = function (_a) { + var data = _a.data, _b = _a.className, className = _b === void 0 ? '' : _b; + var tableprops = {}; + if (className) { + tableprops.className = className; + } + return (react_1.default.createElement("table", __assign({}, tableprops), + (data === null || data === void 0 ? void 0 : data.caption) && react_1.default.createElement("caption", null, (0, html_react_parser_1.default)(data.caption)), + (data === null || data === void 0 ? void 0 : data.header) && (react_1.default.createElement("thead", null, + react_1.default.createElement("tr", null, data.header.map(function (cell, i) { return (react_1.default.createElement("th", { key: "" + i }, (0, html_react_parser_1.default)(cell))); })))), + react_1.default.createElement("tbody", null, data === null || data === void 0 ? void 0 : data.content.map(function (row, i) { return (react_1.default.createElement("tr", { key: "" + i }, row.map(function (cell, j) { + var Tag = "t" + (j === 0 ? 'h' : 'd'); + return react_1.default.createElement(Tag, { key: "" + i + j }, (0, html_react_parser_1.default)(cell)); + }))); })), + (data === null || data === void 0 ? void 0 : data.footer) && (react_1.default.createElement("tfoot", null, + react_1.default.createElement("tr", null, data === null || data === void 0 ? void 0 : data.footer.map(function (cell, i) { return (react_1.default.createElement("th", { key: "" + i }, (0, html_react_parser_1.default)(cell))); })))))); +}; +exports.default = Table; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/renderers/table/index.js.map b/dist/renderers/table/index.js.map new file mode 100644 index 0000000..3d7d4f3 --- /dev/null +++ b/dist/renderers/table/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/table/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,wEAAgD;AAUhD,IAAM,KAAK,GAA6B,UAAC,EAAwB;QAAtB,IAAI,UAAA,EAAE,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAC7D,IAAM,UAAU,GAEZ,EAAE,CAAC;IAEP,IAAI,SAAS,EAAE;QACb,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;KAClC;IAED,OAAO,CACL,oDAAW,UAAU;QAClB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,+CAAU,IAAA,2BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,CAAW;QACnE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,CACf;YACE,0CACG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,CAAC,IAAK,OAAA,CAC5B,sCAAI,GAAG,EAAE,KAAG,CAAG,IAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,CAAM,CAC9C,EAF6B,CAE7B,CAAC,CACC,CACC,CACT;QACD,6CACG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAA,CAC7B,sCAAI,GAAG,EAAE,KAAG,CAAG,IACZ,GAAG,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,CAAC;YACf,IAAM,GAAG,GAAG,OAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAiC,CAAC;YACrE,OAAO,8BAAC,GAAG,IAAC,GAAG,EAAE,KAAG,CAAC,GAAG,CAAG,IAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,CAAO,CAAC;QAC7D,CAAC,CAAC,CACC,CACN,EAP8B,CAO9B,CAAC,CACI;QACP,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,CACf;YACE,0CACG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,CAAC,IAAK,OAAA,CAC7B,sCAAI,GAAG,EAAE,KAAG,CAAG,IAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,CAAM,CAC9C,EAF8B,CAE9B,CAAC,CACC,CACC,CACT,CACK,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,KAAK,CAAC"} \ No newline at end of file diff --git a/package.json b/package.json index 8b4ea9d..6cf2612 100644 --- a/package.json +++ b/package.json @@ -20,12 +20,7 @@ "test:watch": "jest --watch", "format": "prettier --write \"src/**/*.tsx\"", "lint": "tslint -p tsconfig.json", - "prepare": "npm run build", - "prepublishOnly": "npm test && npm run lint", - "preversion": "npm run lint && npm run format", - "version:bump": "npm version patch", - "version": "git add -A src", - "postversion": "git push && git push --tags", + "prepublishOnly": "npm run format && npm run lint && npm t && npm run build", "update:latest": "npm-check-updates -u" }, "repository": { @@ -46,12 +41,12 @@ "@types/node": "^14.14.37", "@types/react": "^17.0.31", "@types/react-dom": "^17.0.10", - "react": "^17.0.2", - "react-dom": "^17.0.2", "@types/react-test-renderer": "^17.0.1", "jest": "^27.3.1", "npm-check-updates": "^11.8.5", "prettier": "^2.4.1", + "react": "^17.0.2", + "react-dom": "^17.0.2", "react-test-renderer": "^17.0.2", "ts-jest": "^27.0.7", "tslint": "^6.1.3", diff --git a/src/index.test.tsx b/src/index.test.tsx index 62b12bb..029affd 100644 --- a/src/index.test.tsx +++ b/src/index.test.tsx @@ -142,9 +142,9 @@ describe('', () => { const config: ConfigProp = { paragraph: { - className: "lead" + className: 'lead', }, - } + }; it('only applies className to specified block', () => { expect(create().toJSON()).toMatchSnapshot(); @@ -181,44 +181,32 @@ describe('', () => { it('uses the provided renderer for the specified block', () => { const CustomRenderCode: RenderFn<{ - code: string | number - lang: "text/javascript" | "text/typescript" + code: string | number; + lang: 'text/javascript' | 'text/typescript'; }> = ({ data: d, className }) => (
-
-            {d?.code && (
-              {`${d.code}`}
-            )}
-          
+
{d?.code && {`${d.code}`}}

Warning: do not run this code in production

- ) + ); const renderers: RenderersProp = { code: CustomRenderCode, - } + }; expect(create().toJSON()).toMatchSnapshot(); }); it('must maintan backward compatibility with 0.1.x format', () => { - const CustomRenderHeader = ({ - data: d, - className, - }: { - data: { [s: string]: any }, - className?: string - }) => { + const CustomRenderHeader = ({ data: d, className }: { data: { [s: string]: any }; className?: string }) => { const Tag = `h${d?.level || 1}` as keyof JSX.IntrinsicElements; - return ( - {d.text} - ) - } + return {d.text}; + }; const renderers: RenderersProp = { header: CustomRenderHeader, - } + }; expect(create().toJSON()).toMatchSnapshot(); }); diff --git a/src/index.tsx b/src/index.tsx index 54ae2e4..f17723f 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -9,20 +9,24 @@ import Paragraph from './renderers/paragraph'; import Quote from './renderers/quote'; import Table from './renderers/table'; -export type ConfigProp = Record +export type ConfigProp = Record; -export type RenderConfig = Record +export type RenderConfig = Record; -export type RenderFn | undefined> = (_: { - data: T - className?: string -} & K) => JSX.Element; +export type RenderFn | undefined> = ( + _: { + data: T; + className?: string; + } & K, +) => JSX.Element; -export type RenderFnWithoutData | undefined> = (_: { - className?: string -} & K) => JSX.Element; +export type RenderFnWithoutData | undefined> = ( + _: { + className?: string; + } & K, +) => JSX.Element; -export type RenderersProp = Record> +export type RenderersProp = Record>; export interface Block { type: string; diff --git a/src/renderers/code/index.test.tsx b/src/renderers/code/index.test.tsx index 27093b5..723485c 100644 --- a/src/renderers/code/index.test.tsx +++ b/src/renderers/code/index.test.tsx @@ -21,7 +21,7 @@ describe('', () => { }; it('renders a
 tag with ', () => {
-      expect(create().toJSON()).toMatchSnapshot();
+      expect(create().toJSON()).toMatchSnapshot();
     });
   });
 
diff --git a/src/renderers/header/index.test.tsx b/src/renderers/header/index.test.tsx
index e608058..dbc6f2d 100644
--- a/src/renderers/header/index.test.tsx
+++ b/src/renderers/header/index.test.tsx
@@ -21,7 +21,7 @@ describe('
', () => { }; it('renders a

', () => { - expect(create(
).toJSON()).toMatchSnapshot(); + expect(create(
).toJSON()).toMatchSnapshot(); }); }); }); diff --git a/src/renderers/image/index.tsx b/src/renderers/image/index.tsx index d7076e7..c99388b 100644 --- a/src/renderers/image/index.tsx +++ b/src/renderers/image/index.tsx @@ -17,7 +17,7 @@ export interface ImageBlockData { export interface ImageBlockConfig { actionsClassNames?: { [s: string]: string; - } + }; } const Image: RenderFn = ({ diff --git a/src/renderers/quote/index.tsx b/src/renderers/quote/index.tsx index 9791e91..e6475f5 100644 --- a/src/renderers/quote/index.tsx +++ b/src/renderers/quote/index.tsx @@ -11,7 +11,7 @@ export interface QuoteBlockData { export interface QuoteBlockConfig { actionsClassNames?: { [s: string]: string; - } + }; } const Quote: RenderFn = ({