2021-04-19 03:18:24 +00:00
|
|
|
|
<h1>目次</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
ブロック構文:
|
|
|
|
|
- [引用ブロック](#quote)
|
|
|
|
|
- [検索ブロック](#search)
|
|
|
|
|
- [コードブロック](#code-block)
|
|
|
|
|
- [数式ブロック](#math-block)
|
|
|
|
|
- [中央寄せブロック](#center)
|
|
|
|
|
|
|
|
|
|
インライン構文:
|
2021-09-30 02:06:21 +00:00
|
|
|
|
- [揺れる字](#big)
|
|
|
|
|
- [太字](#bold)
|
|
|
|
|
- [目立たない字](#small)
|
|
|
|
|
- [イタリック](#italic)
|
|
|
|
|
- [打ち消し線](#strike)
|
|
|
|
|
- [インラインコード](#inline-code)
|
|
|
|
|
- [インライン数式](#math-inline)
|
|
|
|
|
- [メンション](#mention)
|
|
|
|
|
- [ハッシュタグ](#hashtag)
|
|
|
|
|
- [URL](#url)
|
|
|
|
|
- [リンク](#link)
|
|
|
|
|
- [絵文字コード(カスタム絵文字)](#emoji-code)
|
|
|
|
|
- [MFM関数](#fn)
|
|
|
|
|
- [Unicode絵文字](#unicode-emoji)
|
|
|
|
|
- [テキスト](#text)
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="quote">Block: 引用ブロック</h1>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
> abc
|
|
|
|
|
>abc
|
|
|
|
|
>>nest
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
|
|
|
|
- 引用された内容には再度FullParserを適用する。
|
|
|
|
|
- `>`の後に続く0~1文字のスペースを無視する。
|
|
|
|
|
- 隣接する引用の行は一つになる。
|
|
|
|
|
- 複数行の引用では空行も含めることができる。
|
|
|
|
|
- 引用の後ろにある空行は無視される。([#61](https://github.com/misskey-dev/mfm.js/issues/61))
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'quote',
|
|
|
|
|
children: [
|
|
|
|
|
{ type: 'text', props: { text: 'abc' } }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="search">Block: 検索ブロック</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
MFM 書き方 Search
|
|
|
|
|
MFM 書き方 検索
|
|
|
|
|
MFM 書き方 [Search]
|
|
|
|
|
MFM 書き方 [検索]
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
|
|
|
|
- Searchの大文字小文字は区別されない。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'search',
|
|
|
|
|
props: {
|
|
|
|
|
query: 'MFM 書き方',
|
|
|
|
|
content: 'MFM 書き方 Search'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="code-block">Block: コードブロック</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
<pre>
|
|
|
|
|
```
|
|
|
|
|
a
|
|
|
|
|
|
|
|
|
|
b```
|
|
|
|
|
```c
|
|
|
|
|
````
|
|
|
|
|
```
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
```js
|
|
|
|
|
abc
|
|
|
|
|
````
|
|
|
|
|
</pre>
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
|
|
|
|
- langは指定されない場合はnullになる。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'blockCode',
|
|
|
|
|
props: {
|
|
|
|
|
code: 'abc',
|
|
|
|
|
lang: 'js'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="math-block">Block: 数式ブロック</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
\[a = 1\]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
\[
|
|
|
|
|
a = 2
|
|
|
|
|
\]
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
|
|
|
|
- `\[`は行頭でなければならない。
|
|
|
|
|
- `\]`は行末でなければならない。
|
|
|
|
|
- 前後のスペースと改行はトリミングされる。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'mathBlock',
|
|
|
|
|
props: {
|
|
|
|
|
formula: 'a = 1'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="center">Block: 中央寄せブロック</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
<center>abc</center>
|
|
|
|
|
```
|
|
|
|
|
```
|
|
|
|
|
<center>
|
|
|
|
|
abc
|
|
|
|
|
</center>
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
|
|
|
|
- `<center>`は行頭でなければならない。
|
|
|
|
|
- `</center>`は行末でなければならない。
|
|
|
|
|
- 内容には再度InlineParserを適用する。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'center',
|
|
|
|
|
children: [
|
|
|
|
|
{ type: 'text', props: { text: 'abc' } }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="big">Inline: 揺れる字</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
**廃止予定の構文。代替の構文が用意されています。**
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
***big!***
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
|
|
|
|
- 内容には再度InlineParserを適用する。
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容にはすべての文字、改行が使用できる。
|
|
|
|
|
- 内容を空にすることはできない。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'fn',
|
|
|
|
|
props: {
|
|
|
|
|
name: 'tada',
|
|
|
|
|
args: { }
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{ type: 'text', props: { text: 'big!' } }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="bold">Inline: 太字</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
2021-09-30 02:06:21 +00:00
|
|
|
|
構文1:
|
2021-04-18 11:11:05 +00:00
|
|
|
|
```
|
|
|
|
|
**bold**
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:06:21 +00:00
|
|
|
|
構文2:
|
2021-04-18 12:30:07 +00:00
|
|
|
|
```
|
|
|
|
|
__bold__
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:06:21 +00:00
|
|
|
|
構文3:
|
|
|
|
|
```
|
|
|
|
|
<b>bold</b>
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
|
|
|
|
- 内容には再度InlineParserを適用する。
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容を空にすることはできない。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
|
|
|
|
|
構文1,3のみ:
|
|
|
|
|
- 内容にはすべての文字、改行が使用できる。
|
|
|
|
|
|
|
|
|
|
構文2のみ:
|
|
|
|
|
- 内容には`[a-z0-9 \t]i`にマッチする文字が使用できる。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'bold',
|
|
|
|
|
children: [
|
|
|
|
|
{ type: 'text', props: { text: 'bold' } }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="small">Inline: 目立たない字</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
<small>small</small>
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
|
|
|
|
- 内容には再度InlineParserを適用する。
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容を空にすることはできない。
|
|
|
|
|
- 内容にはすべての文字、改行が使用できる。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'small',
|
|
|
|
|
children: [
|
|
|
|
|
{ type: 'text', props: { text: 'small' } }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="italic">Inline: イタリック</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
構文1:
|
|
|
|
|
```
|
|
|
|
|
<i>italic</i>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
構文2:
|
|
|
|
|
```
|
|
|
|
|
*italic*
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
構文3:
|
|
|
|
|
```
|
|
|
|
|
_italic_
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 詳細
|
|
|
|
|
- 内容には再度InlineParserを適用する。
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容を空にすることはできない。
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
構文1のみ:
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容にはすべての文字、改行が使用できる。
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
構文2,3のみ:
|
|
|
|
|
※1つ目の`*`と`_`を開始記号と呼ぶ。
|
|
|
|
|
- 内容には`[a-z0-9 \t]i`にマッチする文字が使用できる。
|
TypeScript版パーサーのマージ (#124)
* implement parser with TypeScript (#116)
* clean parser
* parser, success, failure, str, parser.map
* seq
* atLeast, any, alt, match, notMatch
* mergeText
* improve seq
* lazy, createLanguage
* types
* regexp, refactor
* nest limit
* lint
* state
* syntaxes
* sep1, succeeded, option, fn
* simple
* strikeWave, plainTag, inlineCode, mathInline
* mention, refactor
* seqPartial
* :rocket:
* parser trace
* fix mention, implement hashtag
* lineBegin, lineEnd, refactor
* imple codeBlock, fix lineEnd
* codeBlock, mathBlock
* fix codeBlock
* fix mathBlock
* fix codeBlock
* lint
* fix inlineCode
* :rocket:
* centerTag
* fix nesting limit
* fix unicodeEmoji
* :rocket:
* search
* refactor
* seqPartial -> seqOrText
* lint
* url, urlAlt
* :rocket:
* :rocket:
* text
* fix
* link
* linkLabel state
* lint
* nesting limit for link label
* fix url bracket pair
* nest
* refactor
* refactor
* remove
* add test
* wip quote
* add quote test
* quote
* refactor
* hashtag
* refactor
* type
* type
* refactor
* lint
* url
* italicAsta, italicUnder
* italicAsta, italicUnder, mention, rethink spec
* rethink spec
* test: change implementation-dependent parts
* hashtag
* add mention test
* mention
* mention
* mention
* mention
* url
* test
* hashtag
* Revert "Auxiliary commit to revert individual files from 373972beef10eb99ff3e3635a32a207854154a2a"
This reverts commit 622b66e20778ad5c283ea7629db853cbf2bb601f.
* package-lock
* Update tsconfig.json
* Update tsconfig.json
* ignore a tsd error when importing twemoji-parser regexp
* lint
* lint
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
* v0.23.0-canary.1
* readme
* update chagelog
* update changelog
* update changelog
* refactor
* update core combinators
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-07-21 17:21:56 +00:00
|
|
|
|
- 開始記号の前の文字が`[a-z0-9]i`に一致しない時にイタリック文字として判定される。
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'italic',
|
|
|
|
|
children: [
|
|
|
|
|
{ type: 'text', props: { text: 'italic' } }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="strike">Inline: 打ち消し線</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
2021-09-30 02:06:21 +00:00
|
|
|
|
構文1:
|
2021-04-18 11:11:05 +00:00
|
|
|
|
```
|
|
|
|
|
~~strike~~
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:06:21 +00:00
|
|
|
|
構文2:
|
|
|
|
|
```
|
|
|
|
|
<s>strike</s>
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
|
|
|
|
- 内容には再度InlineParserを適用する。
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容を空にすることはできない。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
|
|
|
|
|
構文1のみ:
|
|
|
|
|
- 内容には`~`、改行以外の文字を使用できる。
|
|
|
|
|
|
|
|
|
|
構文2のみ:
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容にはすべての文字、改行が使用できる。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'strike',
|
|
|
|
|
children: [
|
|
|
|
|
{ type: 'text', props: { text: 'strike' } }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="inline-code">Inline: インラインコード</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
`$abc <- 1`
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容を空にすることはできない。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
- 内容には改行を含めることができない。
|
|
|
|
|
- 内容には「´」を含めることができない。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'inlineCode',
|
|
|
|
|
props: {
|
|
|
|
|
code: '$abc <- 1'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="math-inline">Inline: インライン数式</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
\(y = 2x\)
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容を空にすることはできない。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
- 内容には改行を含めることができない。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'mathInline',
|
|
|
|
|
props: {
|
|
|
|
|
formula: 'y = 2x'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="mention">Inline: メンション</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
@user@misskey.io
|
|
|
|
|
```
|
|
|
|
|
```
|
|
|
|
|
@user
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
TypeScript版パーサーのマージ (#124)
* implement parser with TypeScript (#116)
* clean parser
* parser, success, failure, str, parser.map
* seq
* atLeast, any, alt, match, notMatch
* mergeText
* improve seq
* lazy, createLanguage
* types
* regexp, refactor
* nest limit
* lint
* state
* syntaxes
* sep1, succeeded, option, fn
* simple
* strikeWave, plainTag, inlineCode, mathInline
* mention, refactor
* seqPartial
* :rocket:
* parser trace
* fix mention, implement hashtag
* lineBegin, lineEnd, refactor
* imple codeBlock, fix lineEnd
* codeBlock, mathBlock
* fix codeBlock
* fix mathBlock
* fix codeBlock
* lint
* fix inlineCode
* :rocket:
* centerTag
* fix nesting limit
* fix unicodeEmoji
* :rocket:
* search
* refactor
* seqPartial -> seqOrText
* lint
* url, urlAlt
* :rocket:
* :rocket:
* text
* fix
* link
* linkLabel state
* lint
* nesting limit for link label
* fix url bracket pair
* nest
* refactor
* refactor
* remove
* add test
* wip quote
* add quote test
* quote
* refactor
* hashtag
* refactor
* type
* type
* refactor
* lint
* url
* italicAsta, italicUnder
* italicAsta, italicUnder, mention, rethink spec
* rethink spec
* test: change implementation-dependent parts
* hashtag
* add mention test
* mention
* mention
* mention
* mention
* url
* test
* hashtag
* Revert "Auxiliary commit to revert individual files from 373972beef10eb99ff3e3635a32a207854154a2a"
This reverts commit 622b66e20778ad5c283ea7629db853cbf2bb601f.
* package-lock
* Update tsconfig.json
* Update tsconfig.json
* ignore a tsd error when importing twemoji-parser regexp
* lint
* lint
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
* v0.23.0-canary.1
* readme
* update chagelog
* update changelog
* update changelog
* refactor
* update core combinators
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-07-21 17:21:56 +00:00
|
|
|
|
- 最初の`@`の前の文字が`[a-z0-9]i`に一致しない場合にメンションとして認識する。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
|
|
|
|
|
### ユーザ名
|
|
|
|
|
- 1文字以上。
|
|
|
|
|
- `A`~`Z` `0`~`9` `_` `-`が含められる。
|
|
|
|
|
- 1文字目と最後の文字は`-`にできない。
|
|
|
|
|
|
|
|
|
|
### ホスト名
|
|
|
|
|
- 1文字以上。
|
|
|
|
|
- `A`~`Z` `0`~`9` `_` `-` `.`が含められる。
|
|
|
|
|
- 1文字目と最後の文字は`-` `.`にできない。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'mention',
|
|
|
|
|
props: {
|
|
|
|
|
username: 'user',
|
|
|
|
|
host: 'misskey.io',
|
|
|
|
|
acct: '@user@misskey.io'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'mention',
|
|
|
|
|
props: {
|
|
|
|
|
username: 'user',
|
|
|
|
|
host: null,
|
|
|
|
|
acct: '@user'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="hashtag">Inline: ハッシュタグ</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
#abc
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容を空にすることはできない。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
- 内容には半角スペース、全角スペース、改行、タブ文字を含めることができない。
|
2022-05-21 10:33:28 +00:00
|
|
|
|
- 内容には`.` `,` `!` `?` `'` `"` `#` `:` `/` `【` `】` `<` `>` `【` `】` `(` `)` `「` `」` `(` `)` を含めることができない。
|
|
|
|
|
- 括弧は対になっている時のみ内容に含めることができる。対象: `()` `[]` `「」` `()`
|
TypeScript版パーサーのマージ (#124)
* implement parser with TypeScript (#116)
* clean parser
* parser, success, failure, str, parser.map
* seq
* atLeast, any, alt, match, notMatch
* mergeText
* improve seq
* lazy, createLanguage
* types
* regexp, refactor
* nest limit
* lint
* state
* syntaxes
* sep1, succeeded, option, fn
* simple
* strikeWave, plainTag, inlineCode, mathInline
* mention, refactor
* seqPartial
* :rocket:
* parser trace
* fix mention, implement hashtag
* lineBegin, lineEnd, refactor
* imple codeBlock, fix lineEnd
* codeBlock, mathBlock
* fix codeBlock
* fix mathBlock
* fix codeBlock
* lint
* fix inlineCode
* :rocket:
* centerTag
* fix nesting limit
* fix unicodeEmoji
* :rocket:
* search
* refactor
* seqPartial -> seqOrText
* lint
* url, urlAlt
* :rocket:
* :rocket:
* text
* fix
* link
* linkLabel state
* lint
* nesting limit for link label
* fix url bracket pair
* nest
* refactor
* refactor
* remove
* add test
* wip quote
* add quote test
* quote
* refactor
* hashtag
* refactor
* type
* type
* refactor
* lint
* url
* italicAsta, italicUnder
* italicAsta, italicUnder, mention, rethink spec
* rethink spec
* test: change implementation-dependent parts
* hashtag
* add mention test
* mention
* mention
* mention
* mention
* url
* test
* hashtag
* Revert "Auxiliary commit to revert individual files from 373972beef10eb99ff3e3635a32a207854154a2a"
This reverts commit 622b66e20778ad5c283ea7629db853cbf2bb601f.
* package-lock
* Update tsconfig.json
* Update tsconfig.json
* ignore a tsd error when importing twemoji-parser regexp
* lint
* lint
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
* v0.23.0-canary.1
* readme
* update chagelog
* update changelog
* update changelog
* refactor
* update core combinators
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-07-21 17:21:56 +00:00
|
|
|
|
- `#`の前の文字が`[a-z0-9]i`に一致しない場合にハッシュタグとして認識する。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
- 内容が数字のみの場合はハッシュタグとして認識しない。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'hashtag',
|
|
|
|
|
props: {
|
|
|
|
|
hashtag: 'abc'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="url">Inline: URL</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
2021-06-05 09:02:50 +00:00
|
|
|
|
構文1:
|
2021-04-18 11:11:05 +00:00
|
|
|
|
```
|
|
|
|
|
https://misskey.io/@ai
|
2021-06-05 09:05:14 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
2021-06-05 09:02:50 +00:00
|
|
|
|
http://hoge.jp/abc
|
2021-04-18 11:11:05 +00:00
|
|
|
|
```
|
2021-06-05 09:05:14 +00:00
|
|
|
|
|
2021-06-05 09:02:50 +00:00
|
|
|
|
構文2:
|
2021-04-18 11:11:05 +00:00
|
|
|
|
```
|
2021-06-05 09:02:50 +00:00
|
|
|
|
<https://misskey.io/@ai>
|
2021-06-05 09:05:14 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
2021-06-05 09:02:50 +00:00
|
|
|
|
<http://藍.jp/abc>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
|
|
|
|
構文1のみ:
|
|
|
|
|
- 内容には`[.,a-z0-9_/:%#@$&?!~=+-]i`にマッチする文字を使用できる。
|
|
|
|
|
- 内容には対になっている括弧を使用できる。対象: `( )` `[ ]`
|
|
|
|
|
- `.`や`,`は最後の文字にできない。
|
|
|
|
|
|
|
|
|
|
構文2のみ:
|
|
|
|
|
- 内容には改行、スペース以外の文字を使用できる。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
2021-07-22 11:30:46 +00:00
|
|
|
|
構文1:
|
2021-04-18 11:11:05 +00:00
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'url',
|
|
|
|
|
props: {
|
|
|
|
|
url: 'https://misskey.io/@ai'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2021-07-22 11:30:46 +00:00
|
|
|
|
または
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'url',
|
|
|
|
|
props: {
|
|
|
|
|
url: 'https://misskey.io/@ai',
|
|
|
|
|
brackets: false
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
構文2:
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'url',
|
|
|
|
|
props: {
|
|
|
|
|
url: 'https://misskey.io/@ai',
|
|
|
|
|
brackets: true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="link">Inline: リンク</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
silent=false
|
|
|
|
|
```
|
|
|
|
|
[Misskey.io](https://misskey.io/)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
silent=true
|
|
|
|
|
```
|
|
|
|
|
?[Misskey.io](https://misskey.io/)
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
2022-12-20 02:16:35 +00:00
|
|
|
|
- 表示テキストには再度InlineParserを適用する。ただし、表示テキストではURL、リンク、メンションは使用できない。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
[
|
|
|
|
|
{
|
|
|
|
|
type: 'link',
|
|
|
|
|
props: {
|
|
|
|
|
silent: false,
|
|
|
|
|
url: 'https://misskey.io/'
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
type: 'text',
|
|
|
|
|
props: {
|
|
|
|
|
text: 'Misskey.io'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="emoji-code">Inline: 絵文字コード(カスタム絵文字)</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
:thinking_ai:
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容を空にすることはできない。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
- 内容には[a-z0-9_+-]iにマッチする文字を使用できる。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'emojiCode',
|
|
|
|
|
props: {
|
|
|
|
|
name: 'thinking_ai'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="fn">Inline: 関数</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
2021-04-19 03:25:53 +00:00
|
|
|
|
構文1:
|
|
|
|
|
```
|
|
|
|
|
$[shake 🍮]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
$[spin.alternate 🍮]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
$[shake.speed=1s 🍮]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
$[flip.h,v MisskeyでFediverseの世界が広がります]
|
|
|
|
|
```
|
|
|
|
|
|
2021-09-30 02:17:40 +00:00
|
|
|
|
## 詳細
|
|
|
|
|
- 内容には再度InlineParserを適用する。
|
2022-05-15 01:48:30 +00:00
|
|
|
|
- 内容を空にすることはできない。
|
2021-09-30 02:17:40 +00:00
|
|
|
|
- 内容には改行も含めることが可能です。
|
|
|
|
|
|
2021-04-18 11:11:05 +00:00
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'fn',
|
|
|
|
|
props: {
|
|
|
|
|
name: 'shake',
|
|
|
|
|
args: { }
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{ type: 'unicodeEmoji', props: { emoji: '👍' } }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="unicode-emoji">Inline: Unicode絵文字</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
😇
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'unicodeEmoji',
|
|
|
|
|
props: {
|
|
|
|
|
emoji: '😇'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-30 02:12:45 +00:00
|
|
|
|
<h1 id="text">Inline: テキスト</h2>
|
2021-04-18 11:11:05 +00:00
|
|
|
|
|
|
|
|
|
## 形式
|
|
|
|
|
```
|
|
|
|
|
abc
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## ノード
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
type: 'text',
|
|
|
|
|
props:
|
|
|
|
|
text: 'abc'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|