diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2020-08-07 11:27:37 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2020-08-07 11:27:37 +0900 |
| commit | 2d40a15d2bc7356fdd82dd980cce202d6e9acdbc (patch) | |
| tree | b52847941047ab0731b0ad8ae3e750884863cda3 /src/mfm | |
| parent | enhance(api): アクセストークンを作成する際、createdAtをlastUs... (diff) | |
| download | misskey-2d40a15d2bc7356fdd82dd980cce202d6e9acdbc.tar.gz misskey-2d40a15d2bc7356fdd82dd980cce202d6e9acdbc.tar.bz2 misskey-2d40a15d2bc7356fdd82dd980cce202d6e9acdbc.zip | |
refactor: Extract well-known services
Diffstat (limited to 'src/mfm')
| -rw-r--r-- | src/mfm/to-html.ts | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/mfm/to-html.ts b/src/mfm/to-html.ts index 1292292154..9376889829 100644 --- a/src/mfm/to-html.ts +++ b/src/mfm/to-html.ts @@ -3,6 +3,7 @@ import config from '../config'; import { intersperse } from '../prelude/array'; import { MfmForest, MfmTree } from './prelude'; import { IMentionedRemoteUsers } from '../models/entities/note'; +import { wellKnownServices } from '../well-known-services'; export function toHtml(tokens: MfmForest | null, mentionedRemoteUsers: IMentionedRemoteUsers = []) { if (tokens == null) { @@ -126,18 +127,13 @@ export function toHtml(tokens: MfmForest | null, mentionedRemoteUsers: IMentione mention(token) { const a = doc.createElement('a'); const { username, host, acct } = token.node.props; - switch (host) { - case 'github.com': - a.href = `https://github.com/${username}`; - break; - case 'twitter.com': - a.href = `https://twitter.com/${username}`; - break; - default: - const remoteUserInfo = mentionedRemoteUsers.find(remoteUser => remoteUser.username === username && remoteUser.host === host); - a.href = remoteUserInfo ? (remoteUserInfo.url ? remoteUserInfo.url : remoteUserInfo.uri) : `${config.url}/${acct}`; - a.className = 'u-url mention'; - break; + const wellKnown = wellKnownServices.find(x => x[0] === host); + if (wellKnown) { + a.href = wellKnown[1](username); + } else { + const remoteUserInfo = mentionedRemoteUsers.find(remoteUser => remoteUser.username === username && remoteUser.host === host); + a.href = remoteUserInfo ? (remoteUserInfo.url ? remoteUserInfo.url : remoteUserInfo.uri) : `${config.url}/${acct}`; + a.className = 'u-url mention'; } a.textContent = acct; return a; |