UNPKG

@atlaskit/editor-wikimarkup-transformer

Version:

Wiki markup transformer for JIRA and Confluence

61 lines (60 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.heading = void 0; var _text = require("../text"); var _ = require("./"); // h1. HEADING // Ignored via go/ees005 // eslint-disable-next-line require-unicode-regexp var HEADING_REGEXP = /^h([1-6])\.(.*)/; var heading = exports.heading = function heading(_ref) { var input = _ref.input, position = _ref.position, schema = _ref.schema, context = _ref.context; /** * The following token types will be ignored in parsing * the content of a strong mark */ var ignoreTokenTypes = [_.TokenType.DOUBLE_DASH_SYMBOL, _.TokenType.TRIPLE_DASH_SYMBOL, _.TokenType.QUADRUPLE_DASH_SYMBOL]; var match = input.substring(position).match(HEADING_REGEXP); if (!match) { return fallback(input, position); } var level = parseInt(match[1], 10); var content = (0, _text.parseString)({ schema: schema, ignoreTokenTypes: ignoreTokenTypes, context: context, input: match[2] }); try { var headingNode = schema.nodes.heading.createChecked({ level: level }, content); return { type: 'pmnode', nodes: [headingNode], length: match[0].length }; } catch (err) { /** * If the heading fails to rendering, we want to skip the text * "h1." */ return { type: 'text', text: '', length: 4 }; } }; function fallback(input, position) { return { type: 'text', text: input.substr(position, 1), length: 1 }; }