VuePress添加Algolia搜索
licoded / / 工具使用 / 阅读量

注册Algolia账号,并新建Index;新建API Key,需要有searchaddObjecteditSettingsdeleteIndex权限

创建配置文件

.env文件

APPLICATION_ID=YOUR_APP_ID
API_KEY=YOUR_ADMIN_KEY

config.json文件(示例仅供参考)

{
  "index_name": "docs_test",
  "start_urls": ["https://licoded.gitee.io/docs/"],
  "selectors": {
    "lvl0": {
      "selector": "p.sidebar-heading.open",
      "global": true,
      "default_value": "Documentation"
    },
    "lvl1": ".content__default h1",
    "lvl2": ".content__default h2",
    "lvl3": ".content__default h3",
    "lvl4": ".content__default h4",
    "lvl5": ".content__default h5",
    "lvl6": ".content__default h6",
    "text": ".content__default p, .content__default ul, .content__default li, .content__default blockquote,a.header-anchor"
  }
}

使用docker爬取数据并添加到Index

部分操作仅适用于Manjaro

# 安装jq和docker
yay -S jq docker
# 配置docker镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://yourid.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 运行docker爬虫
docker run -it --env-file = .env -e“ CONFIG = $(cat /path/to/your/config.json | jq -r tostring)” algolia / docsearch-scraper
# 注意config.json一定要使用绝对路径

用Algolia Search替换内置搜索

在config.js的themeConfig中添加如下配置

{
	algolia: {
      appId: "APP ID",
      apiKey: "API Key",
      indexName: "docs_test",
      algoliaOptions: {
        hitsPerPage: 10,
        facetFilters: "",
      },
    },
}

package.json 中添加快捷命令

{
	"algolia": "cd docs/.vuepress/algolia && sudo sh crawl.sh"
}

完成上述配置以后,就只需要执行 yarn algolia 便可以同步更新 Algolia 的 Index,但要注意一定要先把项目发布到线上,因为docker的爬虫爬取的是线上的网站而非本地的。

参考链接:

支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章