インサイド Misskey Hub Next
この記事は、Misskey Alt Advent Calendar 2023 3日目の記事です。
こんにちは!Misskey 開発メンバーのかっこかりと申します。Misskey.ioで某公立高校の部活動広報アカウントの運営に参加したりもしています。
先日しゅいろママからも発表がありましたように、このたび、Misskeyプロジェクト公式サイト「Misskey Hub」の全面リニューアルを行うことになりました!今回、私が開発主担として、いまご覧いただいているこのサイトを制作しております。そこで、今日はこの新Misskey Hubの機能・頑張った点・今後のアップデートについてご紹介していきます!
リニューアル後の構成
現行のMisskey HubはVuePressをベースに作成されています。これは、ドキュメントを用意さえすればサイトの部分はある程度よしなにやってくれるというものです。
しかし、もともとのMisskey Hubの計画上、ドキュメント以外のページもかなり必要になるということで、ドキュメント生成に特化したフレームワークではなく、より拡張性が高く、汎用的なNuxtをフレームワークとして採用しました。
VuePressよりは、今はどちらかというとVitePressのほうがメジャーな感じがします。
詳しい技術スタックはこちら
フレームワーク
- Nuxt
- Tailwind CSS
- Bootstrap (※フォーム・ボタンのみ使用)
Nuxt Modules
その他
- Bootstrap Icons
- ufo - URLのパースなどができるライブラリ。超便利
- AiScript VSCode - AiScriptのコードハイライトに使用
各種サービス
Nuxtとは?
Nuxtは、Vue.jsを使ったWebアプリケーションフレームワークです。静的サイトの作成に使うためのSSG (Static Site Generator) の他に、Nuxt自体がサーバー本体となって動作するSSR (Server Side Rendering)、さらにSSGとSSRのいいとこ取りをしたISR (Incremental Static Regeneration) があり、それらをサイトのディレクトリごとに切り替えて使うことができます。
・・・まとめて言うと、NuxtとはWeb制作に使えるとても万能なツールだということで大丈夫です。
そして、今回のMisskey Hub Nextでは、ドキュメントページとブログページにISRを、それ以外のページにSSGを適用しています。略称多くてこんがらがりそう。
プロジェクト名にNext
と入っているのでReactフレームワークのNext.jsのほうを思い浮かべたかもしれませんが、罠です。 Nuxtで作ってあります。
ISRとは?
SSGでは、サイトの生成時にまとめてすべてのページを書き出してしまう必要があります。しかし、Misskey Hubには大量のドキュメントとブログページ、さらには翻訳版ページもあります。それらをすべて前もって生成すると、とんでもなく時間がかかってしまいます。
そこで登場するのがISRです。ISR (Incremental Static Regeneration) を使用すると、サイトの書き出しのタイミングではページの生成は行わず、最初にそのページに訪問されたときにページの生成を行います。 これを、特にページ数の多いドキュメントページとブログページに適用したことで、実に13倍も高速な生成が可能となりました。
デザイン
デザインに関しては、現行Misskey Hubのデザインをベースに、主に以下の項目を重視してリニューアルを行いました。
- ページを見つける導線の改善
- スマホでの操作感の改善
- ドキュメント更新にかかる手間の改善
ページを見つける導線の改善
現行のMisskey Hubでは、ドキュメントページの一覧などがなく、パッと見てどこに何があるのかがわかりにくい状態でした。
そこで、Misskey Hub Nextでは、ドキュメントページをディレクトリ構造から抜本的に見直しました。利用者別にページ階層を分けたほか、各セクションに見出しページを設けられるようにしました。
ドキュメントのトップページもかなり整理されたかと思います。
また、同様にドキュメントページのデザインも変更しました。左側には各ページが階層で表示され、右側には現在のページのもくじが表示されます。
スマホでの操作感の改善
現行のMisskey Hubでは、モバイルナビゲーションが肥大化し、見にくくなってしまっていたほか、一部では文字が背景と重なって見えにくい部分もありました。 また、スクロールの際にアニメーションがもたついて背景がカクカクする・・・といった問題も起きていました。
そこで、Misskey Hub Nextではスマホ表示でのデザインを改善し、一部ではスマホ専用のUIを設けて対応しました。上で紹介したドキュメントページの各種UIも、スマホの小さい画面でもアクセスできるように配置してあります。
ドキュメント更新にかかる手間の改善
現行のMisskey Hubでは、ドキュメントは翻訳版も含めてすべてGithub上で管理されており、Githubを使ったことのない人にとって、ドキュメントの更新のハードルは高いものでした。
そこで、Misskey Hub Nextでは、翻訳の管理を外部サービス(Crowdin)で行えるように設計。技術的な知識不要で、翻訳に参加できるようになりました。
依然として新しいドキュメントの追加にはGithubが必要になってしまいますが、コレも今後どうにかしたいなぁ・・・と検討中です。Githubを使える方は、ドキュメントの拡充に引き続きご協力お願いします🙏
現在、翻訳にご協力いただける方を募集中です! We are looking for translators for this site!
翻訳サイトをご覧頂いた上で、リストに既にある言語へ翻訳する場合は、そのままログインして作業を開始できます。
リストにない言語でも、ご連絡いただければ言語を追加します。
Misskeyをより多くの人に広めるために、ぜひご協力お願いします🙏
【マニアック】フォントのはなし
機能紹介
ここからは、Misskey Hub Nextに搭載された機能をご紹介します!
Misskeyサーバー一覧
Misskeyのサーバー一覧を、Misskeyをはじめよう(joinmisskey)のシステムを使用して大幅に改良しました!
これにより、基本的にはサーバーを追加するのに特別な作業や申請は必要なくなり、新しく見つかったサーバーは自動的に追加されるようになりました!
なので近日中にjoinmisskeyはMisskey Hubに統合されるかも…?
【新機能】ツール集
Misskey関連のさまざまな便利ツールを提供するページ「ツール集」を新たに開発しました!
現在
- MFMお試しコーナー
- aid/aidx変換ツール
をご利用いただけますが、今後も随時拡充していく予定です💪
MFMお試しコーナーの再現精度は割と高いのでMFMアートづくりにもおすすめです
【新機能】AiScriptに対応
Misskey Hub上で、AiScriptをハイライト表示することができるようになりました!プラグインの作り方やAiScript入門なども、Misskey Hub上で書けるようになるかも…!
for (let i, 100) {
<: if (i % 15 == 0) "FizzBuzz"
elif (i % 3 == 0) "Fizz"
elif (i % 5 == 0) "Buzz"
else i
}
藍
Misskey Hub Nextでは、わたし・藍も色々なところにいます!
ほら、こんなところにも!
ほかにも色々なところに隠れているので、ぜひ探してみてくださいね♪
さらに、古のミスキストや、現行Misskey Hubのヘビーユーザーしか知らないであろう、知る人ぞ知る機能・藍モードも移植しました!
え?何が起きるのかって?
まあまあ、ものは試しです。やってみてください↓
今後実装する予定の機能
※以下はすべて「予定」です。いつ実装されるかわかりませんし、そもそも実装されないかもしれません。
APIエンドポイント ドキュメント
こちらは、現在株式会社MisskeyHQ (村上さん)と連携しながら、ドキュメントの拡充に取り組んでいます。もう少しお待ち下さい🙏
ドキュメントの拡充にご協力いただける方は、こちらをご覧のうえ、ぜひご参加ください!
シェアボタン中継機能
MisskeyへWebページをシェアする機能を、Misskey Hubを中継して行えるようにする予定です(Misskey Share や DonShareにあたる機能を実装します)!
これにより、サーバーごとの投稿処理などの複雑な実装なしで、ウェブサイトにMisskeyへのシェアボタンを埋め込めるようになります🎉
プラグイン・テーマストア
Misskey v2023.11.0から、外部サイトを介してプラグイン・テーマをインストールすることが可能になりました。これを利用して、Misskey Hub上でプラグインやテーマを公開できる仕組みを構築予定です!
まとめ
このように、Misskey Hubは様々な部分で改善・追加を行い、パワーアップします!現在鋭意開発中で、近いうちに現行のMisskey Hubを置き換えてリニューアルを行う予定です。 それまでの間、Misskey Hub Next は現在のURL(misskey-hub-next.vercel.app
)でご覧いただけます。ぜひ色々なページをご覧いただき、ご意見やご感想をお寄せください。
それでは、新しいMisskey Hubの正式リリースを楽しみにお待ちください♪