diff --git a/README.md b/README.md index e0d5d9a..bc4fb19 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ All properties are optional. | placeholder | `string` | header's placeholder string | | levels | `number[]` | enabled heading levels | | defaultLevel | `number` | default heading level | +| preserveBlank | `boolean` | (default: `false`) Whether or not to keep blank headers when saving editor data | ```javascript var editor = EditorJS({ diff --git a/src/index.js b/src/index.js index 3e15171..75d99cb 100644 --- a/src/index.js +++ b/src/index.js @@ -18,6 +18,7 @@ import { IconH1, IconH2, IconH3, IconH4, IconH5, IconH6, IconHeading } from '@co * @property {string} placeholder — Block's placeholder * @property {number[]} levels — Heading levels * @property {number} defaultLevel — default level + * @property {boolean} preserveBlank - Whether or not to keep blank headers when saving editor data */ /** @@ -160,7 +161,11 @@ export default class Header { * @public */ validate(blockData) { - return blockData.text.trim() !== ''; + if (blockData.text.trim() === '' && !this.preserveBlank) { + return false; + } + + return true; } /** @@ -399,6 +404,17 @@ export default class Header { ) : availableLevels; } + /** + * Get preserveBlank + * + * @returns {preserveBlank} + */ + get preserveBlank() { + let preserveBlank = this._settings.preserveBlank || false; + + return preserveBlank; + } + /** * Handle H1-H6 tags on paste to substitute it with header Tool *