Hexo中Next主题最新版本的微信公众号引流教程
重拾博客
很久没有分享博客了,也是最近比较忙的原因。这几天对博客代码重构了一下,主要针对以下几点
- 搭建本地
NodeJs
环境 - 优化
Github Action
自动化构建流程 - 调整
post
目录下的文章目录结构 - 开了一个公众号,逆向分析并修改
readMore
脚本,引流到公众号
遇到的问题
为了宣传我的公众号,我参考 【知识积累】Hexo中next主题微信引流教程 这篇文章进行配置。
但是过程中遇到了一个问题,我博客的Next
主题似乎太新了,是v8
版本的。因此带来了几个问题
- 最新版的
Next
主题将_layout.swig
改为了_layout.njk
Next
在主题配置文件里支持了custom_file_path
属性, 不需要再修改_layout.njk
<div id="content">
不存在, 这里要修改原来的readmore.js
的注入方式
迫于网上答案过于陈旧,我这里重新再梳理下v8
版本的Next
主题要怎么使用readmore.js
脚本。
这个思路可用于其他主题的适配。(必可活用于下次
自定义模块页面
Next
主题的 主题配置文件 里已经提供了扩展点
1 | custom_file_path: |
我们修改完主题配置文件后, 在source/_data
目录下创建一个footer.njk
文件.
在里面填上script
脚本
1 | {% if page.comments %} |
反混淆魔改readmore脚本
从上面那套js
语法可以猜测出readmore
的遮罩层,是根据id
为container
的DOM
元素进行定位操作的。
但是我们发现v8
版本的文章部分已经没有id
这个属性了
1 | <div class="main-inner {% block class %}{% endblock %}"> |
这里的{% block content %}{% endblock %}
语法,其实就是将themes/next/layout/_macro/post.njk
这个文件引进来。
这个<article>
就是文章的主要区域, 我们目标是div.post-block
。
在source/js
目录下创建一个readmore.js
文件,将 原始readmore.js
的内容复制进去, 并格式化。
原始的readmore.js
是经过混淆加密的,我们先借助IDE
进行格式化.
然后找到我们熟悉的init
初始化方法,加上debugger
断点
可以看到这里是通过jQuery
的$('#container')
定位的, 那就简单了, 直接把这一行替换成以下代码即可
1 | _0x77ddx3 = $('div.post-block'); |
思路就是这样,如果你的主题不是Next v8
,那么也是修改这行代码,取想要hack
的元素即可。
微信公众号的配置
剩下的公众号配置就按照openwrite
的教程来处理就可以了,这里不再赘诉
https://openwrite.cn/guide/readmore/readmore.html
最后
想了想,最后还是没有强制引流到公众号。有感兴趣的就点击下面的微信公众号或者RSS
订阅吧。