跳至主要内容

Tauri 社区发展与反馈

· 阅读 7 分钟
Lorenzo Lewis
Amr Bashir

Community growth and feedback hero image

Tauri 在过去的一年里取得了惊人的进步。我们 发布了 Tauri 1.0宣布了 Tauri Mobile 的 Alpha 版本,并在 2022 年 Tauri 社区调查中收集了来自我们的社区和用户的大量宝贵反馈。

Tauri 社区调查结果

今年,我们收到了 600 多份 Tauri 社区调查回复(比之前的调查回复多 3 倍以上)。我们谨向 吴勇伟廖东凯 表示特别的感谢,他们将调查从英语翻译成了简体中文和繁体中文,以便我们能够在调查中纳入更多社区成员及其反馈。你可以在此处下载调查的公开数据。

我们已经听取了你们的反馈,并启动了一些项目来直接解决这些问题。我们想谈论的第一个项目是搜索。

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,并使用它们来构建搜索索引。虽然这导致索引速度大大加快,但这意味着我们在搜索索引和我们在网站上呈现内容的方式之间存在紧密耦合的依赖关系。这有时会导致搜索结果与实时网站上的内容不同步。为了更新网站或优化索引器,需要有人同时了解这两方面,这使得维护变得更加困难。

使用当前版本的抓取器,我们可以使用 单个 JSON 文件 处理所有配置和结果调整,让抓取器处理其余部分。我们设置了一个 GitHub 操作,作为 CI/CD 管道的一部分执行抓取,然后将这些结果发送到我们的 Meilisearch Cloud 实例。

搜索前端

最后一步是创建前端 UI,访问 tauri.app 的人将与之交互。Tauri 工作组的 Amr 创建了 meilisearch-docsearch 项目来提供帮助。此存储库与 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 很难 😉)。其他项目也无法轻松受益于我们的修改。

后来,我们讨论了如何改进搜索 UI 和 UX,我们决定可以在 Meilisearch 基本 UI 的基础上进行改进。该项目变成了 meilisearch-docsearch

实际应用

好消息是所有这些更改都是实时的!您可以在 tauri.app 上看到新的搜索。我们很乐意在 此博客文章的 GitHub 讨论 中听取您对哪些功能有效以及哪些功能可以改进的反馈。我们不仅邀请您报告错误,还邀请您在搜索结果出乎意料或应该在结果列表中排名更高的时向我们反馈。

Search Preview

最后,我们要特别感谢 Ken 的原始 Tauri 搜索项目,Amrmeilisearch-docsearch 项目,Fabian 撰写了修订后的索引抓取器和持续测试,感谢 Meilisearch 的合作和 Meilisearch Cloud 实例,最后感谢 Tauri 社区持续提供反馈,帮助我们推动 Tauri 和社区向前发展。

后续步骤

在未来的一年中,Tauri 工作组很高兴继续致力于 Tauri 2.0。我们还将对网站进行重写,并将在今年春季推出测试版。如果您想参与其中,可以在 Tauri Discord 中联系我们,并在 MastodonTwitter 上关注我们。