@atlaskit/editor-wikimarkup-transformer
Version:
Wiki markup transformer for JIRA and Confluence
123 lines (122 loc) • 6.36 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TokenType = void 0;
exports.parseToken = parseToken;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _media = require("./media");
var _blockquote = require("./blockquote");
var _citation = require("./citation");
var _deleted = require("./deleted");
var _doubleDashSymbol = require("./double-dash-symbol");
var _emoji = require("./emoji");
var _emphasis = require("./emphasis");
var _hardbreak = require("./hardbreak");
var _heading = require("./heading");
var _inserted = require("./inserted");
var _linkFormat = require("./links/link-format");
var _linkText = require("./link-text");
var _list = require("./list");
var _monospace = require("./monospace");
var _quadrupleDashSymbol = require("./quadruple-dash-symbol");
var _ruler = require("./ruler");
var _strong = require("./strong");
var _subscript = require("./subscript");
var _superscript = require("./superscript");
var _table = require("./table");
var _tripleDashSymbol = require("./triple-dash-symbol");
var _panelMacro = require("./panel-macro");
var _adfMacro = require("./adf-macro");
var _anchorMacro = require("./anchor-macro");
var _codeMacro = require("./code-macro");
var _quoteMacro = require("./quote-macro");
var _colorMacro = require("./color-macro");
var _noformatMacro = require("./noformat-macro");
var _forceLineBreak = require("./force-line-break");
var _issueKey = require("./issue-key");
var _tokenToTokenParserMa;
var TokenType = exports.TokenType = /*#__PURE__*/function (TokenType) {
TokenType["ADF_MACRO"] = "ADF_MACRO";
// {adf}
TokenType["ANCHOR_MACRO"] = "ANCHOR_MACRO";
// {anchor}
TokenType["CODE_MACRO"] = "CODE_MACRO";
// {code}
TokenType["QUOTE_MACRO"] = "QUOTE_MACRO";
// {quote}
TokenType["NOFORMAT_MACRO"] = "NOFORMAT_MACRO";
// {noformat}
TokenType["PANEL_MACRO"] = "PANEL_MACRO";
// {panel}
TokenType["COLOR_MACRO"] = "COLOR_MACRO";
// {color}
TokenType["LOREM_MACRO"] = "LOREM_MACRO";
// {loremipsum}
TokenType["QUOTE"] = "QUOTE";
TokenType["STRING"] = "STRING";
TokenType["ISSUE_KEY"] = "ISSUE_KEY";
TokenType["LINK_FORMAT"] = "LINK_FORMAT";
TokenType["LINK_TEXT"] = "LINK_TEXT";
TokenType["MEDIA"] = "MEDIA";
TokenType["HEADING"] = "HEADING";
TokenType["LIST"] = "LIST";
TokenType["TABLE"] = "TABLE";
TokenType["RULER"] = "RULER";
TokenType["HARD_BREAK"] = "HARD_BREAK";
// \\, \r, \n, \r\n
TokenType["DOUBLE_DASH_SYMBOL"] = "DOUBLE_DASH_SYMBOL";
// --
TokenType["TRIPLE_DASH_SYMBOL"] = "TRIPLE_DASH_SYMBOL";
// ---
TokenType["QUADRUPLE_DASH_SYMBOL"] = "QUADRUPLE_DASH_SYMBOL";
// ----
TokenType["STRONG"] = "STRONG";
// *strong*
TokenType["MONOSPACE"] = "MONOSPACE";
// {{text}}
TokenType["SUPERSCRIPT"] = "SUPERSCRIPT";
// ^superscript^
TokenType["SUBSCRIPT"] = "SUBSCRIPT";
// ^subscript^
TokenType["EMPHASIS"] = "EMPHASIS";
// _emphasis_
TokenType["CITATION"] = "CITATION";
// ??citation??
TokenType["DELETED"] = "DELETED";
// -deleted-
TokenType["INSERTED"] = "INSERTED";
// +deleted+
TokenType["EMOJI"] = "EMOJI";
// :)
TokenType["FORCE_LINE_BREAK"] = "FORCE_LINE_BREAK"; // \\
return TokenType;
}({});
var tokenToTokenParserMapping = (_tokenToTokenParserMa = {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_tokenToTokenParserMa, TokenType.DOUBLE_DASH_SYMBOL, _doubleDashSymbol.doubleDashSymbol), TokenType.TRIPLE_DASH_SYMBOL, _tripleDashSymbol.tripleDashSymbol), TokenType.QUADRUPLE_DASH_SYMBOL, _quadrupleDashSymbol.quadrupleDashSymbol), TokenType.RULER, _ruler.ruler), TokenType.STRONG, _strong.strong), TokenType.MONOSPACE, _monospace.monospace), TokenType.SUPERSCRIPT, _superscript.superscript), TokenType.SUBSCRIPT, _subscript.subscript), TokenType.EMPHASIS, _emphasis.emphasis), TokenType.CITATION, _citation.citation), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_tokenToTokenParserMa, TokenType.DELETED, _deleted.deleted), TokenType.INSERTED, _inserted.inserted), TokenType.HARD_BREAK, _hardbreak.hardbreak), TokenType.LINK_FORMAT, _linkFormat.linkFormat), TokenType.LINK_TEXT, _linkText.linkText), TokenType.HEADING, _heading.heading), TokenType.MEDIA, _media.media), TokenType.LIST, _list.list), TokenType.QUOTE, _blockquote.blockquote), TokenType.TABLE, _table.table), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_tokenToTokenParserMa, TokenType.EMOJI, _emoji.emoji), TokenType.ADF_MACRO, _adfMacro.adfMacro), TokenType.ANCHOR_MACRO, _anchorMacro.anchorMacro), TokenType.CODE_MACRO, _codeMacro.codeMacro), TokenType.QUOTE_MACRO, _quoteMacro.quoteMacro), TokenType.NOFORMAT_MACRO, _noformatMacro.noformatMacro), TokenType.PANEL_MACRO, _panelMacro.panelMacro), TokenType.COLOR_MACRO, _colorMacro.colorMacro), TokenType.FORCE_LINE_BREAK, _forceLineBreak.forceLineBreak), TokenType.ISSUE_KEY, _issueKey.issueKey));
function parseToken(input, type, position, schema, context) {
var tokenParser = tokenToTokenParserMapping[type];
if (tokenParser) {
try {
return tokenParser({
input: input,
position: position,
schema: schema,
context: context
});
} catch (err) {
if (context.tokenErrCallback && err instanceof Error) {
context.tokenErrCallback(err, type);
}
return fallback(input, position);
}
}
return fallback(input, position);
}
function fallback(input, position) {
return {
type: 'text',
text: input.substr(position, 1),
length: 1
};
}