跳转到主要内容

搜索

·6 分钟阅读

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 注册表中已有超过 70 万个包,找到你需要的包并不总是容易的。为了更容易地发现这些模块,我们创建了 electron-npm-packages,这是一个为 Electron 构建的 3400 多个模块的集合。

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

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

Electron 应用程序

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

尝试搜索 musichomebrew

过滤结果

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

键盘导航

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

  • / 聚焦搜索输入框
  • esc 聚焦搜索输入框并清除它
  • down 移动到下一个结果
  • up 移动到上一个结果,或搜索输入框
  • enter 打开一个结果

我们还开源了 模块,该模块实现了这种键盘交互。它专为与 Algolia InstantSearch 一起使用而设计,但已通用化以实现与不同搜索实现的兼容性。

我们希望你的反馈

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

提交反馈的最佳方式是在相应的存储库中向 GitHub 提交 issue。

感谢

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