TechGrow

9

文章

0

标签

Hexo 博客

# 前言

Hexo 博客建议安装 hexo-readmore (opens new window) 插件,将 TechGrow (opens new window) 的免费微信公众号引流工具整合到博客中,用户扫码关注微信公众号后可以解锁全站文章,让微信公众号的粉丝数躺着增长。

# 特色功能

  • 兼容主流的 Hexo 主题
  • 支持随机为博客添加引流功能
  • 支持关闭某篇文章的引流功能
  • 支持查询用户解锁文章的历史记录
  • 支持自定义或者动态计算文章内容的预览高度
  • 支持自定义 CSS 样式,轻松适配不同风格的博客
  • 支持开放 API,灵活接入第三方私有化部署的应用服务

# 注册博客

浏览器访问 TechGrow (opens new window) 的官网 ,注册并登录账号后,进入博客的后台管理页面。首先点击左侧的菜单 博客注册,然后点击 新增 按钮,添加自己博客的信息。博客注册成功后,记录下 博客 ID,后面的步骤会使用到

# 设置公众号

在微信公众号的后台管理页面,菜单栏里选择 自动回复 - 关键词回复,启用 自动回复,然后点击 添加回复 按钮

填写 规则名称关键词(当初你在 TechGrow 中设置的)回复内容 选择 文字,然后 回复文字 的内容填写获取博客解锁验证码的链接,如下所示(请自行更改 xxxxx-xxxxxxxxx-xxx 为你申请到的博客 ID)

<a href="https://open.techgrow.cn/#/readmore/captcha/generate?blogId=xxxxx-xxxxxxxxx-xxx">点击链接,获取博客解锁验证码</a>

此时,当读者关注你的微信公众号,并输入关键词后(比如我设置的关键词就是 tech),那么读者就会自动接收到获取博客解锁验证码的链接

# 安装插件

  • 运行 npm install 命令安装插件
npm install hexo-readmore --save

# 配置插件

编辑 Hexo 自身的 _config.yml 配置文件,新增插件的配置信息(请自行更改博客相关的信息),如下所示:

readmore:
  # 是否启用
  enable: true
  # 已申请的博客 ID
  blogId: '18762-1609305354821-257'
  # 已申请的微信公众号名称
  name: '全栈技术驿站'
  # 已申请的微信公众号回复关键词
  keyword: 'Tech'
  # 已申请的微信公众号二维码图片
  qrcode: 'https://www.techgrow.cn/img/wx_mp_qr.png'
  # 自定义的 JS 资源链接,可用于 CDN 加速
  libUrl: 'https://qiniu.techgrow.cn/readmore/dist/readmore.js'
  # 自定义的 CSS 资源链接,可用于适配不同风格的博客
  cssUrl: 'https://qiniu.techgrow.cn/readmore/dist/hexo.css'
  # 文章内容的预览高度(例如 300),设置值为 auto 则表示预览高度自适应
  height: 'auto'
  # 命令行终端是否输出日志信息
  debug: true
  # 文章解锁后凭证的有效天数
  expires: 365
  # 定时校验凭证有效性的时间间隔(秒)
  interval: 60
  # 是否添加微信公众号引流工具到移动端页面
  allowMobile: false
  # 每篇文章随机添加微信公众号引流工具的概率,有效范围在 0.1 ~ 1 之间,1 则表示所有文章默认都自动添加引流工具
  random: 1

或者打开 TechGrow 的 博客后台管理页面 (opens new window),点击博客列表中右侧的 使用 链接,将窗口里的 YAML 配置内容复制到 Hexo 自身的 _config.yml 配置文件即可。

# 插件参数说明

参数 类型 必填 默认值 说明
enable Boolean false -
blogId String -
name String -
keyword String -
qrcode String -
libUrl String https://qiniu.techgrow.cn/readmore/dist/readmore.js -
cssUrl String https://qiniu.techgrow.cn/readmore/dist/hexo.css -
debug Boolean true -
height String / Number auto -
expires Number 365 -
interval Number 60 -
allowMobile Boolean false -
random Number 1 -
excludes Array -
tocSelector String -
articleContentId String readmore-container -
pjaxSelector String -
pjaxCssClass String -

# 构建 Hexo 博客

  • 运行 hexo clean 命令清理本地博客
hexo clean
  • 运行 hexo generate 命令构建本地博客
hexo generate
  • 运行 hexo server 命令启动本地博客服务
hexo server

# 验证插件效果

打开文章页面,若文章自动隐藏了部分内容,并且出现了 阅读全文 按钮,则说明引流插件正常运行,如下图所示:

点击 阅读全文 按钮,会弹出微信公众号的二维码窗口,如下图所示:

# 取消阅读限制

若希望关闭某篇文章的微信公众号导流功能,可以在文章的头模板中使用 readmore: false 配置属性,如下所示:

---
title:  Hexo版本升级教程
tags: [Hexo]
readmore: false
keywords: [Hexo, 版本升级]
date: 2022-01-12 22:25:49
updated: 2022-01-12 22:25:49
---

若希望关闭部分文章的微信公众号引流功能,可以使用插件的 excludes 参数来实现,支持使用路径、通配符的匹配规则。

  • 根据 URL 路径,关闭某篇文章的引流功能
# 排除 URL 为 `/notes/637e7b8f.html` 的文章
readmore:
  ....
  excludes:
    - '/notes/637e7b8f.html'
  • 根据 URL 通配符,关闭某个目录下所有文章的引流功能
# 排除 URL 以 `/fontend` 开头的文章
# 排除 URL 为 `/backend/python/io` 的文章
readmore:
  ....
  excludes:
    - '/fontend/*'
    - '/backend/*/io'

# 主题兼容问题

在 Hexo 博客安装引流插件之后,如果出现兼容问题,比如代码块显示不正常、无论怎样点击文章目录(Toc)的锚点链接都没有任何反应,那么这些情况一般是引流插件与 Hexo 主题存在兼容问题导致的,解决办法是新增以下两个插件配置参数。配置示例如下:

readmore:
  # 获取文章目录(Toc)的 JS 选择器
  tocSelector: ''
  # 文章主体内容所在容器(DIV 标签)的 ID,在存在兼容性问题时才需要根据不同的主题进行配置
  articleContentId: ''

值得一提的是,上述两个插件配置参数都需要根据不同的 Hexo 主题来配置,其中不同主题的配置示例如下(特别注意,随着主题的迭代开发,以下配置可能会过时失效,请根据最新的主题代码来配置):

主题 tocSelector 配置 articleContentId 配置
Matery (opens new window) tocSelector: '#toc-content' articleContentId: 'articleContent'
Butterfly (opens new window) tocSelector: '#card-toc' articleContentId: 'article-container'

配置参数说明

上述 tocSelector 参数的作用是通过 JS 选择器获取文章目录(Toc)的内容,而 articleContentId 参数是用于指定文章主体内容所在容器(DIV 标签)的 ID。

特别注意事项

在正常情况下,不需要也不建议配置 tocSelectorarticleContentId 这两个参数。另外,tocSelector 参数可以单独使用,而且 articleContentId 可以配合下面介绍的 pjaxSelectorpjaxCssClass 参数一起使用。

# Pjax 的支持

如果博客启用了 Pjax,那么 Hexo 引流插件需要使用 pjaxCssClass 参数指定 Pjax 支持重载的 Css 类名(例如 pjax),同时还需要使用 pjaxSelector 参数指定获取文章主体内容的 JS 选择器。否则在站点内(如首页、标签页、分类页、归档页等)通过链接访问文章页面时,引流工具不会生效,除非是手动刷新一次页面。配置示例如下:

readmore:
  # 获取文章主体内容的 JS 选择器,在博客启用了 Pjax 的情况下才需要根据不同的主题进行配置
  pjaxSelector: ''
  # Pjax 支持重载的 Css 类名(例如 'pjax'),在博客启用了 Pjax 的情况下才需要根据不同的主题进行配置
  pjaxCssClass: ''

值得一提的是,上述两个插件配置参数都需要根据不同的 Hexo 主题来配置,其中不同主题的配置示例如下(特别注意,随着主题的迭代开发,以下配置可能会过时失效,请根据最新的主题代码来配置):

主题 pjaxCssClass 配置 pjaxSelector 配置
NexT (opens new window) pjaxCssClass: 'pjax' pjaxSelector: 'div.main-inner'
Tree (opens new window) pjaxCssClass: 'pjax' pjaxSelector: 'div.article-content'

配置参数说明

上述 pjaxCssClass 参数的作用是让 Pjax 重载引流工具的代码段,而 pjaxSelector 参数的作用是通过 JS 选择器获取文章主体内容。当配置了 pjaxSelectorpjaxCssClass 参数之后,Hexo 引流插件会往所有渲染后的 HTML 页面自动添加引流代码段,包括 PagePost 的页面类型。如果两者都不配置,则 Hexo 引流插件默认只会往渲染后的 Post 页面添加引流代码段。

特别注意事项

由于 Pjax 非常依赖页面布局的一致性,因此请确保通过 pjaxSelector 参数指定的 JS 选择器在所有页面(包括 PagePost)都能够获取到唯一的 HTML 标签元素,否则会导致部分页面的 Pjax 或者引流功能不会生效。如果无法满足这一点,则需要手动更改 Hexo 主题的模板代码,使 JS 选择器在所有页面都能够获取到唯一的 HTML 标签元素。Hexo 主题模板代码的修改可以参考 NexT (opens new window),然后设置 pjaxSelector 的参数值为 div.post-container,并设置 pjaxCssClass 的参数值为 pjax

# 自定义样式

插件默认使用了定义在 hexo.css (opens new window) 的 CSS 样式,你可以使用以下两种方式自定义自己的样式:

  • 第一种方式:更改博客主题的 CSS 源码文件,将自定义的那部分 CSS 样式添加到里面
  • 第二种方式:根据 hexo.css (opens new window) 创建自己的 CSS 文件(完整的),并将其存放在自己的博客里,同时通过插件的 cssUrl 配置参数来指定其访问的 URL 路径

提示:为了方便日后维护,强烈建议使用第二种方式来添加自定义样式

# 开放 API

若不希望依赖 TechGrow 官方提供的系统服务,可以选择使用开放 API 的方式,让引流插件直接使用私有化部署的后端应用服务,详细介绍请看 这里。

# 已兼容的主题

主题 GitHub 仓库
NexT https://github.com/next-theme/hexo-theme-next (opens new window)
Yilia https://github.com/litten/hexo-theme-yilia (opens new window)
Icarus https://github.com/ppoffice/hexo-theme-icarus (opens new window)
Matery https://github.com/blinkfox/hexo-theme-matery (opens new window)
Fluid https://github.com/fluid-dev/hexo-theme-fluid (opens new window)
Stun https://github.com/liuyib/hexo-theme-stun (opens new window)
Butterfly https://github.com/jerryc127/hexo-theme-butterfly (opens new window)
Tree https://github.com/rqh656418510/hexo-theme-tree (opens new window)

# 常见问题

问题一

Hexo 安装插件后,浏览器的控制台输出警告或者错误信息,且引流工具无法生效

浏览器访问 Hexo 博客后,按下 F12 快捷键调出调试工具,然后切换到 控制台,最后将警告或者错误信息截图,并发送到 官方微信群 (opens new window) 或者 656418510@qq.com 邮箱,建议留言备注 Hexo 与 Hexo 主题的版本号。

问题二

Hexo 安装插件后,移动端的引流工具无法生效,而 PC 端却生效

考虑到用户体验的问题,在移动端默认是关闭引流功能的。若希望在移动端启用引流功能,可以通过 Hexo 引流插件的 allowMobile: true 配置参数来实现。

上次更新: 2024/5/13 13:22:03
  • 前言
  • 特色功能
  • 注册博客
  • 设置公众号
  • 安装插件
  • 配置插件
  • 插件参数说明
  • 构建 Hexo 博客
  • 验证插件效果
  • 取消阅读限制
  • 主题兼容问题
  • Pjax 的支持
  • 自定义样式
  • 开放 API
  • 已兼容的主题
  • 常见问题

深圳SEO优化公司兰州外贸网站建设价格长葛营销网站公司沈阳网站建设威海百度seo公司商洛营销型网站建设报价丽江推广网站多少钱和县seo推荐漳州关键词按天收费公司聊城关键词按天计费多少钱临猗seo网站优化新余百度网站优化哪家好黔东南至尊标王报价光明推广网站价格巴中网站推广系统推荐大理seo网站推广哪家好黄石网站优化软件报价西乡百姓网标王推广公司四平网站优化按天计费报价张掖网站优化按天收费哪家好黔西南seo网站优化报价柳州网站排名优化多少钱衡阳建网站推荐曲靖百度竞价包年推广多少钱永湖百度网站优化排名报价驻马店百度竞价包年推广报价贵港推广网站推荐黄冈至尊标王推荐黄山百姓网标王推广多少钱海南网站优化推广推荐岳阳外贸网站制作歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化