@atlaskit/editor-wikimarkup-transformer
Version:
Wiki markup transformer for JIRA and Confluence
55 lines (54 loc) • 2.06 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.inserted = 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 inserted = exports.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' && !(0, _text.hasAnyOfMarks)(n, ['underline', 'code'])) {
return n.mark([].concat((0, _toConsumableArray2.default)(n.marks), [mark]));
}
return n;
};
var rawContentProcessor = function rawContentProcessor(raw, length) {
var content = (0, _text2.parseString)({
ignoreTokenTypes: ignoreTokenTypes,
schema: schema,
context: context,
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
});
};