tm-text
Version:
Trackmania and Maniaplanet text parser and formatter
98 lines (97 loc) • 2.44 kB
JavaScript
export const TOKEN = {
BLOCK_END: 'BLOCK_END',
BLOCK_START: 'BLOCK_START',
BOLD: 'BOLD',
COLOR: 'COLOR',
HREF_CONTENT: 'HREF_CONTENT',
HREF_START: 'HREF_START',
HREF_END: 'HREF_END',
ITALIC: 'ITALIC',
LINK_EXTERNAL: 'LINK_EXTERNAL',
LINK_INTERNAL: 'LINK_INTERNAL',
LINK_INTERNAL_WITH_PARAMS: 'LINK_INTERNAL_WITH_PARAMS',
NEWLINE: 'NEWLINE',
RESET_ALL: 'RESET_ALL',
RESET_COLOR: 'RESET_COLOR',
SHADOW: 'SHADOW',
TAB: 'TAB',
UPPERCASE: 'UPPERCASE',
WIDTH_NARROW: 'WIDTH_NARROW',
WIDTH_NORMAL: 'WIDTH_NORMAL',
WIDTH_WIDE: 'WIDTH_WIDE',
WORD: 'WORD',
};
export const TOKEN_TO_CHAR_MAP = {
[]: '>',
[]: '<',
[]: 'o',
[]: '[',
[]: ']',
[]: 'i',
[]: 'l',
[]: 'h',
[]: 'p',
[]: 'z',
[]: 'g',
[]: 's',
[]: 't',
[]: 'n',
[]: 'm',
[]: 'w',
};
export const SYNTAX = {
/**
* Games that use this syntax: `Original`, `Sunrise`, `Nations`
*/
CLASSIC: 'CLASSIC',
/**
* Games that use this syntax: `United`
*/
UNITED: 'UNITED',
/**
* Games that use this syntax: `United Forever`, `Nations Forever`
*/
FOREVER: 'FOREVER',
/**
* Games that use this syntax: `Maniapanet`, `Turbo`, `2020`
*/
MANIAPLANET: 'MANIAPLANET',
};
export const SYNTAX_CLASSIC = [
TOKEN.COLOR,
TOKEN.ITALIC,
TOKEN.RESET_ALL,
TOKEN.RESET_COLOR,
TOKEN.NEWLINE,
TOKEN.SHADOW,
TOKEN.TAB,
TOKEN.UPPERCASE,
TOKEN.WIDTH_NARROW,
TOKEN.WIDTH_NORMAL,
TOKEN.WIDTH_WIDE,
TOKEN.WORD,
];
export const SYNTAX_UNITED = [
...SYNTAX_CLASSIC,
TOKEN.BOLD,
TOKEN.HREF_CONTENT,
TOKEN.HREF_START,
TOKEN.HREF_END,
TOKEN.LINK_EXTERNAL,
TOKEN.LINK_INTERNAL,
];
export const SYNTAX_FOREVER = [
...SYNTAX_UNITED,
TOKEN.LINK_INTERNAL_WITH_PARAMS,
];
export const SYNTAX_MANIAPLANET = [
...SYNTAX_FOREVER,
TOKEN.BLOCK_END,
TOKEN.BLOCK_START,
];
export const SYNTAX_MAP = {
[]: SYNTAX_CLASSIC,
[]: SYNTAX_UNITED,
[]: SYNTAX_FOREVER,
[]: SYNTAX_MANIAPLANET,
};