搜索
Electron 网站有了一个新的搜索引擎,可以为 API 文档、教程、Electron 相关的 npm 包等提供即时结果。
学习像 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
,它是注册表中专门为与 Electron 一起使用的 3400 多个模块的集合。
Libraries.io 的人们创建了 SourceRank,这是一个基于代码、社区、文档和使用等指标的组合来为软件项目评分的系统。 我们创建了一个 sourceranks
模块,其中包括 npm 注册表中每个模块的分数,我们使用这些分数对包结果进行排序。
想要 Electron 内置 IPC 模块的替代方案? 搜索 is:package ipc
。
Electron 应用程序
使用 Algolia 索引数据很容易,所以我们从 electron/apps 中添加了现有的应用程序列表。
筛选结果
如果你以前使用过 GitHub 的 代码搜索,你可能知道它的冒号分隔的键值过滤器,如 extension:js
或 user:defunkt
。 我们认为这种过滤技术非常强大,因此我们在 Electron 的搜索中添加了 is:
关键字,它让你过滤结果以仅显示一种类型
键盘导航
人们喜欢键盘快捷键! 无需将手指从键盘上移开即可使用新的搜索
- / 聚焦搜索输入框
- esc 聚焦搜索输入框并清除它
- 向下 移动到下一个结果
- 向上 移动到上一个结果或搜索输入框
- 输入 打开结果
我们还开源了 模块,它启用了这种键盘交互。 它专为与 Algolia InstantSearch 一起使用而设计,但已通用化以实现与不同搜索实现的兼容性。
我们需要你的反馈
如果你在使用新搜索工具时遇到任何问题,我们希望听到你的意见!
提交反馈的最佳方式是在 GitHub 上的相应存储库中提交问题
- electron/electronjs.org 是 Electron 网站。 如果你不知道在哪里提交问题,这是你的最佳选择。
- 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 团队帮助我们入门。 🍹