前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于3.0.0RC2版本Valine魔改出博主、访客、小伙伴的教程

关于3.0.0RC2版本Valine魔改出博主、访客、小伙伴的教程

作者头像
FloatSheep
发布2022-04-25 17:09:12
3370
发布2022-04-25 17:09:12
举报
文章被收录于专栏:yetonwooyetonwoo

关于 Butterfly 最新的 3.0.0RC2 版本如何魔改出博主、访客、小伙伴的教程

首先我们进行对比

发现 3.0.0RC 的 Valine.pug 与其他版本的结构不相同

其它版:

代码语言:javascript
复制
- let emojiMaps = '""'
if site.data.valine
  - emojiMaps = JSON.stringify(site.data.valine)

script.
  function loadvaline () {
    function requestSetting (from, set) {
      var from = from
      var setting = set.split(',').filter(function(item){
      return from.indexOf(item) > -1
      });
      setting = setting.length == 0 ? from :setting;
      return setting
    }

    var guestInfo = requestSetting(['nick','mail','link'],'#{ theme.valine.guest_info }')
    var requiredFields = requestSetting(['nick','mail'],'#{ theme.valine.requiredFields }')

    function initValine () {
      window.valine = new Valine({
        el:'#vcomment',
        appId: '#{theme.valine.appId}',
        appKey: '#{theme.valine.appKey}',
        path: window.location.pathname,
        placeholder: '#{theme.valine.placeholder}',
        avatar: '#{theme.valine.avatar}',
        meta: guestInfo,
        pageSize: '#{theme.valine.pageSize}',
        lang: '#{theme.valine.lang}',
        recordIP: #{theme.valine.recordIP},
        serverURLs: '#{theme.valine.serverURLs}',
        emojiCDN: '#{theme.valine.emojiCDN}',
        emojiMaps: !{emojiMaps},
        enableQQ: #{theme.valine.enableQQ},
        requiredFields: requiredFields,
      });
    }

    if (typeof window.valine ==='object') initValine()
    else $.getScript('!{url_for(theme.CDN.valine)}', initValine)
  }

  if ('!{defaultComment}' === 'Valine' || !{theme.comments.load_begin}) {
    loadvaline()
  }
  else {
    function loadOtherComment () {
      loadvaline()
    }
  }

RC2 版:

代码语言:javascript
复制
- let emojiMaps = '""'
if site.data.valine
  - emojiMaps = JSON.stringify(site.data.valine)

script.
  function loadValine () {
    function initValine () {
      window.valine = new Valine({
        el: '#vcomment',
        appId: '#{theme.valine.appId}',
        appKey: '#{theme.valine.appKey}',
        placeholder: '#{theme.valine.placeholder}',
        avatar: '#{theme.valine.avatar}',
        meta: '#{theme.valine.guest_info }'.split(','),
        pageSize: '#{theme.valine.pageSize}',
        lang: '#{theme.valine.lang}',
        recordIP: #{theme.valine.recordIP},
        serverURLs: '#{theme.valine.serverURLs}',
        emojiCDN: '#{theme.valine.emojiCDN}',
        emojiMaps: !{emojiMaps},
        enableQQ: #{theme.valine.enableQQ},
        path: window.location.pathname,
      });
      if ('#{theme.valine.requiredFields}') { valine.config.requiredFields= '#{theme.valine.requiredFields}'.split(',') }
    }

    if (typeof Valine === 'function') initValine()
    else $.getScript('!{url_for(theme.CDN.valine)}', initValine)
  }

  if ('!{theme.comments.use[0]}' === 'Valine' || !!{theme.comments.lazyload}) {
    if (!{theme.comments.lazyload}) loadComment(document.querySelector('#vcomment'),loadValine)
    else setTimeout(() => loadValine(), 0)
  } else {
    function loadOtherComment () {
      loadValine()
    }
  }

可以看到 script.下面的内容不一样

这就是不同之处了

这样也就导致部分根据 HCLonely 博客魔改 Valine 的用户无法找到魔改的地方

解决其实很简单

在 function loadValine 的前面加上

代码语言:javascript
复制
function requestSetting (from, set) {
  var from = from
  var setting = set.split(',').filter(function(item){
  return from.indexOf(item) > -1
  });
  setting = setting.length == 0 ? from :setting;
  return setting
}

var guestInfo = requestSetting(['nick','mail','link'],'#{ theme.valine.guest_info }')
var requiredFields = requestSetting(['nick','mail','link'],'#{ theme.valine.requiredFields }')

即可,然后就可以继续按照 HCLonely 的魔改教程魔改了。

完结,撒花

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档