Tauri 社区增长 & 反馈
Tauri 在过去一年中取得了惊人的成就。我们发布了 Tauri 1.0,宣布了 Tauri Mobile 的 alpha 版本,并在 2022 年 Tauri 社区调查中收集了来自我们社区和用户的许多宝贵反馈。
Tauri 社区调查结果
今年,我们收到了超过 600 份 Tauri 社区调查的回复(是上次调查回复量的 3 倍以上)。我们要特别感谢 Wu Yu Wei 和 DK Liao 将调查从英文翻译成简体和繁体中文,以便我们可以将更多社区成员及其反馈纳入调查中。您可以在此处下载调查的公开数据。
我们听取了您的反馈,并启动了几个项目以直接解决这些问题。我们想谈论的第一个是搜索。
Tauri.app 上的搜索改进
没有搜索,你能找到任何东西吗?如果你的望远镜破裂了,你能看到行星或星星吗?我们知道我们的搜索镜头布满灰尘和划痕;有时感觉像掷骰子,有些人甚至求助于使用 ChatGPT 来寻找答案。
多年来,搜索一直是我们多次尝试的项目,但我们也了解到它并不像最初看起来那么容易。Ken 来自 Tauri 工作组,他在之前的 tauri-search
项目中做了鼓舞人心的工作。他在之前的项目中创建了许多基础和研究,以便我们了解搜索的内容。
对于下一个迭代的搜索,我们心中有三个目标
- 保持可维护性
- 保持工作状态
- 保持开源
搜索引擎
首先,我们需要选择一个后端搜索引擎来存储和提供搜索索引。在评估搜索引擎时,我们希望确保我们使用的东西与我们的开源软件和小型 footprint 的价值观相符。在比较和研究搜索市场中的参与者(并从我们之前使用 Meilisearch 的方法中学习)之后,我们决定选择 Meilisearch,因为我们知道它符合这两个目标。
Meilisearch 对开源软件充满热情,甚至他们的搜索引擎是用 Rust 构建的,它具有微小的 footprint 和出色的性能。他们最近宣布了 Meilisearch 1.0,现在还为那些想要托管实例的人提供了云服务。
我们决定与 Meilisearch 合作,使用他们的引擎和他们的 Meilisearch Cloud 产品来托管我们的搜索引擎。他们慷慨地赞助了一个由他们为我们管理的托管计划。这使我们可以专注于构建 Tauri,因为知道搜索引擎的维护和保养都在可靠的手中。
搜索摄取 & 索引
难题的下一部分是实际获取内容并将其索引到搜索引擎中。Fabian 来自 Tauri 工作组,他使用 Meilisearch 的 docs-scraper 项目设置了该项目。
以前,我们有一个设置,它会获取我们的 markdown 文档和 JavaScript AST,并使用它们来构建搜索索引。虽然它导致了更快的索引时间,但这意味着我们在搜索索引和我们在网站上呈现内容的方式之间存在紧密耦合的依赖关系。这有时会导致搜索结果与 live 网站上的内容不同步。为了更新网站或优化索引器,某人需要同时了解这两者,从而使其更难维护。
使用当前版本的 scraper,我们可以使用单个 JSON 文件处理结果的所有配置和调整,并让 scraper 负责其余的工作。我们设置了一个 GitHub 操作,它将执行 scraping 作为我们 CI/CD 管道的一部分,然后将这些结果发送到我们的 Meilisearch Cloud 实例。
搜索前端
最后一步是创建前端 UI,访问 tauri.app 的人将与之交互。Amr 来自 Tauri 工作组,他创建了 meilisearch-docsearch 项目来帮助实现这一点。此仓库与 Meilisearch 1.0 兼容(我们现在在 tauri.app 上使用它)。
它受到 algolia/docsearch/ 和 meilisearch/docs-searchbar.js/ 项目的启发,这些项目为我们提供了非常坚实的基础。开源的美妙之处在于我们可以相互学习,并利用它回馈生态系统。
为了详细讨论一些细节,我将把它交给 Amr
meilisearch/docs-searchbar.js/ 项目很好,但我一直觉得它可以进行一些改进,以获得与 algolia/docsearch/ 的功能对等性。我还认为我们可以帮助更新以改进 UI/UX。
meilisearch/docs-searchbar.js/ 的主要痛点是
- 在移动屏幕上,它需要 UI/UX 改进,以便搜索结果不会超出屏幕。
- 在桌面电脑上,搜索结果通常会出现在搜索输入下方,在 tauri.app 的情况下,搜索输入位于右上角。这会导致糟糕的用户体验,因为你必须不断地在中间的页面内容和右上角的搜索结果之间移动你的眼睛。
- 它缺少一个常用的快捷键绑定。
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 讨论中听到您对哪些方面有效以及哪些方面需要改进的反馈。我们邀请您不仅报告错误,还报告您的搜索结果是否不符合预期或应该在结果列表中更高位置。
最后,我们要特别感谢 Ken 的原始 Tauri Search 项目,Amr 的 meilisearch-docsearch 项目,Fabian 编写的修订后的索引抓取器和持续测试,Meilisearch 的合作伙伴关系和 Meilisearch Cloud 实例,以及最后 Tauri 社区的持续反馈,以帮助我们推动 Tauri 和社区向前发展。
下一步
在接下来的一年中,Tauri 工作组很高兴继续朝着 Tauri 2.0 努力。我们还在进行网站重写,我们将在今年春季发布 beta 版本。如果您想参与其中,您可以在 Tauri Discord 中联系我们,并在 Mastodon 和 Twitter 上关注我们。
© 2025 Tauri 贡献者。CC-BY / MIT