普通视图

发现新文章,点击刷新页面。
昨天以前Feng

WordPress外链跳转到中间页

2024年12月18日 15:56

记得之前还在Wordpress的时候,曾经捣鼓了一个跳转页(原文章链接),后来换成Typecho后,用的是姜先森的主题,也就直接用着他的跳转方式。回到Wordpress(后简称WP)后,就一直没弄,刚好中午闲逛,又让我看到了其它博主的跳转页,感觉不错,那就赶紧“作业抄起来”。

这个跳转页参照了空白大佬的,太多技术性的咱就不说了,都是抄作业,下面就细说一下步骤:

  • 在网站根目录下新建一个文件夹,例如 mygo ,再在里面新建几个文件如: go.js go.html go.css ,跳转页的图片自己抠一下吧。
  • go.js文件内容:
function checkParent(element, classNames) {
    while (element) {
        if (element.classList && classNames.some(cn => element.classList.contains(cn))) {
            return true;
        }
        element = element.parentElement;
    }
    return false;
}
var excludedClasses = ['card-link', 'friend-item', 'contact-item', 'footer-item']; // 排除的 a 标签类名
window.addEventListener('load', () => {
    document.body.addEventListener('click', function (e) {
        let target = e.target;

        // 确保点击的目标是 <a> 标签
        while (target && target.nodeName !== 'A') {
            target = target.parentNode;
        }

        // 如果是 <a> 标签并且满足以下条件才触发跳转逻辑
        if (target && target.nodeName === 'A' &&
            target.href && // 确保有 href 属性
            target.href !== '#' && // 排除返回顶部链接
            !checkParent(target, excludedClasses) && // 排除特定类名
            !target.href.startsWith('javascript:') && // 排除 javascript: 链接
            !target.href.includes('zfei.net') && // 排除特定域名
            !target.href.includes('057000.xyz') &&
            target.hostname !== window.location.hostname) { // 仅针对外部链接
            e.preventDefault();

            // Base64 编码目标链接
            let encodedUrl = btoa(target.href);
            let url = '/mygo/go.html?target=' + encodedUrl;

            // 在新窗口中打开跳转页面
            window.open(url, '_blank');
        }
    });
});
  • go.html文件内容:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="go.css">
    <title>即将离开知非博客</title>
</head>
<body>
<div class="tiaozhuan-all">
    <div class="tiaozhuan-nrong">
        <div class="tiaozhuan-title">您即将离开 『 知非博客 』 ,跳转到以下外部链接</div>
        <div id="tiaozhuan-link"></div>
        <div class="tiaozhuan-info">请自行识别该链接是否安全,并保管好个人信息。</div>
        <div class="tiaozhuan-button"><a href='' id='direct-link'>继续访问</a></div>
    </div>
</div>
<script>
    const params = new URLSearchParams(window.location.search);
    const encodedTarget = params.get('target');
    const target = atob(encodedTarget); // 使用 atob 进行 Base64 解码
    if (target) {
        document.getElementById('direct-link').href = target;
        document.getElementById('tiaozhuan-link').textContent = '' + target; // 直接显示目标地址    
    } else {
        console.error('未指定重定向目标。');
    }
</script>
</body>
</html>
  • go.css文件内容:
body {
    background: #ececec;
}
.tiaozhuan-all {
    position: relative;
    box-shadow: rgba(0, 0, 0, 0.25) 0px 25px 50px -10px;
    border-radius: 10px;
    background-image: url('go.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #666;
    word-break: break-all;
    max-width: 700px;
    height: 350px;
    text-align: center;
    font-size: 0.85rem;
    overflow: hidden;
    margin: 100px auto 0;
    @include breakpoint('small') {
        aspect-ratio: 2 / 1;
        height: auto;
    }
}
.tiaozhuan-nrong {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20px 20px 30px 20px;
}
.tiaozhuan-title {
    font-size: 1.3rem;
    color: #222;
    line-height: 1.4;
    margin-bottom: 4px;
}
.tiaozhuan-info {
    margin-top: 6px;
}
.tiaozhuan-button {
    margin-top: 20px;
}
.tiaozhuan-button a {
    color: #fc9151;
    border-radius: 4px;
    padding: 10px 30px;
    font-size: .85rem;
    border: 0.5px solid #fc9151;
    display: inline-block;
    text-decoration: none;
}
  • 最后在主题的 footer.php 中添加一段代码:
    <script src="/mygo/go.js"></script>

    其实,对于我们浏览体验来说,这样子操作等于多了一步跳转,体验上总归是不好,但为了愉快的玩耍博客,稳妥一点还是需要的。如果觉得跳转中间页很烦人,浏览器可以装个 Skip Redirect 插件,告别所有网站的中间页跳转,直接抵达目标地址。
    哈哈,跳转功能只运行了几个小时让我撤掉了,正如Jeffer.Z大佬说的:

    有备案加是对的,如果不需要备案就无所谓了,我反正是不加,影响大家跳转流畅度感觉

所以说作为一个没有备案的网站,这种影响大家畅游网络的事宜,确实就不需要了,如果是备案网站的话,建议还是加一个跳转,虽然不太友好,但碍于现实也没什么好办法。

没事敲打一下自己的博客

2024年12月14日 22:34

从Typecho转回Wordpress也有段时间了,也算是各种折腾吧,以往的习惯都是用Debian+LNMP(或者有时懒了,直接就整BT了),Typecho用着轻巧、访问也快,但耐不住俺们这爱折腾的心理,所以这不就又整上Wordpress了呗,既然来了,那就再重新开始折腾一下吧。

这次回到WP,大部分是因为林海草原大佬的一句评论:

我看你说wp运行卡卡的,我推荐你用openlitespeed替代nginx或Apache,运行wp绝对流畅。如果你用宝塔,可以安装openlitespeed。如果想换成其他面板,推荐你用cyberpanel面板,安装好以后它自带openlitespeed。在有openlitespeed存在的情况下,再安装wp以后速度飞快,不比typecho逊色,甚至比typecho还快。

就是因为这一句评论,俺们又耐不住……,所以这不就整起来了,主题选的是设计笔记的Wing,上一次用的也是这家的Adams主题(也是非常喜欢),至于后端当然是林海大佬推荐的Cyberpanel+Litespeed了,自我感觉还是不错的(也有可能是主题作者本身设计的就很优秀,因为在我另外一个测试站点跑起来速度也不错,用的是Docker装的WP)。

边刷剧边写,确实抖不出多少水了,当然就咱这点水准,真让我专业写,估计也好不到哪里去,哈哈。《深潜》这部剧是冲着成毅来的,这帅哥只要不暴雷,他的剧我还是蛮喜欢的,比如说《莲花楼》,不啰嗦了,我还是先刷剧吧。

Memos添加评论及样式美化

2024年10月20日 05:20

这个标题的文章,估计在网上一搜一大把,之所以要写,只是为了日后自己再折腾时方便一些,不用再去找了,没办法,谁叫俺懒呀(从另一方面来讲,我这也是为我的博客水了一篇,计数器上又可以加1了),开始为博客除草了……

memos.webp

  • 为Memos加上Bing随机壁纸、顺便换个字体,这个只要在“设置”--“系统”--“自定义样式”和“自定义脚本”加入相应的代码就可以了,先在“自定义样式”加入:
.status-text{font-size:10px !important;border:none;color:rgb(156,163,175) !important;}
.tag-span,.dark .tag-span{border: 1px solid;border-radius:6px;padding:0px 6px;color:rgb(22,163,74) !important;font-size:12px !important;-webkit-transform: scale(calc(10 / 12));transform-origin: left center;}
.memo-content-text .link{color:rgb(22,163,74) !important;margin-right:-6px;}
header .bg-blue-600{display:none !important;}
.text-lg {font-size: 1rem !important;}
.header-wrapper,.sidebar-wrapper{width: 11rem !important;}
.filter-query-container{padding-bottom:0.5rem;}
html{background-image:url('https://bing.immmmm.com/img/bing?region=zh-CN&type=image');width:100%;height:100vh;background-position:center;background-size:cover;background-attachment:fixed;}
.w-full.bg-zinc-100,.bg-white,.hover\:bg-white:hover,.dark .dark\:bg-zinc-700,.dark .dark\:hover\:bg-zinc-700:hover,.memo-wrapper,.bg-gray-200,.dark .memo-wrapper,.memo-editor-container{--tw-bg-opacity:0.66 !important;}
.dark header.dark\:bg-zinc-800,aside.dark\:bg-zinc-800,.bg-gray-100,.dark html,.dark body{--tw-bg-opacity:0 !important;}
.memo-editor-container>.memo-editor{background-color: transparent !important;}

然后在“自定义脚本”加入相关脚本:

var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'https://cdn.staticfile.org/lxgw-wenkai-screen-webfont/1.7.0/lxgwwenkaiscreen.min.css';
link.media = 'print';
link.onload = function() {
  this.media = 'all';
};
var style = document.createElement('style');
style.innerHTML = '* { font-family: -apple-system,BlinkMacSystemFont,"LXGW WenKai Screen",PingFang SC,Noto Sans,Noto Sans CJK SC,Microsoft YaHei UI,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif,Segoe UI,Roboto,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"; }';
var head = document.head || document.getElementsByTagName('head')[0];
head.appendChild(link);
head.appendChild(style);
  • 为Memos添加Twikoo评论,这会只要在“自定义脚本”加入相关脚本:
// Memos插入 Twikoo 评论
var twikooENV = 'https://twikoo.057000.xyz/'  // Twikoo 评论地址
function addTwikooJS() {
  var memosTwikoo = document.createElement("script");
  memosTwikoo.src = `https://cdn.staticfile.org/twikoo/1.6.39/twikoo.all.min.js`;
  var tws = document.getElementsByTagName("script")[0];
  tws.parentNode.insertBefore(memosTwikoo, tws);
};
function startTwikoo() {
  startTW = setInterval(function(){
    var nowHref = window.location.href;
    var twikooDom = document.querySelector('#twikoo') || '';
    if( nowHref.replace(/^.*\/(m)\/.*$/,'$1') == "m"){
      if(!twikooDom){
        addTwikooJS()
        setTimeout(function() {
          var memoTw = document.querySelector('.gap-2') || '';
          memoTw.insertAdjacentHTML('afterend', '<div id="mtcomment"></div>');
          twikoo.init({
            envId: twikooENV,
            el: '#mtcomment',
            path: nowHref.replace(/^.*=?(http.*\/m\/[0-9]+).*$/,'$1'),
            onCommentLoaded: function () {
              startTwikoo();
            }
          })
        }, 1500)
      }else{
        clearInterval(startTW)
      }
    }
  }, 2000)
}
startTwikoo();

至此Memos样式改了,评论也添加好了,水水一篇到手。其实之前也有折腾过Artalk评论,不过最新版本的Artalk版本,不过怎么折腾,就是加载不出来,再后来看到有些博主反映说是最新版有些问题,那好吧,我就不折腾了,直接用Twikoo,反正不就是一个评论嘛,用啥不是用呀。

最后说明一下,这个添加评论及样式美化,在0.18.1和0.18.0版本上测试没问题,高版本的不一定都好用,还需自个测试哈。

又一次折腾Memos

2024年10月19日 03:48

typecho memos.webp
Memos这好东西一直很喜欢,也倒腾过几次,诸如样式、加评论之类的,之前还是用Wordpress时,按照Jack大佬的教程添加过,用着也还不错。后来因为“软云事件”之后,就没折腾了,这不现在换成Typecho后,又想给博客加一个说说页面,按其他大佬的教程很快就搭建好,不过总感觉不太好看,木木大佬的哔哔广场挺好的,样式也挺喜欢,不过感觉加载有点慢,遂想要不要把诸如js、css这些本地化会不会快一点,本以为可以一气而成,结果……芭比Q

翻车的原因很“简单”,就是这个CSS样式不起效,查看源文件中的css链接可以正常访问看到内容,但就是感觉没有加载,用回木木大佬的,又感觉字体和图标等小了些,看到老张夕格树洞的样式,都比较喜欢,那就先挑个试试看,“盗用”了grid.cssmemos.css文件到本地,结果也是样式全无的感觉,但直接调用确是好的,这点东西算是把我折腾晕了,能力有限直接调用了夕格的css文件,然后稍加修改就成了目前的说说页面,比我之前的说说页面好看,当然跟夕格的比起来,就有点磕碜了。

写到这我还是很好奇,为啥把这两个css放到本地调用,就是不生效,感觉以前抄作业也没这么难呀,放到博客主题目录下,查看源文件点击链接也是可以查看内容的,可就是没用,我都麻了,先暂时这么用着,有路过的大佬再来指点指点,先行谢过了!

国庆假期结束,准备开干

2024年10月8日 05:53

这玩的时间过的是真快呀,感觉都还没玩嗨,这假期就over了,这不明天该开学的开学,该上班的就得上班了……

guoqingjie2024.webp

回头想想,这7天假期也没跑太远,基本上都是在市区里,主要集中在两家新开的商场,反正娃玩的是非常开心,咱这做爹的也就满足了,当然这玩嗨了,钱嘛,估计也花了不少,大家高兴就好,生活嘛不就为了乐一乐嘛。

瞧,这小子又换域名了

2024年10月4日 06:37

俺们这小破站又换域名了,上一篇说过,之前趁着便宜时刀了几个自认为的域名,最终把这个俺们觉得最短,有那么一点意思的域名给启用了(其实中文也没想好,待定吧,先用英文顶着),小姨子域名刚启用的时候,就有好多人说来这个迟早得换(额,不换当然也没啥影响的),但既然都刀了其它域名了,那就换了它吧,反正也没多少人会去关注到我这点改动,小站有时就是可以这么的“随性”。

国庆三天假期马上就要过去了,1号、2号逛新商场(从上个月30号晚上就开始逛了),吃了不少钱,也花了不少钱,没办法,总要贡献点吧,今天一天是“特种兵”式的跑了几个地方,也就一百公里的地方,其中有一半都是山路,来来回回的转,开的我都快晕了,后排的那几位更加,好在中午的铁锅炖鱼还行,连我家那挑剔的小朋友都吃了好几块,也算是不虚此行吧(别问我为什么去,我就是个司机,哈哈)。

明天估计可以待家好好歇歇了,媳妇后天就要上班了,所以得收敛一些,要不然后天上班又要没精神了。

有点想换域名了

2024年9月17日 06:08

记得之前我在写《本博要换域名咯》,就有很多人跟我说这个纯数字的xyz域名用不久,当时的我有点犹豫但还是接着用了半年时间,不过在这之前我也用过其它后缀的域名,而且就在用了这个纯数字的xyz域名之后,我也“偷偷”注册过其它域名,不过都没有让我感到满意,看来减法名单上马上就能增加一批新成员了,哈哈。

yuming.webp

跟着这些老字辈的步伐(如:老张、老麦、老何等等),我也注册了:laoli.xyz、laoliji.com,当然都是新号或优惠券的加持下注册的,比后面的续费价格还是低很多的,可能正是因为注册价格低,才让我脑子一热给注册了吧。然后前几天.net有活动,我也手痒注册了个:zfei.net(美名:知非,当然这可不是《孤舟》的周知非哈,我只是觉得知非这个词还不错,比较有免的不是有:知乎,哈哈)。

不过虽然说想换域名,但是目前.com、.net续费都不便宜,非数字的.xyz也一样,差不多都要10刀左右了,跟我这纯数字的xyz不能比呀,那些续费一年的钱我都可以续费10年了(不香嘛,也不太影响访问,收录啥的俺早就看淡了),所以啊,俺们还真还没想好,各位路过的看客老爷们也可以给俺个建议哈(听听的得由我哈,哈哈)。

最近的事@8

2024年9月16日 07:33

好久没更新了,草长的有点高了吧,那就来除除吧。既然标题仍是最近的事,那就来啰嗦一下,顺便日后自己也能“回味”一番。

先来说说博客,俺们又换了个主题,并且还魔改了一些功能,当然这些要么是搬抄了姜先森博客的一些功能,要么就是自己带着ChatGpt一顿乱“打”,就敲出了现在你们看到的这个样子(你说这个跟作者的主题样子差不多?本来就是,我只是小小魔改,加了一些自己觉的有那么点用的功能,让我得瑟一下哈)。没办法,咱没有像那些大佬那般(1900、老麦,老姜等)厉害,动不动就能整出一些俺们玩不会的,所以就“小刀”乱舞吧。
说完博客,自然要来说说主机,前阵子用阿里云300元的学生券(别问我怎么来的,问了我也不说,反正俺们是正在光明得来的),“猫”了好几个晚上,才让俺“捞”回来一台HK的轻量,这回就用BT了,懒的敲那一堆代码(懒了,没办法),顺便就把这个博客迁过去了,不过之前买的小厂的Hk还没到期,就顺手做了一个套娃,反代加缓存一下,就是目前这个样子,各位兄台可以刷刷看,有用没用的的俺们不好说,反正我觉得挺好玩的,先玩一会呗。不过这小厂的HK倒是真便宜,9元一个月,2H2G30G外加50G,之前用的感觉也挺不错,至少比架在Cloudcone上访问来的快,鉴于之前软云的事件,这种小厂的俺现在都是一个月一续,数据天天备份,我反正不怕,大不了搭个环境嘛。

2024zqj01.webp

马上就要到中秋节了,今年的行情不太行,朋友单位连月饼都没有发,这又降薪,绩效又不及时发,现在的事业单位也不太好待呀,俺们小公司都老早就把月饼发了,工资也不带欠的,当然更不能给我降薪了,要不然……。唉,前几天又说要延迟退休了,俺反正保底最早都要63岁了,NND。

好了,扯了一堆废话,很晚了,等手机资料恢复好,也要呼呼去了。也不知道是哪根筋抽了,非得把手机系统从18.0降到17.6RC(酷安上看到好多说好用,加上我对18的系统有点腻味了,主要还是一些软件有问题用不了),这不又要晚睡了。

最近的事@7

2024年7月24日 07:08

好久没有以“最近的事”为标题了,用这个标题可以笼统的写一下最近的所见所闻还是可以的吧,那么开始哔哔啦。

snbmzcf.webp

最近追的剧就是它了——《少年白马醉春风》,这部是去年《少年歌行》的姊妹篇,但我感觉更像是前传,讲述的是《少年歌行》中上一辈的光辉少年史,故事讲述了镇西侯府公子百里东君不喜文武,独爱酿酒,与已故好友叶云定下了酒仙之约,然而天不遂人愿,百里东君机缘巧合之下,拜入李长生门下习武。在此期间,百里东君结识了玥瑶,还与改名为叶鼎之的叶云重逢,在一众友人的影响之下,素来玩世不恭的百里东君开始承担更多的责任。时间一晃多年过去,叶鼎之被人利用发动战争,百里东君率众抵抗,决心挽救天下苍生,也要救赎曾经挚友的故事。有些演员的安排比较有趣,比如在《少年歌行》中饰演百里东君的言杰,在《少年白马醉春风》中饰演的是百里东君的父亲(一人饰演父子两个角色,厉害),当然还有一些老面孔也会出演,这里就不剧透了,喜欢的自己去看吧。像我这种就中午看个两三集的,目前的更新进度还够我看上几天的,后续可能……

ios to android.webp

最近换了个手机,手中的iPhone 15换成了媳妇之前用的小米 10S,算是降级体验吧,起因是媳妇想找部手机折腾一下,她原来有一个XR闲置的,但内存只有128G,之前换小米10S也是因为内存不够用才换的,结果256G的10S也在去年因空间不足,换成了K60至尊 1T(1T,我想想应该够她用个2年吧),然后10S也就跟着闲置了。所以这回她想用iPhone折腾的时候,我的256G的15自然就成了目标,当然按她的话说她可以用XR的,但是我觉得那128G的空间加上XR的机龄,总感觉不太靠谱,所以我就主动把主力机从15搬到了10S上,先用几天看看,习惯于iPhone的系统,换到安卓真还得适应一下,给我的感觉是MIUI的广告是真的多,不过好在找到了去除广告的补丁,打完后相比之前好很多了。当然MIUI的优点也是有的,比如骚扰电话、垃圾短信的拦截,比iPhone好使多了,iPhone装了一些应用还是挡不住,还是那句话,先用用看,反正15还在我手上,哈哈。

typecho.webp

最近又在折腾博客了,这不又从Wordpress转到Typecho了,前者的臃肿加上服务器的变化(软云,俺们头一回翻车的主机商),所以干脆换成轻量化的Typecho,让它访问稍快一点吧。主题用的是姜先森的,拿了一包“烟”换来的(对于我这个不抽烟的人,一包烟的价格还真是一脸懵),到手后又经我一翻魔改,反正就变成如今这副模样了(相比昨天又有变化了,最直观的是我又把头像由首字母改成各位原来的了,哪天觉得慢了,说不定又……)。

vps-hk.webp

最近也在折腾VPS,不过都还在测试中,用段时间如果稳定了再来啰嗦一下,先让俺测试测试。软云事件之后,就重新用回Cloudcone了,但感觉访问还不是很快,特别是晚上,还是惦记HK的机子,这不最近在论坛上看到有,就先搞起来了,不过这会我都是月付了,小厂商还是有点……(都是软云给整的),加上每天备份,应该不惧跑路吧。

没啥文字功底却总想写点东西

2024年7月17日 07:44

这个标题,一开始并不是我想取的,自从那天看了老张博客的《没啥文字功底却总想写点东西》,感触颇丰!这篇博文光评论都有160条了,咱不论是非(感觉也没有什么好评论的,各有各的观点嘛),一路看下来,我觉得我这博客上写的东西也有很多如评论者所说的,如果他(或她)看的是我博客,估计那一刹那我可能会有点接受不了,毕竟言词不是一般的激励(好在如此“好事”并未发生在我头上,我可以暗自庆幸一下了)。

请输入图片描述

没啥文字功底却总想写点东西,对于这段文字,ChatGpt 4O给的解释是:

这句话的意思是,一个人虽然没有很好的写作技巧或文学素养,但仍然有写作的愿望和冲动。简单来说,就是虽然写作水平不高,但依然很想写东西。

说的挺直白的,仿佛就看到了我自己,啰啰嗦嗦写一堆,可能也只是狗屁不通的一段废话而已,但是我还是写了,因为这是我自己的博客(自己的地盘),在这我可以自由的记载和分享那些我觉得或值得分享或记录的,这就够了,所以往后的日子,我依旧会如此——没啥文字功底却总想写点东西。

哈哈,Typecho我又来了

2024年7月5日 18:40

 

哈哈,Typecho我又来了

 

2024-7-12:本来想更一篇的(带了几行代码),结果提交后让宝塔防火墙给掐了,然后………………白写了,这到底是一视同仁呀,兴致全无,咱今天不写了//

2024-7-13:继续折腾,之前已经把Gravatar换成Cravatar,但还是会抽风,再次模仿姜先森,也把头像改成首字母或首汉字等显示了,虽然看着有点(丑,反正我没说哈),但先这么的吧。返回顶部的按钮也从原来的png图片换了,用着先----->>

2024-7-14:将首页的菜单栏也给隐藏了,在哪?先找找看吧,哈哈

Memos添加评论及样式美化

2024年10月19日 21:20

这个标题的文章,估计在网上一搜一大把,之所以要写,只是为了日后自己再折腾时方便一些,不用再去找了,没办法,谁叫俺懒呀(从另一方面来讲,我这也是为我的博客水了一篇,计数器上又可以加1了),开始为博客除草了……

memos.webp

  • 为Memos加上Bing随机壁纸、顺便换个字体,这个只要在“设置”--“系统”--“自定义样式”和“自定义脚本”加入相应的代码就可以了,先在“自定义样式”加入:
.status-text{font-size:10px !important;border:none;color:rgb(156,163,175) !important;}
.tag-span,.dark .tag-span{border: 1px solid;border-radius:6px;padding:0px 6px;color:rgb(22,163,74) !important;font-size:12px !important;-webkit-transform: scale(calc(10 / 12));transform-origin: left center;}
.memo-content-text .link{color:rgb(22,163,74) !important;margin-right:-6px;}
header .bg-blue-600{display:none !important;}
.text-lg {font-size: 1rem !important;}
.header-wrapper,.sidebar-wrapper{width: 11rem !important;}
.filter-query-container{padding-bottom:0.5rem;}
html{background-image:url('https://bing.immmmm.com/img/bing?region=zh-CN&type=image');width:100%;height:100vh;background-position:center;background-size:cover;background-attachment:fixed;}
.w-full.bg-zinc-100,.bg-white,.hover\:bg-white:hover,.dark .dark\:bg-zinc-700,.dark .dark\:hover\:bg-zinc-700:hover,.memo-wrapper,.bg-gray-200,.dark .memo-wrapper,.memo-editor-container{--tw-bg-opacity:0.66 !important;}
.dark header.dark\:bg-zinc-800,aside.dark\:bg-zinc-800,.bg-gray-100,.dark html,.dark body{--tw-bg-opacity:0 !important;}
.memo-editor-container>.memo-editor{background-color: transparent !important;}

然后在“自定义脚本”加入相关脚本:

var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'https://cdn.staticfile.org/lxgw-wenkai-screen-webfont/1.7.0/lxgwwenkaiscreen.min.css';
link.media = 'print';
link.onload = function() {
  this.media = 'all';
};
var style = document.createElement('style');
style.innerHTML = '* { font-family: -apple-system,BlinkMacSystemFont,"LXGW WenKai Screen",PingFang SC,Noto Sans,Noto Sans CJK SC,Microsoft YaHei UI,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif,Segoe UI,Roboto,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"; }';
var head = document.head || document.getElementsByTagName('head')[0];
head.appendChild(link);
head.appendChild(style);
  • 为Memos添加Twikoo评论,这会只要在“自定义脚本”加入相关脚本:
// Memos插入 Twikoo 评论
var twikooENV = 'https://twikoo.057000.xyz/'  // Twikoo 评论地址
function addTwikooJS() { 
  var memosTwikoo = document.createElement("script");
  memosTwikoo.src = `https://cdn.staticfile.org/twikoo/1.6.39/twikoo.all.min.js`;
  var tws = document.getElementsByTagName("script")[0];
  tws.parentNode.insertBefore(memosTwikoo, tws);
};
function startTwikoo() {
  startTW = setInterval(function(){
    var nowHref = window.location.href;
    var twikooDom = document.querySelector('#twikoo') || '';
    if( nowHref.replace(/^.*\/(m)\/.*$/,'$1') == "m"){
      if(!twikooDom){
        addTwikooJS()
        setTimeout(function() {
          var memoTw = document.querySelector('.gap-2') || '';
          memoTw.insertAdjacentHTML('afterend', '<div id="mtcomment"></div>');
          twikoo.init({
            envId: twikooENV,
            el: '#mtcomment',
            path: nowHref.replace(/^.*=?(http.*\/m\/[0-9]+).*$/,'$1'),
            onCommentLoaded: function () {
              startTwikoo();
            }
          })
        }, 1500)
      }else{
        clearInterval(startTW)
      }
    }
  }, 2000)
}
startTwikoo();

至此Memos样式改了,评论也添加好了,水水一篇到手。其实之前也有折腾过Artalk评论,不过最新版本的Artalk版本,不过怎么折腾,就是加载不出来,再后来看到有些博主反映说是最新版有些问题,那好吧,我就不折腾了,直接用Twikoo,反正不就是一个评论嘛,用啥不是用呀。

最后说明一下,这个添加评论及样式美化,在0.18.1和0.18.0版本上测试没问题,高版本的不一定都好用,还需自个测试哈。

又一次折腾Memos

2024年10月18日 19:48

typecho memos.webp
Memos这好东西一直很喜欢,也倒腾过几次,诸如样式、加评论之类的,之前还是用Wordpress时,按照Jack大佬的教程添加过,用着也还不错。后来因为“软云事件”之后,就没折腾了,这不现在换成Typecho后,又想给博客加一个说说页面,按其他大佬的教程很快就搭建好,不过总感觉不太好看,木木大佬的哔哔广场挺好的,样式也挺喜欢,不过感觉加载有点慢,遂想要不要把诸如js、css这些本地化会不会快一点,本以为可以一气而成,结果……芭比Q

翻车的原因很“简单”,就是这个CSS样式不起效,查看源文件中的css链接可以正常访问看到内容,但就是感觉没有加载,用回木木大佬的,又感觉字体和图标等小了些,看到老张夕格树洞的样式,都比较喜欢,那就先挑个试试看,“盗用”了grid.cssmemos.css文件到本地,结果也是样式全无的感觉,但直接调用确是好的,这点东西算是把我折腾晕了,能力有限直接调用了夕格的css文件,然后稍加修改就成了目前的说说页面,比我之前的说说页面好看,当然跟夕格的比起来,就有点磕碜了。

写到这我还是很好奇,为啥把这两个css放到本地调用,就是不生效,感觉以前抄作业也没这么难呀,放到博客主题目录下,查看源文件点击链接也是可以查看内容的,可就是没用,我都麻了,先暂时这么用着,有路过的大佬再来指点指点,先行谢过了!

国庆假期结束,准备开干

2024年10月7日 21:53

这玩的时间过的是真快呀,感觉都还没玩嗨,这假期就over了,这不明天该开学的开学,该上班的就得上班了……

guoqingjie2024.webp

回头想想,这7天假期也没跑太远,基本上都是在市区里,主要集中在两家新开的商场,反正娃玩的是非常开心,咱这做爹的也就满足了,当然这玩嗨了,钱嘛,估计也花了不少,大家高兴就好,生活嘛不就为了乐一乐嘛。

瞧,这小子又换域名了

2024年10月3日 22:37

俺们这小破站又换域名了,上一篇说过,之前趁着便宜时刀了几个自认为的域名,最终把这个俺们觉得最短,有那么一点意思的域名给启用了(其实中文也没想好,待定吧,先用英文顶着),小姨子域名刚启用的时候,就有好多人说来这个迟早得换(额,不换当然也没啥影响的),但既然都刀了其它域名了,那就换了它吧,反正也没多少人会去关注到我这点改动,小站有时就是可以这么的“随性”。

国庆三天假期马上就要过去了,1号、2号逛新商场(从上个月30号晚上就开始逛了),吃了不少钱,也花了不少钱,没办法,总要贡献点吧,今天一天是“特种兵”式的跑了几个地方,也就一百公里的地方,其中有一半都是山路,来来回回的转,开的我都快晕了,后排的那几位更加,好在中午的铁锅炖鱼还行,连我家那挑剔的小朋友都吃了好几块,也算是不虚此行吧(别问我为什么去,我就是个司机,哈哈)。

明天估计可以待家好好歇歇了,媳妇后天就要上班了,所以得收敛一些,要不然后天上班又要没精神了。

有点想换域名了

2024年9月16日 22:08

记得之前我在写《本博要换域名咯》,就有很多人跟我说这个纯数字的xyz域名用不久,当时的我有点犹豫但还是接着用了半年时间,不过在这之前我也用过其它后缀的域名,而且就在用了这个纯数字的xyz域名之后,我也“偷偷”注册过其它域名,不过都没有让我感到满意,看来减法名单上马上就能增加一批新成员了,哈哈。

yuming.webp

跟着这些老字辈的步伐(如:老张、老麦、老何等等),我也注册了:laoli.xyz、laoliji.com,当然都是新号或优惠券的加持下注册的,比后面的续费价格还是低很多的,可能正是因为注册价格低,才让我脑子一热给注册了吧。然后前几天.net有活动,我也手痒注册了个:zfei.net(美名:知非,当然这可不是《孤舟》的周知非哈,我只是觉得知非这个词还不错,比较有免的不是有:知乎,哈哈)。

不过虽然说想换域名,但是目前.com、.net续费都不便宜,非数字的.xyz也一样,差不多都要10刀左右了,跟我这纯数字的xyz不能比呀,那些续费一年的钱我都可以续费10年了(不香嘛,也不太影响访问,收录啥的俺早就看淡了),所以啊,俺们还真还没想好,各位路过的看客老爷们也可以给俺个建议哈(听听的得由我哈,哈哈)。

最近的事@8

2024年9月15日 23:33

好久没更新了,草长的有点高了吧,那就来除除吧。既然标题仍是最近的事,那就来啰嗦一下,顺便日后自己也能“回味”一番。

先来说说博客,俺们又换了个主题,并且还魔改了一些功能,当然这些要么是搬抄了姜先森博客的一些功能,要么就是自己带着ChatGpt一顿乱“打”,就敲出了现在你们看到的这个样子(你说这个跟作者的主题样子差不多?本来就是,我只是小小魔改,加了一些自己觉的有那么点用的功能,让我得瑟一下哈)。没办法,咱没有像那些大佬那般(1900、老麦,老姜等)厉害,动不动就能整出一些俺们玩不会的,所以就“小刀”乱舞吧。
说完博客,自然要来说说主机,前阵子用阿里云300元的学生券(别问我怎么来的,问了我也不说,反正俺们是正在光明得来的),“猫”了好几个晚上,才让俺“捞”回来一台HK的轻量,这回就用BT了,懒的敲那一堆代码(懒了,没办法),顺便就把这个博客迁过去了,不过之前买的小厂的Hk还没到期,就顺手做了一个套娃,反代加缓存一下,就是目前这个样子,各位兄台可以刷刷看,有用没用的的俺们不好说,反正我觉得挺好玩的,先玩一会呗。不过这小厂的HK倒是真便宜,9元一个月,2H2G30G外加50G,之前用的感觉也挺不错,至少比架在Cloudcone上访问来的快,鉴于之前软云的事件,这种小厂的俺现在都是一个月一续,数据天天备份,我反正不怕,大不了搭个环境嘛。

2024zqj01.webp

马上就要到中秋节了,今年的行情不太行,朋友单位连月饼都没有发,这又降薪,绩效又不及时发,现在的事业单位也不太好待呀,俺们小公司都老早就把月饼发了,工资也不带欠的,当然更不能给我降薪了,要不然……。唉,前几天又说要延迟退休了,俺反正保底最早都要63岁了,NND。

好了,扯了一堆废话,很晚了,等手机资料恢复好,也要呼呼去了。也不知道是哪根筋抽了,非得把手机系统从18.0降到17.6RC(酷安上看到好多说好用,加上我对18的系统有点腻味了,主要还是一些软件有问题用不了),这不又要晚睡了。

最近的事@7

2024年7月23日 23:08

好久没有以“最近的事”为标题了,用这个标题可以笼统的写一下最近的所见所闻还是可以的吧,那么开始哔哔啦。

snbmzcf.webp

最近追的剧就是它了——《少年白马醉春风》,这部是去年《少年歌行》的姊妹篇,但我感觉更像是前传,讲述的是《少年歌行》中上一辈的光辉少年史,故事讲述了镇西侯府公子百里东君不喜文武,独爱酿酒,与已故好友叶云定下了酒仙之约,然而天不遂人愿,百里东君机缘巧合之下,拜入李长生门下习武。在此期间,百里东君结识了玥瑶,还与改名为叶鼎之的叶云重逢,在一众友人的影响之下,素来玩世不恭的百里东君开始承担更多的责任。时间一晃多年过去,叶鼎之被人利用发动战争,百里东君率众抵抗,决心挽救天下苍生,也要救赎曾经挚友的故事。有些演员的安排比较有趣,比如在《少年歌行》中饰演百里东君的言杰,在《少年白马醉春风》中饰演的是百里东君的父亲(一人饰演父子两个角色,厉害),当然还有一些老面孔也会出演,这里就不剧透了,喜欢的自己去看吧。像我这种就中午看个两三集的,目前的更新进度还够我看上几天的,后续可能……

ios to android.webp

最近换了个手机,手中的iPhone 15换成了媳妇之前用的小米 10S,算是降级体验吧,起因是媳妇想找部手机折腾一下,她原来有一个XR闲置的,但内存只有128G,之前换小米10S也是因为内存不够用才换的,结果256G的10S也在去年因空间不足,换成了K60至尊 1T(1T,我想想应该够她用个2年吧),然后10S也就跟着闲置了。所以这回她想用iPhone折腾的时候,我的256G的15自然就成了目标,当然按她的话说她可以用XR的,但是我觉得那128G的空间加上XR的机龄,总感觉不太靠谱,所以我就主动把主力机从15搬到了10S上,先用几天看看,习惯于iPhone的系统,换到安卓真还得适应一下,给我的感觉是MIUI的广告是真的多,不过好在找到了去除广告的补丁,打完后相比之前好很多了。当然MIUI的优点也是有的,比如骚扰电话、垃圾短信的拦截,比iPhone好使多了,iPhone装了一些应用还是挡不住,还是那句话,先用用看,反正15还在我手上,哈哈。

typecho.webp

最近又在折腾博客了,这不又从Wordpress转到Typecho了,前者的臃肿加上服务器的变化(软云,俺们头一回翻车的主机商),所以干脆换成轻量化的Typecho,让它访问稍快一点吧。主题用的是姜先森的,拿了一包“烟”换来的(对于我这个不抽烟的人,一包烟的价格还真是一脸懵),到手后又经我一翻魔改,反正就变成如今这副模样了(相比昨天又有变化了,最直观的是我又把头像由首字母改成各位原来的了,哪天觉得慢了,说不定又……)。

vps-hk.webp

最近也在折腾VPS,不过都还在测试中,用段时间如果稳定了再来啰嗦一下,先让俺测试测试。软云事件之后,就重新用回Cloudcone了,但感觉访问还不是很快,特别是晚上,还是惦记HK的机子,这不最近在论坛上看到有,就先搞起来了,不过这会我都是月付了,小厂商还是有点……(都是软云给整的),加上每天备份,应该不惧跑路吧。

没啥文字功底却总想写点东西

2024年7月16日 23:44

这个标题,一开始并不是我想取的,自从那天看了老张博客的《没啥文字功底却总想写点东西》,感触颇丰!这篇博文光评论都有160条了,咱不论是非(感觉也没有什么好评论的,各有各的观点嘛),一路看下来,我觉得我这博客上写的东西也有很多如评论者所说的,如果他(或她)看的是我博客,估计那一刹那我可能会有点接受不了,毕竟言词不是一般的激励(好在如此“好事”并未发生在我头上,我可以暗自庆幸一下了)。

请输入图片描述

没啥文字功底却总想写点东西,对于这段文字,ChatGpt 4O给的解释是:

这句话的意思是,一个人虽然没有很好的写作技巧或文学素养,但仍然有写作的愿望和冲动。简单来说,就是虽然写作水平不高,但依然很想写东西。

说的挺直白的,仿佛就看到了我自己,啰啰嗦嗦写一堆,可能也只是狗屁不通的一段废话而已,但是我还是写了,因为这是我自己的博客(自己的地盘),在这我可以自由的记载和分享那些我觉得或值得分享或记录的,这就够了,所以往后的日子,我依旧会如此——没啥文字功底却总想写点东西。

哈哈,Typecho我又来了

2024年7月5日 10:40

哈哈,Typecho我又来了

2024-7-12:本来想更一篇的(带了几行代码),结果提交后让宝塔防火墙给掐了,然后………………白写了,这到底是一视同仁呀,兴致全无,咱今天不写了//

2024-7-13:继续折腾,之前已经把Gravatar换成Cravatar,但还是会抽风,再次模仿姜先森,也把头像改成首字母或首汉字等显示了,虽然看着有点(丑,反正我没说哈),但先这么的吧。返回顶部的按钮也从原来的png图片换了,用着先----->>

2024-7-14:将首页的菜单栏也给隐藏了,在哪?先找找看吧,哈哈

最近在捣鼓点啥

2024年4月19日 21:54

在写这个文章标题时有点犯迷糊,不知道取啥标题适合,“挣扎”了许久,最后觉得还是用这个标题吧,看着像是在搞什么明堂似的。

话说回来,最近捣鼓的事很多,但大多都拿不上台面,唯一算是搞成的估摸就是《给WordPress添加一个跳转中间页》,其它的都是半达子货,虽然事没成,但花在上面的时间可一点没少,可谓做了很多无谓事,下面就来唠嗑唠嗑。

  • Headlease Wordpress,这个之前有提过,虽然搞了个半成品(严格上算是一成品,离半成还有点远233),折腾过PHP、Html,甚至还想通过Astro、Next.js、11ty来弄,结果就是花了时间啥也没搞成,自己都感觉自己有点“疯”了。
  • Ghost,没错,在Headlease Wordpress折腾的过程中,还顺便又提了提Ghost,之所以要捣鼓Ghost,是看到只是玩玩在用的就是Ghost+11ty的架构,看着真是很吸引,但苦于没这个技术实力,结果是Ghost是搭建好了,至于用11ty做前端(除了11ty,还看过其它的,就跟上面Headlease Wordpress提到的Astro、Next.js等),这就完全不会,所以也没折腾成……
    其实为什么这么执迷于Headlease系列,是觉得这种后端(如Wordpress、Ghost等)+前端的方式比较吸引我,而且前端纯静态后不仅速度快了,安全性也是提升不少,不过如果想实现这种架构,像我这种拿来主义的老白,估计难度不小,后续不知道还不会再折腾下去,虽然心里还是很想,但…………。
    除了上述讲的折腾点,还有一些小的就不一一道来了,感觉折腾的过程很好,但的确是有点浪费时间(只是对于我来讲),好几次整到个半夜,结果回头一看,啥也没搞成,满满的失败感。过了几天发现又想折腾了,然后又“接着奏乐,接着嗨”,人生嘛,不折腾一下,活着都无味呀,所以有时间还是要折腾一下、捣鼓一下,当然不能熬夜,年纪大了,伤不起,哈哈。

给Wordpress添加一个跳转中间页

2024年4月13日 17:32

看到好多人的博客都有这么一个“神奇”的功能,作为一个备案过的网站我认为确实有需要,毕竟要小心对待嘛,但如果是部署是在那啥且也没有那啥的,个人感觉有或没有其实也没那么重要,管它跳转到哪里跟我又有何关系,不过既然人家有了,我没有,是不是感觉会缺少点啥(这个心理呀,真是要不得,不过倒是又给了自己一个折腾的理由)。

本人作为一个资深的小老白,让我自己写完代码那是万万不可能的,但现在有ChatGpt呀,这玩意已经帮了我不知道多少次忙了,在此我非常正式的感谢一下OpenAI公司,你们太牛了!好了废话不多说这就开干吧。要实现所有链接(文章、评论)都要强制跳转到中间页(这里以go.php),也不是很难,在主题的functions.php中加入相应的代码:

/*链接跳转*/
function redirect_external_links($content) {
    $home_url = home_url(); // 获取WordPress站点的主URL
    // 使用正则表达式匹配所有链接
    return preg_replace_callback('#<a\s+[^>]*href=["\'](.*?)["\'][^>]*>#is', function($matches) use ($home_url) {
        $url = $matches[1]; // 提取URL
        // 检查是否为外部链接
        if (strpos($url, $home_url) === false && filter_var($url, FILTER_VALIDATE_URL)) {
            // 修改URL,通过go.php进行重定向
            $new_url = '/go.php?url=' . urlencode($url);
            return str_replace($matches[1], $new_url, $matches[0]);
        } else {
            // 内部链接不修改
            return $matches[0];
        }
    }, $content);
}
// 添加过滤器,处理文章内容中的链接
add_filter('the_content', 'redirect_external_links');
// 处理评论中的链接
add_filter('comment_text', 'redirect_external_links');
// 处理评论作者链接
function filter_comment_author_link($author_link) {
    $home_url = get_option('home');
    return redirect_external_links($author_link);
}
add_filter('get_comment_author_link', 'filter_comment_author_link');

然后在Wordpress根目录下创建一个go.php文件,具体参考代码如下:

<?php
// 加载WordPress环境和模板
require_once('wp-load.php');
// 安全检查,确保传递的URL是有效的,防止重定向攻击
$raw_url = isset($_GET['url']) ? $_GET['url'] : 'http://057000.xyz';
$url = filter_var($raw_url, FILTER_VALIDATE_URL) ? $raw_url : 'http://057000.xyz';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>页面跳转--Feng's Blog</title>
<style>
    body {
        padding: 0;
        margin: 0;
        font-family: Arial, sans-serif;
        background: #f1f1f1;
        text-align: left;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        height: 100vh;
    }
    .container {
    background: #fff;
    padding: 20px;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    }
    .url, .countdown {
        margin: 10px 0;
    }
    a.button {
    background: #3498db;
    color: white;
    padding: 10px 20px;
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.3s;
    }
    a.button:hover {
    background: #2980b9;
   }
</style>
<script>
    var countdown = 10; // Countdown in seconds
    var url = '';
    function redirectToUrl() {
        window.location.href = url;
    }
    function updateCountdown() {
        var countdownElement = document.getElementById('countdown');
        countdownElement.innerHTML = `将于 ${countdown} 秒后自动打开...`;
        if(countdown === 0) {
            redirectToUrl();
        } else {
            countdown--;
            setTimeout(updateCountdown, 2000);
        }
    }
    window.onload = function() {
        const params = new URLSearchParams(window.location.search);
        url = params.get('url') || 'http://057000.xyz'; // Default URL if none provided
        var urlElement = document.getElementById('url');
        urlElement.innerHTML = `<strong>即将访问:</strong> ${url}`;
        setTimeout(updateCountdown, 2000); // Start countdown
    };
</script>
</head>
<body>
<div class="container">
    <h1>即将离开Feng's Blog...</h1>
    <p class="url" id="url"></p>
    <p>您即将进行页面跳转,请注意您的帐号和财产安全。</p>
    <p class="countdown" id="countdown"></p>
     <a href="#" onclick="redirectToUrl();" class="button">继续访问</a>
</div>
</body>
</html>

记得将上述代码中的057000.xyz改成自己的博客地址就可以了,大概的效果图如下:

好了,咱们自己的跳转页也就有了,哈哈。

Hello Astro

2024年3月25日 20:53

之前看老麦的博客的文章,说是从NextJS换成Astro,很适合搭建静态博客,使用灵活,过程也不复杂,看的我又有折腾的方向了。目前我的博客除了主站在用的Wordpress外,还有其它的如:Typecho,Xlog,静态博客曾经也折腾过Hexo,Hugo(不过那都是很久的事了,其中搭建/使用等几乎也忘得差不多了),当然其它诸如:Ghost、Halo这种有后台的俺们以前也是用过的。

既然Astro这么好玩,那就耍起来呗,官方的教程都有中文的,不得不夸一下,按着步骤来就好,这里需要注意的是要选好主题,这玩意据说换主题比较麻烦(这点不像其它那么方便,但也丝毫不能影响咱们这折腾的心),选好主题后一番部署基本就差不多了。一些小修改啥的基本都是照着官方教程来就可以了,非常简单,关键信息设置好就可以传到自己的Github上,再用Vercel部署就可以了(当然也可以先本地查看一下)。
Astro最让我困惑的是怎么给它添加评论,折腾了很久也没能搞定,后来还是在老麦的指导下解决了,再次感谢老麦,放弃自己中午休息还给我写教程,感谢感谢!那么下面就来记录一下Astro添加评论的过程。

  • 在组件目录下src/components/下新建一个文件,例如Comments.astro,文件名记牢,后面会引用
    1. 如果添加Giscus评论,按照Giscus官方先部署好相关,会给一个相应的配置代码复制好,然后再在前面新建的组件Comments.astro中添加如下代码:
      <section class="giscus mx-auto mt-10 w-full"></section>
      <script
      src="https://giscus.app/client.js"
      data-repo="username/repo"
      data-repo-id="repo-id"
      data-category="Blog Posts Comments"
      data-category-id="DIC_kwDOB3LMn84CaXpn"
      data-mapping="url"
      data-strict="0"
      data-reactions-enabled="1"
      data-emit-metadata="0"
      data-input-position="bottom"
      data-theme="preferred_color_scheme"
      data-lang="en"
      data-loading="lazy"
      crossorigin="anonymous"
      async
      </script>

      这里只是给一个示例代码,实际以Giscus给的为准,我这个只是参考一下
      2.添加Twikoo评论,也是按Twikoo教程部署好相关,然后按以下代码具体修改

      <div id="tcomment"></div>
      <script>
      document.addEventListener('astro:page-load', () => {
      function loadTwikoo() {
      const commentsContainer = document.getElementById('tcomment');
      if (commentsContainer) {
      const script = document.createElement('script');
      script.src = 'https://cdn.staticfile.org/twikoo/1.6.32/twikoo.all.min.js';
      script.async = true;
      script.onload = () => {
        const initScript = document.createElement('script');
        initScript.innerHTML = `
          twikoo.init({
              envId: '您的环境id',
              el: '#tcomment',
          });
      `;
        document.body.appendChild(initScript);
      };
      document.body.appendChild(script);
      }
      }
      loadTwikoo();
      });
      </script>

      3.添加Artalk评论可以参照Twikoo的,部分修改一下就行
      4.添加Waline评论,参照以下代码

      <link rel="stylesheet" href="https://unpkg.com/@waline/client@v3/dist/waline.css"/>
      <div id="waline"></div>
      <script type="module">
      import { init } from 'https://unpkg.com/@waline/client@v3/dist/waline.js';
      init({
      el: '#waline',
      serverURL: 'https://waline.vercel.app',
      });
      </script>

      暂时先想到这4个评论,除了Giscus和Waline是我自己捣鼓的外,另外两个都是在老麦的指导下搞定的。定义好组件Comments.astro后就可以添加自己想要的评论了,在src/layouts/PostDetails.astro中添加一行代码就可以了,比如:

      //其它代码……
      <Content />
      </article>
      <Comments />  //添加这一段代码引用一下我们前面定义的组件
      </main>
      <Footer />
      </Layout>
      //其它代码……

      自此,Astro的评论就搞定了,折腾带来的乐趣,有时确实无法形容,至于要不要主用Astro,暂且不说(说不定乐趣过了也就不折腾了)

博客的再一次折腾

2024年3月19日 12:28

博客之前一直都是用的军哥的LNMP(Linux+Nginx+MySQL+PHP)一键安装脚本搭建WordPress网站,中间偶尔也用过宝塔、1pancel等,但用的最久的还是LNMP,但从2023年下半年,随着作者军哥用爱发电很多年后将网站卖给某公司,有大神发现LNMP.COM网站的代码里被恶意植入了后门代码,而该公司同时收购了oneinstack,同时期出现了恶意代码,LNMP和oneinstack一键网站环境安装包被广泛弃用。

当然替代方案还是有很多的,但还是想借此机会折腾一下新的,那就尝试一下秋水在佬的LCMP(Linux + Caddy + MariaDB + PHP)脚本(Github地址)。Caddy 2是一款现代、轻量级的开源Web服务器,以其简单的配置语法、内置自动HTTPS支持、动态配置和服务发现、现代的HTTP/2和HTTP/3支持、插件系统以及易于部署和管理而脱颖而出。当然论功能、生态、性能等,目前还是Nginx更强。

下面就来介绍如何用秋水大佬的LCMP一键脚本搭建WordPress。

目前支持的系统

  • Enterprise Linux 7 (CentOS 7, RHEL 7)
  • Enterprise Linux 8 (CentOS Stream 8, RHEL 8, Rocky Linux 8, AlmaLinux 8, Oracle Linux 8)
  • Enterprise Linux 9 (CentOS Stream 9, RHEL 9, Rocky Linux 9, AlmaLinux 9, Oracle Linux 9)
  • Debian 10
  • Debian 11
  • Debian 12
  • Ubuntu 20.04
  • Ubuntu 22.04

目前支持的软件

  • Caddy 2
  • MariaDB 10.11
  • PHP-7.4, PHP-8.0, PHP-8.1, PHP-8.2, PHP-8.3

开搞之前先把依赖安装一下

apt update && apt -y upgrade
apt install wget -y
apt install socat -y
apt install git -y

开始安装LCMP

  • 如果是Debian 10+ / Ubuntu 20.04+:
    apt-get -y install wget git
    git clone https://github.com/teddysun/lcmp.git
    cd lcmp
    chmod 755 *.sh
    ./lcmp.sh 2>&1 | tee lcmp.log
  • 如果是Enterprise Linux 7 / 8 / 9:
    yum -y install wget git
    git clone https://github.com/teddysun/lcmp.git
    cd lcmp
    chmod 755 *.sh
    ./lcmp.sh 2>&1 | tee lcmp.log

    等出现如下实样就代表LCMP安装好了

    LCMP (Linux + Caddy + MariaDB + PHP) installation complete

    个人感觉LCMP的操作命令和LNMP有点相似,因为它的添加虚拟主机的方式如下:

    lcmp vhost add

    是不是有点眼熟,无非是C和N的区别,具体命令及使用方式参考秋水大佬的Github
    至于Wordpress的建站过程就不啰嗦了,这应该都不是事。不过我在使用Wordpress上传照片或下载插件时碰到了权限问题需要注意一下(可能是我的个例),以往都是赋予网站目录为www用户的权限,使用Caddy后这样操作还是会出现在后台无法访问的问题,后来翻了很多网站,发现需要将网站目录赋予caddy用户权限即可解决,具体操作为(假设网站目录为/data/www/下)

    chown -R caddy:caddy /data/www/*

    既然网站搭好了,必要的备份措施还是要的,秋水大佬的一键脚本里目前没有备份脚本,这里从军哥的Github里提取了backup.sh魔改一番就可以了,除了本地备份外还将备份文件上传到阿里云的OSS中,这样形成双备份以免意外发生,下面是大概的过程及代码:


    配置阿里云的ossutil

  • 安装ossutil(参考官方教程https://help.aliyun.com/zh/oss/developer-reference/install-ossutil?spm=a2c4g.11186623.0.0.5ed75436NQwjIE)
    sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
  • 配置ossutil
    ossutil config

    根据提示分别设置Endpoint、AccessKey ID、AccessKey Secret和STSToken参数,对应的值怎么获取阿里云上都有,唯独需要注意的是stsToken这个值官方讲的我一直没怎么明白,浪费了很多时间,后来才知道可以直接回车留空即可,唉!


    魔改备份脚本


    # 设置网站备份路径
    Backup_Home="/data/www/backup/"
    # 设置数据库路径
    MySQL_Dump="/usr/bin/mysqldump"
    # 设置需要备份的网站路径
    Backup_Dir=("/data/www/a.com" "/data/wwww/b.com")
    # 设置需要备份的数据库名称,不同的数据表以空格间隔
    Backup_Database=("wordpress_" "typecho_")
    # 设置Mysql的用户名和密码
    MYSQL_UserName='root'
    MYSQL_PassWord='123456'
    TodayWWWBackup=www-*-$(date +"%Y%m%d").tar.gz
    TodayDBBackup=db-*-$(date +"%Y%m%d").sql
    OldWWWBackup=www-*-$(date -d -3day +"%Y%m%d").tar.gz
    OldDBBackup=db-*-$(date -d -3day +"%Y%m%d").sql
    Backup_Dir()
    {
    Backup_Path=$1
    Dir_Name=`echo ${Backup_Path##*/}`
    Pre_Dir=`echo ${Backup_Path}|sed 's/'${Dir_Name}'//g'`
    tar zcf ${Backup_Home}www-${Dir_Name}-$(date +"%Y%m%d").tar.gz -C ${Pre_Dir} ${Dir_Name}
    }
    Backup_Sql()
    {
    ${MySQL_Dump} -u$MYSQL_UserName -p$MYSQL_PassWord $1 > ${Backup_Home}db-$1-$(date +"%Y%m%d").sql
    }
    if [ ! -f ${MySQL_Dump} ]; then  
    echo "mysqldump command not found.please check your setting."
    exit 1
    fi
    if [ ! -d ${Backup_Home} ]; then  
    mkdir -p ${Backup_Home}
    fi
    echo "Backup website files..."
    for dd in ${Backup_Dir[@]};do
    Backup_Dir ${dd}
    done
    echo "Backup Databases..."
    for db in ${Backup_Database[@]};do
    Backup_Sql ${db}
    done
    echo "Delete old backup files..."
    rm -f ${Backup_Home}${OldWWWBackup}
    rm -f ${Backup_Home}${OldDBBackup}
    # 将备份的数据库上传到阿里云,将Bucket-name改为对应名称
    ossutil cp -r -f /data/www/backup/$TodayDBBackup oss://Bucket-name/
    ossutil cp -r -f /data/www/backup/$TodayWWWBackup oss://Bucket-name/

    测试一下,备份目录下有相应的文件,然后再到阿里云OSS中查看,都有说明就成功了,这里只将数据库文件上传到阿里云的OSS。最后记得添加一条计划任务,具体可参考如下:

    [root@localhost ~]# crontab -e
    选项:
    -e:    编辑crontab定时任务
    -l:    查询crontab任务
    -r:    删除当前用户所有的crontab任务

    0 14 * * * /bin/bash /data/www/backup/backup.sh

    终于折腾完了,可以看会剧去了。

Headless(无头)WordPress折腾记

2024年3月16日 18:10

什么是Headless WordPress?
无头WordPress是一个术语,指的是任何使用WordPress作为后端软件来管理数据和内容,但使用单独的技术在前端显示数据的网站。后端是用于网站管理区域的术语。您可以在此处创建帖子和页面等内容、安装插件、管理评论等。

很早以前在“我爱水煮鱼”网站看到无头Wordpress里(链接),感觉这玩意挺好玩的,但一直都没去折腾,据说他这个是纯PHP+Memcached来实现的,最近也不知道咋的,也在看Hugo和这个无头Wordpress,前者还没搞定,按空白大佬的那套俺们还没整会,记得以前整Hugo或Hexo时,都是要在本地搭环境,然后写文章再生成再PUSH到站点(Github或VPS等等),但现在直接可以把源文件MD直接扔给Github Action后由其生成并PUSH到站点(也有可能是我理解错了,反正我没整好)。扯远了,既然Hugo没整好那就整无头Wordpress吧,等有思路了再去整Hugo,这次整无头Wordperss都是在ChatGpt4的帮助下搞的,几乎全程代码都是由它写,我嘛就直接抄抄改改,谁叫我是老白呀(我对老白的定义就是:比小白强那么一点点,但也不精通等),用过Html和PHP都能成功调取,其中Html版分布(页码或上下页都正常),但Html不能用Memcached来缓存(至少那个ChatGpt是这么说的,因为Html本身就是静态文件嘛),用PHP来整的话,加上Memcached后,分页功能一直都没整好还得再研究。

不过不管是Html还是PHP,目前调用都是没问题,首页或文章页都能正常显示(美化嘛就算了,只是弄了自适应加一点点CSS修饰),如果后续有时间的话再折腾折腾,也有可能就此终止,谁让我爱折腾呢,这不我除了折腾这个,还早早的又在折腾xLog了,号称书写在 区块链 上的 开源 创作社区(介绍在此),当然还有我的区块链博客地址:blog.057000.xyz,都是搬运过去的,有兴趣的可以去注册一个。

有点想换域名了

2024年9月16日 22:08

记得之前我在写《本博要换域名咯》,就有很多人跟我说这个纯数字的xyz域名用不久,当时的我有点犹豫但还是接着用了半年时间,不过在这之前我也用过其它后缀的域名,而且就在用了这个纯数字的xyz域名之后,我也“偷偷”注册过其它域名,不过都没有让我感到满意,看来减法名单上马上就能增加一批新成员了,哈哈。

yuming.webp

跟着这些老字辈的步伐(如:老张、老麦、老何等等),我也注册了:laoli.xyz、laoliji.com,当然都是新号或优惠券的加持下注册的,比后面的续费价格还是低很多的,可能正是因为注册价格低,才让我脑子一热给注册了吧。然后前几天.net有活动,我也手痒注册了个:zfei.net(美名:知非,当然这可不是《孤舟》的周知非哈,我只是觉得知非这个词还不错,比较有免的不是有:知乎,哈哈)。

不过虽然说想换域名,但是目前.com、.net续费都不便宜,非数字的.xyz也一样,差不多都要10刀左右了,跟我这纯数字的xyz不能比呀,那些续费一年的钱我都可以续费10年了(不香嘛,也不太影响访问,收录啥的俺早就看淡了),所以啊,俺们还真还没想好,各位路过的看客老爷们也可以给俺个建议哈(听听的得由我哈,哈哈)。

最近的事@8

2024年9月15日 23:33

好久没更新了,草长的有点高了吧,那就来除除吧。既然标题仍是最近的事,那就来啰嗦一下,顺便日后自己也能“回味”一番。

先来说说博客,俺们又换了个主题,并且还魔改了一些功能,当然这些要么是搬抄了姜先森博客的一些功能,要么就是自己带着ChatGpt一顿乱“打”,就敲出了现在你们看到的这个样子(你说这个跟作者的主题样子差不多?本来就是,我只是小小魔改,加了一些自己觉的有那么点用的功能,让我得瑟一下哈)。没办法,咱没有像那些大佬那般(1900、老麦,老姜等)厉害,动不动就能整出一些俺们玩不会的,所以就“小刀”乱舞吧。
说完博客,自然要来说说主机,前阵子用阿里云300元的学生券(别问我怎么来的,问了我也不说,反正俺们是正在光明得来的),“猫”了好几个晚上,才让俺“捞”回来一台HK的轻量,这回就用BT了,懒的敲那一堆代码(懒了,没办法),顺便就把这个博客迁过去了,不过之前买的小厂的Hk还没到期,就顺手做了一个套娃,反代加缓存一下,就是目前这个样子,各位兄台可以刷刷看,有用没用的的俺们不好说,反正我觉得挺好玩的,先玩一会呗。不过这小厂的HK倒是真便宜,9元一个月,2H2G30G外加50G,之前用的感觉也挺不错,至少比架在Cloudcone上访问来的快,鉴于之前软云的事件,这种小厂的俺现在都是一个月一续,数据天天备份,我反正不怕,大不了搭个环境嘛。

2024zqj01.webp

马上就要到中秋节了,今年的行情不太行,朋友单位连月饼都没有发,这又降薪,绩效又不及时发,现在的事业单位也不太好待呀,俺们小公司都老早就把月饼发了,工资也不带欠的,当然更不能给我降薪了,要不然……。唉,前几天又说要延迟退休了,俺反正保底最早都要63岁了,NND。

好了,扯了一堆废话,很晚了,等手机资料恢复好,也要呼呼去了。也不知道是哪根筋抽了,非得把手机系统从18.0降到17.6RC(酷安上看到好多说好用,加上我对18的系统有点腻味了,主要还是一些软件有问题用不了),这不又要晚睡了。

最近的事@7

2024年7月23日 23:08

好久没有以“最近的事”为标题了,用这个标题可以笼统的写一下最近的所见所闻还是可以的吧,那么开始哔哔啦。

snbmzcf.webp

最近追的剧就是它了——《少年白马醉春风》,这部是去年《少年歌行》的姊妹篇,但我感觉更像是前传,讲述的是《少年歌行》中上一辈的光辉少年史,故事讲述了镇西侯府公子百里东君不喜文武,独爱酿酒,与已故好友叶云定下了酒仙之约,然而天不遂人愿,百里东君机缘巧合之下,拜入李长生门下习武。在此期间,百里东君结识了玥瑶,还与改名为叶鼎之的叶云重逢,在一众友人的影响之下,素来玩世不恭的百里东君开始承担更多的责任。时间一晃多年过去,叶鼎之被人利用发动战争,百里东君率众抵抗,决心挽救天下苍生,也要救赎曾经挚友的故事。有些演员的安排比较有趣,比如在《少年歌行》中饰演百里东君的言杰,在《少年白马醉春风》中饰演的是百里东君的父亲(一人饰演父子两个角色,厉害),当然还有一些老面孔也会出演,这里就不剧透了,喜欢的自己去看吧。像我这种就中午看个两三集的,目前的更新进度还够我看上几天的,后续可能……

ios to android.webp

最近换了个手机,手中的iPhone 15换成了媳妇之前用的小米 10S,算是降级体验吧,起因是媳妇想找部手机折腾一下,她原来有一个XR闲置的,但内存只有128G,之前换小米10S也是因为内存不够用才换的,结果256G的10S也在去年因空间不足,换成了K60至尊 1T(1T,我想想应该够她用个2年吧),然后10S也就跟着闲置了。所以这回她想用iPhone折腾的时候,我的256G的15自然就成了目标,当然按她的话说她可以用XR的,但是我觉得那128G的空间加上XR的机龄,总感觉不太靠谱,所以我就主动把主力机从15搬到了10S上,先用几天看看,习惯于iPhone的系统,换到安卓真还得适应一下,给我的感觉是MIUI的广告是真的多,不过好在找到了去除广告的补丁,打完后相比之前好很多了。当然MIUI的优点也是有的,比如骚扰电话、垃圾短信的拦截,比iPhone好使多了,iPhone装了一些应用还是挡不住,还是那句话,先用用看,反正15还在我手上,哈哈。

typecho.webp

最近又在折腾博客了,这不又从Wordpress转到Typecho了,前者的臃肿加上服务器的变化(软云,俺们头一回翻车的主机商),所以干脆换成轻量化的Typecho,让它访问稍快一点吧。主题用的是姜先森的,拿了一包“烟”换来的(对于我这个不抽烟的人,一包烟的价格还真是一脸懵),到手后又经我一翻魔改,反正就变成如今这副模样了(相比昨天又有变化了,最直观的是我又把头像由首字母改成各位原来的了,哪天觉得慢了,说不定又……)。

vps-hk.webp

最近也在折腾VPS,不过都还在测试中,用段时间如果稳定了再来啰嗦一下,先让俺测试测试。软云事件之后,就重新用回Cloudcone了,但感觉访问还不是很快,特别是晚上,还是惦记HK的机子,这不最近在论坛上看到有,就先搞起来了,不过这会我都是月付了,小厂商还是有点……(都是软云给整的),加上每天备份,应该不惧跑路吧。

没啥文字功底却总想写点东西

2024年7月16日 23:44

这个标题,一开始并不是我想取的,自从那天看了老张博客的《没啥文字功底却总想写点东西》,感触颇丰!这篇博文光评论都有160条了,咱不论是非(感觉也没有什么好评论的,各有各的观点嘛),一路看下来,我觉得我这博客上写的东西也有很多如评论者所说的,如果他(或她)看的是我博客,估计那一刹那我可能会有点接受不了,毕竟言词不是一般的激励(好在如此“好事”并未发生在我头上,我可以暗自庆幸一下了)。

请输入图片描述

没啥文字功底却总想写点东西,对于这段文字,ChatGpt 4O给的解释是:

这句话的意思是,一个人虽然没有很好的写作技巧或文学素养,但仍然有写作的愿望和冲动。简单来说,就是虽然写作水平不高,但依然很想写东西。

说的挺直白的,仿佛就看到了我自己,啰啰嗦嗦写一堆,可能也只是狗屁不通的一段废话而已,但是我还是写了,因为这是我自己的博客(自己的地盘),在这我可以自由的记载和分享那些我觉得或值得分享或记录的,这就够了,所以往后的日子,我依旧会如此——没啥文字功底却总想写点东西。

哈哈,Typecho我又来了

2024年7月5日 10:40

哈哈,Typecho我又来了

2024-7-12:本来想更一篇的(带了几行代码),结果提交后让宝塔防火墙给掐了,然后………………白写了,这到底是一视同仁呀,兴致全无,咱今天不写了//

2024-7-13:继续折腾,之前已经把Gravatar换成Cravatar,但还是会抽风,再次模仿姜先森,也把头像改成首字母或首汉字等显示了,虽然看着有点(丑,反正我没说哈),但先这么的吧。返回顶部的按钮也从原来的png图片换了,用着先----->>

2024-7-14:将首页的菜单栏也给隐藏了,在哪?先找找看吧,哈哈

最近在捣鼓点啥

2024年4月19日 21:54

在写这个文章标题时有点犯迷糊,不知道取啥标题适合,“挣扎”了许久,最后觉得还是用这个标题吧,看着像是在搞什么明堂似的。

话说回来,最近捣鼓的事很多,但大多都拿不上台面,唯一算是搞成的估摸就是《给WordPress添加一个跳转中间页》,其它的都是半达子货,虽然事没成,但花在上面的时间可一点没少,可谓做了很多无谓事,下面就来唠嗑唠嗑。

  • Headlease Wordpress,这个之前有提过,虽然搞了个半成品(严格上算是一成品,离半成还有点远233),折腾过PHP、Html,甚至还想通过Astro、Next.js、11ty来弄,结果就是花了时间啥也没搞成,自己都感觉自己有点“疯”了。
  • Ghost,没错,在Headlease Wordpress折腾的过程中,还顺便又提了提Ghost,之所以要捣鼓Ghost,是看到只是玩玩在用的就是Ghost+11ty的架构,看着真是很吸引,但苦于没这个技术实力,结果是Ghost是搭建好了,至于用11ty做前端(除了11ty,还看过其它的,就跟上面Headlease Wordpress提到的Astro、Next.js等),这就完全不会,所以也没折腾成……
    其实为什么这么执迷于Headlease系列,是觉得这种后端(如Wordpress、Ghost等)+前端的方式比较吸引我,而且前端纯静态后不仅速度快了,安全性也是提升不少,不过如果想实现这种架构,像我这种拿来主义的老白,估计难度不小,后续不知道还不会再折腾下去,虽然心里还是很想,但…………。
    除了上述讲的折腾点,还有一些小的就不一一道来了,感觉折腾的过程很好,但的确是有点浪费时间(只是对于我来讲),好几次整到个半夜,结果回头一看,啥也没搞成,满满的失败感。过了几天发现又想折腾了,然后又“接着奏乐,接着嗨”,人生嘛,不折腾一下,活着都无味呀,所以有时间还是要折腾一下、捣鼓一下,当然不能熬夜,年纪大了,伤不起,哈哈。

给Wordpress添加一个跳转中间页

2024年4月13日 17:32

看到好多人的博客都有这么一个“神奇”的功能,作为一个备案过的网站我认为确实有需要,毕竟要小心对待嘛,但如果是部署是在那啥且也没有那啥的,个人感觉有或没有其实也没那么重要,管它跳转到哪里跟我又有何关系,不过既然人家有了,我没有,是不是感觉会缺少点啥(这个心理呀,真是要不得,不过倒是又给了自己一个折腾的理由)。

本人作为一个资深的小老白,让我自己写完代码那是万万不可能的,但现在有ChatGpt呀,这玩意已经帮了我不知道多少次忙了,在此我非常正式的感谢一下OpenAI公司,你们太牛了!好了废话不多说这就开干吧。要实现所有链接(文章、评论)都要强制跳转到中间页(这里以go.php),也不是很难,在主题的functions.php中加入相应的代码:

/*链接跳转*/
function redirect_external_links($content) {
    $home_url = home_url(); // 获取WordPress站点的主URL
    // 使用正则表达式匹配所有链接
    return preg_replace_callback('#<a\s+[^>]*href=["\'](.*?)["\'][^>]*>#is', function($matches) use ($home_url) {
        $url = $matches[1]; // 提取URL
        // 检查是否为外部链接
        if (strpos($url, $home_url) === false && filter_var($url, FILTER_VALIDATE_URL)) {
            // 修改URL,通过go.php进行重定向
            $new_url = '/go.php?url=' . urlencode($url);
            return str_replace($matches[1], $new_url, $matches[0]);
        } else {
            // 内部链接不修改
            return $matches[0];
        }
    }, $content);
}
// 添加过滤器,处理文章内容中的链接
add_filter('the_content', 'redirect_external_links');
// 处理评论中的链接
add_filter('comment_text', 'redirect_external_links');
// 处理评论作者链接
function filter_comment_author_link($author_link) {
    $home_url = get_option('home');
    return redirect_external_links($author_link);
}
add_filter('get_comment_author_link', 'filter_comment_author_link');

然后在Wordpress根目录下创建一个go.php文件,具体参考代码如下:

<?php
// 加载WordPress环境和模板
require_once('wp-load.php');
// 安全检查,确保传递的URL是有效的,防止重定向攻击
$raw_url = isset($_GET['url']) ? $_GET['url'] : 'http://057000.xyz';
$url = filter_var($raw_url, FILTER_VALIDATE_URL) ? $raw_url : 'http://057000.xyz';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>页面跳转--Feng's Blog</title>
<style>
    body {
        padding: 0;
        margin: 0;
        font-family: Arial, sans-serif;
        background: #f1f1f1;
        text-align: left;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        height: 100vh;
    }
    .container {
    background: #fff;
    padding: 20px;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    }
    .url, .countdown {
        margin: 10px 0;
    }
    a.button {
    background: #3498db;
    color: white;
    padding: 10px 20px;
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.3s;
    }
    a.button:hover {
    background: #2980b9;
   }
</style>
<script>
    var countdown = 10; // Countdown in seconds
    var url = '';
    function redirectToUrl() {
        window.location.href = url;
    }
    function updateCountdown() {
        var countdownElement = document.getElementById('countdown');
        countdownElement.innerHTML = `将于 ${countdown} 秒后自动打开...`;
        if(countdown === 0) {
            redirectToUrl();
        } else {
            countdown--;
            setTimeout(updateCountdown, 2000);
        }
    }
    window.onload = function() {
        const params = new URLSearchParams(window.location.search);
        url = params.get('url') || 'http://057000.xyz'; // Default URL if none provided
        var urlElement = document.getElementById('url');
        urlElement.innerHTML = `<strong>即将访问:</strong> ${url}`;
        setTimeout(updateCountdown, 2000); // Start countdown
    };
</script>
</head>
<body>
<div class="container">
    <h1>即将离开Feng's Blog...</h1>
    <p class="url" id="url"></p>
    <p>您即将进行页面跳转,请注意您的帐号和财产安全。</p>
    <p class="countdown" id="countdown"></p>
     <a href="#" onclick="redirectToUrl();" class="button">继续访问</a>
</div>
</body>
</html>

记得将上述代码中的057000.xyz改成自己的博客地址就可以了,大概的效果图如下:

好了,咱们自己的跳转页也就有了,哈哈。

Hello Astro

2024年3月25日 20:53

之前看老麦的博客的文章,说是从NextJS换成Astro,很适合搭建静态博客,使用灵活,过程也不复杂,看的我又有折腾的方向了。目前我的博客除了主站在用的Wordpress外,还有其它的如:Typecho,Xlog,静态博客曾经也折腾过Hexo,Hugo(不过那都是很久的事了,其中搭建/使用等几乎也忘得差不多了),当然其它诸如:Ghost、Halo这种有后台的俺们以前也是用过的。

既然Astro这么好玩,那就耍起来呗,官方的教程都有中文的,不得不夸一下,按着步骤来就好,这里需要注意的是要选好主题,这玩意据说换主题比较麻烦(这点不像其它那么方便,但也丝毫不能影响咱们这折腾的心),选好主题后一番部署基本就差不多了。一些小修改啥的基本都是照着官方教程来就可以了,非常简单,关键信息设置好就可以传到自己的Github上,再用Vercel部署就可以了(当然也可以先本地查看一下)。
Astro最让我困惑的是怎么给它添加评论,折腾了很久也没能搞定,后来还是在老麦的指导下解决了,再次感谢老麦,放弃自己中午休息还给我写教程,感谢感谢!那么下面就来记录一下Astro添加评论的过程。

  • 在组件目录下src/components/下新建一个文件,例如Comments.astro,文件名记牢,后面会引用
    1. 如果添加Giscus评论,按照Giscus官方先部署好相关,会给一个相应的配置代码复制好,然后再在前面新建的组件Comments.astro中添加如下代码:
      <section class="giscus mx-auto mt-10 w-full"></section>
      <script
      src="https://giscus.app/client.js"
      data-repo="username/repo"
      data-repo-id="repo-id"
      data-category="Blog Posts Comments"
      data-category-id="DIC_kwDOB3LMn84CaXpn"
      data-mapping="url"
      data-strict="0"
      data-reactions-enabled="1"
      data-emit-metadata="0"
      data-input-position="bottom"
      data-theme="preferred_color_scheme"
      data-lang="en"
      data-loading="lazy"
      crossorigin="anonymous"
      async
      </script>

      这里只是给一个示例代码,实际以Giscus给的为准,我这个只是参考一下
      2.添加Twikoo评论,也是按Twikoo教程部署好相关,然后按以下代码具体修改

      <div id="tcomment"></div>
      <script>
      document.addEventListener('astro:page-load', () => {
      function loadTwikoo() {
      const commentsContainer = document.getElementById('tcomment');
      if (commentsContainer) {
      const script = document.createElement('script');
      script.src = 'https://cdn.staticfile.org/twikoo/1.6.32/twikoo.all.min.js';
      script.async = true;
      script.onload = () => {
        const initScript = document.createElement('script');
        initScript.innerHTML = `
          twikoo.init({
              envId: '您的环境id',
              el: '#tcomment',
          });
      `;
        document.body.appendChild(initScript);
      };
      document.body.appendChild(script);
      }
      }
      loadTwikoo();
      });
      </script>

      3.添加Artalk评论可以参照Twikoo的,部分修改一下就行
      4.添加Waline评论,参照以下代码

      <link rel="stylesheet" href="https://unpkg.com/@waline/client@v3/dist/waline.css"/>
      <div id="waline"></div>
      <script type="module">
      import { init } from 'https://unpkg.com/@waline/client@v3/dist/waline.js';
      init({
      el: '#waline',
      serverURL: 'https://waline.vercel.app',
      });
      </script>

      暂时先想到这4个评论,除了Giscus和Waline是我自己捣鼓的外,另外两个都是在老麦的指导下搞定的。定义好组件Comments.astro后就可以添加自己想要的评论了,在src/layouts/PostDetails.astro中添加一行代码就可以了,比如:

      //其它代码……
      <Content />
      </article>
      <Comments />  //添加这一段代码引用一下我们前面定义的组件
      </main>
      <Footer />
      </Layout>
      //其它代码……

      自此,Astro的评论就搞定了,折腾带来的乐趣,有时确实无法形容,至于要不要主用Astro,暂且不说(说不定乐趣过了也就不折腾了)

博客的再一次折腾

2024年3月19日 12:28

博客之前一直都是用的军哥的LNMP(Linux+Nginx+MySQL+PHP)一键安装脚本搭建WordPress网站,中间偶尔也用过宝塔、1pancel等,但用的最久的还是LNMP,但从2023年下半年,随着作者军哥用爱发电很多年后将网站卖给某公司,有大神发现LNMP.COM网站的代码里被恶意植入了后门代码,而该公司同时收购了oneinstack,同时期出现了恶意代码,LNMP和oneinstack一键网站环境安装包被广泛弃用。

当然替代方案还是有很多的,但还是想借此机会折腾一下新的,那就尝试一下秋水在佬的LCMP(Linux + Caddy + MariaDB + PHP)脚本(Github地址)。Caddy 2是一款现代、轻量级的开源Web服务器,以其简单的配置语法、内置自动HTTPS支持、动态配置和服务发现、现代的HTTP/2和HTTP/3支持、插件系统以及易于部署和管理而脱颖而出。当然论功能、生态、性能等,目前还是Nginx更强。

下面就来介绍如何用秋水大佬的LCMP一键脚本搭建WordPress。

目前支持的系统

  • Enterprise Linux 7 (CentOS 7, RHEL 7)
  • Enterprise Linux 8 (CentOS Stream 8, RHEL 8, Rocky Linux 8, AlmaLinux 8, Oracle Linux 8)
  • Enterprise Linux 9 (CentOS Stream 9, RHEL 9, Rocky Linux 9, AlmaLinux 9, Oracle Linux 9)
  • Debian 10
  • Debian 11
  • Debian 12
  • Ubuntu 20.04
  • Ubuntu 22.04

目前支持的软件

  • Caddy 2
  • MariaDB 10.11
  • PHP-7.4, PHP-8.0, PHP-8.1, PHP-8.2, PHP-8.3

开搞之前先把依赖安装一下

apt update && apt -y upgrade
apt install wget -y
apt install socat -y
apt install git -y

开始安装LCMP

  • 如果是Debian 10+ / Ubuntu 20.04+:
    apt-get -y install wget git
    git clone https://github.com/teddysun/lcmp.git
    cd lcmp
    chmod 755 *.sh
    ./lcmp.sh 2>&1 | tee lcmp.log
  • 如果是Enterprise Linux 7 / 8 / 9:
    yum -y install wget git
    git clone https://github.com/teddysun/lcmp.git
    cd lcmp
    chmod 755 *.sh
    ./lcmp.sh 2>&1 | tee lcmp.log

    等出现如下实样就代表LCMP安装好了

    LCMP (Linux + Caddy + MariaDB + PHP) installation complete

    个人感觉LCMP的操作命令和LNMP有点相似,因为它的添加虚拟主机的方式如下:

    lcmp vhost add

    是不是有点眼熟,无非是C和N的区别,具体命令及使用方式参考秋水大佬的Github
    至于Wordpress的建站过程就不啰嗦了,这应该都不是事。不过我在使用Wordpress上传照片或下载插件时碰到了权限问题需要注意一下(可能是我的个例),以往都是赋予网站目录为www用户的权限,使用Caddy后这样操作还是会出现在后台无法访问的问题,后来翻了很多网站,发现需要将网站目录赋予caddy用户权限即可解决,具体操作为(假设网站目录为/data/www/下)

    chown -R caddy:caddy /data/www/*

    既然网站搭好了,必要的备份措施还是要的,秋水大佬的一键脚本里目前没有备份脚本,这里从军哥的Github里提取了backup.sh魔改一番就可以了,除了本地备份外还将备份文件上传到阿里云的OSS中,这样形成双备份以免意外发生,下面是大概的过程及代码:


    配置阿里云的ossutil

  • 安装ossutil(参考官方教程https://help.aliyun.com/zh/oss/developer-reference/install-ossutil?spm=a2c4g.11186623.0.0.5ed75436NQwjIE)
    sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
  • 配置ossutil
    ossutil config

    根据提示分别设置Endpoint、AccessKey ID、AccessKey Secret和STSToken参数,对应的值怎么获取阿里云上都有,唯独需要注意的是stsToken这个值官方讲的我一直没怎么明白,浪费了很多时间,后来才知道可以直接回车留空即可,唉!


    魔改备份脚本


    # 设置网站备份路径
    Backup_Home="/data/www/backup/"
    # 设置数据库路径
    MySQL_Dump="/usr/bin/mysqldump"
    # 设置需要备份的网站路径
    Backup_Dir=("/data/www/a.com" "/data/wwww/b.com")
    # 设置需要备份的数据库名称,不同的数据表以空格间隔
    Backup_Database=("wordpress_" "typecho_")
    # 设置Mysql的用户名和密码
    MYSQL_UserName='root'
    MYSQL_PassWord='123456'
    TodayWWWBackup=www-*-$(date +"%Y%m%d").tar.gz
    TodayDBBackup=db-*-$(date +"%Y%m%d").sql
    OldWWWBackup=www-*-$(date -d -3day +"%Y%m%d").tar.gz
    OldDBBackup=db-*-$(date -d -3day +"%Y%m%d").sql
    Backup_Dir()
    {
    Backup_Path=$1
    Dir_Name=`echo ${Backup_Path##*/}`
    Pre_Dir=`echo ${Backup_Path}|sed 's/'${Dir_Name}'//g'`
    tar zcf ${Backup_Home}www-${Dir_Name}-$(date +"%Y%m%d").tar.gz -C ${Pre_Dir} ${Dir_Name}
    }
    Backup_Sql()
    {
    ${MySQL_Dump} -u$MYSQL_UserName -p$MYSQL_PassWord $1 > ${Backup_Home}db-$1-$(date +"%Y%m%d").sql
    }
    if [ ! -f ${MySQL_Dump} ]; then  
    echo "mysqldump command not found.please check your setting."
    exit 1
    fi
    if [ ! -d ${Backup_Home} ]; then  
    mkdir -p ${Backup_Home}
    fi
    echo "Backup website files..."
    for dd in ${Backup_Dir[@]};do
    Backup_Dir ${dd}
    done
    echo "Backup Databases..."
    for db in ${Backup_Database[@]};do
    Backup_Sql ${db}
    done
    echo "Delete old backup files..."
    rm -f ${Backup_Home}${OldWWWBackup}
    rm -f ${Backup_Home}${OldDBBackup}
    # 将备份的数据库上传到阿里云,将Bucket-name改为对应名称
    ossutil cp -r -f /data/www/backup/$TodayDBBackup oss://Bucket-name/
    ossutil cp -r -f /data/www/backup/$TodayWWWBackup oss://Bucket-name/

    测试一下,备份目录下有相应的文件,然后再到阿里云OSS中查看,都有说明就成功了,这里只将数据库文件上传到阿里云的OSS。最后记得添加一条计划任务,具体可参考如下:

    [root@localhost ~]# crontab -e
    选项:
    -e:    编辑crontab定时任务
    -l:    查询crontab任务
    -r:    删除当前用户所有的crontab任务

    0 14 * * * /bin/bash /data/www/backup/backup.sh

    终于折腾完了,可以看会剧去了。

Headless(无头)WordPress折腾记

2024年3月16日 18:10

什么是Headless WordPress?
无头WordPress是一个术语,指的是任何使用WordPress作为后端软件来管理数据和内容,但使用单独的技术在前端显示数据的网站。后端是用于网站管理区域的术语。您可以在此处创建帖子和页面等内容、安装插件、管理评论等。

很早以前在“我爱水煮鱼”网站看到无头Wordpress里(链接),感觉这玩意挺好玩的,但一直都没去折腾,据说他这个是纯PHP+Memcached来实现的,最近也不知道咋的,也在看Hugo和这个无头Wordpress,前者还没搞定,按空白大佬的那套俺们还没整会,记得以前整Hugo或Hexo时,都是要在本地搭环境,然后写文章再生成再PUSH到站点(Github或VPS等等),但现在直接可以把源文件MD直接扔给Github Action后由其生成并PUSH到站点(也有可能是我理解错了,反正我没整好)。扯远了,既然Hugo没整好那就整无头Wordpress吧,等有思路了再去整Hugo,这次整无头Wordperss都是在ChatGpt4的帮助下搞的,几乎全程代码都是由它写,我嘛就直接抄抄改改,谁叫我是老白呀(我对老白的定义就是:比小白强那么一点点,但也不精通等),用过Html和PHP都能成功调取,其中Html版分布(页码或上下页都正常),但Html不能用Memcached来缓存(至少那个ChatGpt是这么说的,因为Html本身就是静态文件嘛),用PHP来整的话,加上Memcached后,分页功能一直都没整好还得再研究。

不过不管是Html还是PHP,目前调用都是没问题,首页或文章页都能正常显示(美化嘛就算了,只是弄了自适应加一点点CSS修饰),如果后续有时间的话再折腾折腾,也有可能就此终止,谁让我爱折腾呢,这不我除了折腾这个,还早早的又在折腾xLog了,号称书写在 区块链 上的 开源 创作社区(介绍在此),当然还有我的区块链博客地址:blog.057000.xyz,都是搬运过去的,有兴趣的可以去注册一个。

本博要换域名咯

2024年3月7日 20:20

出于个人原因(也没啥原因,就是某天逛坛子发现有人在分享便宜域名的事,结果看着看着我又想换了,现在对什么收录啥的也不敏感了,都是写给自己看看的,那么整个便宜的域名是不是又可以省下那么一小笔?)。博客域名近期将更换为:057000.xyz,为啥要注册纯数字的还是xyz后缀的域名,一个原因——便宜,0.67刀/年,续费同价!

不折腾、不生活

口号是这么喊的,文章更新不积极,其它的嘛倒是挺积极的,什么整整主机、域名,捣鼓主题啥的——净不干正事。除了前面说的换域名的事,这两天又开始折腾Cloudflare的各种功能,比如利用Turnstile给Wordpress的登录/注册、评论等页面加了个活人验证,虽然小破站没人看的上,但是垃圾评论倒是多的很,所以得给不是活人的整点事做做,果然加了验证后垃圾评论也没了(试用了几天,后续再观察观察)。
随后又开始折腾Cloudflare的优选IP加速访问(这个感觉也没那么必须,因为Cloudcone的主机不管是电信还是移动访问都还好,但还是想折腾一下,实现口号不容易呀)。

当然我也是按照教程来的,具体的可以看《通过CloudFlare+SaaS回源优选IP使国内用户高速访问网站》上图也是用的文章里的,就懒得截后台了,反正就那个位置,不过自定义主机名是需要绑定信用卡的,放心不会扣费的,现在有免费额度的(2022 年 3 月份,CloudFlare 宣布更改了 CloudFlare for SaaS 的收费策略,每个账户可以有 100 个域名免费额度,我们所依赖这个功能所提供的免费额度可以实现免费 CNAME接入。使用CNAME接入后自定义节点就可以随便玩了。),我目前是把境内的解析到一个大Bose上面,先用段时间看看,不行再直接解析回Cloudcone就是了。
其实这篇文章是从草稿(不知道啥时间跑到草稿里的,记得之前发布过的,有2017年评论)里找出来的,看着正适合当下,就把整体内容改了发布了(够懒的吧,不能浪费嘛)。

学雷锋纪念日:传承雷锋精神,做一个有温度的人

2024年3月5日 10:51

2022年3月5日,是中国人民心中一个特殊的日子——学雷锋纪念日。这一天,我们纪念的是一位伟大的人,一位用自己的行动诠释了什么是真正的无私奉献的人。

雷锋,是一位年轻的军人,他生活在上个世纪五十年代的中国。他的名字在中国人的心中早已达到了一个神圣的地位,他的事迹被广大人民传颂,雷锋精神也成为了中华民族传统美德的代表。雷锋的精神,就是“为人民服务,忘我工作”的精神。

雷锋的一生短暂而平凡,但他的事迹却感动了整个中国,甚至世界。他在生活中时刻关注他人的需求,乐于助人,无私奉献。无论是帮助老人过马路、扶贫助困、清洁环境,还是无偿献血、支教助学,他总是默默地付出,从不求回报。他的行动激励了一代又一代人,成为了中国人民心中的楷模。

学雷锋纪念日,是为了纪念雷锋这位伟大的人物,更是为了传承雷锋的精神,让雷锋的精神在每一个人的心中发扬光大。在这个特殊的日子里,我们可以从各个方面来体现雷锋精神,用自己的实际行动来弘扬这种精神。

首先,我们可以从生活中的点滴小事做起。比如,帮助老人过马路、给需要帮助的人让座、关心身边的人的生活需求等等。这些看似微不足道的小事,却能让他人感受到温暖和关爱,也能让我们的生活变得更加有意义。

其次,我们可以参与到社区志愿活动中去。社区志愿活动是一个展现个人爱心和奉献精神的平台,通过参与这些活动,我们可以帮助那些需要帮助的人,传递爱心,给他们带去温暖。无论是扶贫助困、环境保护、义务清洁等等,每一个人都可以找到适合自己的志愿活动,贡献自己的一份力量。

此外,我们还可以通过捐款、捐物等方式,帮助那些需要帮助的人。这些捐助可以用于教育、医疗、扶贫等方面,帮助那些生活在困难中的人们,让他们感受到社会的温暖和关爱。

最重要的是,我们要用自己的实际行动来践行雷锋精神,做一个有温度的人。雷锋精神不仅仅是在学雷锋纪念日这一天才要表现出来,而是要贯穿在我们的生活中的方方面面。无论是在工作中、家庭中还是社交中,我们都应该时刻关注他人的需求,乐于助人,用自己的行动去改变世界。

学雷锋纪念日,是一个让我们回忆过去,思考现在,展望未来的日子。在这一天,我们应该向雷锋学习,传承雷锋的精神,用自己的实际行动去弘扬这种精神。只有每一个人都能够做到无私奉献,关爱他人,我们的社会才能变得更加和谐、温暖。

让我们一起行动起来,用自己的实际行动去传承雷锋精神,做一个有温度的人,为我们的社会带来更多的爱和关怀。让我们在学雷锋纪念日这一天,深深地铭记雷锋的故事和精神,让雷锋精神在我们每一个人的心中燃烧起来。这样,我们才能共同创造一个更加美好的未来。

今天是学习雷锋纪念日,本应该自己写一篇水文的,但恐水平有限,还是请ChatGpt来一篇吧,纪念雷锋,传承雷锋精神,做一个有温度的人,雷锋精神永在!

❌
❌