跳到主要內容
Tauri

Tauri 社群成長與回饋

Community growth and feedback hero image

Tauri 在過去一年取得了驚人的成就。我們發佈了 Tauri 1.0公告了 Tauri Mobile 的 Alpha 版本,並在 2022 年 Tauri 社群調查中收集了來自社群和使用者的許多寶貴意見回饋。

Tauri 社群調查結果

今年,我們收到了超過 600 份 Tauri 社群調查回覆(比上次調查的回覆多了 3 倍以上)。我們要特別感謝 Wu Yu WeiDK Liao 將調查從英文翻譯成簡體中文和繁體中文,以便我們能夠將更多社群人士及其意見回饋納入調查中。您可以從這裡下載調查的公開數據。

我們已聽取您的意見回饋,並已啟動幾個專案以直接解決這些問題。我們想談論的第一個專案是搜尋功能。

Tauri.app 搜尋功能改進

如果沒有搜尋功能,您能找到東西嗎?如果您的望遠鏡破裂了,您能看到行星或星星嗎?我們知道我們的搜尋鏡頭佈滿灰塵且刮痕累累;有時感覺像是在擲骰子,有些人甚至求助於使用 ChatGPT 來尋找答案。

多年來,搜尋功能一直是我們嘗試過幾次的專案,但我們也了解到它並不像最初看起來那麼容易。Ken 從 Tauri 工作小組在之前的 tauri-search 專案中完成了鼓舞人心的工作。他在之前的專案中為我們理解搜尋的組成要素奠定了許多基礎和研究。


在下一次搜尋迭代中,我們心中有三個目標

  1. 保持可維護性
  2. 保持運作正常
  3. 保持開源

搜尋引擎

首先,我們需要選擇一個後端搜尋引擎來儲存和提供搜尋索引。在評估搜尋引擎時,我們希望確保我們使用的東西符合我們的開源軟體和小型佔用空間的價值觀。在比較和研究搜尋市場的參與者(以及從我們之前使用 Meilisearch 的方法中學習)之後,我們決定選擇 Meilisearch,因為我們知道它符合這兩個目標。

Meilisearch 對開源軟體充滿熱情,甚至他們的搜尋引擎也是用 Rust 建構的,它具有極小的佔用空間和出色的效能。他們最近發佈了 Meilisearch 1.0,現在還為想要託管執行個體的使用者提供了雲端服務。

我們決定與 Meilisearch 合作,使用他們的引擎和 Meilisearch Cloud 服務來託管我們的搜尋引擎。他們慷慨地贊助了一個由他們為我們管理的託管方案。這讓我們可以專注於建構 Tauri,知道搜尋引擎的維護和更新都在可靠的人手中。

搜尋資料擷取與索引

下一步是實際將內容編製索引並擷取到搜尋引擎中。Fabian 從 Tauri 工作小組使用 Meilisearch 的 docs-scraper 專案設定了該專案。

之前,我們有一個設定,它會取得我們的 markdown 文件和 JavaScript AST,並使用它們來建構搜尋索引。儘管這可以加快索引編製時間,但這意味著我們在搜尋索引編製和我們在網站上呈現內容的方式之間存在緊密的耦合依賴關係。這有時會導致搜尋結果與線上網站上的內容不同步。為了更新網站或最佳化索引器,有人需要同時了解這兩者,這使得維護更加困難。

使用目前版本的 scraper,我們可以透過單一 JSON 檔案處理所有設定和調整結果,並讓 scraper 負責其餘工作。我們設定了一個 GitHub 動作,它將執行抓取作為我們 CI/CD 管線的一部分,然後將這些結果發送到我們的 Meilisearch Cloud 執行個體。

搜尋前端

最後一步是建立前端 UI,讓訪問 tauri.app 的使用者可以互動。Amr 從 Tauri 工作小組建立了一個 meilisearch-docsearch 專案來協助完成此操作。這個 repo 與 Meilisearch 1.0 相容(我們現在在 tauri.app 上使用它)。

它的靈感來自 algolia/docsearchmeilisearch/docs-searchbar.js 專案,它們提供了非常堅實的基礎。開源的美妙之處在於我們可以互相學習,並利用它回饋生態系統。

為了詳細說明一些細節,我將把它交給 Amr


meilisearch/docs-searchbar.js 專案很好,但我總覺得它可以進行一些改進,以獲得與 algolia/docsearch 相同的功能。我也覺得我們可以協助更新以改善 UI/UX。

meilisearch/docs-searchbar.js 的主要痛點是

  1. 在行動螢幕上,它需要 UI/UX 改進,以便搜尋結果不會超出螢幕範圍。
  2. 在桌面上,搜尋結果通常會出現在搜尋輸入框下方,但在 tauri.app 的情況下,搜尋輸入框位於右上角。這造成了糟糕的 UX,因為您必須不斷地在中間的頁面內容和右上角的搜尋結果之間移動視線。
  3. 它缺少一個常用的快捷鍵綁定。ctrl/command + K 啟動搜尋,ctrl/command + K 在 JS 生態系統文件網站中非常常見。它也沒有在頁面上選擇文字,然後直接從該文字觸發搜尋的功能。

我一直都是 algolia/docsearch UI/UX 的忠實粉絲。它檢查了我清單上的所有功能,而且我一直都想為 tauri.app 實現這一點。事實上,幾個月前,我曾嘗試在我們這邊變更 meilisearch/docs-searchbar.js CSS,以改善上述第 1 點和第 2 點,但由於難以在現有的 css 之上建構並爭取最高權重(加上 CSS 很難 :wink:),我中途停止了。其他專案也無法以簡單的方式從我們的修改中受益。

後來,我們討論了如何改善搜尋 UI 和 UX,我們決定可以改進基礎 Meilisearch UI。該專案變成了 meilisearch-docsearch

實際應用

好消息是,所有這些變更都已上線!您可以在 tauri.app 上看到新的搜尋功能。我們很想聽聽您對 此部落格文章的 GitHub 討論中哪些功能運作良好以及哪些功能可以改進的意見回饋。我們邀請您不僅報告錯誤,如果您搜尋的結果不是預期的結果或應該在結果清單中排名更高,也請回報給我們。

Search Preview

最後,我們要特別感謝 Ken 的原始 Tauri Search 專案、Amrmeilisearch-docsearch 專案、Fabian 編寫修訂後的索引抓取器和持續測試、Meilisearch 的合作夥伴關係和 Meilisearch Cloud 執行個體,以及最後 Tauri 社群的持續意見回饋,以協助我們推動 Tauri 和社群向前發展。

下一步

在接下來的一年中,Tauri 工作小組很高興能繼續朝著 Tauri 2.0 邁進。我們也在進行網站重寫,我們將在今年春天發佈 Beta 版。如果您想參與其中,您可以透過 Tauri Discord 與我們聯繫,並在 MastodonTwitter 上關注我們。


© 2025 Tauri 貢獻者。CC-BY / MIT