[MFM] __ 構文はアルファベットのみに

This commit is contained in:
syuilo 2019-01-20 18:06:04 +09:00
parent 53481accf1
commit 1df9c1005f
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69
3 changed files with 9 additions and 1 deletions

View file

@ -10,6 +10,7 @@ unreleased
* ログイン時に二段階認証が分かりにくいのを改善 * ログイン時に二段階認証が分かりにくいのを改善
* 投稿のツールチップを出すのは時間の上だけに変更 * 投稿のツールチップを出すのは時間の上だけに変更
* `*`や`_`でもイタリック構文を使えるように(アルファベットのみ) * `*`や`_`でもイタリック構文を使えるように(アルファベットのみ)
* `__`でも太字構文を使えるように(アルファベットのみ)
* ハッシュタグ判定の強化 * ハッシュタグ判定の強化
* ストーク機能の廃止 * ストーク機能の廃止
* 関係のない返信がタイムラインに流れる問題を修正 * 関係のない返信がタイムラインに流れる問題を修正

View file

@ -154,7 +154,7 @@ const mfm = P.createLanguage({
//#region Bold //#region Bold
bold: r => bold: r =>
P.regexp(/(\*\*|__)([\s\S]+?)\1/, 2) P.alt(P.regexp(/\*\*([\s\S]+?)\*\*/, 1), P.regexp(/__([a-zA-Z0-9\s]+?)__/, 1))
.map(x => createTree('bold', P.alt( .map(x => createTree('bold', P.alt(
r.strike, r.strike,
r.italic, r.italic,

View file

@ -187,6 +187,13 @@ describe('MFM', () => {
]); ]);
}); });
it('with underscores (ensure it allows alphabet only)', () => {
const tokens = analyze('(=^・__________・^=)');
assert.deepStrictEqual(tokens, [
text('(=^・__________・^=)')
]);
});
it('mixed syntax', () => { it('mixed syntax', () => {
const tokens = analyze('**foo__'); const tokens = analyze('**foo__');
assert.deepStrictEqual(tokens, [ assert.deepStrictEqual(tokens, [