Merge branch 'develop' of https://github.com/misskey-dev/mfm.js into develop

This commit is contained in:
syuilo 2021-06-06 23:54:53 +09:00
commit 8ebf1a25e4
3 changed files with 34 additions and 8 deletions

View file

@ -349,6 +349,7 @@ _italic_
## 詳細
- インライン構文。
- 内容には改行を含めることができない。
- 内容には「´」を含めることができない。
@ -447,12 +448,14 @@ _italic_
- 内容には`.` `,` `!` `?` `'` `"` `#` `:` `/` `【` `】` を含めることができない。
- 括弧は対になっている時のみ内容に含めることができる。対象: `()` `[]` `「」`
- `#`の前の文字が(改行、スペース、無し、[a-zA-Z0-9]に一致しない)のいずれかの場合にハッシュタグとして認識する。
- 内容が数字のみの場合はハッシュタグとして認識しない。
<h1 id="url">URL</h2>
## 形式
構文1:
```
https://misskey.io/@ai
```
@ -461,6 +464,15 @@ https://misskey.io/@ai
http://hoge.jp/abc
```
構文2:
```
<https://misskey.io/@ai>
```
```
<http://.jp/abc>
```
## ノード
```js
{
@ -473,10 +485,15 @@ http://hoge.jp/abc
## 詳細
- インライン構文。
構文1のみ:
- 内容には`[.,a-z0-9_/:%#@$&?!~=+-]i`にマッチする文字を使用できる。
- 内容には対になっている括弧を使用できる。対象: `(` `)` `[` `]`
- `.`や`,`は最後の文字にできない。
構文2のみ:
- 内容には改行、スペース以外の文字を使用できる。
<h1 id="link">リンク</h2>

View file

@ -1,6 +1,6 @@
{
"name": "mfm-js",
"version": "0.16.5",
"version": "0.17.0",
"description": "An MFM parser implementation with PEG.js",
"main": "./built/index.js",
"types": "./built/index.d.ts",

View file

@ -291,7 +291,7 @@ strike
// inline: inlineCode
inlineCode
= "`" content:$(!"`" c:CHAR { return c; })+ "`"
= "`" content:$(![`´] c:CHAR { return c; })+ "`"
{
return INLINE_CODE(content);
}
@ -341,7 +341,13 @@ hashtag
}
hashtagContent
= (hashtagBracketPair / hashtagChar)+ { return text(); }
= !(invalidHashtagContent !hashtagContentPart) hashtagContentPart+ { return text(); }
invalidHashtagContent
= [0-9]+
hashtagContentPart
= hashtagBracketPair / hashtagChar
hashtagBracketPair
= "(" hashtagContent* ")"
@ -354,7 +360,7 @@ hashtagChar
// inline: URL
url
= "<" url:urlFormat ">"
= "<" url:altUrlFormat ">"
{
return N_URL(url);
}
@ -364,14 +370,11 @@ url
}
urlFormat
= "http" "s"? "://" urlContent
= "http" "s"? "://" urlContentPart+
{
return text();
}
urlContent
= urlContentPart+
urlContentPart
= urlBracketPair
/ [.,] &urlContentPart // last char is neither "." nor ",".
@ -381,6 +384,12 @@ urlBracketPair
= "(" urlContentPart* ")"
/ "[" urlContentPart* "]"
altUrlFormat
= "http" "s"? "://" (!(">" / _) CHAR)+
{
return text();
}
// inline: link
link