Merge branch 'develop'

This commit is contained in:
marihachi 2023-01-10 23:19:03 +09:00
commit d5e0f6517c
6 changed files with 27 additions and 9 deletions

View file

@ -11,6 +11,10 @@
-->
## 0.23.1
### Improvements
- improve emoji code parsing
## 0.23.0
### Features
@ -35,8 +39,6 @@
## 0.22.0
npm: https://www.npmjs.com/package/mfm-js/v/0.22.0
### Features
- Unicode emoji supports Unicode 14.0 emoji (#109)

View file

@ -546,7 +546,7 @@ silent=true
```
## 詳細
- リンクラベルには再度InlineParserを適用する。ただし、リンクラベルではURL、リンク、メンションは使用できない。
- 表示テキストには再度InlineParserを適用する。ただし、表示テキストではURL、リンク、メンションは使用できない。
## ノード
```js

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "mfm-js",
"version": "0.23.0",
"version": "0.23.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "mfm-js",
"version": "0.23.0",
"version": "0.23.1",
"license": "MIT",
"dependencies": {
"twemoji-parser": "14.0.0"

View file

@ -1,6 +1,6 @@
{
"name": "mfm-js",
"version": "0.23.0",
"version": "0.23.1",
"description": "An MFM parser implementation with TypeScript",
"main": "./built/index.js",
"types": "./built/index.d.ts",
@ -39,6 +39,7 @@
"twemoji-parser": "14.0.0"
},
"files": [
"built"
"built",
"CHANGELOG.md"
]
}

View file

@ -626,12 +626,15 @@ export const language = P.createLanguage({
},
emojiCode: r => {
const side = P.notMatch(P.regexp(/[a-z0-9]/i));
const mark = P.str(':');
return P.seq([
P.alt([P.lineBegin, side]),
mark,
P.regexp(/[a-z0-9_+-]+/i),
mark,
], 1).map(name => M.EMOJI_CODE(name as string));
P.alt([P.lineEnd, side]),
], 2).map(name => M.EMOJI_CODE(name as string));
},
link: r => {

View file

@ -34,7 +34,19 @@ describe('SimpleParser', () => {
it('between texts', () => {
const input = 'foo:bar:baz';
const output = [TEXT('foo'), EMOJI_CODE('bar'), TEXT('baz')];
const output = [TEXT('foo:bar:baz')];
assert.deepStrictEqual(mfm.parseSimple(input), output);
});
it('between texts 2', () => {
const input = '12:34:56';
const output = [TEXT('12:34:56')];
assert.deepStrictEqual(mfm.parseSimple(input), output);
});
it('between texts 3', () => {
const input = 'あ:bar:い';
const output = [TEXT('あ'), EMOJI_CODE('bar'), TEXT('い')];
assert.deepStrictEqual(mfm.parseSimple(input), output);
});
});