前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >悄悄地给网站加了搜索!

悄悄地给网站加了搜索!

作者头像
沉默王二
发布2022-08-26 19:09:07
1.2K0
发布2022-08-26 19:09:07
举报
文章被收录于专栏:沉默王二沉默王二

大家好,我是二哥呀!

不着急的小伙伴可以看看今天的内容哈,给《Java 程序员进阶之路》加了文档搜索,顺带记录一下。如果以后有其他小伙伴在使用过程中也遇到了这个问题,可以参考这篇。

一、DocSearch 效果

直接来看添加完 docsearch(文档搜索)后的效果,vuepress-theme-hope 会在栏目的右上角添加一个搜索的组件,见下图。

体验网址:https://tobebetterjavaer.com

点击,然后输入想要搜索的内容,就会在弹出框中看到搜索结果,点击可以跳转到对应的网页。

个人感觉还是挺方便和实用的。

至于 Algolia 实现 DocSearch 的原理,也非常的简单,它会根据你的网站内容定时爬虫,当输入关键字的时候就去取之前爬过的内容。

二、DocSearch 实战

接下来,我来带大家一步步实战。

第一步,通过以下地址提交你的网站和邮箱。

https://docsearch.algolia.com/apply/

第二步,稍安勿躁地等待。邮箱里会收到 docsearch 的验证信息。点击 accept。

PS:发现网页邮箱竟然还是 JSP 做的,这波 666 啊。

第三步,设置 Algolia Crawler,注意替换 recordExtractor。

由于我使用的是 vuepress-theme-hope 主题,所以 recordProps 的默认容器类为 theme-hope-content。

代码语言:javascript
复制
recordProps: {
  lvl0: {
    selectors: ".sidebar-heading.active",
    defaultValue: "Documentation",
  },
  lvl1: ".theme-hope-content h1",
  lvl2: ".theme-hope-content h2",
  lvl3: ".theme-hope-content h3",
  lvl4: ".theme-hope-content h4",
  lvl5: ".theme-hope-content h5",
  lvl6: ".theme-hope-content h6",
  content: ".theme-hope-content p, .theme-hope-content li",
},
indexHeadings: true,

这部分如果不替换的,DocSearch 是无法搜索到内容的。

另外,记住 indexName、appId、apiKey,它们的值会在接下来配置 vuepress-theme-hope 主题的 DocSearch 插件用到。

第四步,在 themeConfig.ts 文件中配置 docsearch,启用文档搜索。

代码语言:javascript
复制
docsearch: {
    appId: "yours",
    apiKey: "yours",
    indexName: "tobebetterjavaer(yours)",
    locales: {
      "/": {
        placeholder: "搜索文档",
        translations: {
          button: {
            buttonText: "搜索文档",
            buttonAriaLabel: "搜索文档",
          },
          modal: {
            searchBox: {
              resetButtonTitle: "清除查询条件",
              resetButtonAriaLabel: "清除查询条件",
              cancelButtonText: "取消",
              cancelButtonAriaLabel: "取消",
            },
            startScreen: {
              recentSearchesTitle: "搜索历史",
              noRecentSearchesText: "没有搜索历史",
              saveRecentSearchButtonTitle: "保存至搜索历史",
              removeRecentSearchButtonTitle: "从搜索历史中移除",
              favoriteSearchesTitle: "收藏",
              removeFavoriteSearchButtonTitle: "从收藏中移除",
            },
            errorScreen: {
              titleText: "无法获取结果",
              helpText: "你可能需要检查你的网络连接",
            },
            footer: {
              selectText: "选择",
              navigateText: "切换",
              closeText: "关闭",
              searchByText: "搜索提供者",
            },
            noResultsScreen: {
              noResultsText: "无法找到相关结果",
              suggestedQueryText: "你可以尝试查询",
              openIssueText: "你认为该查询应该有结果?",
              openIssueLinkText: "点击反馈",
            },
          },
        },
      },
    },
  },

第五步,先执行 yarn add @docsearch/js@3 命令添加 docsearch 安装包,再执行 npm i -D @vuepress/plugin-docsearch@next 命令添加插件。

折腾这点折腾了很久,因为两个官网都没有给出比较全的解决方案,导致我摸索了好久,两个都执行了,就不会编译失败了。

否则会报 plugin-docsearch@next 插件没安装,和缺少包。

文档可以参考:

  • VuePress 官方:https://v2.vuepress.vuejs.org/zh/reference/plugin/docsearch.html
  • DocSearch官方:https://docsearch.algolia.com/docs/DocSearch-v3

三、后记

因为《Java 程序员进阶之路》这个小破站,vuepress-theme-hope主题的作者还跑过来加了好友(一开始是好朋友 JavaGuide 推荐了这个主题,然后 hope 的作者还把我俩的网站加到了案例里作为榜样)。

没想到,Hope 说自己“是个学理论物理的小菜鸡”,只能说,作者们都非常谦虚。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 沉默王二 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、DocSearch 效果
  • 二、DocSearch 实战
  • 三、后记
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档