[MFM] Better hashtag detection
This commit is contained in:
		| @@ -162,7 +162,7 @@ const mfm = P.createLanguage({ | |||||||
| 			let hashtag = match[1]; | 			let hashtag = match[1]; | ||||||
| 			hashtag = hashtag.substr(0, getTrailingPosition(hashtag)); | 			hashtag = hashtag.substr(0, getTrailingPosition(hashtag)); | ||||||
| 			if (hashtag.match(/^[0-9]+$/)) return P.makeFailure(i, 'not a hashtag'); | 			if (hashtag.match(/^[0-9]+$/)) return P.makeFailure(i, 'not a hashtag'); | ||||||
| 			if (!['\n', ' ', ' ', '(', '「', null, undefined].includes(input[i - 1])) return P.makeFailure(i, 'require space before "#"'); | 			if (input[i - 1] != null && input[i - 1].match(/[a-z0-9]/i)) return P.makeFailure(i, 'not a hashtag'); | ||||||
| 			return P.makeSuccess(i + ('#' + hashtag).length, makeNode('hashtag', { hashtag: hashtag })); | 			return P.makeSuccess(i + ('#' + hashtag).length, makeNode('hashtag', { hashtag: hashtag })); | ||||||
| 		}), | 		}), | ||||||
| 	//#endregion | 	//#endregion | ||||||
|   | |||||||
| @@ -187,9 +187,9 @@ describe('Text', () => { | |||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
| 			it('with text (zenkaku)', () => { | 			it('with text (zenkaku)', () => { | ||||||
| 				const tokens = analyze('こんにちは #世界'); | 				const tokens = analyze('こんにちは#世界'); | ||||||
| 				assert.deepEqual([ | 				assert.deepEqual([ | ||||||
| 					text('こんにちは '), | 					text('こんにちは'), | ||||||
| 					node('hashtag', { hashtag: '世界' }) | 					node('hashtag', { hashtag: '世界' }) | ||||||
| 				], tokens); | 				], tokens); | ||||||
| 			}); | 			}); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo