@atlaskit/editor-wikimarkup-transformer
Version:
Wiki markup transformer for JIRA and Confluence
115 lines • 5.34 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
var _tokenToTokenParserMa;
import { media } from './media';
import { blockquote } from './blockquote';
import { citation } from './citation';
import { deleted } from './deleted';
import { doubleDashSymbol } from './double-dash-symbol';
import { emoji } from './emoji';
import { emphasis } from './emphasis';
import { hardbreak } from './hardbreak';
import { heading } from './heading';
import { inserted } from './inserted';
import { linkFormat } from './links/link-format';
import { linkText } from './link-text';
import { list } from './list';
import { monospace } from './monospace';
import { quadrupleDashSymbol } from './quadruple-dash-symbol';
import { ruler } from './ruler';
import { strong } from './strong';
import { subscript } from './subscript';
import { superscript } from './superscript';
import { table } from './table';
import { tripleDashSymbol } from './triple-dash-symbol';
import { panelMacro } from './panel-macro';
import { adfMacro } from './adf-macro';
import { anchorMacro } from './anchor-macro';
import { codeMacro } from './code-macro';
import { quoteMacro } from './quote-macro';
import { colorMacro } from './color-macro';
import { noformatMacro } from './noformat-macro';
import { forceLineBreak } from './force-line-break';
import { issueKey } from './issue-key';
export var 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 = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_tokenToTokenParserMa, TokenType.DOUBLE_DASH_SYMBOL, doubleDashSymbol), TokenType.TRIPLE_DASH_SYMBOL, tripleDashSymbol), TokenType.QUADRUPLE_DASH_SYMBOL, quadrupleDashSymbol), TokenType.RULER, ruler), TokenType.STRONG, strong), TokenType.MONOSPACE, monospace), TokenType.SUPERSCRIPT, superscript), TokenType.SUBSCRIPT, subscript), TokenType.EMPHASIS, emphasis), TokenType.CITATION, citation), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_tokenToTokenParserMa, TokenType.DELETED, deleted), TokenType.INSERTED, inserted), TokenType.HARD_BREAK, hardbreak), TokenType.LINK_FORMAT, linkFormat), TokenType.LINK_TEXT, linkText), TokenType.HEADING, heading), TokenType.MEDIA, media), TokenType.LIST, list), TokenType.QUOTE, blockquote), TokenType.TABLE, table), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_tokenToTokenParserMa, TokenType.EMOJI, emoji), TokenType.ADF_MACRO, adfMacro), TokenType.ANCHOR_MACRO, anchorMacro), TokenType.CODE_MACRO, codeMacro), TokenType.QUOTE_MACRO, quoteMacro), TokenType.NOFORMAT_MACRO, noformatMacro), TokenType.PANEL_MACRO, panelMacro), TokenType.COLOR_MACRO, colorMacro), TokenType.FORCE_LINE_BREAK, forceLineBreak), TokenType.ISSUE_KEY, issueKey));
export 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
};
}