diff --git a/etc/mfm-js.api.md b/etc/mfm-js.api.md index 84667c4..67cd37d 100644 --- a/etc/mfm-js.api.md +++ b/etc/mfm-js.api.md @@ -243,7 +243,6 @@ export type NodeType = T extends 'quote' ? MfmQuote : // @public (undocumented) export function parse(input: string, opts?: Partial<{ fnNameList: string[]; - emojiCodeList: string[]; nestLimit: number; }>): MfmNode[]; diff --git a/src/api.ts b/src/api.ts index 3e8244e..f3194a8 100644 --- a/src/api.ts +++ b/src/api.ts @@ -5,10 +5,9 @@ import { MfmNode, MfmSimpleNode } from './node'; /** * Generates a MfmNode tree from the MFM string. */ -export function parse(input: string, opts: Partial<{ fnNameList: string[]; emojiCodeList: string[]; nestLimit: number; }> = {}): MfmNode[] { +export function parse(input: string, opts: Partial<{ fnNameList: string[]; nestLimit: number; }> = {}): MfmNode[] { const nodes = fullParser(input, { fnNameList: opts.fnNameList, - emojiCodeList: opts.emojiCodeList, nestLimit: opts.nestLimit, }); return nodes; diff --git a/src/internal/index.ts b/src/internal/index.ts index 0ae7223..86eb7d8 100644 --- a/src/internal/index.ts +++ b/src/internal/index.ts @@ -5,7 +5,6 @@ import * as P from './core'; export type FullParserOpts = { fnNameList?: string[]; - emojiCodeList?: string[]; nestLimit?: number; }; @@ -13,7 +12,6 @@ export function fullParser(input: string, opts: FullParserOpts): M.MfmNode[] { const result = language.fullParser.handler(input, 0, { nestLimit: (opts.nestLimit != null) ? opts.nestLimit : 20, fnNameList: opts.fnNameList, - emojiCodeList: opts.emojiCodeList, depth: 0, linkLabel: false, trace: false, diff --git a/src/internal/parser.ts b/src/internal/parser.ts index dd76352..3d1a04f 100644 --- a/src/internal/parser.ts +++ b/src/internal/parser.ts @@ -628,23 +628,13 @@ export const language = P.createLanguage({ emojiCode: r => { const side = P.notMatch(P.regexp(/[a-z0-9]/i)); const mark = P.str(':'); - const parser = P.seq([ + return P.seq([ P.alt([P.lineBegin, side]), mark, P.regexp(/[a-z0-9_+-]+/i), mark, P.alt([P.lineEnd, side]), - ], 2); - return new P.Parser((input, index, state) => { - const result = parser.handler(input, index, state); - if (!result.success) { - return P.failure(); - } - if (state.emojiCodeList != null && !state.emojiCodeList.includes(result.value)) { - return P.failure(); - } - return P.success(result.index, M.EMOJI_CODE(result.value as string)); - }); + ], 2).map(name => M.EMOJI_CODE(name as string)); }, link: r => {