diff options
| author | Aya Morisawa <AyaMorisawa4869@gmail.com> | 2018-12-05 20:11:54 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-05 20:11:54 +0900 |
| commit | 66836836ab181623bd86ad71aa2acf226253d481 (patch) | |
| tree | 8c1b7f32b70471cdaae614963f4fb44d0ae3f394 /src | |
| parent | Fix #3341 (#3502) (diff) | |
| download | misskey-66836836ab181623bd86ad71aa2acf226253d481.tar.gz misskey-66836836ab181623bd86ad71aa2acf226253d481.tar.bz2 misskey-66836836ab181623bd86ad71aa2acf226253d481.zip | |
Add small syntax (#3506)
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/app/common/views/components/mfm.ts | 4 | ||||
| -rw-r--r-- | src/mfm/html.ts | 6 | ||||
| -rw-r--r-- | src/mfm/parser.ts | 19 |
3 files changed, 29 insertions, 0 deletions
diff --git a/src/client/app/common/views/components/mfm.ts b/src/client/app/common/views/components/mfm.ts index 9502d64d82..accacf150c 100644 --- a/src/client/app/common/views/components/mfm.ts +++ b/src/client/app/common/views/components/mfm.ts @@ -123,6 +123,10 @@ export default Vue.component('misskey-flavored-markdown', { }, genEl(token.children)); } + case 'small': { + return [createElement('small', genEl(token.children))]; + } + case 'center': { return [createElement('div', { attrs: { diff --git a/src/mfm/html.ts b/src/mfm/html.ts index b01c5ad318..a08666646d 100644 --- a/src/mfm/html.ts +++ b/src/mfm/html.ts @@ -31,6 +31,12 @@ export default (tokens: Node[], mentionedRemoteUsers: INote['mentionedRemoteUser return el; }, + small(token) { + const el = doc.createElement('small'); + dive(token.children).forEach(child => el.appendChild(child)); + return el; + }, + strike(token) { const el = doc.createElement('del'); dive(token.children).forEach(child => el.appendChild(child)); diff --git a/src/mfm/parser.ts b/src/mfm/parser.ts index 0aec60f823..9a1264220b 100644 --- a/src/mfm/parser.ts +++ b/src/mfm/parser.ts @@ -67,6 +67,7 @@ const newline = P((input, i) => { const mfm = P.createLanguage({ root: r => P.alt( r.big, + r.small, r.bold, r.strike, r.italic, @@ -102,6 +103,20 @@ const mfm = P.createLanguage({ ).atLeast(1).tryParse(x))), //#endregion + //#region Small + small: r => + P.regexp(/<small>([\s\S]+?)<\/small>/, 1) + .map(x => makeNodeWithChildren('small', P.alt( + r.strike, + r.italic, + r.mention, + r.hashtag, + r.emoji, + r.math, + r.text + ).atLeast(1).tryParse(x))), + //#endregion + //#region Block code blockCode: r => newline.then( @@ -134,6 +149,7 @@ const mfm = P.createLanguage({ P.regexp(/<center>([\s\S]+?)<\/center>/, 1) .map(x => makeNodeWithChildren('center', P.alt( r.big, + r.small, r.bold, r.strike, r.italic, @@ -211,6 +227,7 @@ const mfm = P.createLanguage({ .map((x: any) => { return makeNodeWithChildren('link', P.alt( r.big, + r.small, r.bold, r.strike, r.italic, @@ -253,6 +270,7 @@ const mfm = P.createLanguage({ P.alt(P.regexp(/\(\(\(([\s\S]+?)\)\)\)/, 1), P.regexp(/<motion>(.+?)<\/motion>/, 1)) .map(x => makeNodeWithChildren('motion', P.alt( r.bold, + r.small, r.strike, r.italic, r.mention, @@ -312,6 +330,7 @@ const mfm = P.createLanguage({ const q = match[1].trim().substring(1, match[1].length - 1); const contents = P.alt( r.big, + r.small, r.bold, r.strike, r.italic, |