簡約固執己見的 Mastodon 網路客戶端。
?️ 發音: /fænpi/
( FAN-pee
) ?聽
這是 Mastodon 的替代 Web 用戶端。
production
分部main
?請關注 Mastodon 上的 @phanpy 以了解最新動態 ✨
一切都是按照我的品味和願景設計和設計的。這是我的一個個人業餘項目,旨在了解 Mastodon 並嘗試新的 UI/UX 想法。
@username
),而不是完整帳戶用戶名 ( @username@instance
) 。[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
(附適用於舊版瀏覽器的polyfill)Intl.Segmenter
(附適用於舊版瀏覽器的polyfill)
將始終遵循系統的區域設置,而不是使用者設定的區域設置。U+200F
,
) 可能需要用於混合 RTL/LTR 文本,特別是對於
元素 ( document.title
)。pseudo-LOCALE
語言環境,用於偽本地化。它用於測試,不會出現在生產中。en
) 目錄訊息不會單獨捆綁。其他語言環境捆綁為單獨的檔案並按需載入。這確保en
始終可用作後備。翻譯在 Crowdin 上進行管理。您可以透過志願翻譯來提供幫助。
閱讀介紹文件以開始使用。
這是一個純靜態的網路應用程式。您可以將其託管在任何您想要的地方。
兩種方式(二選一):
前往版本並下載最新的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://
PHANPY_DEFAULT_INSTANCE_REGISTRATION_URL
(可選,無預設值):https://mastodon.social/auth/sign_up
PHANPY_PRIVACY_POLICY_URL
(可選,預設為官方實例的隱私權政策):PHANPY_DEFAULT_LANG
(可選):en
)。lang
查詢參數、 localStorage
和navigator.language
中的lang
鍵)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 應用程式涉及的成本:
Phanpy 是地面型神奇寶貝。
我是 Twitter 最早的用戶之一。 Twitter 於 2006 年 7 月 15 日推出。
我知道早期的 Twitter 是什麼樣子。很有趣。
當時,我用 Python 和 Google App Engine 編寫了一個名為「Twig」的 Twitter 克隆版。我幾乎用 Appcelerator Titanium 編寫了自己的 Twitter 桌面用戶端。我在一次小型會議上發表了有關 Twitter 用戶端的最佳演講之一。我建立了一個名為「Twitter Columns」的網路應用程序,可以顯示您的追蹤者清單、您的追蹤者的追蹤者、您的追蹤者、您的追蹤者的追蹤者等等。 2009 年,我寫了一篇題為「我該如何開始使用 Twitter」的部落格文章。我為 DestroyTwitter(Jonnie Hallman 用 Adobe Air 製作的桌面用戶端)創建了兩個主題,其中一個名為「Vimeo」。 2013 年,我編寫了自己的推文備份站點,其中包含一個用於查看我的推文的前端和一個用於存儲推文的 CouchDB 後端。
已經過去15年多了。
我在這裡。建置 Mastodon 網路客戶端。
請複製此應用程式中的 UI 想法和實驗。我認為其中一些非常好,如果更多的應用程式擁有它們那就太好了。
如果您不是開發人員,請告訴您最喜歡的社交媒體用戶端開發人員有關此應用程式的信息,並要求他們複製 UI 想法和實驗。
麻省理工學院。