前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >给 Valine 评论添加 macOS 系统版本号信息

给 Valine 评论添加 macOS 系统版本号信息

作者头像
2Broear
发布2024-03-12 10:35:43
960
发布2024-03-12 10:35:43
举报
文章被收录于专栏:2B博客2B博客

macOS 系统版本号

很久没写过valine的东西了(一些小改动就懒得写直接记日记里里)不过最近也是淘了个14年中的顶配2.8ghz定制款mbp(有logo灯,便宜),所以借性来把valine评论的客户端显示完善一下,主要针对macos系统用户新增了系统版本号高于10.12.6(macOS Sierra)客户端的代理判断,低于该系统版本号的就不输出了(也可以把其他版本号加到对象),具体样式如下图所示

我目前还是用的Catalina(10.15.7)

Valine 配置

如上图所示,符合macos的客户端会自动判断输出对应的版本号到useragent末端,现在来简单看下这个判断函数,首先是定义所需的版本号,具体版本在苹果官网可查,Find out which macOS your Mac is using

定位到 valine.js 中的 s=d(s) 后添加代码如下,

代码语言:javascript
复制
    const new_vertion = '12.01',  //目前最新的版本号
    macOSver = [{
        "slug": "Monterey",
        "ver": "11.6.1"
    }, {
        "slug": "Big Sur",
        "ver": "10.15.7"
    }, {
        "slug": "Catalina",
        "ver": "10.14.6"
    }, {
        "slug": "Mojave",
        "ver": "10.13.6"
    }, {
        "slug": "High Sierra",
        "ver": "10.12.6"
    }, {
        "slug": "Sierra",
        "ver": "10.11.6"
}];

然后定义判断函数,

代码语言:javascript
复制
    function macos_slug_match(cur_vertion){
    var noDots = function(str,fmt){
        let reg = new RegExp(/(\d)(\.)(\d*)(\2*)(\d*)/g),
            res = str.toString().replace(reg,'$1$2$3$5');
        fmt ? res=Number(res) : res;
        return res
    };
    cur_vertion = noDots(cur_vertion,true);
    for(let i=0;i<macOSver.length;i++){
        let each = macOSver[i],
            last = macOSver[i-1] ? macOSver[i-1] : false;
        var each_ver = each.ver,
            each_vertion = noDots(each_ver,true),
            last_ver = last.ver||new_vertion,
            last_vertion = noDots(last_ver,true),
            each_slug = each.slug;
        if(cur_vertion>each_vertion && cur_vertion<=last_vertion){
            return each_slug
        }
    }
};
macos_slug_match(s.osVersion)  //调用函数(s.osVersion为Valine获取的客户端版本号)

注意将 macos_slug_match(s.osVersion) 添加到具体输出版本号html位置前需要做下判断是否为macos系统后再搜索class="vsys" 在其span内加上即可。

代码语言:javascript
复制
    //注意这里的win10版本号显示为win10是因为我之前修改过,valine默认的win10是自带小数点的,可以用parsefloat去掉或者翻下我之前记的笔记看下。
var macOSonly = s.os=='macOS' ? macos_slug_match(s.osVersion) : ""; //仅macos输出判断版本号(默认为 Mac OS)

//最后将 macOSonly 写入对应版本号信息中
l=ifTop+'<span class="vsys">'+s.browser+" / "+s.os+" "+s.osVersion+"<sup> "+macOSonly+" </sup></span>

其他事项

完成以上配置刷新评论即可看到macos用户的客户端版本号后面附带了一条版本号信息,如果需要识别更久远的系统版本,只需对应苹果官方提供的版本号新增macOSver对象数组即可自动判断。需要注意的是,

版本迭代顺序不能乱

函数是根据当前最新版本号和上一代版本最新版本号作为判断逻辑,所以更新时需要依次填写每一代的版本号

代码语言:javascript
复制
    const new_vertion = '12.01',
    macOSver = [{
        "slug": "Monterey",
        "ver": "11.6.1"
    }, {
        "slug": "Big Sur",
        "ver": "10.15.7"
    }, {
        "slug": "Catalina",
        "ver": "10.14.6"
    }, {
        "slug": "Mojave",
        "ver": "10.13.6"
    }, {
        "slug": "High Sierra",
        "ver": "10.12.6"
    }, {
        "slug": "Sierra",
        "ver": "10.11.6"
    }, {
        "slug": "OS X El Capitan",  //新增的
        "ver": "10.10.5"  //新增的(版本号为上一代 OS X Mavericks 的最新版本号)
}];
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • macOS 系统版本号
    • Valine 配置
      • 其他事项
        • 版本迭代顺序不能乱
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档