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)
后添加代码如下,
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内加上即可。
//注意这里的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 的最新版本号)
}];