UNPKG

@atlaskit/editor-wikimarkup-transformer

Version:

Wiki markup transformer for JIRA and Confluence

48 lines 1.8 kB
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray"; import { TokenType } from './'; import { hasAnyOfMarks, getSurroundingSymbols } from '../utils/text'; import { commonFormatter } from './common-formatter'; import { parseString } from '../text'; export var inserted = function inserted(_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 */ var ignoreTokenTypes = [TokenType.DOUBLE_DASH_SYMBOL, TokenType.TRIPLE_DASH_SYMBOL, TokenType.QUADRUPLE_DASH_SYMBOL, TokenType.ISSUE_KEY, TokenType.TABLE]; // Add underline mark to each text var contentDecorator = function contentDecorator(n) { var mark = schema.marks.underline.create(); // We don't want to mix `code` mark with others if (n.type.name === 'text' && !hasAnyOfMarks(n, ['underline', 'code'])) { return n.mark([].concat(_toConsumableArray(n.marks), [mark])); } return n; }; var rawContentProcessor = function rawContentProcessor(raw, length) { var content = parseString({ ignoreTokenTypes: ignoreTokenTypes, schema: schema, context: context, input: raw }); var decoratedContent = content.map(contentDecorator); return { type: 'pmnode', nodes: decoratedContent, length: length }; }; var _getSurroundingSymbol = getSurroundingSymbols(input.substring(position), '+', '+'), openingSymbol = _getSurroundingSymbol.openingSymbol, closingSymbol = _getSurroundingSymbol.closingSymbol; return commonFormatter(input, position, schema, { opening: openingSymbol, closing: closingSymbol, context: context, rawContentProcessor: rawContentProcessor }); };