diff options
| author | gutfuckllc <40531868+gutfuckllc@users.noreply.github.com> | 2018-08-05 16:54:54 -0400 |
|---|---|---|
| committer | gutfuckllc <40531868+gutfuckllc@users.noreply.github.com> | 2018-08-05 16:54:54 -0400 |
| commit | 752186066b69c7cb13b6fc0db7fc69469e845d21 (patch) | |
| tree | caed5ac8ffd0b81a548b16c5ee79fd8e2af81907 /src/mfm | |
| parent | Removed start.sh (diff) | |
| parent | 非公開の投稿に自分以外が返信したりRenoteしたりできな... (diff) | |
| download | misskey-752186066b69c7cb13b6fc0db7fc69469e845d21.tar.gz misskey-752186066b69c7cb13b6fc0db7fc69469e845d21.tar.bz2 misskey-752186066b69c7cb13b6fc0db7fc69469e845d21.zip | |
Merge remote-tracking branch 'upstream/master' into devel
Diffstat (limited to 'src/mfm')
| -rw-r--r-- | src/mfm/html.ts | 6 | ||||
| -rw-r--r-- | src/mfm/parse/elements/big.ts | 2 | ||||
| -rw-r--r-- | src/mfm/parse/elements/motion.ts | 20 | ||||
| -rw-r--r-- | src/mfm/parse/index.ts | 7 |
4 files changed, 32 insertions, 3 deletions
diff --git a/src/mfm/html.ts b/src/mfm/html.ts index dfe291b3a5..c11bd55cf4 100644 --- a/src/mfm/html.ts +++ b/src/mfm/html.ts @@ -18,6 +18,12 @@ const handlers: { [key: string]: (window: any, token: any, mentionedRemoteUsers: document.body.appendChild(b); }, + motion({ document }, { big }) { + const b = document.createElement('strong'); + b.textContent = big; + document.body.appendChild(b); + }, + code({ document }, { code }) { const pre = document.createElement('pre'); const inner = document.createElement('code'); diff --git a/src/mfm/parse/elements/big.ts b/src/mfm/parse/elements/big.ts index ca798986e9..8e39c75a55 100644 --- a/src/mfm/parse/elements/big.ts +++ b/src/mfm/parse/elements/big.ts @@ -1,5 +1,5 @@ /** - * Bold + * Big */ export type TextElementBig = { diff --git a/src/mfm/parse/elements/motion.ts b/src/mfm/parse/elements/motion.ts new file mode 100644 index 0000000000..9e7370e071 --- /dev/null +++ b/src/mfm/parse/elements/motion.ts @@ -0,0 +1,20 @@ +/** + * Motion + */ + +export type TextElementMotion = { + type: 'motion' + content: string + motion: string +}; + +export default function(text: string) { + const match = text.match(/^\(\(\((.+?)\)\)\)/) || text.match(/^<motion>(.+?)<\/motion>/); + if (!match) return null; + const motion = match[0]; + return { + type: 'motion', + content: motion, + motion: match[1] + } as TextElementMotion; +} diff --git a/src/mfm/parse/index.ts b/src/mfm/parse/index.ts index 066c062559..99c00ae649 100644 --- a/src/mfm/parse/index.ts +++ b/src/mfm/parse/index.ts @@ -14,6 +14,7 @@ import { TextElementQuote } from './elements/quote'; import { TextElementSearch } from './elements/search'; import { TextElementTitle } from './elements/title'; import { TextElementUrl } from './elements/url'; +import { TextElementMotion } from './elements/motion'; const elements = [ require('./elements/big'), @@ -27,7 +28,8 @@ const elements = [ require('./elements/inline-code'), require('./elements/quote'), require('./elements/emoji'), - require('./elements/search') + require('./elements/search'), + require('./elements/motion') ].map(element => element.default as TextElementProcessor); export type TextElement = { type: 'text', content: string } @@ -42,7 +44,8 @@ export type TextElement = { type: 'text', content: string } | TextElementQuote | TextElementSearch | TextElementTitle - | TextElementUrl; + | TextElementUrl + | TextElementMotion; export type TextElementProcessor = (text: string, i: number) => TextElement | TextElement[]; export default (source: string): TextElement[] => { |