UNPKG

@atlaskit/editor-wikimarkup-transformer

Version:

Wiki markup transformer for JIRA and Confluence

55 lines (54 loc) 2.1 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.strong = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _ = require("./"); var _text = require("../utils/text"); var _commonFormatter = require("./common-formatter"); var _text2 = require("../text"); var strong = exports.strong = function strong(_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, _.TokenType.ISSUE_KEY, _.TokenType.TABLE]; // Adding strong mark to all text var contentDecorator = function contentDecorator(pmNode) { var mark = schema.marks.strong.create(); // We don't want to mix `code` mark with others if (pmNode.type.name === 'text' && !(0, _text.hasAnyOfMarks)(pmNode, ['strong', 'code'])) { return pmNode.mark([].concat((0, _toConsumableArray2.default)(pmNode.marks), [mark])); } return pmNode; }; var rawContentProcessor = function rawContentProcessor(raw, length) { var content = (0, _text2.parseString)({ schema: schema, context: context, ignoreTokenTypes: ignoreTokenTypes, input: raw }); var decoratedContent = content.map(contentDecorator); return { type: 'pmnode', nodes: decoratedContent, length: length }; }; var _getSurroundingSymbol = (0, _text.getSurroundingSymbols)(input.substring(position), '*', '*'), openingSymbol = _getSurroundingSymbol.openingSymbol, closingSymbol = _getSurroundingSymbol.closingSymbol; return (0, _commonFormatter.commonFormatter)(input, position, schema, { opening: openingSymbol, closing: closingSymbol, context: context, rawContentProcessor: rawContentProcessor }); };