[MFM] Improve various parsing

Resolve #2779
Resolve #3053
This commit is contained in:
syuilo 2018-11-16 21:57:19 +09:00
parent e3b8495431
commit 0ff390ed80
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69
7 changed files with 79 additions and 46 deletions

View file

@ -52,7 +52,7 @@ export type TextElement = { type: 'text', content: string }
| TextElementTitle
| TextElementUrl
| TextElementMotion;
export type TextElementProcessor = (text: string, isBegin: boolean) => TextElement | TextElement[];
export type TextElementProcessor = (text: string, before: string) => TextElement | TextElement[];
export default (source: string): TextElement[] => {
if (source == null || source == '') {
@ -68,12 +68,10 @@ export default (source: string): TextElement[] => {
}
}
let i = 0;
// パース
while (source != '') {
const parsed = elements.some(el => {
let _tokens = el(source, i == 0);
let _tokens = el(source, tokens.map(token => token.content).join(''));
if (_tokens) {
if (!Array.isArray(_tokens)) {
_tokens = [_tokens];
@ -91,8 +89,6 @@ export default (source: string): TextElement[] => {
content: source[0]
});
}
i++;
}
const combineText = (es: TextElement[]): TextElement =>