侧边栏壁纸
博主头像
墨雪飘影博主等级

玫瑰是我偷的,你爱的人是我杀的,不爱你是假的。

  • 累计撰写 52 篇文章
  • 累计创建 10 个标签
  • 累计收到 21 条评论

halo joe2.0主题优化-减少近两千行js

墨雪飘影
2022-03-10 / 0 评论 / 2 点赞 / 286 阅读 / 1,275 字
温馨提示:
本文最后更新于 2022-03-10,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
原文件写法

路径:\templates\themes\joe2.0\template\config.ftl

// 获取主题配置
  var ThemeConfig = {};
  <#list settings?keys as key>
    <#assign valueString = settings[key]?string>
    <#assign isNeeded = key?index_of('custom_')==-1 && valueString?index_of('<script')==-1 && valueString?index_of('<link')==-1>
    <#if isNeeded>
      var field = '${key}';
      var value = '${valueString?js_string}';
      value = value.replace(/</g,"&lt;").replace(/>/g, "&gt;");
      if(/^(true|false)$/.test(value)) {
        value = JSON.parse(value);
      }
      if(/^\d+$/.test(value)) {
        value = Number(value);
      }
      ThemeConfig[field] = value;
    </#if>
  </#list>

结果
QQ图片20220310111450.png
重复代码太多。
将以上代码替换为:

  // 获取主题配置
  var ThemeConfig = {};
  function handleValue(value) {
    value = value.replace(/</g,"&lt;").replace(/>/g, "&gt;");
    if(/^(true|false)$/.test(value)) {
        value = JSON.parse(value);
    }
    if(/^\d+$/.test(value)) {
        value = Number(value);
    }
    return value;
  }
  <#list settings?keys as key>
    <#assign valueString = settings[key]?string>
    <#assign isNeeded = key?index_of('custom_')==-1 && valueString?index_of('<script')==-1 && valueString?index_of('<link')==-1>
    <#if isNeeded>
      ThemeConfig['${key}'] = handleValue('${valueString?js_string}');
    </#if>
  </#list>

有效减少
效果如下:
QQ截图20220310111919.png
对比:
优化前
QQ截图20220310112009.png
优化后
QQ截图20220310112018.png
感谢海弟提供代码支持
海弟:http://blog.huangsir.cc

2

评论区