diff --git a/src/api/bot/interfaces/line.ts b/src/api/bot/interfaces/line.ts index bf08821594..6b2ebdec88 100644 --- a/src/api/bot/interfaces/line.ts +++ b/src/api/bot/interfaces/line.ts @@ -121,7 +121,7 @@ class LineBot extends BotCore { actions.push({ type: 'uri', label: 'Webで見る', - uri: `${config.url}/${user.username}` + uri: `${config.url}/@${user.username}` }); this.reply([{ diff --git a/src/api/models/user.ts b/src/api/models/user.ts index 08d7fbb8c7..63f79908e3 100644 --- a/src/api/models/user.ts +++ b/src/api/models/user.ts @@ -296,7 +296,7 @@ export const packForAp = ( if (!_user) return reject('invalid user arg.'); - const userUrl = `${config.url}/${_user.username}`; + const userUrl = `${config.url}/@${_user.username}`; resolve({ "@context": ["https://www.w3.org/ns/activitystreams", { diff --git a/src/common/othello/ai/back.ts b/src/common/othello/ai/back.ts index 42a256c0bc..27dbc39529 100644 --- a/src/common/othello/ai/back.ts +++ b/src/common/othello/ai/back.ts @@ -47,8 +47,8 @@ process.on('message', async msg => { const user = game.user1_id == id ? game.user2 : game.user1; const isSettai = form[0].value === 0; const text = isSettai - ? `?[${user.name}](${conf.url}/${user.username})さんの接待を始めました!` - : `対局を?[${user.name}](${conf.url}/${user.username})さんと始めました! (強さ${form[0].value})`; + ? `?[${user.name}](${conf.url}/@${user.username})さんの接待を始めました!` + : `対局を?[${user.name}](${conf.url}/@${user.username})さんと始めました! (強さ${form[0].value})`; const res = await request.post(`${conf.api_url}/posts/create`, { json: { i, @@ -72,15 +72,15 @@ process.on('message', async msg => { const isSettai = form[0].value === 0; const text = isSettai ? msg.body.winner_id === null - ? `?[${user.name}](${conf.url}/${user.username})さんに接待で引き分けました...` + ? `?[${user.name}](${conf.url}/@${user.username})さんに接待で引き分けました...` : msg.body.winner_id == id - ? `?[${user.name}](${conf.url}/${user.username})さんに接待で勝ってしまいました...` - : `?[${user.name}](${conf.url}/${user.username})さんに接待で負けてあげました♪` + ? `?[${user.name}](${conf.url}/@${user.username})さんに接待で勝ってしまいました...` + : `?[${user.name}](${conf.url}/@${user.username})さんに接待で負けてあげました♪` : msg.body.winner_id === null - ? `?[${user.name}](${conf.url}/${user.username})さんと引き分けました~` + ? `?[${user.name}](${conf.url}/@${user.username})さんと引き分けました~` : msg.body.winner_id == id - ? `?[${user.name}](${conf.url}/${user.username})さんに勝ちました♪` - : `?[${user.name}](${conf.url}/${user.username})さんに負けました...`; + ? `?[${user.name}](${conf.url}/@${user.username})さんに勝ちました♪` + : `?[${user.name}](${conf.url}/@${user.username})さんに負けました...`; await request.post(`${conf.api_url}/posts/create`, { json: { i, diff --git a/src/web/app/ch/tags/channel.tag b/src/web/app/ch/tags/channel.tag index b5c6ce1e69..face824cfc 100644 --- a/src/web/app/ch/tags/channel.tag +++ b/src/web/app/ch/tags/channel.tag @@ -165,7 +165,7 @@ <mk-channel-post> <header> <a class="index" @click="reply">{ post.index }:</a> - <a class="name" href={ _URL_ + '/' + post.user.username }><b>{ post.user.name }</b></a> + <a class="name" href={ _URL_ + '/@' + post.user.username }><b>{ post.user.name }</b></a> <mk-time time={ post.created_at }/> <mk-time time={ post.created_at } mode="detail"/> <span>ID:<i>{ post.user.username }</i></span> diff --git a/src/web/app/ch/tags/header.tag b/src/web/app/ch/tags/header.tag index 747bec357b..901123d63b 100644 --- a/src/web/app/ch/tags/header.tag +++ b/src/web/app/ch/tags/header.tag @@ -4,7 +4,7 @@ </div> <div> <a v-if="!$root.$data.os.isSignedIn" href={ _URL_ }>ログイン(新規登録)</a> - <a v-if="$root.$data.os.isSignedIn" href={ _URL_ + '/' + I.username }>{ I.username }</a> + <a v-if="$root.$data.os.isSignedIn" href={ _URL_ + '/@' + I.username }>{ I.username }</a> </div> <style lang="stylus" scoped> :scope diff --git a/src/web/app/common/views/components/messaging-room.message.vue b/src/web/app/common/views/components/messaging-room.message.vue index 56854ca2ff..647e39a756 100644 --- a/src/web/app/common/views/components/messaging-room.message.vue +++ b/src/web/app/common/views/components/messaging-room.message.vue @@ -1,6 +1,6 @@ <template> <div class="message" :data-is-me="isMe"> - <router-link class="avatar-anchor" :to="`/${message.user.username}`" :title="message.user.username" target="_blank"> + <router-link class="avatar-anchor" :to="`/@${message.user.username}`" :title="message.user.username" target="_blank"> <img class="avatar" :src="`${message.user.avatar_url}?thumbnail&size=80`" alt=""/> </router-link> <div class="content"> diff --git a/src/web/app/common/views/components/post-html.ts b/src/web/app/common/views/components/post-html.ts index dae118e826..56ee97d388 100644 --- a/src/web/app/common/views/components/post-html.ts +++ b/src/web/app/common/views/components/post-html.ts @@ -61,7 +61,7 @@ export default Vue.component('mk-post-html', { case 'mention': return (createElement as any)('a', { attrs: { - href: `${url}/${token.username}`, + href: `${url}/@${token.username}`, target: '_blank', dataIsMe: (this as any).i && (this as any).i.username == token.username }, diff --git a/src/web/app/common/views/components/signup.vue b/src/web/app/common/views/components/signup.vue index 2ca1687be1..c2e78aa8a3 100644 --- a/src/web/app/common/views/components/signup.vue +++ b/src/web/app/common/views/components/signup.vue @@ -3,7 +3,7 @@ <label class="username"> <p class="caption">%fa:at%%i18n:common.tags.mk-signup.username%</p> <input v-model="username" type="text" pattern="^[a-zA-Z0-9-]{3,20}$" placeholder="a~z、A~Z、0~9、-" autocomplete="off" required @input="onChangeUsername"/> - <p class="profile-page-url-preview" v-if="shouldShowProfileUrl">{{ `${url}/${username}` }}</p> + <p class="profile-page-url-preview" v-if="shouldShowProfileUrl">{{ `${url}/@${username}` }}</p> <p class="info" v-if="usernameState == 'wait'" style="color:#999">%fa:spinner .pulse .fw%%i18n:common.tags.mk-signup.checking%</p> <p class="info" v-if="usernameState == 'ok'" style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.available%</p> <p class="info" v-if="usernameState == 'unavailable'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.unavailable%</p> diff --git a/src/web/app/common/views/components/welcome-timeline.vue b/src/web/app/common/views/components/welcome-timeline.vue index 7e35e1f71b..062ccda324 100644 --- a/src/web/app/common/views/components/welcome-timeline.vue +++ b/src/web/app/common/views/components/welcome-timeline.vue @@ -1,15 +1,15 @@ <template> <div class="mk-welcome-timeline"> <div v-for="post in posts"> - <router-link class="avatar-anchor" :to="`/${post.user.username}`" v-user-preview="post.user.id"> + <router-link class="avatar-anchor" :to="`/@${post.user.username}`" v-user-preview="post.user.id"> <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=96`" alt="avatar"/> </router-link> <div class="body"> <header> - <router-link class="name" :to="`/${post.user.username}`" v-user-preview="post.user.id">{{ post.user.name }}</router-link> + <router-link class="name" :to="`/@${post.user.username}`" v-user-preview="post.user.id">{{ post.user.name }}</router-link> <span class="username">@{{ post.user.username }}</span> <div class="info"> - <router-link class="created-at" :to="`/${post.user.username}/${post.id}`"> + <router-link class="created-at" :to="`/@${post.user.username}/${post.id}`"> <mk-time :time="post.created_at"/> </router-link> </div> diff --git a/src/web/app/desktop/script.ts b/src/web/app/desktop/script.ts index 2362613cdc..f2bcc6f8a6 100644 --- a/src/web/app/desktop/script.ts +++ b/src/web/app/desktop/script.ts @@ -83,8 +83,8 @@ init(async (launch) => { { path: '/search', component: MkSearch }, { path: '/othello', component: MkOthello }, { path: '/othello/:game', component: MkOthello }, - { path: '/:user', component: MkUser }, - { path: '/:user/:post', component: MkPost } + { path: '/@:user', component: MkUser }, + { path: '/@:user/:post', component: MkPost } ]); }, true); diff --git a/src/web/app/desktop/views/components/friends-maker.vue b/src/web/app/desktop/views/components/friends-maker.vue index ab35efc75a..65adff7cec 100644 --- a/src/web/app/desktop/views/components/friends-maker.vue +++ b/src/web/app/desktop/views/components/friends-maker.vue @@ -3,11 +3,11 @@ <p class="title">気になるユーザーをフォロー:</p> <div class="users" v-if="!fetching && users.length > 0"> <div class="user" v-for="user in users" :key="user.id"> - <router-link class="avatar-anchor" :to="`/${user.username}`"> + <router-link class="avatar-anchor" :to="`/@${user.username}`"> <img class="avatar" :src="`${user.avatar_url}?thumbnail&size=42`" alt="" v-user-preview="user.id"/> </router-link> <div class="body"> - <router-link class="name" :to="`/${user.username}`" v-user-preview="user.id">{{ user.name }}</router-link> + <router-link class="name" :to="`/@${user.username}`" v-user-preview="user.id">{{ user.name }}</router-link> <p class="username">@{{ user.username }}</p> </div> <mk-follow-button :user="user"/> diff --git a/src/web/app/desktop/views/components/notifications.vue b/src/web/app/desktop/views/components/notifications.vue index d61397d536..86cd1ba4f6 100644 --- a/src/web/app/desktop/views/components/notifications.vue +++ b/src/web/app/desktop/views/components/notifications.vue @@ -5,82 +5,82 @@ <div class="notification" :class="notification.type" :key="notification.id"> <mk-time :time="notification.created_at"/> <template v-if="notification.type == 'reaction'"> - <router-link class="avatar-anchor" :to="`/${notification.user.username}`" v-user-preview="notification.user.id"> + <router-link class="avatar-anchor" :to="`/@${notification.user.username}`" v-user-preview="notification.user.id"> <img class="avatar" :src="`${notification.user.avatar_url}?thumbnail&size=48`" alt="avatar"/> </router-link> <div class="text"> <p> <mk-reaction-icon :reaction="notification.reaction"/> - <router-link :to="`/${notification.user.username}`" v-user-preview="notification.user.id">{{ notification.user.name }}</router-link> + <router-link :to="`/@${notification.user.username}`" v-user-preview="notification.user.id">{{ notification.user.name }}</router-link> </p> - <router-link class="post-ref" :to="`/${notification.post.user.username}/${notification.post.id}`"> + <router-link class="post-ref" :to="`/@${notification.post.user.username}/${notification.post.id}`"> %fa:quote-left%{{ getPostSummary(notification.post) }}%fa:quote-right% </router-link> </div> </template> <template v-if="notification.type == 'repost'"> - <router-link class="avatar-anchor" :to="`/${notification.post.user.username}`" v-user-preview="notification.post.user_id"> + <router-link class="avatar-anchor" :to="`/@${notification.post.user.username}`" v-user-preview="notification.post.user_id"> <img class="avatar" :src="`${notification.post.user.avatar_url}?thumbnail&size=48`" alt="avatar"/> </router-link> <div class="text"> <p>%fa:retweet% - <router-link :to="`/${notification.post.user.username}`" v-user-preview="notification.post.user_id">{{ notification.post.user.name }}</router-link> + <router-link :to="`/@${notification.post.user.username}`" v-user-preview="notification.post.user_id">{{ notification.post.user.name }}</router-link> </p> - <router-link class="post-ref" :to="`/${notification.post.user.username}/${notification.post.id}`"> + <router-link class="post-ref" :to="`/@${notification.post.user.username}/${notification.post.id}`"> %fa:quote-left%{{ getPostSummary(notification.post.repost) }}%fa:quote-right% </router-link> </div> </template> <template v-if="notification.type == 'quote'"> - <router-link class="avatar-anchor" :to="`/${notification.post.user.username}`" v-user-preview="notification.post.user_id"> + <router-link class="avatar-anchor" :to="`/@${notification.post.user.username}`" v-user-preview="notification.post.user_id"> <img class="avatar" :src="`${notification.post.user.avatar_url}?thumbnail&size=48`" alt="avatar"/> </router-link> <div class="text"> <p>%fa:quote-left% - <router-link :to="`/${notification.post.user.username}`" v-user-preview="notification.post.user_id">{{ notification.post.user.name }}</router-link> + <router-link :to="`/@${notification.post.user.username}`" v-user-preview="notification.post.user_id">{{ notification.post.user.name }}</router-link> </p> - <router-link class="post-preview" :to="`/${notification.post.user.username}/${notification.post.id}`">{{ getPostSummary(notification.post) }}</router-link> + <router-link class="post-preview" :to="`/@${notification.post.user.username}/${notification.post.id}`">{{ getPostSummary(notification.post) }}</router-link> </div> </template> <template v-if="notification.type == 'follow'"> - <router-link class="avatar-anchor" :to="`/${notification.user.username}`" v-user-preview="notification.user.id"> + <router-link class="avatar-anchor" :to="`/@${notification.user.username}`" v-user-preview="notification.user.id"> <img class="avatar" :src="`${notification.user.avatar_url}?thumbnail&size=48`" alt="avatar"/> </router-link> <div class="text"> <p>%fa:user-plus% - <router-link :to="`/${notification.user.username}`" v-user-preview="notification.user.id">{{ notification.user.name }}</router-link> + <router-link :to="`/@${notification.user.username}`" v-user-preview="notification.user.id">{{ notification.user.name }}</router-link> </p> </div> </template> <template v-if="notification.type == 'reply'"> - <router-link class="avatar-anchor" :to="`/${notification.post.user.username}`" v-user-preview="notification.post.user_id"> + <router-link class="avatar-anchor" :to="`/@${notification.post.user.username}`" v-user-preview="notification.post.user_id"> <img class="avatar" :src="`${notification.post.user.avatar_url}?thumbnail&size=48`" alt="avatar"/> </router-link> <div class="text"> <p>%fa:reply% - <router-link :to="`/${notification.post.user.username}`" v-user-preview="notification.post.user_id">{{ notification.post.user.name }}</router-link> + <router-link :to="`/@${notification.post.user.username}`" v-user-preview="notification.post.user_id">{{ notification.post.user.name }}</router-link> </p> - <router-link class="post-preview" :to="`/${notification.post.user.username}/${notification.post.id}`">{{ getPostSummary(notification.post) }}</router-link> + <router-link class="post-preview" :to="`/@${notification.post.user.username}/${notification.post.id}`">{{ getPostSummary(notification.post) }}</router-link> </div> </template> <template v-if="notification.type == 'mention'"> - <router-link class="avatar-anchor" :to="`/${notification.post.user.username}`" v-user-preview="notification.post.user_id"> + <router-link class="avatar-anchor" :to="`/@${notification.post.user.username}`" v-user-preview="notification.post.user_id"> <img class="avatar" :src="`${notification.post.user.avatar_url}?thumbnail&size=48`" alt="avatar"/> </router-link> <div class="text"> <p>%fa:at% - <router-link :to="`/${notification.post.user.username}`" v-user-preview="notification.post.user_id">{{ notification.post.user.name }}</router-link> + <router-link :to="`/@${notification.post.user.username}`" v-user-preview="notification.post.user_id">{{ notification.post.user.name }}</router-link> </p> - <a class="post-preview" :href="`/${notification.post.user.username}/${notification.post.id}`">{{ getPostSummary(notification.post) }}</a> + <a class="post-preview" :href="`/@${notification.post.user.username}/${notification.post.id}`">{{ getPostSummary(notification.post) }}</a> </div> </template> <template v-if="notification.type == 'poll_vote'"> - <router-link class="avatar-anchor" :to="`/${notification.user.username}`" v-user-preview="notification.user.id"> + <router-link class="avatar-anchor" :to="`/@${notification.user.username}`" v-user-preview="notification.user.id"> <img class="avatar" :src="`${notification.user.avatar_url}?thumbnail&size=48`" alt="avatar"/> </router-link> <div class="text"> - <p>%fa:chart-pie%<a :href="`/${notification.user.username}`" v-user-preview="notification.user.id">{{ notification.user.name }}</a></p> - <router-link class="post-ref" :to="`/${notification.post.user.username}/${notification.post.id}`"> + <p>%fa:chart-pie%<a :href="`/@${notification.user.username}`" v-user-preview="notification.user.id">{{ notification.user.name }}</a></p> + <router-link class="post-ref" :to="`/@${notification.post.user.username}/${notification.post.id}`"> %fa:quote-left%{{ getPostSummary(notification.post) }}%fa:quote-right% </router-link> </div> diff --git a/src/web/app/desktop/views/components/post-detail.sub.vue b/src/web/app/desktop/views/components/post-detail.sub.vue index c35a07d7ca..53fc724fc6 100644 --- a/src/web/app/desktop/views/components/post-detail.sub.vue +++ b/src/web/app/desktop/views/components/post-detail.sub.vue @@ -1,16 +1,16 @@ <template> <div class="sub" :title="title"> - <router-link class="avatar-anchor" :to="`/${post.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${post.user.username}`"> <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=64`" alt="avatar" v-user-preview="post.user_id"/> </router-link> <div class="main"> <header> <div class="left"> - <router-link class="name" :to="`/${post.user.username}`" v-user-preview="post.user_id">{{ post.user.name }}</router-link> + <router-link class="name" :to="`/@${post.user.username}`" v-user-preview="post.user_id">{{ post.user.name }}</router-link> <span class="username">@{{ post.user.username }}</span> </div> <div class="right"> - <router-link class="time" :to="`/${post.user.username}/${post.id}`"> + <router-link class="time" :to="`/@${post.user.username}/${post.id}`"> <mk-time :time="post.created_at"/> </router-link> </div> diff --git a/src/web/app/desktop/views/components/post-detail.vue b/src/web/app/desktop/views/components/post-detail.vue index 5845ab4f8f..9a8958679c 100644 --- a/src/web/app/desktop/views/components/post-detail.vue +++ b/src/web/app/desktop/views/components/post-detail.vue @@ -18,22 +18,22 @@ </div> <div class="repost" v-if="isRepost"> <p> - <router-link class="avatar-anchor" :to="`/${post.user.username}`" v-user-preview="post.user_id"> + <router-link class="avatar-anchor" :to="`/@${post.user.username}`" v-user-preview="post.user_id"> <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=32`" alt="avatar"/> </router-link> %fa:retweet% - <router-link class="name" :href="`/${post.user.username}`">{{ post.user.name }}</router-link> + <router-link class="name" :href="`/@${post.user.username}`">{{ post.user.name }}</router-link> がRepost </p> </div> <article> - <router-link class="avatar-anchor" :to="`/${p.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${p.user.username}`"> <img class="avatar" :src="`${p.user.avatar_url}?thumbnail&size=64`" alt="avatar" v-user-preview="p.user.id"/> </router-link> <header> - <router-link class="name" :to="`/${p.user.username}`" v-user-preview="p.user.id">{{ p.user.name }}</router-link> + <router-link class="name" :to="`/@${p.user.username}`" v-user-preview="p.user.id">{{ p.user.name }}</router-link> <span class="username">@{{ p.user.username }}</span> - <router-link class="time" :to="`/${p.user.username}/${p.id}`"> + <router-link class="time" :to="`/@${p.user.username}/${p.id}`"> <mk-time :time="p.created_at"/> </router-link> </header> diff --git a/src/web/app/desktop/views/components/post-preview.vue b/src/web/app/desktop/views/components/post-preview.vue index ec3372f908..edb593457e 100644 --- a/src/web/app/desktop/views/components/post-preview.vue +++ b/src/web/app/desktop/views/components/post-preview.vue @@ -1,13 +1,13 @@ <template> <div class="mk-post-preview" :title="title"> - <router-link class="avatar-anchor" :to="`/${post.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${post.user.username}`"> <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=64`" alt="avatar" v-user-preview="post.user_id"/> </router-link> <div class="main"> <header> - <router-link class="name" :to="`/${post.user.username}`" v-user-preview="post.user_id">{{ post.user.name }}</router-link> + <router-link class="name" :to="`/@${post.user.username}`" v-user-preview="post.user_id">{{ post.user.name }}</router-link> <span class="username">@{{ post.user.username }}</span> - <router-link class="time" :to="`/${post.user.username}/${post.id}`"> + <router-link class="time" :to="`/@${post.user.username}/${post.id}`"> <mk-time :time="post.created_at"/> </router-link> </header> diff --git a/src/web/app/desktop/views/components/posts.post.sub.vue b/src/web/app/desktop/views/components/posts.post.sub.vue index 69c88fed50..2fd8a9865f 100644 --- a/src/web/app/desktop/views/components/posts.post.sub.vue +++ b/src/web/app/desktop/views/components/posts.post.sub.vue @@ -1,13 +1,13 @@ <template> <div class="sub" :title="title"> - <router-link class="avatar-anchor" :to="`/${post.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${post.user.username}`"> <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=64`" alt="avatar" v-user-preview="post.user_id"/> </router-link> <div class="main"> <header> - <router-link class="name" :to="`/${post.user.username}`" v-user-preview="post.user_id">{{ post.user.name }}</router-link> + <router-link class="name" :to="`/@${post.user.username}`" v-user-preview="post.user_id">{{ post.user.name }}</router-link> <span class="username">@{{ post.user.username }}</span> - <router-link class="created-at" :to="`/${post.user.username}/${post.id}`"> + <router-link class="created-at" :to="`/@${post.user.username}/${post.id}`"> <mk-time :time="post.created_at"/> </router-link> </header> diff --git a/src/web/app/desktop/views/components/posts.post.vue b/src/web/app/desktop/views/components/posts.post.vue index 71cbbc68d2..a525900b95 100644 --- a/src/web/app/desktop/views/components/posts.post.vue +++ b/src/web/app/desktop/views/components/posts.post.vue @@ -5,23 +5,23 @@ </div> <div class="repost" v-if="isRepost"> <p> - <router-link class="avatar-anchor" :to="`/${post.user.username}`" v-user-preview="post.user_id"> + <router-link class="avatar-anchor" :to="`/@${post.user.username}`" v-user-preview="post.user_id"> <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=32`" alt="avatar"/> </router-link> %fa:retweet% <span>{{ '%i18n:desktop.tags.mk-timeline-post.reposted-by%'.substr(0, '%i18n:desktop.tags.mk-timeline-post.reposted-by%'.indexOf('{')) }}</span> - <a class="name" :href="`/${post.user.username}`" v-user-preview="post.user_id">{{ post.user.name }}</a> + <a class="name" :href="`/@${post.user.username}`" v-user-preview="post.user_id">{{ post.user.name }}</a> <span>{{ '%i18n:desktop.tags.mk-timeline-post.reposted-by%'.substr('%i18n:desktop.tags.mk-timeline-post.reposted-by%'.indexOf('}') + 1) }}</span> </p> <mk-time :time="post.created_at"/> </div> <article> - <router-link class="avatar-anchor" :to="`/${p.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${p.user.username}`"> <img class="avatar" :src="`${p.user.avatar_url}?thumbnail&size=64`" alt="avatar" v-user-preview="p.user.id"/> </router-link> <div class="main"> <header> - <router-link class="name" :to="`/${p.user.username}`" v-user-preview="p.user.id">{{ p.user.name }}</router-link> + <router-link class="name" :to="`/@${p.user.username}`" v-user-preview="p.user.id">{{ p.user.name }}</router-link> <span class="is-bot" v-if="p.user.account.is_bot">bot</span> <span class="username">@{{ p.user.username }}</span> <div class="info"> @@ -135,7 +135,7 @@ export default Vue.extend({ return dateStringify(this.p.created_at); }, url(): string { - return `/${this.p.user.username}/${this.p.id}`; + return `/@${this.p.user.username}/${this.p.id}`; }, urls(): string[] { if (this.p.ast) { diff --git a/src/web/app/desktop/views/components/ui.header.account.vue b/src/web/app/desktop/views/components/ui.header.account.vue index 2cc2c1867f..19b9d77798 100644 --- a/src/web/app/desktop/views/components/ui.header.account.vue +++ b/src/web/app/desktop/views/components/ui.header.account.vue @@ -8,7 +8,7 @@ <div class="menu" v-if="isOpen"> <ul> <li> - <router-link :to="`/${ os.i.username }`">%fa:user%%i18n:desktop.tags.mk-ui-header-account.profile%%fa:angle-right%</router-link> + <router-link :to="`/@${ os.i.username }`">%fa:user%%i18n:desktop.tags.mk-ui-header-account.profile%%fa:angle-right%</router-link> </li> <li @click="drive"> <p>%fa:cloud%%i18n:desktop.tags.mk-ui-header-account.drive%%fa:angle-right%</p> diff --git a/src/web/app/desktop/views/components/user-preview.vue b/src/web/app/desktop/views/components/user-preview.vue index cfb95961da..ffc959fac5 100644 --- a/src/web/app/desktop/views/components/user-preview.vue +++ b/src/web/app/desktop/views/components/user-preview.vue @@ -2,11 +2,11 @@ <div class="mk-user-preview"> <template v-if="u != null"> <div class="banner" :style="u.banner_url ? `background-image: url(${u.banner_url}?thumbnail&size=512)` : ''"></div> - <router-link class="avatar" :to="`/${u.username}`"> + <router-link class="avatar" :to="`/@${u.username}`"> <img :src="`${u.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> <div class="title"> - <router-link class="name" :to="`/${u.username}`">{{ u.name }}</router-link> + <router-link class="name" :to="`/@${u.username}`">{{ u.name }}</router-link> <p class="username">@{{ u.username }}</p> </div> <div class="description">{{ u.description }}</div> diff --git a/src/web/app/desktop/views/components/users-list.item.vue b/src/web/app/desktop/views/components/users-list.item.vue index 374f55b410..2d1e133473 100644 --- a/src/web/app/desktop/views/components/users-list.item.vue +++ b/src/web/app/desktop/views/components/users-list.item.vue @@ -1,11 +1,11 @@ <template> <div class="root item"> - <router-link class="avatar-anchor" :to="`/${user.username}`" v-user-preview="user.id"> + <router-link class="avatar-anchor" :to="`/@${user.username}`" v-user-preview="user.id"> <img class="avatar" :src="`${user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> <div class="main"> <header> - <router-link class="name" :to="`/${user.username}`" v-user-preview="user.id">{{ user.name }}</router-link> + <router-link class="name" :to="`/@${user.username}`" v-user-preview="user.id">{{ user.name }}</router-link> <span class="username">@{{ user.username }}</span> </header> <div class="body"> diff --git a/src/web/app/desktop/views/pages/user/user.followers-you-know.vue b/src/web/app/desktop/views/pages/user/user.followers-you-know.vue index 015b12d3d4..20675c454e 100644 --- a/src/web/app/desktop/views/pages/user/user.followers-you-know.vue +++ b/src/web/app/desktop/views/pages/user/user.followers-you-know.vue @@ -3,7 +3,7 @@ <p class="title">%fa:users%%i18n:desktop.tags.mk-user.followers-you-know.title%</p> <p class="initializing" v-if="fetching">%fa:spinner .pulse .fw%%i18n:desktop.tags.mk-user.followers-you-know.loading%<mk-ellipsis/></p> <div v-if="!fetching && users.length > 0"> - <router-link v-for="user in users" :to="`/${user.username}`" :key="user.id"> + <router-link v-for="user in users" :to="`/@${user.username}`" :key="user.id"> <img :src="`${user.avatar_url}?thumbnail&size=64`" :alt="user.name" v-user-preview="user.id"/> </router-link> </div> diff --git a/src/web/app/desktop/views/pages/user/user.friends.vue b/src/web/app/desktop/views/pages/user/user.friends.vue index d27009a82d..a60020f59a 100644 --- a/src/web/app/desktop/views/pages/user/user.friends.vue +++ b/src/web/app/desktop/views/pages/user/user.friends.vue @@ -4,11 +4,11 @@ <p class="initializing" v-if="fetching">%fa:spinner .pulse .fw%%i18n:desktop.tags.mk-user.frequently-replied-users.loading%<mk-ellipsis/></p> <template v-if="!fetching && users.length != 0"> <div class="user" v-for="friend in users"> - <router-link class="avatar-anchor" :to="`/${friend.username}`"> + <router-link class="avatar-anchor" :to="`/@${friend.username}`"> <img class="avatar" :src="`${friend.avatar_url}?thumbnail&size=42`" alt="" v-user-preview="friend.id"/> </router-link> <div class="body"> - <router-link class="name" :to="`/${friend.username}`" v-user-preview="friend.id">{{ friend.name }}</router-link> + <router-link class="name" :to="`/@${friend.username}`" v-user-preview="friend.id">{{ friend.name }}</router-link> <p class="username">@{{ friend.username }}</p> </div> <mk-follow-button :user="friend"/> diff --git a/src/web/app/desktop/views/pages/user/user.header.vue b/src/web/app/desktop/views/pages/user/user.header.vue index 63542055d9..e60b312ca8 100644 --- a/src/web/app/desktop/views/pages/user/user.header.vue +++ b/src/web/app/desktop/views/pages/user/user.header.vue @@ -12,9 +12,9 @@ <p class="location" v-if="user.account.profile.location">%fa:map-marker%{{ user.account.profile.location }}</p> </div> <footer> - <router-link :to="`/${user.username}`" :data-active="$parent.page == 'home'">%fa:home%概要</router-link> - <router-link :to="`/${user.username}/media`" :data-active="$parent.page == 'media'">%fa:image%メディア</router-link> - <router-link :to="`/${user.username}/graphs`" :data-active="$parent.page == 'graphs'">%fa:chart-bar%グラフ</router-link> + <router-link :to="`/@${user.username}`" :data-active="$parent.page == 'home'">%fa:home%概要</router-link> + <router-link :to="`/@${user.username}/media`" :data-active="$parent.page == 'media'">%fa:image%メディア</router-link> + <router-link :to="`/@${user.username}/graphs`" :data-active="$parent.page == 'graphs'">%fa:chart-bar%グラフ</router-link> </footer> </div> </div> diff --git a/src/web/app/desktop/views/pages/welcome.vue b/src/web/app/desktop/views/pages/welcome.vue index ad1dccae97..c514500b2d 100644 --- a/src/web/app/desktop/views/pages/welcome.vue +++ b/src/web/app/desktop/views/pages/welcome.vue @@ -8,7 +8,7 @@ <p>ようこそ! <b>Misskey</b>はTwitter風ミニブログSNSです。思ったことや皆と共有したいことを投稿しましょう。タイムラインを見れば、皆の関心事をすぐにチェックすることもできます。<a :href="aboutUrl">詳しく...</a></p> <p><button class="signup" @click="signup">はじめる</button><button class="signin" @click="signin">ログイン</button></p> <div class="users"> - <router-link v-for="user in users" :key="user.id" class="avatar-anchor" :to="`/${user.username}`" v-user-preview="user.id"> + <router-link v-for="user in users" :key="user.id" class="avatar-anchor" :to="`/@${user.username}`" v-user-preview="user.id"> <img class="avatar" :src="`${user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> </div> diff --git a/src/web/app/desktop/views/widgets/channel.channel.post.vue b/src/web/app/desktop/views/widgets/channel.channel.post.vue index faaf0fb731..b2fa92ad43 100644 --- a/src/web/app/desktop/views/widgets/channel.channel.post.vue +++ b/src/web/app/desktop/views/widgets/channel.channel.post.vue @@ -2,7 +2,7 @@ <div class="post"> <header> <a class="index" @click="reply">{{ post.index }}:</a> - <router-link class="name" :to="`/${post.user.username}`" v-user-preview="post.user.id"><b>{{ post.user.name }}</b></router-link> + <router-link class="name" :to="`/@${post.user.username}`" v-user-preview="post.user.id"><b>{{ post.user.name }}</b></router-link> <span>ID:<i>{{ post.user.username }}</i></span> </header> <div> diff --git a/src/web/app/desktop/views/widgets/polls.vue b/src/web/app/desktop/views/widgets/polls.vue index fda4e17d87..636378d0bb 100644 --- a/src/web/app/desktop/views/widgets/polls.vue +++ b/src/web/app/desktop/views/widgets/polls.vue @@ -5,8 +5,8 @@ <button @click="fetch" title="%i18n:desktop.tags.mk-recommended-polls-home-widget.refresh%">%fa:sync%</button> </template> <div class="poll" v-if="!fetching && poll != null"> - <p v-if="poll.text"><router-link to="`/${ poll.user.username }/${ poll.id }`">{{ poll.text }}</router-link></p> - <p v-if="!poll.text"><router-link to="`/${ poll.user.username }/${ poll.id }`">%fa:link%</router-link></p> + <p v-if="poll.text"><router-link to="`/@${ poll.user.username }/${ poll.id }`">{{ poll.text }}</router-link></p> + <p v-if="!poll.text"><router-link to="`/@${ poll.user.username }/${ poll.id }`">%fa:link%</router-link></p> <mk-poll :post="poll"/> </div> <p class="empty" v-if="!fetching && poll == null">%i18n:desktop.tags.mk-recommended-polls-home-widget.nothing%</p> diff --git a/src/web/app/desktop/views/widgets/profile.vue b/src/web/app/desktop/views/widgets/profile.vue index e067a0eb24..3940106197 100644 --- a/src/web/app/desktop/views/widgets/profile.vue +++ b/src/web/app/desktop/views/widgets/profile.vue @@ -15,7 +15,7 @@ title="クリックでアバター編集" v-user-preview="os.i.id" /> - <router-link class="name" :to="`/${os.i.username}`">{{ os.i.name }}</router-link> + <router-link class="name" :to="`/@${os.i.username}`">{{ os.i.name }}</router-link> <p class="username">@{{ os.i.username }}</p> </div> </template> diff --git a/src/web/app/desktop/views/widgets/trends.vue b/src/web/app/desktop/views/widgets/trends.vue index 09cad9ba4a..c006c811d6 100644 --- a/src/web/app/desktop/views/widgets/trends.vue +++ b/src/web/app/desktop/views/widgets/trends.vue @@ -6,8 +6,8 @@ </template> <p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <div class="post" v-else-if="post != null"> - <p class="text"><router-link :to="`/${ post.user.username }/${ post.id }`">{{ post.text }}</router-link></p> - <p class="author">―<router-link :to="`/${ post.user.username }`">@{{ post.user.username }}</router-link></p> + <p class="text"><router-link :to="`/@${ post.user.username }/${ post.id }`">{{ post.text }}</router-link></p> + <p class="author">―<router-link :to="`/@${ post.user.username }`">@{{ post.user.username }}</router-link></p> </div> <p class="empty" v-else>%i18n:desktop.tags.mk-trends-home-widget.nothing%</p> </div> diff --git a/src/web/app/desktop/views/widgets/users.vue b/src/web/app/desktop/views/widgets/users.vue index f7af8205ec..c0a85a08e2 100644 --- a/src/web/app/desktop/views/widgets/users.vue +++ b/src/web/app/desktop/views/widgets/users.vue @@ -7,11 +7,11 @@ <p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <template v-else-if="users.length != 0"> <div class="user" v-for="_user in users"> - <router-link class="avatar-anchor" :to="`/${_user.username}`"> + <router-link class="avatar-anchor" :to="`/@${_user.username}`"> <img class="avatar" :src="`${_user.avatar_url}?thumbnail&size=42`" alt="" v-user-preview="_user.id"/> </router-link> <div class="body"> - <router-link class="name" :to="`/${_user.username}`" v-user-preview="_user.id">{{ _user.name }}</router-link> + <router-link class="name" :to="`/@${_user.username}`" v-user-preview="_user.id">{{ _user.name }}</router-link> <p class="username">@{{ _user.username }}</p> </div> <mk-follow-button :user="_user"/> diff --git a/src/web/app/mobile/script.ts b/src/web/app/mobile/script.ts index 2b57b78ada..2fcb085aca 100644 --- a/src/web/app/mobile/script.ts +++ b/src/web/app/mobile/script.ts @@ -71,9 +71,9 @@ init((launch) => { { path: '/search', component: MkSearch }, { path: '/othello', component: MkOthello }, { path: '/othello/:game', component: MkOthello }, - { path: '/:user', component: MkUser }, - { path: '/:user/followers', component: MkFollowers }, - { path: '/:user/following', component: MkFollowing }, - { path: '/:user/:post', component: MkPost } + { path: '/@:user', component: MkUser }, + { path: '/@:user/followers', component: MkFollowers }, + { path: '/@:user/following', component: MkFollowing }, + { path: '/@:user/:post', component: MkPost } ]); }, true); diff --git a/src/web/app/mobile/views/components/notification.vue b/src/web/app/mobile/views/components/notification.vue index 506ce3493b..301fb81ddb 100644 --- a/src/web/app/mobile/views/components/notification.vue +++ b/src/web/app/mobile/views/components/notification.vue @@ -2,15 +2,15 @@ <div class="mk-notification"> <div class="notification reaction" v-if="notification.type == 'reaction'"> <mk-time :time="notification.created_at"/> - <router-link class="avatar-anchor" :to="`/${notification.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${notification.user.username}`"> <img class="avatar" :src="`${notification.user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> <div class="text"> <p> <mk-reaction-icon :reaction="notification.reaction"/> - <router-link :to="`/${notification.user.username}`">{{ notification.user.name }}</router-link> + <router-link :to="`/@${notification.user.username}`">{{ notification.user.name }}</router-link> </p> - <router-link class="post-ref" :to="`/${notification.post.user.username}/${notification.post.id}`"> + <router-link class="post-ref" :to="`/@${notification.post.user.username}/${notification.post.id}`"> %fa:quote-left%{{ getPostSummary(notification.post) }} %fa:quote-right% </router-link> @@ -19,15 +19,15 @@ <div class="notification repost" v-if="notification.type == 'repost'"> <mk-time :time="notification.created_at"/> - <router-link class="avatar-anchor" :to="`/${notification.post.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${notification.post.user.username}`"> <img class="avatar" :src="`${notification.post.user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> <div class="text"> <p> %fa:retweet% - <router-link :to="`/${notification.post.user.username}`">{{ notification.post.user.name }}</router-link> + <router-link :to="`/@${notification.post.user.username}`">{{ notification.post.user.name }}</router-link> </p> - <router-link class="post-ref" :to="`/${notification.post.user.username}/${notification.post.id}`"> + <router-link class="post-ref" :to="`/@${notification.post.user.username}/${notification.post.id}`"> %fa:quote-left%{{ getPostSummary(notification.post.repost) }}%fa:quote-right% </router-link> </div> @@ -39,13 +39,13 @@ <div class="notification follow" v-if="notification.type == 'follow'"> <mk-time :time="notification.created_at"/> - <router-link class="avatar-anchor" :to="`/${notification.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${notification.user.username}`"> <img class="avatar" :src="`${notification.user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> <div class="text"> <p> %fa:user-plus% - <router-link :to="`/${notification.user.username}`">{{ notification.user.name }}</router-link> + <router-link :to="`/@${notification.user.username}`">{{ notification.user.name }}</router-link> </p> </div> </div> @@ -60,15 +60,15 @@ <div class="notification poll_vote" v-if="notification.type == 'poll_vote'"> <mk-time :time="notification.created_at"/> - <router-link class="avatar-anchor" :to="`/${notification.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${notification.user.username}`"> <img class="avatar" :src="`${notification.user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> <div class="text"> <p> %fa:chart-pie% - <router-link :to="`/${notification.user.username}`">{{ notification.user.name }}</router-link> + <router-link :to="`/@${notification.user.username}`">{{ notification.user.name }}</router-link> </p> - <router-link class="post-ref" :to="`/${notification.post.user.username}/${notification.post.id}`"> + <router-link class="post-ref" :to="`/@${notification.post.user.username}/${notification.post.id}`"> %fa:quote-left%{{ getPostSummary(notification.post) }}%fa:quote-right% </router-link> </div> diff --git a/src/web/app/mobile/views/components/post-card.vue b/src/web/app/mobile/views/components/post-card.vue index 08a2bebfce..1b3b20d88f 100644 --- a/src/web/app/mobile/views/components/post-card.vue +++ b/src/web/app/mobile/views/components/post-card.vue @@ -1,6 +1,6 @@ <template> <div class="mk-post-card"> - <a :href="`/${post.user.username}/${post.id}`"> + <a :href="`/@${post.user.username}/${post.id}`"> <header> <img :src="`${post.user.avatar_url}?thumbnail&size=64`" alt="avatar"/><h3>{{ post.user.name }}</h3> </header> diff --git a/src/web/app/mobile/views/components/post-detail.sub.vue b/src/web/app/mobile/views/components/post-detail.sub.vue index dff0cef51f..153acf78e7 100644 --- a/src/web/app/mobile/views/components/post-detail.sub.vue +++ b/src/web/app/mobile/views/components/post-detail.sub.vue @@ -1,13 +1,13 @@ <template> <div class="root sub"> - <router-link class="avatar-anchor" :to="`/${post.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${post.user.username}`"> <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> <div class="main"> <header> - <router-link class="name" :to="`/${post.user.username}`">{{ post.user.name }}</router-link> + <router-link class="name" :to="`/@${post.user.username}`">{{ post.user.name }}</router-link> <span class="username">@{{ post.user.username }}</span> - <router-link class="time" :to="`/${post.user.username}/${post.id}`"> + <router-link class="time" :to="`/@${post.user.username}/${post.id}`"> <mk-time :time="post.created_at"/> </router-link> </header> diff --git a/src/web/app/mobile/views/components/post-detail.vue b/src/web/app/mobile/views/components/post-detail.vue index 9baa5de6d0..f7af71eea5 100644 --- a/src/web/app/mobile/views/components/post-detail.vue +++ b/src/web/app/mobile/views/components/post-detail.vue @@ -17,11 +17,11 @@ </div> <div class="repost" v-if="isRepost"> <p> - <router-link class="avatar-anchor" :to="`/${post.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${post.user.username}`"> <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=32`" alt="avatar"/> </router-link> %fa:retweet% - <router-link class="name" :to="`/${post.user.username}`"> + <router-link class="name" :to="`/@${post.user.username}`"> {{ post.user.name }} </router-link> がRepost @@ -29,11 +29,11 @@ </div> <article> <header> - <router-link class="avatar-anchor" :to="`/${p.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${p.user.username}`"> <img class="avatar" :src="`${p.user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> <div> - <router-link class="name" :to="`/${p.user.username}`">{{ p.user.name }}</router-link> + <router-link class="name" :to="`/@${p.user.username}`">{{ p.user.name }}</router-link> <span class="username">@{{ p.user.username }}</span> </div> </header> @@ -53,7 +53,7 @@ <mk-post-preview :post="p.repost"/> </div> </div> - <router-link class="time" :to="`/${p.user.username}/${p.id}`"> + <router-link class="time" :to="`/@${p.user.username}/${p.id}`"> <mk-time :time="p.created_at" mode="detail"/> </router-link> <footer> diff --git a/src/web/app/mobile/views/components/post-preview.vue b/src/web/app/mobile/views/components/post-preview.vue index e9a4119253..787e1a3a74 100644 --- a/src/web/app/mobile/views/components/post-preview.vue +++ b/src/web/app/mobile/views/components/post-preview.vue @@ -1,13 +1,13 @@ <template> <div class="mk-post-preview"> - <router-link class="avatar-anchor" :to="`/${post.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${post.user.username}`"> <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> <div class="main"> <header> - <router-link class="name" :to="`/${post.user.username}`">{{ post.user.name }}</router-link> + <router-link class="name" :to="`/@${post.user.username}`">{{ post.user.name }}</router-link> <span class="username">@{{ post.user.username }}</span> - <router-link class="time" :to="`/${post.user.username}/${post.id}`"> + <router-link class="time" :to="`/@${post.user.username}/${post.id}`"> <mk-time :time="post.created_at"/> </router-link> </header> diff --git a/src/web/app/mobile/views/components/post.sub.vue b/src/web/app/mobile/views/components/post.sub.vue index f1c858675e..2427cefeb6 100644 --- a/src/web/app/mobile/views/components/post.sub.vue +++ b/src/web/app/mobile/views/components/post.sub.vue @@ -1,13 +1,13 @@ <template> <div class="sub"> - <router-link class="avatar-anchor" :to="`/${post.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${post.user.username}`"> <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=96`" alt="avatar"/> </router-link> <div class="main"> <header> - <router-link class="name" :to="`/${post.user.username}`">{{ post.user.name }}</router-link> + <router-link class="name" :to="`/@${post.user.username}`">{{ post.user.name }}</router-link> <span class="username">@{{ post.user.username }}</span> - <router-link class="created-at" :to="`/${post.user.username}/${post.id}`"> + <router-link class="created-at" :to="`/@${post.user.username}/${post.id}`"> <mk-time :time="post.created_at"/> </router-link> </header> diff --git a/src/web/app/mobile/views/components/post.vue b/src/web/app/mobile/views/components/post.vue index d53649b117..b8f9e95eee 100644 --- a/src/web/app/mobile/views/components/post.vue +++ b/src/web/app/mobile/views/components/post.vue @@ -5,23 +5,23 @@ </div> <div class="repost" v-if="isRepost"> <p> - <router-link class="avatar-anchor" :to="`/${post.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${post.user.username}`"> <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> %fa:retweet% <span>{{ '%i18n:mobile.tags.mk-timeline-post.reposted-by%'.substr(0, '%i18n:mobile.tags.mk-timeline-post.reposted-by%'.indexOf('{')) }}</span> - <router-link class="name" :to="`/${post.user.username}`">{{ post.user.name }}</router-link> + <router-link class="name" :to="`/@${post.user.username}`">{{ post.user.name }}</router-link> <span>{{ '%i18n:mobile.tags.mk-timeline-post.reposted-by%'.substr('%i18n:mobile.tags.mk-timeline-post.reposted-by%'.indexOf('}') + 1) }}</span> </p> <mk-time :time="post.created_at"/> </div> <article> - <router-link class="avatar-anchor" :to="`/${p.user.username}`"> + <router-link class="avatar-anchor" :to="`/@${p.user.username}`"> <img class="avatar" :src="`${p.user.avatar_url}?thumbnail&size=96`" alt="avatar"/> </router-link> <div class="main"> <header> - <router-link class="name" :to="`/${p.user.username}`">{{ p.user.name }}</router-link> + <router-link class="name" :to="`/@${p.user.username}`">{{ p.user.name }}</router-link> <span class="is-bot" v-if="p.user.account.is_bot">bot</span> <span class="username">@{{ p.user.username }}</span> <div class="info"> @@ -110,7 +110,7 @@ export default Vue.extend({ : 0; }, url(): string { - return `/${this.p.user.username}/${this.p.id}`; + return `/@${this.p.user.username}/${this.p.id}`; }, urls(): string[] { if (this.p.ast) { diff --git a/src/web/app/mobile/views/components/ui.nav.vue b/src/web/app/mobile/views/components/ui.nav.vue index b8bc2fb040..760a5b5184 100644 --- a/src/web/app/mobile/views/components/ui.nav.vue +++ b/src/web/app/mobile/views/components/ui.nav.vue @@ -9,7 +9,7 @@ </transition> <transition name="nav"> <div class="body" v-if="isOpen"> - <router-link class="me" v-if="os.isSignedIn" :to="`/${os.i.username}`"> + <router-link class="me" v-if="os.isSignedIn" :to="`/@${os.i.username}`"> <img class="avatar" :src="`${os.i.avatar_url}?thumbnail&size=128`" alt="avatar"/> <p class="name">{{ os.i.name }}</p> </router-link> diff --git a/src/web/app/mobile/views/components/user-card.vue b/src/web/app/mobile/views/components/user-card.vue index 729421616e..bfc748866a 100644 --- a/src/web/app/mobile/views/components/user-card.vue +++ b/src/web/app/mobile/views/components/user-card.vue @@ -1,11 +1,11 @@ <template> <div class="mk-user-card"> <header :style="user.banner_url ? `background-image: url(${user.banner_url}?thumbnail&size=1024)` : ''"> - <a :href="`/${user.username}`"> + <a :href="`/@${user.username}`"> <img :src="`${user.avatar_url}?thumbnail&size=200`" alt="avatar"/> </a> </header> - <a class="name" :href="`/${user.username}`" target="_blank">{{ user.name }}</a> + <a class="name" :href="`/@${user.username}`" target="_blank">{{ user.name }}</a> <p class="username">@{{ user.username }}</p> <mk-follow-button :user="user"/> </div> diff --git a/src/web/app/mobile/views/components/user-preview.vue b/src/web/app/mobile/views/components/user-preview.vue index 3cbc200337..a3db311d12 100644 --- a/src/web/app/mobile/views/components/user-preview.vue +++ b/src/web/app/mobile/views/components/user-preview.vue @@ -1,11 +1,11 @@ <template> <div class="mk-user-preview"> - <router-link class="avatar-anchor" :to="`/${user.username}`"> + <router-link class="avatar-anchor" :to="`/@${user.username}`"> <img class="avatar" :src="`${user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> <div class="main"> <header> - <router-link class="name" :to="`/${user.username}`">{{ user.name }}</router-link> + <router-link class="name" :to="`/@${user.username}`">{{ user.name }}</router-link> <span class="username">@{{ user.username }}</span> </header> <div class="body"> diff --git a/src/web/app/mobile/views/pages/user.vue b/src/web/app/mobile/views/pages/user.vue index f283050b80..ba66052e04 100644 --- a/src/web/app/mobile/views/pages/user.vue +++ b/src/web/app/mobile/views/pages/user.vue @@ -30,11 +30,11 @@ <b>{{ user.posts_count | number }}</b> <i>%i18n:mobile.tags.mk-user.posts%</i> </a> - <a :href="`${user.username}/following`"> + <a :href="`@${user.username}/following`"> <b>{{ user.following_count | number }}</b> <i>%i18n:mobile.tags.mk-user.following%</i> </a> - <a :href="`${user.username}/followers`"> + <a :href="`@${user.username}/followers`"> <b>{{ user.followers_count | number }}</b> <i>%i18n:mobile.tags.mk-user.followers%</i> </a> diff --git a/src/web/app/mobile/views/pages/user/home.followers-you-know.vue b/src/web/app/mobile/views/pages/user/home.followers-you-know.vue index acefcaa106..7b02020b10 100644 --- a/src/web/app/mobile/views/pages/user/home.followers-you-know.vue +++ b/src/web/app/mobile/views/pages/user/home.followers-you-know.vue @@ -2,7 +2,7 @@ <div class="root followers-you-know"> <p class="initializing" v-if="fetching">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-followers-you-know.loading%<mk-ellipsis/></p> <div v-if="!fetching && users.length > 0"> - <a v-for="user in users" :key="user.id" :href="`/${user.username}`"> + <a v-for="user in users" :key="user.id" :href="`/@${user.username}`"> <img :src="`${user.avatar_url}?thumbnail&size=64`" :alt="user.name"/> </a> </div> diff --git a/src/web/app/mobile/views/pages/user/home.photos.vue b/src/web/app/mobile/views/pages/user/home.photos.vue index ddbced608a..385e5b8dd6 100644 --- a/src/web/app/mobile/views/pages/user/home.photos.vue +++ b/src/web/app/mobile/views/pages/user/home.photos.vue @@ -5,7 +5,7 @@ <a v-for="image in images" class="img" :style="`background-image: url(${image.media.url}?thumbnail&size=256)`" - :href="`/${image.post.user.username}/${image.post.id}`" + :href="`/@${image.post.user.username}/${image.post.id}`" ></a> </div> <p class="empty" v-if="!fetching && images.length == 0">%i18n:mobile.tags.mk-user-overview-photos.no-photos%</p> diff --git a/src/web/app/mobile/views/pages/welcome.vue b/src/web/app/mobile/views/pages/welcome.vue index 563d2b28c9..3384ee6997 100644 --- a/src/web/app/mobile/views/pages/welcome.vue +++ b/src/web/app/mobile/views/pages/welcome.vue @@ -21,7 +21,7 @@ <mk-welcome-timeline/> </div> <div class="users"> - <router-link v-for="user in users" :key="user.id" class="avatar-anchor" :to="`/${user.username}`"> + <router-link v-for="user in users" :key="user.id" class="avatar-anchor" :to="`/@${user.username}`"> <img class="avatar" :src="`${user.avatar_url}?thumbnail&size=64`" alt="avatar"/> </router-link> </div> diff --git a/src/web/app/mobile/views/widgets/profile.vue b/src/web/app/mobile/views/widgets/profile.vue index 6bc7bfffc6..1c9d038b4c 100644 --- a/src/web/app/mobile/views/widgets/profile.vue +++ b/src/web/app/mobile/views/widgets/profile.vue @@ -8,7 +8,7 @@ :src="`${os.i.avatar_url}?thumbnail&size=96`" alt="avatar" /> - <router-link :class="$style.name" :to="`/${os.i.username}`">{{ os.i.name }}</router-link> + <router-link :class="$style.name" :to="`/@${os.i.username}`">{{ os.i.name }}</router-link> </mk-widget-container> </div> </template>