跳至主要内容

搜索

·阅读时间:5 分钟

Electron 网站拥有一个新的搜索引擎,可为 API 文档、教程、与 Electron 相关的 npm 包等提供即时结果。

Electron Search Screenshot


学习像 Electron 这样的新技术或框架可能会让人望而生畏。一旦你完成了快速入门阶段,学习最佳实践、找到合适的 API 或发现可以帮助你构建梦想中的应用程序的工具可能会变得很困难。我们希望 Electron 网站成为一个更好的工具,帮助你更快、更轻松地找到构建应用程序所需的资源。

访问electronjs.org上的任何页面,你都会在页面顶部找到新的搜索输入框。

搜索引擎

当我们最初着手向网站添加搜索功能时,我们使用 GraphQL 作为后端自己构建了一个搜索引擎。GraphQL 使用起来很有趣,搜索引擎的性能也很好,但我们很快意识到构建搜索引擎并非易事。多词搜索和错别字检测等功能需要大量工作才能做好。与其重新发明轮子,我们决定使用现有的搜索解决方案:Algolia

Algolia 是一项托管搜索服务,已迅速成为 React、Vue、Bootstrap、Yarn 和许多其他流行的开源项目的首选搜索引擎。

以下是一些使 Algolia 非常适合 Electron 项目的功能

  • InstantSearch.js 提供即时搜索结果,通常在约 1 毫秒内完成。
  • 错别字容错 意味着即使你输入widnow,你仍然可以获得结果。
  • 高级查询语法 支持"精确引号匹配"-排除
  • API 客户端 是开源的,并且有详细的文档。
  • 分析 告诉我们人们最常搜索的内容,以及他们正在搜索但未找到的内容。这将为我们提供有价值的见解,了解如何改进 Electron 的文档。
  • Algolia对开源项目免费

API 文档

有时你知道想要完成什么,但你不知道确切的方法。Electron 拥有超过 750 个 API 方法、事件和属性。没有人能够轻松记住所有这些,但计算机擅长处理这些事情。使用 Electron 的JSON API 文档,我们在 Algolia 中索引了所有这些数据,现在你可以轻松找到你正在寻找的确切 API。

尝试调整窗口大小?搜索resize 并直接跳转到所需的方法。

教程

Electron 拥有不断增长的教程集,以补充其 API 文档。现在,你可以更轻松地找到有关特定主题的教程,以及相关的 API 文档。

正在寻找安全最佳实践?搜索security

npm 包

npm 注册表中现在有超过 700,000 个包,找到你需要的那个并不总是那么容易。为了更轻松地发现这些模块,我们创建了electron-npm-packages,这是一个包含注册表中 3400 多个专门为与 Electron 一起使用而构建的模块的集合。

来自Libraries.io 的人员创建了SourceRank,这是一种根据代码、社区、文档和使用情况等指标的组合对软件项目进行评分的系统。我们创建了一个sourceranks 模块,其中包含 npm 注册表中每个模块的分数,我们使用这些分数对包结果进行排序。

想要 Electron 内置 IPC 模块的替代方案?搜索is:package ipc

Electron 应用

使用 Algolia索引数据很容易,因此我们添加了来自electron/apps 的现有应用列表。

尝试搜索musichomebrew

筛选结果

如果你之前使用过 GitHub 的代码搜索,你可能知道它使用冒号分隔的键值过滤器,例如 extension:jsuser:defunkt。我们认为这种过滤技术非常强大,因此我们在 Electron 的搜索中添加了一个 is: 关键字,它允许你筛选结果以仅显示一种类型

键盘导航

人们喜欢键盘快捷键!新的搜索可以在不离开键盘的情况下使用

  • / 将焦点置于搜索输入框
  • esc 将焦点置于搜索输入框并清除它
  • 向下 移动到下一个结果
  • 向上 移动到上一个结果,或搜索输入框
  • 回车 打开一个结果

我们还开源了模块,它使这种键盘交互成为可能。它旨在与 Algolia InstantSearch 一起使用,但经过通用化以支持不同的搜索实现。

我们需要您的反馈

如果您遇到新搜索工具的任何问题,我们希望了解!

提交反馈的最佳方式是在 GitHub 上的相应仓库中提交问题

感谢

特别感谢 Emily JordanVanessa Yuen 构建了这些新的搜索功能,感谢 Libraries.io 提供了 SourceRank 分数,并感谢 Algolia 团队帮助我们入门。🍹