Hexo next 主题加载自定义 js 文件

本文介绍了为何要在Hexo Next主题中配置自定义JS文件,主要原因是提高可靠性(避免第三方站点失效)和加快加载速度。通过下载gitalk评论功能所需的md5.min.js和“不蒜子”PV统计的busuanzi.pure.mini.js到本地,并在主题配置中修改引用路径,可以解决上述问题。完成配置后,需运行`hexo clean && hexo g`以使更改生效。
摘要由CSDN通过智能技术生成

Hexo next 主题加载自定义 js 文件

为什么要配置 hexo next 主题自定义 js 文件呢?主要原因有两点:

那么解决上面两个问题的办法就是可以将远程加载的 js 文件下载下来,放到本地 netx 主题 source/js/src/ 目录下,让 hexo 生成静态网站时,加载生成静态站点本身的 js。下面举两个例子。

next 主题 gitalk 评论功能加载自定义 js
  1. https://github.com/blueimp/JavaScript-MD5/blob/master/js/md5.min.js 文件下载下来放到 themes/next/source/js/src/ 路径下。
  2. 修改 themes/next/layout/_third-party/comments/gitalk.swig,加载 md5.min.js 改为 <script src="/js/src/md5.min.js"></script>
{% if page.comments && theme.gitalk.enable %}
  <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
  <script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
  <script src="/js/src/md5.min.js"></script>
   <script type="text/javascript">
        var gitalk = new Gitalk({
          clientID: '3840ba8c8d80c18be7e3',
          clientSecret: '1b00f2efe5285973c24da9ed9ac895775eacc8ea',
          repo: '{
  { theme.gitalk.repo }}',
          owner: '{
  { theme.gitalk.githubID }}',
          admin: ['{
  { theme.gitalk.adminUser }}'],
          id: md5(location.pathname),
          distractionFreeMode: '{
  { theme.gitalk.distractionFreeMode }}'
        })
        gitalk.render('gitalk-container')
    </script>
{% endif %}
next 主题 “不蒜子” PV 统计功能加载自定义 js
  1. https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js 文件下载
    下来放到 themes/next/source/js/src/ 路径下。
  2. 修改 themes/next/layout/_third-party/analytics/busuanzi-counter.swig,将原先 <script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script> 改为 <script async src="/js/src/busuanzi.pure.mini.js"></script>
{% if theme.busuanzi_count.enable %}
<div class="busuanzi-count">
  <script async src="/js/src/busuanzi.pure.mini.js"></script>

  {% if theme.busuanzi_count.site_uv %}
    <span class="site-uv">
      {
  { theme.busuanzi_count.site_uv_header }}
      <span class="busuanzi-value" id="busuanzi_value_site_uv"></span>
      {
  { theme.busuanzi_count.site_uv_footer }}
    </span>
  {% endif %}

  {% if theme.busuanzi_count.site_pv %}
    <span class="site-pv">
      {
  { theme.busuanzi_count.site_pv_header }}
      <span class="busuanzi-value" id="busuanzi_value_site_pv"></span>
      {
  { theme.busuanzi_count.site_pv_footer }}
    </span>
  {% endif %}
</div>
{% endif %}

配置完成后需要 hexo clean && hexo g 生效…

附件

怕以下两个远程站点 js 丢了,在此备份一下吧…
https://github.com/blueimp/JavaScript-MD5/blob/master/js/md5.min.js:

!function(n){
   "use strict";function t(n,t){
   var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){
   return n<<t|n>>>32-t}function e(n,e,o,u,c,f){
   return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){
   return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){
   return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){
   return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){
   return e(r^(t|~o),n,t,u,c,f)}function i(n,r){
   n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e<n.length;e+=16)i=l,a=g,d=v,h=m,g=f(g=f(g=f(g=f(g=c(g=c(g=c(g=c(g=u(g=u(g=u(g=u(g=o(g=o(g=o(g=o(g,v=o(v,m=o(m,l=o(l,g,v,m,n[e],7,-680876936),g,v,n[e+1],12,-389564586),l,g,n[e+2],17,606105819),m,l,n[e+3],22
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值