搜索
Electron 网站有一个搜索引擎,可以提供 API 文档、教程、Electron 相关的 npm 包等查询结果。
学习像 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:js
或 user:defunkt
。 我们认为这种机制很有用,因此我们添加了一个 is:
关键词到 Electron 网站的搜索引擎中,帮助你筛选结果的类型:
快捷键
人们喜欢键盘快捷键! 新的搜索可以让你手不离键盘:
- / 聚焦到搜索输入框
- Esc 聚焦到搜索输入框并清除内容
- ↓ 移动到下一个结果
- ↑ 移动到之前的结果,或搜索内容
- Enter 打开结果
我们已经将这个模块开源了。 它被设计成与 Algolia InstantSearch 一起使用,但是也为不同的搜索实现做了兼容。
我们希望得到您的反馈
如果你在使用新的搜索工具时遇到了任何问题,我们希望了解它们!
提交反馈的最佳方式是在 GitHub 的对应仓库中提交 issue:
- electron/electronjs.org 是 Electron 的网站。 如果你不知道某个问题应该在哪提 issue,可以在这里提出。
- electron/algolia-indices 是 Electron 的可搜索的数据被编译的地方。
- electron/search-with-your-keyboard 提供了通过快捷键导航搜索的功能。
- algolia/instantsearch.js 是一个浏览器端的插件,提供在输入时实时获取结果的功能。
- algolia/algoliasearch-client-javascript 是用于将数据提交到 Algolia 服务器的 Node.js 客户端。
谢谢!
特别感谢 Emily Jordan 和 Vanessa Yuen 编写了这些搜索工具,感谢 Libraries.io 提供 SourceRank 评分,以及感谢 Algolia 团队。 🍹