跳转到主内容

搜索

· 阅读时间:约 7 分钟

Electron 网站有一个搜索引擎,可以提供 API 文档、教程、Electron 相关的 npm 包等查询结果。

Electron 搜索截图


学习像 Electron 这样的新技术或框架可能有点令人生畏。 当您学习完快速开始部分后,寻找最佳实践、正确的 API 或者合适的辅助工具可能会有点困难。 我们希望 Electron 网站成为帮助您寻找开发资料的更好工具。

访问 electronjs.org 的任意页面,您便可以在页面顶端找到搜索框。

搜索引擎

起初我们为网站添加搜索时,我们使用了自己的,基于 GraphQL 的后端。 GraphQL 很有趣,并且搜索的效率很高,但我们很快认识到构建搜索引擎只是很基础的一部分。 像多词搜索和错别字检测等特性需要大量工作才能完成。 与其重复造轮子,我们决定使用现有的方案:Algolia

Algolia 是一个托管的搜索服务,已经很快成为不少热门开源项目(如 React,Vue,Bootstrap,Yarn 等等)的选择。

以下特性让 Algolia 很适合 Electron 官网的搜索任务:

  • InstantSearch.js 在您输入时提供实时搜索结果,延迟通常在 1 ms 之内。
  • 输入容忍度 让您在输入 [widnow] 等错别字时也能获得结果。
  • 高级查询语法 允许您使用 "exact quoted matches"-exclusion 等语句。
  • API 客户端 是开源的,并有大量文档。
  • 分析 帮助我们了解人们经常搜索的内容,以及哪些缺失的内容需要补充。 这将为我们提供有关如何改进 Electron 文档的宝贵见解。
  • Algolia 对开源项目 免费

API 文档

有时你知道你想要完成什么 ,但你不完全知道如何做。 Electron 拥有超过 750 个 API 方法、事件和属性。 没有人能够轻易地记住所有这些,但计算机在这件事上很擅长。 通过 Electron 的 JSON API 文档,我们将所有这些数据编入了 Algolia 。 现在你可以轻松地找到你想要的 API。

尝试调整窗口大小? 搜索 [调整大小] 并直接跳转到您需要的方法。

教程

Electron 的教程正在逐步丰富,以跟进它的 API 文档。 现在你可以更容易地找到关于某个主题的教程,以及相关的 API 文档。

寻找安全方面的最佳实践? 搜索 [security]

npm 包

目前 npm 注册表中有超过 70 万个包,找到所需的包并不总是容易。 为了更容易地寻找这些依赖包,我们创建了 electron-npm-packages 这个集合,包含 3400 余个专为 Electron 编写的依赖项目。

Libraries.io 的工作者们做了 SourceRank,可以基于一系列指标(如代码、社区、文档、用法等)对开源项目进行评分。 我们创建了一个 [sourceranks] 模块,它包含了在 npm 注册表中每个模块的分数。 并且我们 使用这些分数来排序包结果。

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

Electron 应用

使用 Algolia 索引数据很容易,所以我们添加了 GitHub 的 electron/apps 中的项目。

尝试搜索 [音乐][自制程序]

Filtering Results

如果你以前使用过 GitHub 的代码搜索功能,你可能知道它的键 - 值过滤用法,如 extension:jsuser:defunkt 。 我们认为这种机制很有用,因此我们添加了一个 is: 关键词到 Electron 网站的搜索引擎中,帮助你筛选结果的类型:

快捷键

人们喜欢键盘快捷键! 新的搜索可以让你手不离键盘:

  • / 聚焦到搜索输入框
  • Esc 聚焦到搜索输入框并清除内容
  • 移动到下一个结果
  • 移动到之前的结果,或搜索内容
  • Enter 打开结果

我们已经将这个模块开源了。 它被设计成与 Algolia InstantSearch 一起使用,但是也为不同的搜索实现做了兼容。

我们希望得到您的反馈

如果你在使用新的搜索工具时遇到了任何问题,我们希望了解它们!

提交反馈的最佳方式是在 GitHub 的对应仓库中提交 issue:

Thanks

特别感谢 Emily JordanVanessa Yuen 编写了这些搜索工具,感谢 Libraries.io 提供 SourceRank 评分,以及感谢 Algolia 团队。 🍹