ミニマルな意見を持つマストドン Web クライアント。
?️ 発音: /fænpi/
( FAN-pee
) ?聞く
これは、Mastodon の代替 Web クライアントです。
production
ブランチmain
?マストドンで @phanpy をフォローして最新情報を入手してください ✨
すべては私の好みとビジョンに従ってデザインされ、設計されています。これは、Mastodon について学び、新しい UI/UX アイデアを実験するための個人的なサイド プロジェクトです。
@username@instance
) ではなく、短いユーザー名 ( @username
) が表示されます。[NAME] @[username]
と表示されます。@[username]
の場合は、常にインスタンスのドメイン名を除外します。[NAME]
@[username]
と同じである場合、 @[username]
も除外されます。inReplyToId
のすべての投稿を確認します。Thread
表示するようにフォールバックします。...
が追加されます。前提条件: Node.js 18+
npm install
- 依存関係をインストールするnpm run dev
- 開発サーバーとmessages:extract
( clean
+ ``watch`)を並行して起動します。npm run build
- 本番用のビルドnpm run preview
- 実稼働ビルドをプレビューするnpm run fetch-instances
- joinmastodon.org/servers からインスタンスのリストを取得し、 src/data/instances.json
に保存します。npm run sourcemap
- 本番ビルドでsource-map-explorer
実行します。npm run messages:extract
- ソースファイルからメッセージを抽出し、ロケールメッセージカタログを更新します。 これらの一部は将来変更される可能性があります。フロントエンドの世界は常に変化しています。
すべての翻訳は、 src/locales
フォルダー内の gettext .po
ファイルとして利用できます。デフォルトの言語は英語 ( en
) です。複数化には CLDR 複数規則が使用されます。 RTL (右から左) 言語も、適切なテキスト方向、アイコンのレンダリング、レイアウトでサポートされます。
ページの読み込み時に、デフォルト言語が次のメソッドで順番に検出されます (最初に一致したものが使用されます)。
lang
例: /?lang=zh-Hant
localStorage
キーlang
navigator.language
ユーザーは、設定で言語を変更できます。これにより、 localStorage
キーlang
が設定されます。
*翻訳 WordPress ハンドブックからインスピレーションを得た:
{account}
(変数)、 <0>{name}0>
(変数を含むタグ)、 #
(数字のプレースホルダー) などのプレースホルダーがあります。Intl.DateTimeFormat
- 例: "8 Aug"、"08/08/2024"Intl.RelativeTimeFormat
- 例: 「2 日前」、「2 日後」Intl.NumberFormat
- 例: "1,000"、"10K"Intl.DisplayNames
- たとえば、繁体字中国語 ( zh-Hant
) の「English」 ( en
) は「英文」です。Intl.Locale
(古いブラウザ用のポリフィルを使用)Intl.Segmenter
(古いブラウザ用のポリフィルを使用)
などのネイティブ HTML 日付ピッカーは、ユーザーが設定したロケールではなく、常にシステムのロケールに従います。U+200F
、
) は、RTL/LTR 混合テキスト、特に
要素 ( document.title
) に使用する必要がある場合があります。pseudo-LOCALE
ロケールがあります。これはテスト用であり、本番環境には表示されません。en
) のカタログ メッセージは個別にバンドルされません。他のロケールは別個のファイルとしてバンドルされ、オンデマンドでロードされます。これにより、 en
が常にフォールバックとして利用可能になります。翻訳はCrowdin上で管理されます。ボランティアで翻訳を手伝っていただくこともできます。
開始するには、入門ドキュメントをお読みください。
これは純粋な静的 Web アプリです。どこでもホストできます。
2 つの方法 (いずれかを選択):
「リリース」に移動し、最新のphanpy-dist.zip
またはphanpy-dist.tar.gz
をダウンロードします。事前にビルドされているため、インストール/ビルド コマンドを実行する必要はありません。それを抽出します。抽出されたファイルのフォルダーを提供します。
Node.jsが必要です。
このリポジトリをダウンロードまたはgit clone
。安定したリリースにはproduction
ブランチを使用し、最新のリリースにはmain
使用します。 npm run build
( npm install
後) を実行してビルドします。 dist
フォルダーを提供します。
カスタマイズは、ビルド コマンドに環境変数を渡すことで実行できます。例:
PHANPY_CLIENT_NAME= " Phanpy Dev "
PHANPY_WEBSITE= " https://dev.phanpy.social "
npm run build
PHANPY_DEFAULT_INSTANCE=hachyderm.io
PHANPY_DEFAULT_INSTANCE_REGISTRATION_URL=https://hachyderm.io/auth/sign_up
PHANPY_PRIVACY_POLICY_URL=https://hachyderm.io/privacy-policy
npm run build
.env
ファイルで設定することもできます。
利用可能な変数:
PHANPY_CLIENT_NAME
(オプション、デフォルト: Phanpy
) は以下に影響します。PHANPY_WEBSITE
(オプションですが推奨、デフォルト: https://phanpy.social
) は以下に影響します。PHANPY_DEFAULT_INSTANCE
(オプション、デフォルトなし):https://
なしの「Mastodon.social」PHANPY_DEFAULT_INSTANCE_REGISTRATION_URL
(オプション、デフォルトなし):https://mastodon.social/auth/sign_up
PHANPY_PRIVACY_POLICY_URL
(オプション、デフォルトは公式インスタンスのプライバシー ポリシー):PHANPY_DEFAULT_LANG
(オプション):en
) です。lang
クエリ パラメーター、 localStorage
のlang
キー、およびnavigator.language
)PHANPY_LINGVA_INSTANCES
(オプション、スペース区切りのリスト、デフォルト: lingva.phanpy.social [...hard-coded list of fallback instances]
):/.env
にハードコーディングされたフォールバック インスタンスのリストPHANPY_IMG_ALT_API_URL
(オプション、デフォルトなし):PHANPY_GIPHY_API_KEY
(オプション、デフォルトなし):方法はたくさんあるので、オンラインで「静的サイトを自己ホストする方法」を検索してみてください。
lingva-translate または lingva-api のドキュメントを参照してください。
これらは他の素晴らしい人々によって自己ホストされています。
注: プル リクエストを作成して追加します。
この Web アプリの実行と開発にかかるコスト:
ファンピーはじめんタイプのポケモンです。
私は Twitter の初期のユーザーの 1 人です。 Twitter は 2006 年 7 月 15 日に開始されました。私は 2006 年 12 月に参加し、最初のツイートが 2006 年 12 月 18 日に投稿されました。
Twitter がいかに初期のものであったかを知っています。楽しかったです。
当時、私は Python と Google App Engine で書かれた「Twig」という Twitter クローンを作成しました。 Appcelerator Titanium で書かれた独自の Twitter デスクトップ クライアントをほぼ作成しました。私はミニカンファレンスで Twitter クライアントに関する最高の講演の 1 つを行いました。私は「Twitter Columns」と呼ばれるものを作成しました。これは、あなたのフォローリスト、あなたのフォロワーのフォロー、あなたのフォロワー、あなたのフォロワーのフォロワーなどのリストを表示するウェブアプリです。 2009 年に、私は「Twitter を始めたきっかけ」というタイトルのブログ投稿を書きました。私は DestroyTwitter (Jonnie Hallman が Adobe Air で作成したデスクトップ クライアント) 用に 2 つのテーマを作成し、そのうちの 1 つは「Vimeo」と呼ばれています。 2013 年に、私はツイートを表示するフロントエンドとツイートを保存する CouchDB バックエンドを備えた独自のツイート バックアップ サイトを作成しました。
15年以上経ちました。
そしてここに私がいます。マストドン Web クライアントを構築します。
ぜひ、このアプリのUIアイデアや実験をコピーしてください。それらのいくつかは非常に優れていると思うので、より多くのアプリがそれらを備えていれば素晴らしいと思います。
開発者ではない場合は、お気に入りのソーシャル メディア クライアントの開発者にこのアプリのことを伝え、UI のアイデアや実験をコピーするよう依頼してください。
マサチューセッツ工科大学