17 Commits

Author SHA1 Message Date
mayx
71d493c2a8 Update 4 files
- /_data/other_repo_list.csv
- /_posts/2026-06-01-dedupe.md
- /assets/js/pjax.js
- /index.html
2026-05-31 16:00:35 +00:00
mayx
156f964333 Update 3 files
- /_data/other_repo_list.csv
- /assets/js/main_new.js
- /assets/js/pjax.js
2026-05-27 02:37:23 +00:00
mayx
481df19596 Update 5 files
- /_layouts/default.html
- /_data/proxylist.yml
- /assets/js/main.js
- /assets/js/pjax.js
- /assets/js/main_new.js
2026-05-23 10:06:55 +00:00
mayx
1a529143a8 Update 6 files
- /assets/js/pjax.js
- /assets/js/gitalk.min.js
- /assets/js/jquery.min.js
- /assets/css/gitalk.css
- /_data/proxylist.yml
- /_tools/stormkit-env_install
2026-05-22 16:07:03 +00:00
mayx
b25a864ee3 Update 3 files
- /_layouts/default.html
- /assets/js/pjax.js
- /assets/css/style.scss
2026-05-22 12:52:39 +00:00
mayx
c5ad917d9e Update 6 files
- /_layouts/post.html
- /_layouts/default.html
- /assets/js/main.js
- /assets/js/pjax.js
- /_data/other_repo_list.csv
- /Live2dHistoire/live2d/js/message.js
2026-05-22 12:00:45 +00:00
mayx
d6274791a8 Update 2 files
- /assets/js/pjax.js
- /index.html
2026-05-21 10:11:01 +00:00
mayx
111dc1e25f Update 2 files
- /assets/js/pjax.js
- /index.html
2026-05-21 08:27:59 +00:00
mayx
c4ae25dcb1 Update 10 files
- /assets/js/jquery.pjax.min.js
- /assets/js/main.js
- /assets/js/pjax.js
- /_layouts/default.html
- /_layouts/post.html
- /_data/proxylist.yml
- /_data/other_repo_list.csv
- /Live2dHistoire/live2d/js/message.js
- /index.html
- /search.html
2026-05-21 07:38:17 +00:00
mayx
862bffac80 Update 3 files
- /_data/proxylist.yml
- /_data/other_repo_list.csv
- /_tools/envs_post-receive
2026-05-19 03:31:46 +00:00
mayx
c888a89f41 Update 4 files
- /_layouts/default.html
- /_data/other_repo_list.csv
- /_data/links.csv
- /llms.txt
2026-05-18 15:24:55 +00:00
mayx
b48e93890c Update 3 files
- /llms.txt
- /_tools/ai-summary.js
- /humans.txt
2026-05-18 05:08:37 +00:00
mayx
f6b35814b1 Update 3 files
- /_data/other_repo_list.csv
- /humans.txt
- /llms.txt
2026-05-18 04:25:41 +00:00
mayx
fe26e4f6c3 Update 2 files
- /_data/other_repo_list.csv
- /_data/ai-cache.json
2026-05-05 12:22:11 +00:00
mayx
45f1183f9a Update 2 files
- /_data/other_repo_list.csv
- /_posts/2026-05-01-virtual-net.md
2026-05-01 10:54:34 +00:00
mayx
dd1141d872 Update 3 files
- /_data/proxylist.yml
- /_data/other_repo_list.csv
- /proxylist.md
2026-04-26 12:29:39 +00:00
mayx
c0ca105edc Update 3 files
- /README.md
- /_data/proxylist.yml
- /_data/other_repo_list.csv
2026-04-25 15:20:00 +00:00
26 changed files with 843 additions and 377 deletions

View File

@@ -22,6 +22,8 @@ if (!norunFlag) {
var sleepTimer_ = null;
var AITalkFlag = false;
var talkNum = 0;
// 暴露到全局,供 pjax.js 在页面切换后重新调用
window._live2d = { initTips: null, showMessage: null, showHitokoto: null };
(function () {
function renderTip(template, context) {
var tokenReg = /(\\)?\{([^\{\}\\]+)(\\)?\}/g;
@@ -33,11 +35,11 @@ if (!norunFlag) {
var currentObject = context;
var i, length, variable;
for (i = 0, length = variables.length; i < length; ++i) {
variable = variables[i];
currentObject = currentObject[variable];
if (currentObject === undefined || currentObject === null) return '';
variable = currentObject[variables[i]];
if (variable === undefined || variable === null) return '';
currentObject = variable;
}
return currentObject;
return String(currentObject);
});
}
@@ -56,14 +58,20 @@ if (!norunFlag) {
showMessage('你都复制了些什么呀,转载要记得加上出处哦~~', 5000);
});
// 缓存 message.json 数据,供 PJAX 重绑定使用
var tipsData = null;
function initTips() {
$.ajax({
cache: true,
url: message_Path + 'message.json',
dataType: "json",
success: function (result) {
tipsData = result;
// 解绑旧事件(用命名空间避免影响其他绑定)
$.each(result.mouseover, function (index, tips) {
$(tips.selector).mouseover(function () {
$(tips.selector).off('mouseover._live2d_tips mouseout._live2d_tips');
$(tips.selector).on('mouseover._live2d_tips', function () {
var text = tips.text;
if (Array.isArray(tips.text)) text = tips.text[Math.floor(Math.random() * tips.text.length + 1) - 1];
text = text.renderTip({ text: $(this).text() });
@@ -72,7 +80,7 @@ if (!norunFlag) {
clearInterval(liveTlakTimer);
liveTlakTimer = null;
});
$(tips.selector).mouseout(function () {
$(tips.selector).on('mouseout._live2d_tips', function () {
showHitokoto();
if (liveTlakTimer == null) {
liveTlakTimer = window.setInterval(function () {
@@ -82,7 +90,8 @@ if (!norunFlag) {
});
});
$.each(result.click, function (index, tips) {
$(tips.selector).click(function () {
$(tips.selector).off('click._live2d_tips');
$(tips.selector).on('click._live2d_tips', function () {
if (hitFlag) {
return false
}
@@ -106,46 +115,22 @@ if (!norunFlag) {
}
});
}
window._live2d.initTips = initTips;
initTips();
var text;
if (document.referrer !== '' && document.referrer.split('/')[2] !== window.location.host) {
var referrer = document.createElement('a');
referrer.href = document.referrer;
text = '嗨!来自 <span style="color:#0099cc;">' + referrer.hostname + '</span> 的朋友!';
var domain = referrer.hostname.split('.')[1];
if (domain == 'baidu') {
text = '嗨! 来自 百度搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
} else if (domain == 'so') {
text = '嗨! 来自 360搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
} else if (domain == 'google') {
text = '嗨! 来自 谷歌搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
if (domain == 'baidu' || domain == 'so' || domain == 'google') {
var source = domain == 'baidu' ? '百度搜索' : domain == 'so' ? '360搜索' : '谷歌搜索';
text = '嗨! 来自 ' + source + ' 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
} else {
text = '嗨!来自 <span style="color:#0099cc;">' + referrer.hostname + '</span> 的朋友!';
}
} else {
if (window.location.pathname == "/") { //主页URL判断需要斜杠结尾
var now = (new Date()).getHours();
if (now > 23 || now <= 5) {
text = '你是夜猫子呀?这么晚还不睡觉,明天起的来嘛?';
} else if (now > 5 && now <= 7) {
text = '早上好!一日之计在于晨,美好的一天就要开始了!';
} else if (now > 7 && now <= 11) {
text = '上午好!工作顺利嘛,不要久坐,多起来走动走动哦!';
} else if (now > 11 && now <= 14) {
text = '中午了,工作了一个上午,现在是午餐时间!';
} else if (now > 14 && now <= 17) {
text = '午后很容易犯困呢,今天的运动目标完成了吗?';
} else if (now > 17 && now <= 19) {
text = '傍晚了!窗外夕阳的景色很美丽呢,最美不过夕阳红~~';
} else if (now > 19 && now <= 21) {
text = '晚上好,今天过得怎么样?';
} else if (now > 21 && now <= 23) {
text = '已经这么晚了呀,早点休息吧,晚安~~';
} else {
text = '嗨~ 快来逗我玩吧!';
}
} else {
text = '欢迎阅读<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
}
text = getWelcomeText();
}
showMessage(text, 12000);
})();
@@ -172,6 +157,7 @@ if (!norunFlag) {
console.log(sleepTimer_);
}
}
window._live2d.showHitokoto = showHitokoto;
function checkSleep() {
var sleepStatu = sessionStorage.getItem("Sleepy");
@@ -213,6 +199,7 @@ if (!norunFlag) {
//if (timeout === null) timeout = 5000;
//hideMessage(timeout);
}
window._live2d.showMessage = showMessage;
function talkValTimer() {
$('#live_talk').val('1');
}
@@ -384,74 +371,100 @@ if (!norunFlag) {
};
};
//获取音乐信息初始化
var bgmListInfo = $('input[name=live2dBGM]');
if (bgmListInfo.length == 0) {
$('#musicButton').hide();
} else {
var bgmPlayNow = parseInt($('#live2d_bgm').attr('data-bgm'));
var bgmPlayTime = 0;
var live2dBGM_Num = sessionStorage.getItem("live2dBGM_Num");
var live2dBGM_PlayTime = sessionStorage.getItem("live2dBGM_PlayTime");
if (live2dBGM_Num) {
if (live2dBGM_Num <= $('input[name=live2dBGM]').length - 1) {
bgmPlayNow = parseInt(live2dBGM_Num);
}
}
if (live2dBGM_PlayTime) {
bgmPlayTime = parseInt(live2dBGM_PlayTime);
}
var live2dBGMSrc = bgmListInfo.eq(bgmPlayNow).val();
$('#live2d_bgm').attr('data-bgm', bgmPlayNow);
$('#live2d_bgm').attr('src', live2dBGMSrc);
$('#live2d_bgm')[0].currentTime = bgmPlayTime;
$('#live2d_bgm')[0].volume = 0.5;
var live2dBGM_IsPlay = sessionStorage.getItem("live2dBGM_IsPlay");
var live2dBGM_WindowClose = sessionStorage.getItem("live2dBGM_WindowClose");
if (live2dBGM_IsPlay == '0' && live2dBGM_WindowClose == '0') {
$('#live2d_bgm')[0].play();
var $bgm = $('#live2d_bgm');
// 音乐按钮点击事件(幂等,使用命名空间避免重复绑定)
$('#musicButton').off('click._bgm').on('click._bgm', function () {
if ($('#musicButton').hasClass('play')) {
$bgm[0].pause();
$('#musicButton').removeClass('play');
sessionStorage.setItem("live2dBGM_IsPlay", '1');
} else {
$bgm[0].play();
$('#musicButton').addClass('play');
sessionStorage.setItem("live2dBGM_IsPlay", '0');
}
sessionStorage.setItem("live2dBGM_WindowClose", '1');
$('#musicButton').on('click', function () {
if ($('#musicButton').hasClass('play')) {
$('#live2d_bgm')[0].pause();
$('#musicButton').removeClass('play');
sessionStorage.setItem("live2dBGM_IsPlay", '1');
} else {
$('#live2d_bgm')[0].play();
$('#musicButton').addClass('play');
sessionStorage.setItem("live2dBGM_IsPlay", '0');
});
// BGM 事件监听(仅绑定一次,使用标志位避免重复)
if (!window._live2d._bgmEventsBound) {
$bgm[0].addEventListener("timeupdate", function () {
sessionStorage.setItem("live2dBGM_PlayTime", $bgm[0].currentTime);
});
$bgm[0].addEventListener("ended", function () {
var listNow = parseInt($bgm.attr('data-bgm'));
listNow++;
var inputs = $('input[name=live2dBGM]');
if (inputs.length === 0) return;
if (listNow > inputs.length - 1) {
listNow = 0;
}
var listNewSrc = inputs.eq(listNow).val();
if (!listNewSrc) return;
sessionStorage.setItem("live2dBGM_Num", listNow);
$bgm.attr('src', listNewSrc);
$bgm[0].play();
$bgm.attr('data-bgm', listNow);
});
$bgm[0].addEventListener("error", function () {
$bgm[0].pause();
$('#musicButton').removeClass('play');
showMessage('音乐似乎加载不出来了呢!', 0);
});
window.onbeforeunload = function () {
sessionStorage.setItem("live2dBGM_WindowClose", '0');
if ($('#musicButton').hasClass('play')) {
sessionStorage.setItem("live2dBGM_IsPlay", '0');
}
}
document.getElementById('live2d_bgm').addEventListener("timeupdate", function () {
var live2dBgmPlayTimeNow = document.getElementById('live2d_bgm').currentTime;
sessionStorage.setItem("live2dBGM_PlayTime", live2dBgmPlayTimeNow);
});
document.getElementById('live2d_bgm').addEventListener("ended", function () {
var listNow = parseInt($('#live2d_bgm').attr('data-bgm'));
listNow++;
if (listNow > $('input[name=live2dBGM]').length - 1) {
listNow = 0;
}
var listNewSrc = $('input[name=live2dBGM]').eq(listNow).val();
sessionStorage.setItem("live2dBGM_Num", listNow);
$('#live2d_bgm').attr('src', listNewSrc);
$('#live2d_bgm')[0].play();
$('#live2d_bgm').attr('data-bgm', listNow);
});
document.getElementById('live2d_bgm').addEventListener("error", function () {
$('#live2d_bgm')[0].pause();
$('#musicButton').removeClass('play');
showMessage('音乐似乎加载不出来了呢!', 0);
});
};
window._live2d._bgmEventsBound = true;
}
// 初始化 BGM根据当前页面是否有 BGM 输入)
if (typeof window._live2d.initBGM === 'function') {
window._live2d.initBGM();
}
}
// 暴露 BGM 初始化函数,供 PJAX 重初始化时调用
window._live2d.initBGM = function() {
var bgmListInfo = $('input[name=live2dBGM]');
var $bgm = $('#live2d_bgm');
if (bgmListInfo.length === 0) {
$('#musicButton').hide();
if ($bgm.length) $bgm[0].pause();
return;
}
var bgmPlayNow = parseInt($bgm.attr('data-bgm')) || 0;
var bgmPlayTime = 0;
var live2dBGM_Num = sessionStorage.getItem("live2dBGM_Num");
var live2dBGM_PlayTime = sessionStorage.getItem("live2dBGM_PlayTime");
if (live2dBGM_Num) {
if (parseInt(live2dBGM_Num) <= bgmListInfo.length - 1) {
bgmPlayNow = parseInt(live2dBGM_Num);
}
}
if (live2dBGM_PlayTime) {
bgmPlayTime = parseFloat(live2dBGM_PlayTime);
}
var newSrc = bgmListInfo.eq(bgmPlayNow).val();
$bgm.attr('data-bgm', bgmPlayNow);
if ($bgm.attr('src') !== newSrc) {
$bgm[0].pause();
$bgm.attr('src', newSrc);
$bgm[0].currentTime = bgmPlayTime;
}
$bgm[0].volume = 0.5;
var live2dBGM_IsPlay = sessionStorage.getItem("live2dBGM_IsPlay");
var live2dBGM_WindowClose = sessionStorage.getItem("live2dBGM_WindowClose");
if (live2dBGM_IsPlay == '0' && live2dBGM_WindowClose == '0') {
$bgm[0].play();
$('#musicButton').addClass('play');
}
sessionStorage.setItem("live2dBGM_WindowClose", '1');
$('#musicButton').show();
};
$(document).ready(function () {
var AIimgSrc = [
message_Path + "model/histoire/histoire.1024/texture_00.png",

View File

@@ -50,4 +50,4 @@ Powered by [Jekyll](https://github.com/jekyll/jekyll)
本站转载的文章如无特别说明,均按原文章的协议执行
## 打赏/赞助 Mayx
![QRCode](/images/QRCode.png)
![QRCode](images/QRCode.png)

View File

@@ -176,5 +176,6 @@
"/2026/01/01/summary.html": "这篇文章介绍了作者对2025年的年终总结主要表达了对自身状态的担忧和对未来的不确定感。作者认为自己在记忆和思考能力方面有所下滑稳定性较低且未能抓住资产保值的机会。同时文章也记录了AI技术的飞速发展以及自己博客内容与时代脱节的现象。尽管对未来感到迷茫作者仍然抱有一丝希望期望在2026年做出正确的选择避免陷入危险。",
"/2026/02/08/xslt.html": "这篇文章讲述了Google计划弃用XSLT技术以及作者对这一决定的调查和应对方案。Google基于XSLT用户占比低、库存在漏洞等原因建议将其从Web标准中删除。作者发现许多用户依赖XSLT进行博客订阅美化甚至将其作为博客框架。为了对抗这一趋势有人创建了网站https://xslt.rip并开发了Polyfill库通过WASM方式保持XSLT功能。虽然Polyfill库需要额外引用JS代码但作者已将其提交至CDNJS。随后作者探讨了替代方案包括使用纯CSS美化订阅源由AI生成feed.css以及混合XHTML的方式通过添加XHTML命名空间来实现链接等功能但这种方法会产生“不纯粹”的警告。文章最后总结技术可能会消失但总有其他技术可以解决问题并强调了适应浏览器厂商决策的重要性。",
"/2026/03/01/llm3.html": "这篇文章介绍了作者近期在LLM部署和应用方面的经历主要包括以下几个方面\n\n首先作者升级硬件从单张RTX4090 48GiB升级到双路RTX4090 48GiB并购买了TRX40+TR 3960X的主板套装用于运行GPT-OSS模型。随后作者尝试使用vLLM框架替换Ollama并成功配置了GPT-OSS模型达到了接近190Tps的性能。\n\n其次作者体验了DeepSeek 1M上下文模型发现其在处理长上下文任务时表现出色能够展现摘要无法捕捉的细节并成功生成简历、分析人格等。\n\n此外作者还尝试使用DeepSeek重构Mabbs并发现DeepSeek能够识别作者的博客信息这表明训练样本中包含了作者的信息。\n\n最后作者在8GiB内存的MacBook Pro上运行了LFM2.5-1.2B-Thinking模型并使用了Apollo软件体验了其快速的推理速度和良好的思考能力。作者总结认为AI的发展令人惊叹软件优化使其在有限硬件环境下也能运行。",
"/2026/04/14/ai-agent.html": "这篇文章介绍了“AI个人助理”Agent的发展现状和各种尝试。作者体验了OpenClaw、QClaw、WorkBuddy、Cline、LuckClaw和ApkClaw等不同的Agent项目发现它们在功能、易用性和性能上各有优劣。OpenClaw安装和使用存在困难国内大厂的QClaw和WorkBuddy则更易于上手但免费额度有限。作者认为开发任务更适合在编辑器集成AI中进行如GitHub Copilot。LuckClaw在微型开发板上运行表现出色ApkClaw则利用手机的优势操作移动应用。尽管Agent技术仍存在诸多问题但其应用场景不断拓展有望吸引更多人参与其中推动AI应用化进程。"
"/2026/04/14/ai-agent.html": "这篇文章介绍了“AI个人助理”Agent的发展现状和各种尝试。作者体验了OpenClaw、QClaw、WorkBuddy、Cline、LuckClaw和ApkClaw等不同的Agent项目发现它们在功能、易用性和性能上各有优劣。OpenClaw安装和使用存在困难国内大厂的QClaw和WorkBuddy则更易于上手但免费额度有限。作者认为开发任务更适合在编辑器集成AI中进行如GitHub Copilot。LuckClaw在微型开发板上运行表现出色ApkClaw则利用手机的优势操作移动应用。尽管Agent技术仍存在诸多问题但其应用场景不断拓展有望吸引更多人参与其中推动AI应用化进程。",
"/2026/05/01/virtual-net.html": "这篇文章介绍了作者在尝试异地组网搭建虚拟局域网时对多种组网工具的探索和体验。作者首先尝试了n2n但由于其项目停止更新且在NAT后的机器间存在掉线问题最终选择了WireGuard作为主要方案。文章详细描述了WireGuard的配置过程包括在Linux、OpenWrt和openEuler系统上的安装和配置并遇到了各种各样的挑战例如在红米AX3000路由器上找不到内核模块以及在openEuler上缺少WireGuard相关包。此外文章还提到了Netmaker和Headscale等WireGuard的控制平面以及VNT和EasyTier等其他组网工具并总结了最终选择WireGuard的原因简单、够用、可靠性不错且已经投入了大量配置。"
}

View File

@@ -5,7 +5,6 @@ title,link,feed_url,description
极客兔兔,https://geektutu.com/,https://geektutu.com/atom.xml,致力于分享有趣的技术实践
维基萌,https://www.wikimoe.com/,https://www.wikimoe.com/rss,萌即是正义一名热爱acg的前端设计师的小站
7gugu's blog,https://www.7gugu.com/,https://7gugu.com/index.php/feed/,"一个用来存放我爱好的地方,编程,摄影之类的空间"
云游君,https://www.yunyoujun.cn/,https://www.yunyoujun.cn/atom.xml,希望能成为一个有趣的人。
Kingfish404,https://blog.kingfish404.cn/,https://blog.kingfish404.cn/index.xml,"Stay curious,stay naive. WUT. Jin Yu's Blog"
FKUN,https://blog.fkun.tech/,https://blog.fkun.tech/feed/,
Sinofine,https://sinofine.me/,https://sinofine.me/atom.xml,
@@ -16,9 +15,10 @@ Vullfin的博客,https://blog.vull.top/,https://blog.vull.top/atom.xml,Vullfin's
陈陈菌博客,https://blog.glumi.cn/,https://blog.glumi.cn/rss.xml,计算机业余爱好者。
彬红茶日记,https://note.redcha.cn/,https://note.redcha.cn/rss.xml,我的个人日记!
Lanke's blog,https://blog.blueke.top/,https://blog.blueke.top/rss.xml,请为一切不真实之物骄傲,因为我们高于这个世界!
时光流·言,https://www.hansjack.com/,https://www.hansjack.com/feed/,个人博客,持续分享网站部署实战经验、精选书评解读和生活观察手记。 这里提供可复用的技术教程、深度阅读指南和真实生活洞察,与技术爱好者一起进步......
寒士杰克,https://www.hansjack.com/,https://www.hansjack.com/feed/,喜欢捣鼓,不断进步!
Pinpe 的云端,https://pinpe.top/,https://pinpe.top/rss.xml,一个属于自己的云朵。
Chise Hachiroku,https://chise.hachiroku.com/zh/,https://chise.hachiroku.com/zh/feed/,向明日的辉迹,干杯!
映屿,https://www.glowisle.me/,https://www.glowisle.me/atom.xml,关于互联网、书籍、生活琐事以及那些一闪而过的念头
Restent's Notebook,https://blog.gxres.net/,https://blog.gxres.net/atom.xml,不前沿技术分享
Coseroom,https://coseroom.com,,
RavelloH's Blog,https://ravelloh.com,https://ravelloh.com/feed.xml,Beginning of meditation.
1 title link feed_url description
5 极客兔兔 https://geektutu.com/ https://geektutu.com/atom.xml 致力于分享有趣的技术实践
6 维基萌 https://www.wikimoe.com/ https://www.wikimoe.com/rss 萌即是正义!一名热爱acg的前端设计师的小站!
7 7gugu's blog https://www.7gugu.com/ https://7gugu.com/index.php/feed/ 一个用来存放我爱好的地方,编程,摄影之类的空间
云游君 https://www.yunyoujun.cn/ https://www.yunyoujun.cn/atom.xml 希望能成为一个有趣的人。
8 Kingfish404 https://blog.kingfish404.cn/ https://blog.kingfish404.cn/index.xml Stay curious,stay naive. WUT. Jin Yu's Blog
9 FKUN https://blog.fkun.tech/ https://blog.fkun.tech/feed/
10 Sinofine https://sinofine.me/ https://sinofine.me/atom.xml
15 陈陈菌博客 https://blog.glumi.cn/ https://blog.glumi.cn/rss.xml 计算机业余爱好者。
16 彬红茶日记 https://note.redcha.cn/ https://note.redcha.cn/rss.xml 我的个人日记!
17 Lanke's blog https://blog.blueke.top/ https://blog.blueke.top/rss.xml 请为一切不真实之物骄傲,因为我们高于这个世界!
18 时光流·言 寒士杰克 https://www.hansjack.com/ https://www.hansjack.com/feed/ 个人博客,持续分享网站部署实战经验、精选书评解读和生活观察手记。 这里提供可复用的技术教程、深度阅读指南和真实生活洞察,与技术爱好者一起进步...... 喜欢捣鼓,不断进步!
19 Pinpe 的云端 https://pinpe.top/ https://pinpe.top/rss.xml 一个属于自己的云朵。
20 Chise Hachiroku https://chise.hachiroku.com/zh/ https://chise.hachiroku.com/zh/feed/ 向明日的辉迹,干杯!
21 映屿 https://www.glowisle.me/ https://www.glowisle.me/atom.xml 关于互联网、书籍、生活琐事以及那些一闪而过的念头
22 Restent's Notebook https://blog.gxres.net/ https://blog.gxres.net/atom.xml 不前沿技术分享
23 Coseroom https://coseroom.com
24 RavelloH's Blog https://ravelloh.com https://ravelloh.com/feed.xml Beginning of meditation.

View File

@@ -2,27 +2,27 @@ repo_url
http://gdatura24gtdy23lxd7ht3xzx6mi7mdlkabpvuefhrjn4t5jduviw5ad.onion/Mayx/mayx
http://git.dkforestseeaaq2dqz2uflmlsybvnq2irzn4ygyvu53oazyorednviid.onion/mayx/blog
http://giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q.b32.i2p/mayx/blog
https://lavaforge.org/mayx/blog
https://sij.ai/mayx/blog
https://repobase.net/mayx/blog
https://gitlab.lain.la/mayx/mayx.pages.lain.la
https://gitplac.si/mayx/mayx.gitpage.si
https://gitnet.fr/mayx/blog
https://forge.fedoraproject.org/mabbs/blog
https://tilde.club/~mayx/git/blog.git/
https://tvoygit.ru/Mayx/mayx
https://git.envs.net/Mayx/mayx
https://tildegit.org/Mayx/mayx
https://git.tilde.town/mayx/blog
https://gitlab.haskell.org/mayx/mayx
https://repo2.serv00.com/git/pub/Mayx/mayx/
https://git.pixie.town/mayx/mayx
https://codefloe.com/mayx/blog
https://git.minetest.land/Mayx/blog
http://47.120.60.153:10880/mayx/blog
http://1.6.141.109:3000/mayx/blog
http://52.28.156.42/mayx/blog
https://git.tux.pizza/mayx/blog
https://code.dsconce.space/mayx/blog
https://git.anibilag.ru/mayx/blog
https://git.lolpro11.me/mayx/blog
http://101.66.229.132:61088/mayx/blog
https://git.bp-web.app/mayx/blog
http://47.103.91.160:50903/mayx/blog
https://mygit.iexercice.com/mayx/blog
http://162.215.134.149:4000/mayx/blog
http://durfee.mycrestron.com:3000/mayx/blog
@@ -32,16 +32,12 @@ http://50.19.111.193:3000/mayx/blog
https://git.zeroplay.io/mayx/blog
http://45.33.87.87/mayx/blog
http://168.126.28.36:3000/mayx/blog
http://120.79.27.232:3000/mayx/blog
http://wangbeibei.xyz:6002/mayx/blog
https://git.duplanet.ovh/mayx/blog
http://69.62.77.234:8888/mayx/blog
http://112.219.147.186:7000/mayx/blog
https://git.rootfinlay.co.uk/mayx/blog
https://gitea.belanjaparts.com/mayx/blog
http://185.208.225.190:3000/mayx/blog
http://116.204.34.35:12000/mayx/blog
https://git.echaeplay.com/mayx/blog
https://git.Apture.io/mayx/blog
https://gitea.jasonstolle.com/mayx/blog
http://8.134.61.107:3000/mayx/blog
@@ -49,59 +45,37 @@ http://47.107.88.161:3000/mayx/blog
http://142.171.47.170:3000/mayx/blog
http://111.231.146.230:8418/mayx/blog
https://git.pwaapp.cc/mayx/blog
https://git.sleepingforest.co.uk/mayx/blog
https://an360.top/mayx/blog
http://106.15.78.64:3000/mayx/blog
https://git.wisder.net/mayx/blog
https://git2.ujin.tech/mayx/blog
http://111.119.244.185:3000/mayx/blog
http://110.41.179.36:13000/mayx/blog
https://git.influxfin.com/mayx/blog
http://219.157.255.213:25311/mayx/blog
https://git.vekus.ru/mayx/blog
http://116.204.75.78:6180/mayx/blog
http://109.228.48.121:8000/mayx/blog
https://git.hubhoo.com/mayx/blog
https://git.ultra.pub/mayx/blog
http://27.124.12.222:3000/mayx/blog
https://git.sayndone.ru/mayx/blog
https://gitea.hintsight.com/mayx/blog
https://anzsco.co.nz/mayx/blog
http://blackobelisk.xyz:3000/mayx/blog
https://git.tech.troyrc.com/mayx/blog
http://149.88.87.128:3000/mayx/blog
https://git.the-kn.com/mayx/blog
https://git.ism-dev.net/mayx/blog
http://sinzero.xyz:3000/mayx/blog
https://gitea.shirom.me/mayx/blog
https://git.wangxinlei.cn/mayx/blog
http://123.56.193.182:3000/mayx/blog
http://femail.email:8418/mayx/blog
http://167.172.7.198:8081/mayx/blog
https://gitea.meetgu.ru/mayx/blog
http://116.236.50.103:8789/mayx/blog
https://git.paulll.cc/mayx/blog
http://94.224.160.69:7990/mayx/blog
https://gitea.ekjeong.synology.me/mayx/blog
https://git.autotion.net/mayx/blog
https://git.daoyoucloud.com/mayx/blog
https://code.bitahub.com/mayx/blog
https://repo.gusdya.net/mayx/blog
https://git.slegeir.com/mayx/blog
https://gitea.synapsetec.cn/mayx/blog
http://gitea.yunshanghub.com:8081/mayx/blog
http://113.177.27.200:2033/mayx/blog
http://152.69.204.151:3000/mayx/blog
http://207.180.229.193:3001/mayx/blog
http://34.81.52.16/mayx/blog
https://git.genowisdom.cn/mayx/blog
http://120.26.116.243:3000/mayx/blog
http://123.57.16.111:3000/mayx/blog
http://hgngit.ipdz.me/mayx/blog
https://gitea.onfing.ir/mayx/blog
https://lius.familyds.org:3000/mayx/blog
https://git.morozoff.pro/mayx/blog
https://gitea.questline.coop/mayx/blog
http://git.chaojing-film.com:3000/mayx/blog
https://git.nusaerp.com/mayx/blog
http://35.207.205.18:3000/mayx/blog
@@ -113,26 +87,19 @@ http://187.216.152.151:9999/mayx/blog
http://116.63.173.179:8001/mayx/blog
http://114.116.79.196/mayx/blog
http://121.40.40.177:3000/mayx/blog
http://118.31.223.224:3000/mayx/blog
http://178.254.35.219:3000/mayx/blog
http://2.59.132.109:3001/mayx/blog
http://81.71.148.57:8080/mayx/blog
https://git.lmskaran.com/mayx/blog
http://154.86.0.30:3000/mayx/blog
https://omegat.dmu-medical.de/mayx/blog
http://52.23.128.62:3000/mayx/blog
http://85.214.41.219:49153/mayx/blog
http://120.46.222.128:10021/mayx/blog
http://120.26.108.239:9188/mayx/blog
https://git.van-peeren.de/mayx/blog
http://47.111.17.177:3000/mayx/blog
https://k0ki-dev.com/mayx/blog
http://110.42.45.89:2052/mayx/blog
https://git.furcom.org/mayx/blog
http://34.102.70.200:3000/mayx/blog
https://gitea.jobiglo.com/mayx/blog
http://58.221.13.198:30010/mayx/blog
https://git.liliyamol.cn/mayx/blog
https://gitea.oio.cat/mayx/blog
https://git.karma-riuk.com/mayx/blog
https://git.7o9o.net/mayx/blog
@@ -141,16 +108,13 @@ https://git.7milch.com/mayx/blog
https://git.sitenevis.com/mayx/blog
https://dreamplacesai.de/mayx/blog
http://1.94.13.224:9080/mayx/blog
https://gitea.quiztimes.nl/mayx/blog
http://gitea.coderpath.com/mayx/blog
http://43.136.169.169:3000/mayx/blog
http://121.196.213.68:3000/mayx/blog
https://forge.coreymclark.com/mayx/blog
https://git.micahmoore.io/mayx/blog
https://git.anatid.net/mayx/blog
https://git.lekai.info/mayx/blog
http://135.235.225.198:3000/mayx/blog
https://git.prayujt.com/mayx/blog
http://117.72.114.197:3000/mayx/blog
https://git.ashcloud.com/mayx/blog
https://git.novaa.xyz/mayx/blog
@@ -158,30 +122,21 @@ http://101.46.208.93:3000/mayx/blog
http://23.94.57.60:3000/mayx/blog
https://gitea.sciotech.cn/mayx/blog
http://8.140.250.85:3000/mayx/blog
http://8.134.11.35:3000/mayx/blog
http://202.65.194.19:3000/mayx/blog
https://gitea.xala.dev/mayx/blog
http://101.201.34.43:3000/mayx/blog
https://git.gloje-rinchen-dorjee-rinpoche-buddhist-monastery.org/mayx/blog
http://101.35.227.2:3000/mayx/blog
http://175.126.123.163:3000/mayx/blog
https://vw-git.senecasense.com/mayx/blog
http://git.uhfdemo.com/mayx/blog
https://git.jakubzabski.pl/mayx/blog
http://124.223.89.168:8080/mayx/blog
http://209.141.47.52:3000/mayx/blog
http://60.204.158.188:3000/mayx/blog
http://60.204.156.211:3000/mayx/blog
http://nas.bi1kbu.com:8418/mayx/blog
http://1.94.178.207:3000/mayx/blog
https://gitea.tsaida.synology.me/mayx/blog
http://xapple.ru:3000/mayx/blog
https://git.teygaming.com/mayx/blog
http://210.211.116.85:3000/mayx/blog
http://osztromok.com:3164/mayx/blog
http://175.209.53.134:3030/mayx/blog
http://39.107.226.169:3000/mayx/blog
https://git.ueda.sk/mayx/blog
http://39.96.211.118:3000/mayx/blog
http://121.37.47.20:3000/mayx/blog
https://git.antropix.dev/mayx/blog
@@ -196,38 +151,30 @@ http://54.198.134.152:3000/mayx/blog
http://121.41.35.226:11011/mayx/blog
http://47.111.1.12:3000/mayx/blog
https://nelgit.nelpi.co.uk/mayx/blog
http://47.108.156.251:3000/mayx/blog
http://8.141.91.86:3000/mayx/blog
http://117.72.15.187:3000/mayx/blog
http://81.70.30.91:3000/mayx/blog
http://47.97.50.232:3000/mayx/blog
http://106.54.211.95:3000/mayx/blog
http://210.245.20.73:3333/mayx/blog
http://43.248.97.109:3000/mayx/blog
http://113.207.86.104:3080/mayx/blog
http://39.96.195.72:10082/mayx/blog
http://8.148.24.160:3000/mayx/blog
https://221.219.181.35:30000/mayx/blog
http://172.172.102.93:3000/mayx/blog
http://139.196.179.195:3000/mayx/blog
http://115.120.245.164:3000/mayx/blog
http://35.194.179.90:3000/mayx/blog
http://66.179.208.56:3001/mayx/blog
http://59.110.63.80:3000/mayx/blog
http://121.43.60.72:9015/mayx/blog
http://171.80.13.66:9112/mayx/blog
http://211.22.221.188:3000/mayx/blog
http://223.108.157.174:3000/mayx/blog
http://120.24.249.56/mayx/blog
http://54.179.203.2:3000/mayx/blog
http://14.103.246.124:16000/mayx/blog
https://mygit.kikyps.com/mayx/blog
http://152.42.207.183:3000/mayx/blog
http://47.99.60.81:10082/mayx/blog
http://120.211.66.170:8418/mayx/blog
https://gitea.vilcap.com/mayx/blog
http://121.196.245.62/mayx/blog
http://116.205.97.109:3000/mayx/blog
http://8.138.142.17:3000/mayx/blog
http://www.koelndom.cn:13030/mayx/blog
http://209.127.59.74:3000/mayx/blog
@@ -240,7 +187,6 @@ https://gitea.dsmaster.myds.me/mayx/blog
https://gitea.primecontrols-dev.com/mayx/blog
http://www.scserverddns.top:13000/mayx/blog
https://git.lucas-michel.fr/mayx/blog
http://60.205.162.59:3000/mayx/blog
https://git.imvictor.tech:2/mayx/blog
http://47.112.137.193:3000/mayx/blog
http://58.38.123.148:3176/mayx/blog
@@ -248,28 +194,21 @@ http://docker.clhero.fun:3000/mayx/blog
https://bdgit.educoder.net/mayx/blog
http://e19510c831.iok.la/mayx/blog
http://119.45.49.212:3000/mayx/blog
https://gitea.kdlsvps.top/mayx/blog
http://deiniusoft.com:3000/mayx/blog
https://code.antopie.org/mayx/blog
https://git.serenetia.com/mayx/blog
https://vcs.cozydsp.space/mayx/blog
http://8.129.11.230:7002/mayx/blog
http://115.190.107.87:3000/mayx/blog
http://106.12.50.144:8081/mayx/blog
http://120.77.94.227:9999/mayx/blog
https://code.wxk8.com/mayx/blog
http://36.213.200.127:23000/mayx/blog
http://8.155.58.218:9000/mayx/blog
http://fanlibo.i234.me:8418/mayx/blog
https://git.temporaryname.org/mayx/blog
https://Repo.gusdya.net/mayx/blog
https://git.m.ctf.arrobe.fr/mayx/blog
http://120.27.238.24:3000/mayx/blog
http://69.62.64.52:3333/mayx/blog
https://git.flymiracle.com/mayx/blog
https://gitea.manekenbrand.com/mayx/blog
http://106.14.138.181:3000/mayx/blog
https://git.adalspace.com/mayx/blog
https://git.yyuu.xyz/mayx/blog
http://39.107.70.124:3000/mayx/blog
https://git.stormrain.cn/mayx/blog
@@ -277,10 +216,8 @@ https://git.deuxfleurs.fr/mayx/blog
https://www.simpra.org:3000/mayx/blog
http://8.148.31.14:3000/mayx/blog
http://47.94.246.1:3000/mayx/blog
https://docker-registry-lszz.uj.com.tw/mayx/blog
https://www.arcbyte.dev/mayx/blog
https://scm.bcorex.e3labs.net/mayx/blog
http://167.172.88.190:3000/mayx/blog
http://58.17.14.95:8001/mayx/blog
https://hero-cloud-stg-code.cnbita.com/mayx/blog
http://101.37.69.204:3000/mayx/blog
@@ -288,7 +225,6 @@ https://gitea.tecamino.com/mayx/blog
http://39.99.175.172:8000/mayx/blog
http://8.138.13.251:3000/mayx/blog
http://47.115.223.229:8888/mayx/blog
http://47.105.59.0:5132/mayx/blog
http://104.254.131.244:3000/mayx/blog
https://gitea.alacloud.de/mayx/blog
https://git.tobiasweise.dev/mayx/blog
@@ -298,115 +234,69 @@ https://git.muellers-software.org/mayx/blog
http://8.130.128.130:3000/mayx/blog
https://repos.fbpx.io/mayx/blog
https://git.cavemanon.xyz/mayx/blog
http://120.24.203.75:3000/mayx/blog
http://svn.rivastudio.cn/mayx/blog
https://kamtk.ru:4000/mayx/blog
https://git.refinementservices.com/mayx/blog
https://git.smart-tool.jp/mayx/blog
http://39.98.126.115:8080/mayx/blog
https://git.zhuzihan.com/mayx/blog
http://47.76.55.15:21108/mayx/blog
https://git.archieri.fr/mayx/blog
http://46.202.189.66:3000/mayx/blog
http://82.26.157.11:3001/mayx/blog
http://123.60.146.54:3000/mayx/blog
http://218.232.111.112:8300/mayx/blog
http://8.140.248.67:3000/mayx/blog
https://git.scinalytics.com/mayx/blog
http://118.178.172.49:3000/mayx/blog
http://59.19.179.48:3300/mayx/blog
https://git.kooera.com/mayx/blog
https://gitea.lasallesaintdenis.com/mayx/blog
http://123.57.225.51:3000/mayx/blog
http://111.21.163.58:2321/mayx/blog
http://8.130.135.159:3000/mayx/blog
https://git.suo0.com/mayx/blog
https://git.mishacloud.xyz/mayx/blog
http://103.228.160.127:3100/mayx/blog
https://git.dshkabatur.ru/mayx/blog
http://47.100.212.83:3000/mayx/blog
https://gitea.hoba.dedyn.io/mayx/blog
http://crontab.club:30015/mayx/blog
https://git.wegoo.ltd/mayx/blog
http://114.203.209.83:3000/mayx/blog
http://47.100.111.106:3000/mayx/blog
http://47.103.78.70:3000/mayx/blog
http://47.100.208.160:51300/mayx/blog
http://113.44.218.8:3000/mayx/blog
https://gitea.sellycloud.io/mayx/blog
https://gitea.syn-assist.fr/mayx/blog
https://git.cenoq.com/mayx/blog
http://120.24.175.146:3000/mayx/blog
http://47.108.133.67:11216/mayx/blog
http://8.152.205.35:3000/mayx/blog
http://120.210.80.160:3000/mayx/blog
http://1.95.192.200:59300/mayx/blog
https://qingqiu.online/mayx/blog
https://git.medis.com.vn/mayx/blog
http://194.5.152.156:3000/mayx/blog
http://8.155.172.147:3001/mayx/blog
https://git.erfmann.dev/mayx/blog
https://git.tkruk.it/mayx/blog
https://git.vezpi.com/mayx/blog
https://git.newton-lab.com/mayx/blog
https://git.weavefun.com:5443/mayx/blog
https://git.zg23.ru/mayx/blog
https://git.vajdak.cz/mayx/blog
http://58.65.162.118:3000/mayx/blog
https://git.silvertone.com.au/mayx/blog
https://git.gxc-solutions.ru/mayx/blog
https://git.arkon.solutions/mayx/blog
http://8.131.93.145:54082/mayx/blog
http://111.9.31.174:10007/mayx/blog
https://forgejo.bridgetownrb.com/mayx/blog
https://git.dodzin-kg2.keenetic.pro/mayx/blog
http://54.199.96.217:3000/mayx/blog
http://20.219.0.85:3000/mayx/blog
http://121.43.186.169:3000/mayx/blog
http://38.76.202.113:3000/mayx/blog
https://dev01.open-alt.com/mayx/blog
https://gitea.doinlab.com/mayx/blog
https://gitea.creative-tg1.ru/mayx/blog
https://git.7af.ru/mayx/blog
https://gitea.yimoyuyan.cn/mayx/blog
https://git.yanfeng.uk/mayx/blog
https://git.apextoaster.com/mayx/blog
https://hub.open-verse.ai/mayx/blog
http://221.203.14.217:3000/mayx/blog
https://git.sophiagwen.au/mayx/blog
http://103.248.30.24:3000/mayx/blog
http://139.196.96.28:13000/mayx/blog
https://dev.kiramtech.com/mayx/blog
https://git.ccmhub.se/mayx/blog
https://git.ihatemen.uk/mayx/blog
http://178.128.210.141:3000/mayx/blog
https://git.123doit.com/mayx/blog
http://62.43.207.91:8889/mayx/blog
http://8.138.249.120:3000/mayx/blog
https://rsas.de/mayx/blog
https://git.johntsai.online/mayx/blog
https://gitea.css-sistemas.com.br/mayx/blog
https://git.f4e.lol/mayx/blog
http://47.113.145.232:3000/mayx/blog
http://47.115.212.237:3000/mayx/blog
https://chenxil.top/mayx/blog
https://www.binge.fit/mayx/blog
http://72.61.229.93:4000/mayx/blog
http://www.gitea.zhangc.top:3000/mayx/blog
https://git.yinbonet.cn/mayx/blog
https://lishan148.synology.me:3014/mayx/blog_cn
http://1.95.221.174:3000/mayx/blog
https://git.huwhy.cn/mayx/blog_cn
http://119.91.35.154:3000/mayx/blog_cn
http://110.42.101.39:13000/mayx/blog_cn
http://152.136.187.229/mayx/blog_cn
http://39.101.74.135:5000/mayx/blog_cn
http://124.236.46.74:9103/mayx/blog_cn
http://123.57.130.140:3000/mayx/blog_cn
http://122.51.51.35:3000/mayx/blog_cn
http://112.124.49.128:3000/mayx/blog_cn
http://182.92.251.55:3000/mayx/blog_cn
http://106.52.21.251:3000/mayx/blog_cn
http://118.24.46.223:3000/mayx/blog_cn
http://s3.v100.vip:31057/mayx/blog_cn
https://www.syq.im:2025/mayx/blog_cn
@@ -418,13 +308,10 @@ http://58.241.155.106:10140/mayx/blog_cn
http://120.48.141.82:3000/mayx/blog_cn
http://61.178.84.89:8998/mayx/blog_cn
http://82.156.111.58:3000/mayx/blog_cn
http://git.ibossay.com:3000/mayx/blog_cn
https://miduohuyu.com/mayx/blog_cn
https://git.saike.fun:9755/mayx/blog_cn
https://git.cool2645.com/mayx/blog_cn
http://1.95.173.44:3000/mayx/blog_cn
http://58.221.157.122:3000/mayx/blog_cn
http://27.185.43.173:9001/mayx/blog_cn
https://gitlab.liruwei.cn/mayx/blog_cn
http://61.190.74.90:9900/mayx/blog_cn
http://49.234.27.222:3000/mayx/blog_cn
@@ -432,126 +319,72 @@ http://8.153.70.81:30001/mayx/blog_cn
http://175.27.229.211:3000/mayx/blog_cn
http://106.55.174.214:3000/mayx/blog_cn
https://git.yidaimingjvn.xyz/mayx/blog_cn
http://43.143.142.38:7001/mayx/blog_cn
http://39.105.67.143:3000/mayx/blog_cn
http://8.140.232.131:8100/mayx/blog_cn
http://www.yuquanjun.cn:3000/mayx/blog_cn
http://gitea.xxhhcty.xyz:8080/mayx/blog_cn
http://82.156.89.21:3000/mayx/blog_cn
https://git.sskuaixiu.com/mayx/blog_cn
http://xujiesoft.vicp.net:3000/mayx/blog_cn
http://113.44.36.103:23000/mayx/blog_cn
http://110.42.217.153:8029/mayx/blog_cn
http://111.230.92.227:3000/mayx/blog_cn
https://git.mingliqiye.com/mayx/blog_cn
http://119.29.194.155:8894/mayx/blog_cn
http://43.138.249.161:3000/mayx/blog_cn
http://58.213.60.6:19000/mayx/blog_cn
http://36.153.162.171:3000/mayx/blog_cn
http://1.95.7.169:3000/mayx/blog_cn
http://47.113.149.107:10110/mayx/blog_cn
http://47.92.113.131:3000/mayx/blog
http://gyc.myds.me:4000/mayx/blog
https://git.omniglitch.me/mayx/blog
https://code.draussenfunker.de/mayx/blog
https://git.tablet.sh/mayx/blog
https://git.gnyra.com/mayx/blog
https://git.aeternal.dev/mayx/blog
https://git.wdavery.com/mayx/blog
https://git.graveyard.sh/mayx/blog
https://git.warze.org/mayx/blog
https://git.nathanspackman.com/mayx/blog
https://git.freno.me/mayx/blog
https://git.rmarl.in/mayx/blog
https://git.alderautomation.ca/mayx/blog
http://git.qniao.cn/mayx/blog
http://112.6.10.77:3000/mayx/blog
https://git.ewengadonnaud.xyz/mayx/blog
https://git.fast-blast.uk/mayx/blog
http://git.mynas71.myds.me/mayx/blog
https://git.4lsa.com/mayx/blog
https://git.nulldirect.com/mayx/blog
https://rlgit.pro/mayx/blog
https://git.veraskolivna.net/mayx/blog
https://git.lifetop.net/mayx/blog
https://gitea.jnyuxia.com/mayx/blog
http://git.liuhung.com/mayx/blog
https://git.secretserver.club/mayx/blog
https://gitea.adber.tech/mayx/blog
https://git.navex.com.br/mayx/blog
https://gitea.hello.faith/mayx/blog
https://tea.neuron.my/mayx/blog
https://git.econutrix.com/mayx/blog
https://gitslayer.de/mayx/blog
https://git.violka-it.net/mayx/blog
https://git.adityagupta.dev/mayx/blog
https://code.ownwire.net/mayx/blog
https://git.danpeak.co.uk/mayx/blog
https://git.game-dev.space/mayx/blog
https://git.gonethome.id/mayx/blog
https://gitea.mynas-lechner.de/mayx/blog
https://gitea.hadi.es/mayx/blog
https://git.automathon.org/mayx/blog
https://aeterna.cim.mcgill.ca/mayx/blog
https://git.esen.gay/mayx/blog
https://git.webtims.ru/mayx/blog
https://gitea.personalsoftware.space/mayx/blog
http://gitea.yiban.com.tw:3030/mayx/blog
https://gitlab.iplusus.com/mayx/blog
https://git.cyberuk.me/mayx/blog
https://git.privezishop.ru/mayx/blog
https://gitea.zachl.tech/mayx/blog
https://git.miasma-os.com/mayx/blog
https://gitea.nacsity.cn/mayx/blog
https://git.swirly.architectenterprises.net/mayx/blog
https://root-kit.ru/mayx/blog
https://gitea.bel.blue/mayx/blog
https://gitea.diputadosalta.gob.ar/mayx/blog
https://ttym.space/mayx/blog
https://gitea.waterworld.com.hk/mayx/blog
https://getskill.work/mayx/blog
https://suprasage.com/mayx/blog
https://git.zakum.cn/mayx/blog
https://gitea.amazingcoders.com/mayx/blog
https://gitea.redaktion.titanic-magazin.de/mayx/blog
https://gitea.kamilklecha.dev/mayx/blog
https://forgejo.testbed.unict.it/mayx/blog
http://www.clovejunti.cn:3000/mayx/blog_cn
http://49.232.222.18:3000/mayx/blog_cn
http://47.115.132.164:5500/mayx/blog
http://47.109.103.110:9000/mayx/blog_cn
http://47.105.124.101:3000/mayx/blog_cn
http://49.232.183.190:3000/mayx/blog_cn
http://git.zxkedu.com:33769/mayx/blog_cn
https://code.wemediacn.com/mayx/blog_cn
https://gitea.shizuka.icu/mayx/blog_cn
http://152.136.145.93:3000/mayx/blog_cn
http://43.139.2.237:3000/mayx/blog_cn
https://code.hpswk.com/mayx/blog_cn
https://gitea.scivigi.com/mayx/blog_cn
http://47.109.30.152:3000/mayx/blog_cn
https://git.minecraftlegacy.com/mayx/blog
http://51.159.198.233:3000/mayx/blog
https://gitea.adriangonzalezbarbosa.eu/mayx/blog
http://39.108.124.198:3000/mayx/blog
https://git.legatus.ru/mayx/blog
https://git.kayashov.keenetic.pro/mayx/blog
http://43.138.83.20:3000/mayx/blog_cn
http://rentsl.ren:45300/mayx/blog_cn
http://47.104.241.192:19999/mayx/blog_cn
http://47.98.148.146:1026/mayx/blog_cn
http://119.96.62.56:3000/mayx/blog_cn
http://101.42.28.156:3000/mayx/blog_cn
http://81.69.229.51:3000/mayx/blog_cn
http://49.234.3.145:3018/mayx/blog_cn
http://106.55.0.66:31807/mayx/blog_cn
https://gitea.gentronhealth.com/mayx/blog_cn
http://43.143.209.246:6300/mayx/blog_cn
http://152.136.158.133:36512/mayx/blog_cn
http://yidaima.cn:6008/mayx/blog_cn
https://git.vwfaw.cn/mayx/blog_cn
http://47.113.101.80:3000/mayx/blog_cn
http://115.190.145.231:3000/mayx/blog_cn
http://82.156.98.34:3000/mayx/blog_cn
http://zgd.synology.me:8418/mayx/blog_cn
https://git.zguiy.com/mayx/blog_cn
@@ -561,58 +394,129 @@ http://www.xshideserver.com:3000/mayx/blog_cn
http://124.223.54.62:28/mayx/blog_cn
http://159.75.131.235:3001/mayx/blog_cn
http://1.117.67.95:3000/mayx/blog_cn
http://111.230.9.98:3000/mayx/blog_cn
http://124.223.18.41:10082/mayx/blog_cn
http://111.229.183.203:3000/mayx/blog_cn
http://103.236.53.208:3000/mayx/blog_cn
http://118.195.135.194:3000/mayx/blog_cn
http://81.70.102.154/mayx/blog_cn
http://154.8.164.149:3000/mayx/blog_cn
http://39.99.238.14:8120/mayx/blog_cn
http://111.228.34.40:3000/mayx/blog_cn
http://82.156.249.211:3000/mayx/blog_cn
http://36.133.248.69:3088/mayx/blog_cn
http://220.205.16.27:18081/mayx/blog_cn
http://81.69.221.216:3000/mayx/blog_cn
http://115.159.194.75:4000/mayx/blog_cn
http://115.190.214.62:3001/mayx/blog_cn
http://183.204.60.122:10081/mayx/blog_cn
http://120.48.144.83:3000/mayx/blog_cn
http://49.232.143.93:3000/mayx/blog_cn
http://43.139.240.37:17000/mayx/blog_cn
http://159.75.27.114:3000/mayx/blog_cn
http://arcreya.top/mayx/blog_cn
https://code.tczkiot.com/mayx/blog_cn
http://223.71.122.54:3000/mayx/blog_cn
http://111.170.153.123:3000/mayx/blog_cn
http://xeroworld.team/mayx/blog_cn
https://gitea.wuyuank.com/mayx/blog_cn
http://47.117.245.9:17701/mayx/blog_cn
https://git.meshel.cn/mayx/blog_cn
https://git.sunlix.one/mayx/blog_cn
http://47.106.222.181:20511/mayx/blog_cn
http://101.43.95.130:3001/mayx/blog_cn
http://39.101.170.62:9080/mayx/blog_cn
https://gitea.jfen.eu.org/mayx/blog_cn
https://git.wending993.top/mayx/blog_cn
https://gitea.myat4.com/mayx/blog_cn
http://118.24.161.24:3000/mayx/blog_cn
https://git.chalypeng.xyz/mayx/blog_cn
http://13.230.31.145:8418/mayx/blog_cn
http://githanea.s.odn.cc/mayx/blog_cn
https://git.dev.chuweizi.com/mayx/blog
http://35.175.189.8/mayx/blog
http://meowug.com:8418/mayx/blog_cn
http://36.138.125.206:3000/mayx/blog_cn
https://git.4lcap.com/mayx/blog_cn
https://gitea.visoftware.com.co/mayx/blog_cn
http://101.43.238.71:3000/mayx/blog_cn
http://59.110.175.62:4322/mayx/blog_cn
https://www.luluvip.cn:8419/mayx/blog_cn
http://xianyuhome.cn:11013/mayx/blog_cn
http://nas.hongyuanjia.net:8418/mayx/blog_cn
https://git.gotrobotics.org/mayx/blog
https://git.chatumbrella.online/mayx/blog
https://silica.codes/mayx/blog
https://git.crystalyx.net/mayx/blog
https://gittea.dev/mayx/blog
https://git.newnaturalphilosophy.org/mayx/blog
https://code.infininov.com/mayx/blog
https://git.apt142.ru/mayx/blog
http://gitea.mcelwain.net/mayx/blog
https://chunkks.com/mayx/blog
https://gitea.earthmanrpg.me/mayx/blog
https://ndiuky.site/mayx/blog
https://src.enterpriselinux.social/mayx/blog
https://gitea.grxe.io/mayx/blog
https://git.mhworld.net/mayx/blog
https://blvckout.foo/mayx/blog
https://gitea.accept.dev.dbf.nl/mayx/blog
https://git.ke5.de/mayx/blog
https://git.jhossain.online/mayx/blog
http://gitea.xsec.fun/mayx/blog
https://barhoum-lab.fr/mayx/blog
https://git.fedaya.net/mayx/blog
http://gitea.nakile.fr/mayx/blog
https://redev.lol/mayx/blog
http://git.zfxfzb.com/mayx/blog
https://papi.tkpups.com/mayx/blog
https://git.beyond-a-i.org/mayx/blog
http://huanghomenas2.myqnapcloud.com:4000/mayx/blog_cn
http://43.142.166.108:10082/mayx/blog_cn
https://tm-jikayo.com/mayx/blog_cn
http://zzdgitea.stnav.com/mayx/blog_cn
http://1.117.66.197:3000/mayx/blog_cn
http://git.zhmight.com/mayx/blog_cn
https://intl-dev.gaia888.com/mayx/blog_cn
http://gitea.snailtrack.cn/mayx/blog_cn
http://ydds.cloud:3000/mayx/blog_cn
http://120.24.50.145:3000/mayx/blog_cn
https://code.draussenfunker.de/mayx/blog_cn
https://git.dinsor.co.th/mayx/blog
https://ofibohost.com/mayx/blog
https://lab.iishka.net/mayx/blog
http://www.arkproject.top/mayx/blog
http://www.bkandssp.cn:30/mayx/blog
https://gitea.spitaki.cloud/mayx/blog
https://git.codle.ru/mayx/blog
https://codeop.ru/mayx/blog
https://git.mirocom.org/mayx/blog
http://gitea.ydxtool.com/mayx/blog
http://18.167.251.121:10003/mayx/blog
http://39.98.171.121:53000/mayx/blog
https://gitea.malxte.de/mayx/blog
https://git.nizart.me/mayx/blog
https://git.ddns.net/mayx/blog
http://222.85.214.245:9776/mayx/blog
https://git.kraevsky.ru/mayx/blog
https://ruyiscx.cloud:3000/mayx/blog
https://git.0xee.eu/mayx/blog
https://gitea.deitglobal.com/mayx/blog
https://git.crwlr.ir/mayx/blog
https://git.nozora.top/mayx/blog
https://git.sortug.com/mayx/blog
https://aivyx-gitea.cloud/mayx/blog
https://git.edenit.co.kr/mayx/blog
https://git.catgirlsneed.homes/mayx/blog
https://git.eldev.netcraze.pro/mayx/blog
http://110.41.184.238:3000/mayx/blog
http://47.108.255.216:3000/mayx/blog_cn
https://gitea.molietech.com/mayx/blog_cn
http://58.87.88.234:3000/mayx/blog_cn
http://210.75.240.13:3000/mayx/blog_cn
https://git.xz-i.com:30443/mayx/blog_cn
https://git.fynn.vip/mayx/blog_cn
http://119.91.212.17:3000/mayx/blog_cn
http://git.hbg99.com:8080/mayx/blog_cn
https://git.eplg.services/mayx/blog
http://89.167.38.168:3001/mayx/blog
http://namonba.asuscomm.com:3001/mayx/blog
http://109.199.98.226:3001/mayx/blog
https://git.extra.eiffel.com/mayx/blog
https://gitea.digitanie.org/mayx/blog
https://git.xleed.com/mayx/blog
https://qlcodegitserver.online/mayx/blog
https://gitea.vvzvlad.xyz/mayx/blog
https://git.supernets.org/mayx/blog
https://git.digitaltelepresence.com/mayx/blog
https://git.hrfee.pw/mayx/blog
https://git.libregaming.org/mayx/blog
https://git.kaki87.net/mayx/blog
https://forgejo.vanten-s.com/mayx/blog
https://git.heartnn.com/mayx/blog
https://git.joinplu.me/mayx/blog
https://git.research.dezeeuw.ca/mayx/blog
http://149.104.29.239:8081/mayx/blog
1 repo_url
2 http://gdatura24gtdy23lxd7ht3xzx6mi7mdlkabpvuefhrjn4t5jduviw5ad.onion/Mayx/mayx
3 http://git.dkforestseeaaq2dqz2uflmlsybvnq2irzn4ygyvu53oazyorednviid.onion/mayx/blog
4 http://giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q.b32.i2p/mayx/blog
5 https://lavaforge.org/mayx/blog
6 https://sij.ai/mayx/blog
7 https://repobase.net/mayx/blog
8 https://gitlab.lain.la/mayx/mayx.pages.lain.la
9 https://gitplac.si/mayx/mayx.gitpage.si
10 https://gitnet.fr/mayx/blog
11 https://forge.fedoraproject.org/mabbs/blog
12 https://tilde.club/~mayx/git/blog.git/
https://tvoygit.ru/Mayx/mayx
13 https://git.envs.net/Mayx/mayx
14 https://tildegit.org/Mayx/mayx
15 https://git.tilde.town/mayx/blog
16 https://gitlab.haskell.org/mayx/mayx
17 https://repo2.serv00.com/git/pub/Mayx/mayx/
18 https://git.pixie.town/mayx/mayx
19 https://codefloe.com/mayx/blog
20 https://git.minetest.land/Mayx/blog
http://47.120.60.153:10880/mayx/blog
21 http://1.6.141.109:3000/mayx/blog
22 http://52.28.156.42/mayx/blog
https://git.tux.pizza/mayx/blog
23 https://code.dsconce.space/mayx/blog
https://git.anibilag.ru/mayx/blog
https://git.lolpro11.me/mayx/blog
24 http://101.66.229.132:61088/mayx/blog
25 https://git.bp-web.app/mayx/blog
http://47.103.91.160:50903/mayx/blog
26 https://mygit.iexercice.com/mayx/blog
27 http://162.215.134.149:4000/mayx/blog
28 http://durfee.mycrestron.com:3000/mayx/blog
32 https://git.zeroplay.io/mayx/blog
33 http://45.33.87.87/mayx/blog
34 http://168.126.28.36:3000/mayx/blog
http://120.79.27.232:3000/mayx/blog
http://wangbeibei.xyz:6002/mayx/blog
https://git.duplanet.ovh/mayx/blog
35 http://69.62.77.234:8888/mayx/blog
36 http://112.219.147.186:7000/mayx/blog
37 https://git.rootfinlay.co.uk/mayx/blog
38 https://gitea.belanjaparts.com/mayx/blog
39 http://185.208.225.190:3000/mayx/blog
40 http://116.204.34.35:12000/mayx/blog
https://git.echaeplay.com/mayx/blog
41 https://git.Apture.io/mayx/blog
42 https://gitea.jasonstolle.com/mayx/blog
43 http://8.134.61.107:3000/mayx/blog
45 http://142.171.47.170:3000/mayx/blog
46 http://111.231.146.230:8418/mayx/blog
47 https://git.pwaapp.cc/mayx/blog
https://git.sleepingforest.co.uk/mayx/blog
48 https://an360.top/mayx/blog
http://106.15.78.64:3000/mayx/blog
https://git.wisder.net/mayx/blog
https://git2.ujin.tech/mayx/blog
49 http://111.119.244.185:3000/mayx/blog
http://110.41.179.36:13000/mayx/blog
50 https://git.influxfin.com/mayx/blog
51 http://219.157.255.213:25311/mayx/blog
52 https://git.vekus.ru/mayx/blog
53 http://116.204.75.78:6180/mayx/blog
54 http://109.228.48.121:8000/mayx/blog
https://git.hubhoo.com/mayx/blog
https://git.ultra.pub/mayx/blog
55 http://27.124.12.222:3000/mayx/blog
https://git.sayndone.ru/mayx/blog
56 https://gitea.hintsight.com/mayx/blog
https://anzsco.co.nz/mayx/blog
57 http://blackobelisk.xyz:3000/mayx/blog
https://git.tech.troyrc.com/mayx/blog
http://149.88.87.128:3000/mayx/blog
58 https://git.the-kn.com/mayx/blog
https://git.ism-dev.net/mayx/blog
http://sinzero.xyz:3000/mayx/blog
59 https://gitea.shirom.me/mayx/blog
60 https://git.wangxinlei.cn/mayx/blog
61 http://123.56.193.182:3000/mayx/blog
http://femail.email:8418/mayx/blog
62 http://167.172.7.198:8081/mayx/blog
63 https://gitea.meetgu.ru/mayx/blog
64 http://116.236.50.103:8789/mayx/blog
65 https://git.paulll.cc/mayx/blog
66 http://94.224.160.69:7990/mayx/blog
67 https://gitea.ekjeong.synology.me/mayx/blog
https://git.autotion.net/mayx/blog
68 https://git.daoyoucloud.com/mayx/blog
69 https://code.bitahub.com/mayx/blog
70 https://repo.gusdya.net/mayx/blog
https://git.slegeir.com/mayx/blog
71 https://gitea.synapsetec.cn/mayx/blog
72 http://gitea.yunshanghub.com:8081/mayx/blog
73 http://113.177.27.200:2033/mayx/blog
74 http://152.69.204.151:3000/mayx/blog
75 http://207.180.229.193:3001/mayx/blog
76 http://34.81.52.16/mayx/blog
https://git.genowisdom.cn/mayx/blog
http://120.26.116.243:3000/mayx/blog
77 http://123.57.16.111:3000/mayx/blog
http://hgngit.ipdz.me/mayx/blog
https://gitea.onfing.ir/mayx/blog
78 https://lius.familyds.org:3000/mayx/blog
https://git.morozoff.pro/mayx/blog
https://gitea.questline.coop/mayx/blog
79 http://git.chaojing-film.com:3000/mayx/blog
80 https://git.nusaerp.com/mayx/blog
81 http://35.207.205.18:3000/mayx/blog
87 http://116.63.173.179:8001/mayx/blog
88 http://114.116.79.196/mayx/blog
89 http://121.40.40.177:3000/mayx/blog
http://118.31.223.224:3000/mayx/blog
90 http://178.254.35.219:3000/mayx/blog
91 http://2.59.132.109:3001/mayx/blog
92 http://81.71.148.57:8080/mayx/blog
93 https://git.lmskaran.com/mayx/blog
94 http://154.86.0.30:3000/mayx/blog
https://omegat.dmu-medical.de/mayx/blog
95 http://52.23.128.62:3000/mayx/blog
http://85.214.41.219:49153/mayx/blog
96 http://120.46.222.128:10021/mayx/blog
97 http://120.26.108.239:9188/mayx/blog
https://git.van-peeren.de/mayx/blog
98 http://47.111.17.177:3000/mayx/blog
99 https://k0ki-dev.com/mayx/blog
100 http://110.42.45.89:2052/mayx/blog
101 https://git.furcom.org/mayx/blog
102 http://34.102.70.200:3000/mayx/blog
https://gitea.jobiglo.com/mayx/blog
http://58.221.13.198:30010/mayx/blog
https://git.liliyamol.cn/mayx/blog
103 https://gitea.oio.cat/mayx/blog
104 https://git.karma-riuk.com/mayx/blog
105 https://git.7o9o.net/mayx/blog
108 https://git.sitenevis.com/mayx/blog
109 https://dreamplacesai.de/mayx/blog
110 http://1.94.13.224:9080/mayx/blog
https://gitea.quiztimes.nl/mayx/blog
111 http://gitea.coderpath.com/mayx/blog
112 http://43.136.169.169:3000/mayx/blog
113 http://121.196.213.68:3000/mayx/blog
https://forge.coreymclark.com/mayx/blog
114 https://git.micahmoore.io/mayx/blog
115 https://git.anatid.net/mayx/blog
116 https://git.lekai.info/mayx/blog
117 http://135.235.225.198:3000/mayx/blog
https://git.prayujt.com/mayx/blog
118 http://117.72.114.197:3000/mayx/blog
119 https://git.ashcloud.com/mayx/blog
120 https://git.novaa.xyz/mayx/blog
122 http://23.94.57.60:3000/mayx/blog
123 https://gitea.sciotech.cn/mayx/blog
124 http://8.140.250.85:3000/mayx/blog
http://8.134.11.35:3000/mayx/blog
125 http://202.65.194.19:3000/mayx/blog
https://gitea.xala.dev/mayx/blog
126 http://101.201.34.43:3000/mayx/blog
127 https://git.gloje-rinchen-dorjee-rinpoche-buddhist-monastery.org/mayx/blog
128 http://101.35.227.2:3000/mayx/blog
129 http://175.126.123.163:3000/mayx/blog
https://vw-git.senecasense.com/mayx/blog
http://git.uhfdemo.com/mayx/blog
https://git.jakubzabski.pl/mayx/blog
http://124.223.89.168:8080/mayx/blog
130 http://209.141.47.52:3000/mayx/blog
131 http://60.204.158.188:3000/mayx/blog
132 http://60.204.156.211:3000/mayx/blog
133 http://nas.bi1kbu.com:8418/mayx/blog
134 http://1.94.178.207:3000/mayx/blog
135 https://gitea.tsaida.synology.me/mayx/blog
http://xapple.ru:3000/mayx/blog
136 https://git.teygaming.com/mayx/blog
http://210.211.116.85:3000/mayx/blog
137 http://osztromok.com:3164/mayx/blog
138 http://175.209.53.134:3030/mayx/blog
139 http://39.107.226.169:3000/mayx/blog
https://git.ueda.sk/mayx/blog
140 http://39.96.211.118:3000/mayx/blog
141 http://121.37.47.20:3000/mayx/blog
142 https://git.antropix.dev/mayx/blog
151 http://121.41.35.226:11011/mayx/blog
152 http://47.111.1.12:3000/mayx/blog
153 https://nelgit.nelpi.co.uk/mayx/blog
http://47.108.156.251:3000/mayx/blog
154 http://8.141.91.86:3000/mayx/blog
155 http://117.72.15.187:3000/mayx/blog
156 http://81.70.30.91:3000/mayx/blog
http://47.97.50.232:3000/mayx/blog
157 http://106.54.211.95:3000/mayx/blog
158 http://210.245.20.73:3333/mayx/blog
159 http://43.248.97.109:3000/mayx/blog
160 http://113.207.86.104:3080/mayx/blog
161 http://39.96.195.72:10082/mayx/blog
http://8.148.24.160:3000/mayx/blog
162 https://221.219.181.35:30000/mayx/blog
163 http://172.172.102.93:3000/mayx/blog
http://139.196.179.195:3000/mayx/blog
164 http://115.120.245.164:3000/mayx/blog
165 http://35.194.179.90:3000/mayx/blog
166 http://66.179.208.56:3001/mayx/blog
http://59.110.63.80:3000/mayx/blog
167 http://121.43.60.72:9015/mayx/blog
168 http://171.80.13.66:9112/mayx/blog
http://211.22.221.188:3000/mayx/blog
169 http://223.108.157.174:3000/mayx/blog
170 http://120.24.249.56/mayx/blog
171 http://54.179.203.2:3000/mayx/blog
172 http://14.103.246.124:16000/mayx/blog
https://mygit.kikyps.com/mayx/blog
173 http://152.42.207.183:3000/mayx/blog
174 http://47.99.60.81:10082/mayx/blog
175 http://120.211.66.170:8418/mayx/blog
176 https://gitea.vilcap.com/mayx/blog
177 http://121.196.245.62/mayx/blog
http://116.205.97.109:3000/mayx/blog
178 http://8.138.142.17:3000/mayx/blog
179 http://www.koelndom.cn:13030/mayx/blog
180 http://209.127.59.74:3000/mayx/blog
187 https://gitea.primecontrols-dev.com/mayx/blog
188 http://www.scserverddns.top:13000/mayx/blog
189 https://git.lucas-michel.fr/mayx/blog
http://60.205.162.59:3000/mayx/blog
190 https://git.imvictor.tech:2/mayx/blog
191 http://47.112.137.193:3000/mayx/blog
192 http://58.38.123.148:3176/mayx/blog
194 https://bdgit.educoder.net/mayx/blog
195 http://e19510c831.iok.la/mayx/blog
196 http://119.45.49.212:3000/mayx/blog
https://gitea.kdlsvps.top/mayx/blog
http://deiniusoft.com:3000/mayx/blog
197 https://code.antopie.org/mayx/blog
198 https://git.serenetia.com/mayx/blog
199 https://vcs.cozydsp.space/mayx/blog
http://8.129.11.230:7002/mayx/blog
200 http://115.190.107.87:3000/mayx/blog
201 http://106.12.50.144:8081/mayx/blog
http://120.77.94.227:9999/mayx/blog
202 https://code.wxk8.com/mayx/blog
http://36.213.200.127:23000/mayx/blog
203 http://8.155.58.218:9000/mayx/blog
204 http://fanlibo.i234.me:8418/mayx/blog
205 https://git.temporaryname.org/mayx/blog
206 https://Repo.gusdya.net/mayx/blog
207 https://git.m.ctf.arrobe.fr/mayx/blog
http://120.27.238.24:3000/mayx/blog
208 http://69.62.64.52:3333/mayx/blog
209 https://git.flymiracle.com/mayx/blog
210 https://gitea.manekenbrand.com/mayx/blog
211 http://106.14.138.181:3000/mayx/blog
https://git.adalspace.com/mayx/blog
212 https://git.yyuu.xyz/mayx/blog
213 http://39.107.70.124:3000/mayx/blog
214 https://git.stormrain.cn/mayx/blog
216 https://www.simpra.org:3000/mayx/blog
217 http://8.148.31.14:3000/mayx/blog
218 http://47.94.246.1:3000/mayx/blog
https://docker-registry-lszz.uj.com.tw/mayx/blog
219 https://www.arcbyte.dev/mayx/blog
220 https://scm.bcorex.e3labs.net/mayx/blog
http://167.172.88.190:3000/mayx/blog
221 http://58.17.14.95:8001/mayx/blog
222 https://hero-cloud-stg-code.cnbita.com/mayx/blog
223 http://101.37.69.204:3000/mayx/blog
225 http://39.99.175.172:8000/mayx/blog
226 http://8.138.13.251:3000/mayx/blog
227 http://47.115.223.229:8888/mayx/blog
http://47.105.59.0:5132/mayx/blog
228 http://104.254.131.244:3000/mayx/blog
229 https://gitea.alacloud.de/mayx/blog
230 https://git.tobiasweise.dev/mayx/blog
234 http://8.130.128.130:3000/mayx/blog
235 https://repos.fbpx.io/mayx/blog
236 https://git.cavemanon.xyz/mayx/blog
http://120.24.203.75:3000/mayx/blog
237 http://svn.rivastudio.cn/mayx/blog
238 https://kamtk.ru:4000/mayx/blog
https://git.refinementservices.com/mayx/blog
https://git.smart-tool.jp/mayx/blog
239 http://39.98.126.115:8080/mayx/blog
https://git.zhuzihan.com/mayx/blog
http://47.76.55.15:21108/mayx/blog
https://git.archieri.fr/mayx/blog
240 http://46.202.189.66:3000/mayx/blog
241 http://82.26.157.11:3001/mayx/blog
242 http://123.60.146.54:3000/mayx/blog
http://218.232.111.112:8300/mayx/blog
243 http://8.140.248.67:3000/mayx/blog
https://git.scinalytics.com/mayx/blog
244 http://118.178.172.49:3000/mayx/blog
http://59.19.179.48:3300/mayx/blog
https://git.kooera.com/mayx/blog
245 https://gitea.lasallesaintdenis.com/mayx/blog
246 http://123.57.225.51:3000/mayx/blog
http://111.21.163.58:2321/mayx/blog
247 http://8.130.135.159:3000/mayx/blog
248 https://git.suo0.com/mayx/blog
https://git.mishacloud.xyz/mayx/blog
249 http://103.228.160.127:3100/mayx/blog
250 https://git.dshkabatur.ru/mayx/blog
http://47.100.212.83:3000/mayx/blog
251 https://gitea.hoba.dedyn.io/mayx/blog
http://crontab.club:30015/mayx/blog
252 https://git.wegoo.ltd/mayx/blog
253 http://114.203.209.83:3000/mayx/blog
254 http://47.100.111.106:3000/mayx/blog
255 http://47.103.78.70:3000/mayx/blog
256 http://47.100.208.160:51300/mayx/blog
257 http://113.44.218.8:3000/mayx/blog
https://gitea.sellycloud.io/mayx/blog
https://gitea.syn-assist.fr/mayx/blog
258 https://git.cenoq.com/mayx/blog
http://120.24.175.146:3000/mayx/blog
http://47.108.133.67:11216/mayx/blog
259 http://8.152.205.35:3000/mayx/blog
260 http://120.210.80.160:3000/mayx/blog
261 http://1.95.192.200:59300/mayx/blog
https://qingqiu.online/mayx/blog
https://git.medis.com.vn/mayx/blog
262 http://194.5.152.156:3000/mayx/blog
263 http://8.155.172.147:3001/mayx/blog
264 https://git.erfmann.dev/mayx/blog
https://git.tkruk.it/mayx/blog
https://git.vezpi.com/mayx/blog
https://git.newton-lab.com/mayx/blog
265 https://git.weavefun.com:5443/mayx/blog
https://git.zg23.ru/mayx/blog
https://git.vajdak.cz/mayx/blog
266 http://58.65.162.118:3000/mayx/blog
https://git.silvertone.com.au/mayx/blog
https://git.gxc-solutions.ru/mayx/blog
267 https://git.arkon.solutions/mayx/blog
268 http://8.131.93.145:54082/mayx/blog
269 http://111.9.31.174:10007/mayx/blog
270 https://forgejo.bridgetownrb.com/mayx/blog
https://git.dodzin-kg2.keenetic.pro/mayx/blog
271 http://54.199.96.217:3000/mayx/blog
272 http://20.219.0.85:3000/mayx/blog
http://121.43.186.169:3000/mayx/blog
http://38.76.202.113:3000/mayx/blog
https://dev01.open-alt.com/mayx/blog
273 https://gitea.doinlab.com/mayx/blog
https://gitea.creative-tg1.ru/mayx/blog
274 https://git.7af.ru/mayx/blog
275 https://gitea.yimoyuyan.cn/mayx/blog
https://git.yanfeng.uk/mayx/blog
276 https://git.apextoaster.com/mayx/blog
277 https://hub.open-verse.ai/mayx/blog
278 http://221.203.14.217:3000/mayx/blog
279 https://git.sophiagwen.au/mayx/blog
http://103.248.30.24:3000/mayx/blog
280 http://139.196.96.28:13000/mayx/blog
281 https://dev.kiramtech.com/mayx/blog
https://git.ccmhub.se/mayx/blog
282 https://git.ihatemen.uk/mayx/blog
http://178.128.210.141:3000/mayx/blog
283 https://git.123doit.com/mayx/blog
284 http://62.43.207.91:8889/mayx/blog
http://8.138.249.120:3000/mayx/blog
https://rsas.de/mayx/blog
285 https://git.johntsai.online/mayx/blog
286 https://gitea.css-sistemas.com.br/mayx/blog
287 https://git.f4e.lol/mayx/blog
288 http://47.113.145.232:3000/mayx/blog
289 http://47.115.212.237:3000/mayx/blog
https://chenxil.top/mayx/blog
https://www.binge.fit/mayx/blog
290 http://72.61.229.93:4000/mayx/blog
http://www.gitea.zhangc.top:3000/mayx/blog
https://git.yinbonet.cn/mayx/blog
291 https://lishan148.synology.me:3014/mayx/blog_cn
292 http://1.95.221.174:3000/mayx/blog
293 https://git.huwhy.cn/mayx/blog_cn
294 http://119.91.35.154:3000/mayx/blog_cn
295 http://110.42.101.39:13000/mayx/blog_cn
http://152.136.187.229/mayx/blog_cn
296 http://39.101.74.135:5000/mayx/blog_cn
297 http://124.236.46.74:9103/mayx/blog_cn
298 http://123.57.130.140:3000/mayx/blog_cn
http://122.51.51.35:3000/mayx/blog_cn
299 http://112.124.49.128:3000/mayx/blog_cn
http://182.92.251.55:3000/mayx/blog_cn
http://106.52.21.251:3000/mayx/blog_cn
300 http://118.24.46.223:3000/mayx/blog_cn
301 http://s3.v100.vip:31057/mayx/blog_cn
302 https://www.syq.im:2025/mayx/blog_cn
308 http://120.48.141.82:3000/mayx/blog_cn
309 http://61.178.84.89:8998/mayx/blog_cn
310 http://82.156.111.58:3000/mayx/blog_cn
http://git.ibossay.com:3000/mayx/blog_cn
https://miduohuyu.com/mayx/blog_cn
311 https://git.saike.fun:9755/mayx/blog_cn
312 https://git.cool2645.com/mayx/blog_cn
313 http://1.95.173.44:3000/mayx/blog_cn
314 http://58.221.157.122:3000/mayx/blog_cn
http://27.185.43.173:9001/mayx/blog_cn
315 https://gitlab.liruwei.cn/mayx/blog_cn
316 http://61.190.74.90:9900/mayx/blog_cn
317 http://49.234.27.222:3000/mayx/blog_cn
319 http://175.27.229.211:3000/mayx/blog_cn
320 http://106.55.174.214:3000/mayx/blog_cn
321 https://git.yidaimingjvn.xyz/mayx/blog_cn
http://43.143.142.38:7001/mayx/blog_cn
322 http://39.105.67.143:3000/mayx/blog_cn
323 http://8.140.232.131:8100/mayx/blog_cn
http://www.yuquanjun.cn:3000/mayx/blog_cn
http://gitea.xxhhcty.xyz:8080/mayx/blog_cn
324 http://82.156.89.21:3000/mayx/blog_cn
325 https://git.sskuaixiu.com/mayx/blog_cn
326 http://xujiesoft.vicp.net:3000/mayx/blog_cn
327 http://113.44.36.103:23000/mayx/blog_cn
http://110.42.217.153:8029/mayx/blog_cn
http://111.230.92.227:3000/mayx/blog_cn
328 https://git.mingliqiye.com/mayx/blog_cn
329 http://119.29.194.155:8894/mayx/blog_cn
http://43.138.249.161:3000/mayx/blog_cn
330 http://58.213.60.6:19000/mayx/blog_cn
331 http://36.153.162.171:3000/mayx/blog_cn
http://1.95.7.169:3000/mayx/blog_cn
http://47.113.149.107:10110/mayx/blog_cn
332 http://47.92.113.131:3000/mayx/blog
333 http://gyc.myds.me:4000/mayx/blog
https://git.omniglitch.me/mayx/blog
https://code.draussenfunker.de/mayx/blog
334 https://git.tablet.sh/mayx/blog
335 https://git.gnyra.com/mayx/blog
https://git.aeternal.dev/mayx/blog
https://git.wdavery.com/mayx/blog
336 https://git.graveyard.sh/mayx/blog
https://git.warze.org/mayx/blog
337 https://git.nathanspackman.com/mayx/blog
https://git.freno.me/mayx/blog
338 https://git.rmarl.in/mayx/blog
https://git.alderautomation.ca/mayx/blog
http://git.qniao.cn/mayx/blog
http://112.6.10.77:3000/mayx/blog
https://git.ewengadonnaud.xyz/mayx/blog
https://git.fast-blast.uk/mayx/blog
339 http://git.mynas71.myds.me/mayx/blog
340 https://git.4lsa.com/mayx/blog
https://git.nulldirect.com/mayx/blog
341 https://rlgit.pro/mayx/blog
342 https://git.veraskolivna.net/mayx/blog
343 https://git.lifetop.net/mayx/blog
344 https://gitea.jnyuxia.com/mayx/blog
345 http://git.liuhung.com/mayx/blog
https://git.secretserver.club/mayx/blog
346 https://gitea.adber.tech/mayx/blog
https://git.navex.com.br/mayx/blog
347 https://gitea.hello.faith/mayx/blog
348 https://tea.neuron.my/mayx/blog
https://git.econutrix.com/mayx/blog
https://gitslayer.de/mayx/blog
349 https://git.violka-it.net/mayx/blog
350 https://git.adityagupta.dev/mayx/blog
https://code.ownwire.net/mayx/blog
351 https://git.danpeak.co.uk/mayx/blog
https://git.game-dev.space/mayx/blog
https://git.gonethome.id/mayx/blog
352 https://gitea.mynas-lechner.de/mayx/blog
https://gitea.hadi.es/mayx/blog
353 https://git.automathon.org/mayx/blog
https://aeterna.cim.mcgill.ca/mayx/blog
354 https://git.esen.gay/mayx/blog
355 https://git.webtims.ru/mayx/blog
356 https://gitea.personalsoftware.space/mayx/blog
357 http://gitea.yiban.com.tw:3030/mayx/blog
358 https://gitlab.iplusus.com/mayx/blog
https://git.cyberuk.me/mayx/blog
https://git.privezishop.ru/mayx/blog
359 https://gitea.zachl.tech/mayx/blog
360 https://git.miasma-os.com/mayx/blog
361 https://gitea.nacsity.cn/mayx/blog
https://git.swirly.architectenterprises.net/mayx/blog
https://root-kit.ru/mayx/blog
https://gitea.bel.blue/mayx/blog
362 https://gitea.diputadosalta.gob.ar/mayx/blog
363 https://ttym.space/mayx/blog
https://gitea.waterworld.com.hk/mayx/blog
364 https://getskill.work/mayx/blog
365 https://suprasage.com/mayx/blog
366 https://git.zakum.cn/mayx/blog
367 https://gitea.amazingcoders.com/mayx/blog
https://gitea.redaktion.titanic-magazin.de/mayx/blog
368 https://gitea.kamilklecha.dev/mayx/blog
https://forgejo.testbed.unict.it/mayx/blog
http://www.clovejunti.cn:3000/mayx/blog_cn
http://49.232.222.18:3000/mayx/blog_cn
http://47.115.132.164:5500/mayx/blog
369 http://47.109.103.110:9000/mayx/blog_cn
370 http://47.105.124.101:3000/mayx/blog_cn
371 http://49.232.183.190:3000/mayx/blog_cn
372 http://git.zxkedu.com:33769/mayx/blog_cn
373 https://code.wemediacn.com/mayx/blog_cn
https://gitea.shizuka.icu/mayx/blog_cn
http://152.136.145.93:3000/mayx/blog_cn
http://43.139.2.237:3000/mayx/blog_cn
https://code.hpswk.com/mayx/blog_cn
https://gitea.scivigi.com/mayx/blog_cn
http://47.109.30.152:3000/mayx/blog_cn
https://git.minecraftlegacy.com/mayx/blog
374 http://51.159.198.233:3000/mayx/blog
375 https://gitea.adriangonzalezbarbosa.eu/mayx/blog
http://39.108.124.198:3000/mayx/blog
376 https://git.legatus.ru/mayx/blog
377 https://git.kayashov.keenetic.pro/mayx/blog
http://43.138.83.20:3000/mayx/blog_cn
http://rentsl.ren:45300/mayx/blog_cn
378 http://47.104.241.192:19999/mayx/blog_cn
379 http://47.98.148.146:1026/mayx/blog_cn
380 http://119.96.62.56:3000/mayx/blog_cn
381 http://101.42.28.156:3000/mayx/blog_cn
http://81.69.229.51:3000/mayx/blog_cn
http://49.234.3.145:3018/mayx/blog_cn
382 http://106.55.0.66:31807/mayx/blog_cn
383 https://gitea.gentronhealth.com/mayx/blog_cn
384 http://43.143.209.246:6300/mayx/blog_cn
385 http://152.136.158.133:36512/mayx/blog_cn
386 http://yidaima.cn:6008/mayx/blog_cn
https://git.vwfaw.cn/mayx/blog_cn
387 http://47.113.101.80:3000/mayx/blog_cn
http://115.190.145.231:3000/mayx/blog_cn
388 http://82.156.98.34:3000/mayx/blog_cn
389 http://zgd.synology.me:8418/mayx/blog_cn
390 https://git.zguiy.com/mayx/blog_cn
394 http://124.223.54.62:28/mayx/blog_cn
395 http://159.75.131.235:3001/mayx/blog_cn
396 http://1.117.67.95:3000/mayx/blog_cn
http://111.230.9.98:3000/mayx/blog_cn
http://124.223.18.41:10082/mayx/blog_cn
http://111.229.183.203:3000/mayx/blog_cn
397 http://103.236.53.208:3000/mayx/blog_cn
398 http://118.195.135.194:3000/mayx/blog_cn
399 http://81.70.102.154/mayx/blog_cn
400 http://154.8.164.149:3000/mayx/blog_cn
http://39.99.238.14:8120/mayx/blog_cn
401 http://111.228.34.40:3000/mayx/blog_cn
402 http://82.156.249.211:3000/mayx/blog_cn
403 http://36.133.248.69:3088/mayx/blog_cn
404 http://220.205.16.27:18081/mayx/blog_cn
405 http://81.69.221.216:3000/mayx/blog_cn
406 http://115.159.194.75:4000/mayx/blog_cn
http://115.190.214.62:3001/mayx/blog_cn
407 http://183.204.60.122:10081/mayx/blog_cn
http://120.48.144.83:3000/mayx/blog_cn
http://49.232.143.93:3000/mayx/blog_cn
408 http://43.139.240.37:17000/mayx/blog_cn
409 http://159.75.27.114:3000/mayx/blog_cn
410 http://arcreya.top/mayx/blog_cn
411 https://code.tczkiot.com/mayx/blog_cn
http://223.71.122.54:3000/mayx/blog_cn
412 http://111.170.153.123:3000/mayx/blog_cn
413 http://xeroworld.team/mayx/blog_cn
414 https://gitea.wuyuank.com/mayx/blog_cn
415 http://47.117.245.9:17701/mayx/blog_cn
https://git.meshel.cn/mayx/blog_cn
416 https://git.sunlix.one/mayx/blog_cn
417 http://47.106.222.181:20511/mayx/blog_cn
418 http://101.43.95.130:3001/mayx/blog_cn
http://39.101.170.62:9080/mayx/blog_cn
https://gitea.jfen.eu.org/mayx/blog_cn
https://git.wending993.top/mayx/blog_cn
419 https://gitea.myat4.com/mayx/blog_cn
420 http://118.24.161.24:3000/mayx/blog_cn
https://git.chalypeng.xyz/mayx/blog_cn
http://13.230.31.145:8418/mayx/blog_cn
421 http://githanea.s.odn.cc/mayx/blog_cn
422 https://git.dev.chuweizi.com/mayx/blog
423 http://35.175.189.8/mayx/blog
424 http://meowug.com:8418/mayx/blog_cn
425 http://36.138.125.206:3000/mayx/blog_cn
426 https://git.4lcap.com/mayx/blog_cn
https://gitea.visoftware.com.co/mayx/blog_cn
427 http://101.43.238.71:3000/mayx/blog_cn
428 http://59.110.175.62:4322/mayx/blog_cn
429 https://www.luluvip.cn:8419/mayx/blog_cn
430 http://xianyuhome.cn:11013/mayx/blog_cn
http://nas.hongyuanjia.net:8418/mayx/blog_cn
https://git.gotrobotics.org/mayx/blog
431 https://git.chatumbrella.online/mayx/blog
432 https://silica.codes/mayx/blog
433 https://git.crystalyx.net/mayx/blog
434 https://gittea.dev/mayx/blog
435 https://git.newnaturalphilosophy.org/mayx/blog
436 https://code.infininov.com/mayx/blog
437 https://git.apt142.ru/mayx/blog
438 http://gitea.mcelwain.net/mayx/blog
439 https://chunkks.com/mayx/blog
440 https://gitea.earthmanrpg.me/mayx/blog
441 https://ndiuky.site/mayx/blog
442 https://src.enterpriselinux.social/mayx/blog
443 https://gitea.grxe.io/mayx/blog
444 https://git.mhworld.net/mayx/blog
445 https://blvckout.foo/mayx/blog
446 https://gitea.accept.dev.dbf.nl/mayx/blog
447 https://git.ke5.de/mayx/blog
448 https://git.jhossain.online/mayx/blog
449 http://gitea.xsec.fun/mayx/blog
450 https://barhoum-lab.fr/mayx/blog
451 https://git.fedaya.net/mayx/blog
452 http://gitea.nakile.fr/mayx/blog
453 https://redev.lol/mayx/blog
454 http://git.zfxfzb.com/mayx/blog
455 https://papi.tkpups.com/mayx/blog
456 https://git.beyond-a-i.org/mayx/blog
457 http://huanghomenas2.myqnapcloud.com:4000/mayx/blog_cn
458 http://43.142.166.108:10082/mayx/blog_cn
459 https://tm-jikayo.com/mayx/blog_cn
460 http://zzdgitea.stnav.com/mayx/blog_cn
461 http://1.117.66.197:3000/mayx/blog_cn
462 http://git.zhmight.com/mayx/blog_cn
463 https://intl-dev.gaia888.com/mayx/blog_cn
464 http://gitea.snailtrack.cn/mayx/blog_cn
465 http://ydds.cloud:3000/mayx/blog_cn
466 http://120.24.50.145:3000/mayx/blog_cn
467 https://code.draussenfunker.de/mayx/blog_cn
468 https://git.dinsor.co.th/mayx/blog
469 https://ofibohost.com/mayx/blog
470 https://lab.iishka.net/mayx/blog
471 http://www.arkproject.top/mayx/blog
472 http://www.bkandssp.cn:30/mayx/blog
473 https://gitea.spitaki.cloud/mayx/blog
474 https://git.codle.ru/mayx/blog
475 https://codeop.ru/mayx/blog
476 https://git.mirocom.org/mayx/blog
477 http://gitea.ydxtool.com/mayx/blog
478 http://18.167.251.121:10003/mayx/blog
479 http://39.98.171.121:53000/mayx/blog
480 https://gitea.malxte.de/mayx/blog
481 https://git.nizart.me/mayx/blog
482 https://git.ddns.net/mayx/blog
483 http://222.85.214.245:9776/mayx/blog
484 https://git.kraevsky.ru/mayx/blog
485 https://ruyiscx.cloud:3000/mayx/blog
486 https://git.0xee.eu/mayx/blog
487 https://gitea.deitglobal.com/mayx/blog
488 https://git.crwlr.ir/mayx/blog
489 https://git.nozora.top/mayx/blog
490 https://git.sortug.com/mayx/blog
491 https://aivyx-gitea.cloud/mayx/blog
492 https://git.edenit.co.kr/mayx/blog
493 https://git.catgirlsneed.homes/mayx/blog
494 https://git.eldev.netcraze.pro/mayx/blog
495 http://110.41.184.238:3000/mayx/blog
496 http://47.108.255.216:3000/mayx/blog_cn
497 https://gitea.molietech.com/mayx/blog_cn
498 http://58.87.88.234:3000/mayx/blog_cn
499 http://210.75.240.13:3000/mayx/blog_cn
500 https://git.xz-i.com:30443/mayx/blog_cn
501 https://git.fynn.vip/mayx/blog_cn
502 http://119.91.212.17:3000/mayx/blog_cn
503 http://git.hbg99.com:8080/mayx/blog_cn
504 https://git.eplg.services/mayx/blog
505 http://89.167.38.168:3001/mayx/blog
506 http://namonba.asuscomm.com:3001/mayx/blog
507 http://109.199.98.226:3001/mayx/blog
508 https://git.extra.eiffel.com/mayx/blog
509 https://gitea.digitanie.org/mayx/blog
510 https://git.xleed.com/mayx/blog
511 https://qlcodegitserver.online/mayx/blog
512 https://gitea.vvzvlad.xyz/mayx/blog
513 https://git.supernets.org/mayx/blog
514 https://git.digitaltelepresence.com/mayx/blog
515 https://git.hrfee.pw/mayx/blog
516 https://git.libregaming.org/mayx/blog
517 https://git.kaki87.net/mayx/blog
518 https://forgejo.vanten-s.com/mayx/blog
519 https://git.heartnn.com/mayx/blog
520 https://git.joinplu.me/mayx/blog
521 https://git.research.dezeeuw.ca/mayx/blog
522 http://149.104.29.239:8081/mayx/blog

View File

@@ -1,6 +1,8 @@
proxies:
- https://blog.mayx.workers.dev/
- https://mayx.deno.dev/
- https://mayx.val.run/
- https://mayx.azion.app/
- https://yuki.gear.host/
- https://mayx.global.ssl.fastly.net/
mirrors:
@@ -11,13 +13,18 @@ mirrors:
- https://mayx.frama.io/
- https://mayx.surge.sh/
- https://mayx.pages.gay/
- https://mayx.gitpage.si/
- https://mayx.serv00.net/
- https://mayx.vercel.app/
- https://mayx-blog.pgs.sh/
- https://mayx.netlify.app/
- https://mayx.gitnet.page/
- https://mayx.stormkit.dev/
- https://mayx.grebedoc.dev/
- https://mabbs.kinsta.page/
- https://mayx.codeberg.page/
- https://mayx.tildepages.org/
- https://mayx.pandastack.app/
- https://mayx.pages.lain.la/
- https://mayx.4everland.app/
- https://mayx.readthedocs.io/
@@ -37,10 +44,11 @@ repos:
- https://codeberg.org/mayx/blog
- https://pagure.io/mayx
- https://git.gay/mayx/mayx
- https://repo.or.cz/mayx.git
- https://gitea.com/mayx/mayx
- https://gitnet.fr/mayx/blog
- https://gitgud.io/mayx/mayx
- https://git.sr.ht/~mayx/mayx
- https://worktree.ca/mayx/blog
- https://git.launchpad.net/mayx
- https://gin.g-node.org/mayx/blog
- https://tildeforge.dev/mayx/blog

View File

@@ -17,6 +17,8 @@ layout: xslt_container
<link rel="stylesheet" href="/assets/css/style.css?v={{ site.time | date: "%s" }}" />
<!--[if !IE]> -->
<link rel="stylesheet" href="/Live2dHistoire/live2d/css/live2d.css" />
<link rel="stylesheet" href="/assets/css/gitalk.css" />
<script src="/assets/js/gitalk.min.js"></script>
<!-- <![endif]-->
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="{{ site.title }}" />
<link rel="webmention" href="https://webmention.io/mabbs.github.io/webmention" />
@@ -25,6 +27,7 @@ layout: xslt_container
<link rel="prefetch" href="https://www.blogsclub.org/badge/mabbs.github.io" as="image" />
<link rel="blogroll" type="text/xml" href="/blogroll.opml" />
<link rel="me" href="https://github.com/Mabbs" />
<link type="text/plain" rel="author" href="/humans.txt" />
<script src="/assets/js/jquery.min.js"></script>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
@@ -34,6 +37,15 @@ layout: xslt_container
<script>
var lastUpdated = new Date("{{ site.time | date_to_rfc822 }}");
var BlogAPI = "https://summary.mayx.eu.org";
var GitalkConfig = {
clientID: '36557aec4c3cb04f7ac6',
clientSecret: 'ac32993299751cb5a9ba81cf2b171cca65879cdb',
repo: 'mabbs.github.io',
owner: 'Mabbs',
admin: ['Mabbs'],
distractionFreeMode: false,
proxy: 'https://cors-anywhere.mayx.eu.org/?https://github.com/login/oauth/access_token'
};
</script>
<script src="/assets/js/main.js"></script>
<!--[if !IE]> -->
@@ -64,8 +76,8 @@ layout: xslt_container
<p class="p-note">{{ site.description | default: site.github.project_tagline }}</p>
<form action="/search.html">
<input type="text" name="keyword" id="search-input-all" placeholder="Search blog posts.." />&#160;<input type="submit" value="搜索" />
<form id="search-input-all" action="/search.html">
<input type="text" name="keyword" placeholder="Search blog posts.." />&#160;<input type="submit" value="搜索" />
</form>
<br />
@@ -90,7 +102,7 @@ layout: xslt_container
{% endif %}
</ul>
</header>
<section{% unless page.layout == "default" %} class="h-entry"{% endunless %}>
<section id="pjax-container"{% unless page.layout == "default" %} class="h-entry"{% endunless %}>
{{ content }}
@@ -107,6 +119,8 @@ layout: xslt_container
<script src="/assets/js/main_new.js"></script>
<script src="/Live2dHistoire/live2d/js/live2d.js"></script>
<script src="/Live2dHistoire/live2d/js/message.js"></script>
<script src="/assets/js/jquery.pjax.min.js"></script>
<script src="/assets/js/pjax.js"></script>
<!-- <![endif]-->
</body>
</html>

View File

@@ -158,22 +158,11 @@ $.get(BlogAPI + "/suggest?id={{ page.url }}&update=" + lastUpdated.valueOf(), fu
</div>
<!--[if !IE]> -->
<link rel="stylesheet" href="/assets/css/gitalk.css">
<script src="/assets/js/gitalk.min.js"></script>
<div id="gitalk-container"></div>
<div id="gitalk-container" data-page-id="{{ page.id }}"></div>
<script>
var gitalk = new Gitalk({
clientID: '36557aec4c3cb04f7ac6',
clientSecret: 'ac32993299751cb5a9ba81cf2b171cca65879cdb',
repo: 'mabbs.github.io',
owner: 'Mabbs',
admin: ['Mabbs'],
id: '{{ page.id }}', // Ensure uniqueness and length less than 50
distractionFreeMode: false, // Facebook-like distraction free mode
proxy: "https://cors-anywhere.mayx.eu.org/?https://github.com/login/oauth/access_token"
})
var gitalk = new Gitalk(Object.assign({ id: '{{ page.id }}' }, GitalkConfig))
gitalk.render('gitalk-container')
</script>
<!-- <![endif]-->

View File

@@ -0,0 +1,76 @@
---
layout: post
title: 虚拟局域网的组网探索记录
tags: [虚拟网络, 异地组网, WireGuard]
---
异地组网,有多少种选择?<!--more-->
# 起因
最近我有一些放置在许多不同地方的机器,有一些东西需要让它们之间能够相互访问。虽然我很久以前写过一篇使用[SSH进行互联](/2021/05/07/ssh.html)的文章,但这样做每个服务都需要单独配置,也不方便管理。所以为了能让机器之间能够轻松通信,我打算组建一个虚拟局域网,让它们像在同一交换机下一样。不过这种组网的工具非常多,我应该选哪个比较好呢?
# 不同组网工具的体验
## n2n
以前我用过一款用C写的叫做[n2n](https://github.com/ntop/n2n)的工具它可以很轻松地组建一个P2P的二层虚拟网络而且生态也不错手机、电脑、路由器、服务器上都有可以用的客户端。使用起来非常简单它的中继和穿透服务程序叫做Supernode无需太多的配置只要在有公网的服务器安装并使用`-p`指定一个端口就可以启动。而客户端配置也非常简单,用`-l`配置好Supernode的地址然后让想要在同一个网络的机器使用相同的任意`-k``-c`就可以成功组网,可以说算是非常好用了。
唯一的问题就是它这个项目看起来似乎已经停止更新了……虽然大多数情况下用起来没问题但是有时候还是会出现组网不太可靠的情况。如果两个机器都不经过NAT可以通过公网IP连接它的可靠性还可以。但如果是两个NAT后的机器之间有时候会存在莫名掉线的情况也许是因为穿透导致的不可靠总之遇到这种情况之后重启又能正常工作说明是软件本身的问题但它停更了……所以对我来说它的可靠性不太够。其实它还有个叫做[n3n](https://github.com/n42n/n3n)的继任者,不过知名度不高,所以生态也不太行)
## WireGuard
其实在这之后我本来是打算用L2TP/IPSec进行组网的但看了一下貌似配置有点复杂而且不够现代现在想要组网貌似大多都推荐[WireGuard](https://git.zx2c4.com/wireguard-linux/)作为更现代的选择。只不过它和n2n相比来说是三层的虚拟网络如果需要发送非TCP/IP协议的特别包可能就用不了它吧当然对我来说没有这种需求。它用起来也非常简单不过正常情况下它设计是为了点对点传输而且没有自带的NAT穿透功能所以如果想要实现组网就得搭一个星形网络让互联网上的服务器作为虚拟的交换机这个做起来倒也不复杂。首先每个节点需要生成一个公私钥对作为身份证明在安装好WireGuard之后执行`wg genkey`就能生成私钥。作为交换机的节点需要在`/etc/wireguard/wg0.conf`中写一个这样的配置:
```conf
[Interface]
PrivateKey = xxx
Address = 192.168.1.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -o wg0 -j ACCEPT
# 机器1
[Peer]
PublicKey = xxx
AllowedIPs = 192.168.1.2/32
# 机器2
[Peer]
PublicKey = xxx
AllowedIPs = 192.168.1.3/32
```
其中PrivateKey填写交换机自己的私钥而作为使用者的Peer中的PublicKey可以用对应节点的私钥执行`echo xxx | wg pubkey`这个命令查看然后每个Peer需要像这样配置
```conf
[Interface]
PrivateKey = xxx
Address = 192.168.1.2/24
[Peer]
PublicKey = xxx # 交换机节点的公钥
Endpoint = xxx.xxx.xxx.xxx:51820 # 交换机节点的地址
AllowedIPs = 192.168.1.0/24
PersistentKeepalive = 25
```
最后全都配置好之后所有节点使用`systemctl enable --now wg-quick@wg0`启动就可以了,启动之后每个节点可以执行`wg`查看当前的连接状态。
当然这是在Linux上至于其他系统大多都有GUI配置填起来更简单。它的生态也非常好基本上常见的操作系统都支持具体可以在[官网](https://www.wireguard.com/install/)查看支持的系统和安装方法。不过由于它在Linux中优先使用内核模块导致我在一些比较小众的环境中也是遇到了各种特别的问题。
### 在红米AX3000中遇到的问题
我在这个网络中有几个安装了OpenWrt的路由器在这其中使用联发科芯片的路由器基本上都没什么问题官网能轻松下载到固件也能很轻松地在软件包中找到WireGuard并安装但我还有一台使用高通芯片的红米AX3000似乎因为高通对资料管控得很严格导致它没有官网的固件最终我在GitHub上找了一个其他人自己编译的[固件](https://github.com/hzyitc/openwrt-redmi-ax3000/)。虽然它整起来有点麻烦不过倒也能用但是在我尝试安装WireGuard的时候遇到了麻烦……
它的软件包里有WireGuard也能找到对应的内核模块安装包但安装完之后没法启动……随后我看了一下它下载的[安装包](https://github.com/hzyitc/openwrt-redmi-ax3000/blob/gh-pages/ipq50xx-qsdk-kernel-5.4-openwrt-21.02-qsdk-11.5.05.841.1029/ci-20240727-173350-ab1f9ffa/kmod-wireguard_5.4-qsdk-11.5.0.5-1_arm_cortex-a7_neon-vfpv4.ipk)结果发现是空的😰它这个固件的内核模块可能是在编译的时候遇到了一些问题。至于让我自己编译这个内核模块难度似乎有点高了……那怎么办呢要知道Linux的内核模块都是和内核挂钩的没办法随便找一个别的模块使用。还好WireGuard倒也不止有内核模块也有一些在用户空间中的实现比如[wireguard-go](https://git.zx2c4.com/wireguard-go)和[wireguard-rs](https://git.zx2c4.com/wireguard-rs)。只是官方似乎非常不推荐在Linux上使用它们所以没有提供预编译的版本。不过遇到这种问题的人也许是比较多所以有人做了在[OpenWrt上使用的wireguard-go](https://github.com/seud0nym/openwrt-wireguard-go),安装好之后效果和使用内核模块的感觉基本上没什么区别,最终也能连通,唯一的区别就是在执行`wg`的时候会显示“Interface: wg0 (userspace)”罢了。从效率上来说虽然肯定没有内核模块那么高但它其实也用了“Tun”模块理论上和使用“Tap”模块的n2n应该差不多吧。
### 在openEuler中遇到的问题
在我使用的节点中还有一台安装了openEuler 22.03 LTS操作系统的服务器虽然openEuler和CentOS可以说基本上没什么区别但毕竟它的内核是openEuler自己编译的所以没办法直接使用CentOS的内核模块。并且openEuler的源中也完全没有提供和WireGuard相关的包所以想要在openEuler上安装WireGuard还是有些挑战当然如果觉得麻烦它们倒是有一个兼容WireGuard的客户端[TunSafe](https://eur.openeuler.openatom.cn/coprs/nucleo/tunsafe/)可以凑活用一下)。
后来我试了一下在这上面安装wireguard-tools倒是可以直接用[CentOS 8EPEL源中的包](https://mirrors.tuna.tsinghua.edu.cn/epel/8/Everything/x86_64/Packages/w/wireguard-tools-1.0.20210914-1.el8.x86_64.rpm)但openEuler的内核在编译的时候故意没有包含WireGuard内核模块……这该怎么办呢用wireguard-go吗虽然这样可以很简单地解决但感觉这样就是认输了😂。后来我搜了一下找到了一篇[在openEuler安装WireGuard内核模块](https://dingle.site/archives/wei-openeulertian-jia-wireguardmo-kuai)的文章,方法大致如下:
1. 首先安装编译环境和源代码。
```bash
yum install elfutils-libelf-devel kernel-devel pkgconfig "@Development Tools"
yum install kernel-headers.x86_64 pkg-config ncurses-devel openssl-devel dwarves
yum install kernel-source.x86_64
```
2. 然后进行编译配置,内核源码一般会安装到`/usr/src/`下,找到之后在里面执行`make menuconfig`然后勾选“Device Drivers -> Network device support -> Wireguard secure network tunnel”并保存。
3. 最后执行`make`开始编译,为了加速可以用`-j`参数加上CPU的核心数进行并行编译当时编译就花掉了一整天😂理论上应该可以只编译WireGuard和它依赖的几个模块不过我不太清楚怎么做还是费点时间按照文中说的做吧。
4. 执行`make modules_install`将编译好的结果安装到`/lib/modules/5.10.0`
不过系统似乎不会去这个路径下找内核模块所以还得把这里面的kernel文件夹复制到`/lib/modules/$(uname -r)`下,然后执行`depmod -a`更新模块依赖。
5. 最后执行`modprobe wireguard`验证模块是否能正常加载,如果没有报错并且可以在`lsmod | grep wireguard`中看到就说明安装成功了剩余的步骤和其他Linux系统一样。
### WireGuard的控制平面
虽然WireGuard本身配置很简单但每加一个节点还得在交换机节点上修改一下配置文件稍微有些麻烦所以有人开发了一些控制平面让它可以被更规范地管理比如[Netmaker](https://github.com/gravitl/netmaker)和[Headscale](https://github.com/juanfont/headscale)。而Headscale主要是为Tailscale客户端开发的开源服务器端因此功能会局限于Tailscale提供的功能。所以如果没有用过Tailscale可以优先考虑Netmaker。
这两个控制平面支持的功能相当丰富而且它们还支持让WireGuard进行NAT穿透自动组建Mesh网络不像我一堆在NAT后的设备还要直接使用WireGuard就只能搭成星形网络。只不过对我来说我也用不到那么多企业级功能这个服务端配置起来也有点麻烦而且我也没有很多节点需要动态增减我的云端服务器带宽也足够使用所以就没有用这些东西了😆。
## 其他的组网工具
除了WireGuard之外还有很多其他的组网工具比如[VNT](https://github.com/vnt-dev/vnt)和[EasyTier](https://github.com/EasyTier/Easytier)这俩用起来也非常简单只需要加几个参数就能组网和n2n一样。不过功能相比于n2n来说要强大不少也支持NAT穿透而且还都兼容WireGuard协议另外不像WireGuard强制使用UDP传输这两个还能用TCP和WebSocket在特殊网络环境下应该比直接用WireGuard更好。另外它们都是Rust编写的也许会更安全😋可惜我已经配好WireGuard之后懒得再改了如果以后有机会可以尝试一下。
# 总结
现在如果想要异地搭建虚拟局域网还是有相当多的选择而且无论是性能还是配置难度都比以前好了不少。看来这种需求还是相当多啊也正是因为有这些需求所以才会出现这么多的方案可以用吧……总之我最后还是选择了纯WireGuard方案主要还是简单够用可靠性也不错而且折腾了这么多再换也不太合适吧🤣。

210
_posts/2026-06-01-dedupe.md Normal file
View File

@@ -0,0 +1,210 @@
---
layout: post
title: 如何节约游戏占用的硬盘空间?
tags: [dedupe, RPG制作大师, 游戏]
---
浪费硬盘空间是可耻的!<!--more-->
# 起因
在几年前,我写过一篇在[MacBook上玩游戏](/2023/10/21/game.html)的文章在那之后我已经在我的Mac上下载了几十部游戏。只不过有个问题……我的Mac只有256GiB的硬盘存储空间下载一堆游戏会让我的硬盘空间不够用但是又不太想删所以我该怎么尽可能让游戏占用更少的空间呢
首先为了能在Mac上尽可能流畅地玩我玩的游戏大多都是用跨平台能力很强的引擎编写的游戏比如[Ren'Py](https://github.com/renpy/renpy)、RPG制作大师、Godot之类的而像RPG制作大师这种引擎制作的游戏还有一个特点开发者一般都会使用引擎自带的素材进行开发有时候还会用不少第三方的罐头素材之类的实际上甚至还有好多AVG为了蹭这些引擎的公用素材刻意用它们所以这几十个游戏里应该有非常多的重复素材如果能想办法把它们去个重应该能节省相当多的空间吧……
# 去重的方法
如果想要对文件进行去重,我搜了一下,有个叫做[jdupes](https://codeberg.org/jbruchon/jdupes)的工具就很不错它支持多种去重方式比如使用硬链接或者用一些文件系统的写时复制特性。不过如果用写时复制特性jdupes在第二次执行的时候会认为去重后的文件还是单独的文件就会重复去重了而且最终也不好统计反正对我玩的游戏来说要去重的都是游戏素材不存在后续修改的可能性所以我打算全部用硬链接。
所以最终要执行的命令也非常简单,直接一句`jdupes -r -L Game`就可以了,这样以后每次下载了新的游戏之后重复执行这个操作,就可以将游戏中和其他游戏里有的素材去重了。
不过实际上很多游戏并不能直接用这种方式去重,因为它们的资源文件有些是打包成单个文件,有些进行了简单的加密,导致即使是相同的素材,文件也并不相同,所以我必须让所有的资源以单独原始的形态出现。对于不同的引擎也有不同的处理方式,所以接下来我需要对它们进行一些研究。
# 不同引擎的处理方式
## RPG制作大师MV/MZ
对于RPG制作大师MV/MZ开发的游戏来说解密很简单比较知名的是一个叫做[RPG-Maker-MV-Decrypter](https://gitlab.com/Petschko/RPG-Maker-MV-Decrypter)的工具它可以在浏览器中进行解密但一个游戏的资源文件非常多……要是全上传给浏览器实在是太麻烦了……后来我又搜了一下有一个用C#写的叫[RPG Maker Decrypter](https://github.com/uuksu/RPGMakerDecrypter)工具也很不错它作为命令行工具比在浏览器中执行简单多了而且还能只把资源文件单独提出来这样就可以剔除掉游戏自带的浏览器文件。不过他这个仓库的代码有个问题它在选择文件的时候似乎会区分大小写文件夹名中含有大写字母的似乎会被剔除……这样不太符合我的要求啊当然我不会C#于是我用AI改了一下还给他提了个[PR](https://github.com/uuksu/RPGMakerDecrypter/pull/28)不过这家伙看起来似乎不太喜欢AI写的代码看起来不打算合我的PR😅。不过无所谓了反正我也是自用他爱合不合吧。
这个工具的用法也非常简单,一句`RPGMakerDecrypter-cli [input] -p -o [output]`就处理好了,处理完之后只需要把`data/System.json`中的`hasEncryptedImages``hasEncryptedAudio`设置为false就可以正常识别以后在Mac中只要在游戏路径下执行`python3 -m http.server`就可以在浏览器中游玩了。
在这个过程中我还发现有一些游戏喜欢把原画文件直接放到游戏里面一张图片好几M但RPG制作大师的引擎在渲染的时候根本不会渲染出那么高的分辨率结果毫无意义地浪费一大堆存储空间而且因为图片是加密的对大多数人来说也没有收藏价值。所以在解密完之后我就想干脆把这些图片全部有损压缩一遍估计能节省不少存储空间于是让AI写了个简单的压缩脚本处理了一下
```python
#!/usr/bin/env python3
"""
图片压缩脚本(多进程版本)
将 pictures.orig 文件夹中的图片使用 WebP 格式进行高效压缩,
保持分辨率不变,肉眼看不出差异,压缩后的图片保存到 pictures 文件夹。
使用方法:
python3 compress_images.py
压缩策略:
- 保持原始分辨率不变
- 使用 WebP 格式(有损压缩,高质量)
- 质量设置为 85在保持视觉质量的同时显著减小文件大小
- 文件名和后缀保持不变
- 多进程并行处理
- 处理失败时自动复制原文件
"""
import os
import shutil
from PIL import Image
from pathlib import Path
from multiprocessing import Pool, cpu_count
from functools import partial
# 配置路径
SOURCE_DIR = "pictures.orig"
OUTPUT_DIR = "pictures"
# WebP 质量设置 (0-100数值越高质量越好文件也越大)
# 85 是一个很好的平衡点,肉眼几乎看不出差异
WEBP_QUALITY = 85
# 对于带有透明通道的图片,可以设置不同的质量
WEBP_QUALITY_WITH_ALPHA = 80
# 并行进程数,默认为 CPU 核心数
NUM_WORKERS = cpu_count()
def compress_single_image(img_file: tuple[str, str, str]) -> tuple[str, bool, int, int]:
"""
压缩单个图片文件(用于多进程)
Args:
img_file: (源文件路径, 输出文件路径, 输出目录) 元组
Returns:
(文件名, 是否成功, 原始大小, 压缩后大小) 元组
"""
source_path, output_path_str, output_dir = img_file
source_path = Path(source_path)
output_path = Path(output_path_str)
original_size = source_path.stat().st_size
try:
img = Image.open(source_path)
# 检查是否有透明通道
has_alpha = img.mode in ('RGBA', 'LA', 'PA') or (img.mode == 'P' and 'transparency' in img.info)
# 确定使用的质量
quality = WEBP_QUALITY_WITH_ALPHA if has_alpha else WEBP_QUALITY
# 保存为 WebP 格式,但使用原始的文件扩展名
img.save(
str(output_path),
format='WEBP',
quality=quality,
method=6 # 压缩方法 0-66 是最慢但压缩率最高的
)
compressed_size = output_path.stat().st_size
return (source_path.name, True, original_size, compressed_size)
except Exception as e:
# 处理失败时,复制原文件到输出目录
try:
shutil.copy2(source_path, output_path)
compressed_size = output_path.stat().st_size
return (source_path.name, False, original_size, compressed_size)
except Exception as copy_error:
return (source_path.name, False, original_size, 0)
def main():
source_dir = Path(SOURCE_DIR)
output_dir = Path(OUTPUT_DIR)
# 检查源目录是否存在
if not source_dir.exists():
print(f"错误: 源目录 '{SOURCE_DIR}' 不存在")
return
# 创建输出目录
output_dir.mkdir(exist_ok=True)
# 获取所有图片文件(支持多种格式)
image_extensions = ('*.png', '*.jpg', '*.jpeg', '*.bmp', '*.gif', '*.tiff', '*.webp')
image_files = []
for ext in image_extensions:
image_files.extend(source_dir.glob(ext))
image_files = sorted(set(image_files)) # 去重并排序
if not image_files:
print(f"在 '{SOURCE_DIR}' 中没有找到图片文件")
return
# 构建任务列表
tasks = []
for img_file in image_files:
output_path = output_dir / img_file.name # 保持原文件名和后缀
tasks.append((str(img_file), str(output_path), str(output_dir)))
print(f"找到 {len(tasks)} 个图片文件")
print(f"源目录: {SOURCE_DIR}")
print(f"输出目录: {OUTPUT_DIR}")
print(f"WebP 质量设置: {WEBP_QUALITY}")
print(f"并行进程数: {NUM_WORKERS}")
print("-" * 70)
# 使用多进程池处理图片
success_count = 0
fail_count = 0
total_original = 0
total_compressed = 0
with Pool(processes=NUM_WORKERS) as pool:
for i, (filename, success, original_size, compressed_size) in enumerate(pool.imap(compress_single_image, tasks), 1):
total_original += original_size
total_compressed += compressed_size
if success:
success_count += 1
marker = "✓"
reduction = (1 - compressed_size / original_size) * 100 if original_size > 0 else 0
status_msg = f"{reduction:+.1f}%"
else:
fail_count += 1
marker = "✗"
status_msg = "复制原文件"
status = f"[{i}/{len(tasks)}] {filename}"
print(f"{marker} {status:50} {original_size/1024:>8.1f}KB -> {compressed_size/1024:>8.1f}KB ({status_msg})")
# 输出总结
print("-" * 70)
total_reduction = (1 - total_compressed / total_original) * 100 if total_original > 0 else 0
print(f"压缩完成!")
print(f" 成功处理: {success_count}/{len(tasks)} 个文件")
if fail_count > 0:
print(f" 失败(已复制原文件): {fail_count}/{len(tasks)} 个文件")
print(f" 原始总大小: {total_original / 1024 / 1024:.2f} MB ({total_original / 1024:.1f} KB)")
print(f" 压缩后大小: {total_compressed / 1024 / 1024:.2f} MB ({total_compressed / 1024:.1f} KB)")
print(f" 总压缩率: {total_reduction:.1f}%")
print(f" 节省空间: {(total_original - total_compressed) / 1024 / 1024:.2f} MB")
if __name__ == "__main__":
main()
```
最终压缩完之后我把原图上传到了[EH画廊](https://e-hentai.org/g/3901673/426a7a17ba/)中本地只留压缩后的图片大小从原来的2GiB多下降到了300多MiB可以说效果相当显著了。
除此之外还有一些游戏使用了Ogg FLAC背景音乐这种音乐不仅占用磁盘空间很大而且我在Safari上玩的时候浏览器根本没法解析Chrome应该可以。虽然我听音乐是会考虑[HiFi](/2025/03/22/hifi.html),但玩游戏就没必要了吧……所以像这种音乐,就得用一句:
```bash
ffmpeg -i input.flac.ogg -c:a vorbis -strict -2 -q:a 10 output.ogg
```
转换为正常有损的Ogg音乐了。
## RPG制作大师XP/VX/VA
对于RPG制作大师XP/VX/VA引擎开发的游戏来说它们都是基于用Ruby语言开发的RGSS编写的作为脚本来说倒是有跨平台的条件但因为官方并没有做跨平台所以不能直接在Mac上运行。不过有一款叫做[mkxp-z](https://github.com/mkxp-z/mkxp-z)的工具允许跨平台运行使用RPG制作大师XP/VX/VA制作的游戏因此这类游戏我也收集了一些。
这些游戏的资源通常会进行简单的混淆加密一般会打包成单个RGSSAD文件这个解包也很简单用刚刚的RPG Maker Decrypter就可以。不过这种游戏还有个特点有些游戏需要使用[RTP](https://www.rpgmakerweb.com/run-time-package)才能运行它这个RTP其实就是RPG制作大师自带的素材包当时设计出来估计也是想着用来节约硬盘空间吧就是不知道为什么到后来的MV/MZ却取消了这种方式……虽然mkxp-z是支持通过配置文件引入RTP的但既然我已经选择了硬链接的方式就没必要单独搞RTP了我选择把RTP直接和游戏合并然后让jdupes直接去重就好了这样相比于RTP的方式还有一些好处就是XP/VX/VA可能有一些和MV/MZ使用相同的素材这部分也可以不用占用重复的空间了。
## Ren'Py
对于Ren'Py来说因为这个引擎并没有自带的公共资源所以重复素材的问题并不是很大。不过在我之前对[Ren'Py的探索](/2024/01/20/renpy.html)中提到过我玩的一些游戏是系列游戏这种系列游戏有非常多的素材复用但显然开发者并不会为了节约玩家硬盘空间而共享这部分资源而且Ren'Py游戏也都是打包成单个文件的所以接下来我们依然得要解包才能进行去重处理。
Ren'Py使用的rpa文件解包起来依然很简单有一款现成的工具[unrpa](https://github.com/Lattyware/unrpa)可以直接解包用pip就能安装。不知道为什么这些引擎总是喜欢把资源文件都打成一个包明明很容易就能解包……难道是为了性能吗
不过也正是因为Ren'Py的公共资源不多如果玩的不是系列游戏就没有解包的必要了解包之后一堆小文件有可能会比整个rpa文件更大毕竟文件系统存在“簇”有可能会消耗没对齐的空间。
# 验证结果
最终进行完上述操作,可以通过执行`du -sh``du -shl`进行对比来验证节约的硬盘空间,我在这次游戏的瘦身中节约了:
```
~ % du -sh Game
33G Game
~ % du -shl Game
47G Game
```
看起来还是相当可观啊……尤其是在当下硬盘价格大涨的情况下,如果很多人能通过这些方式来节约硬盘空间,就能减少对硬盘容量的需求吧……不过说到底其实也都是网上能下到的资源,也许玩完之后就删掉才是最好的节约硬盘的方式吧😂。
<input name="live2dBGM" value="https://music.163.com/song/media/outer/url?id=1968116350.mp3" type="hidden" />

View File

@@ -98,7 +98,7 @@ export default {
{ role: "user", content: questsion }
]
const answer = await env.AI.run('@cf/google/gemma-3-12b-it', {
const answer = await env.AI.run('@cf/meta/llama-4-scout-17b-16e-instruct', {
messages,
stream: true,
});
@@ -175,7 +175,7 @@ export default {
}
]
const stream = await env.AI.run('@cf/google/gemma-3-12b-it', {
const stream = await env.AI.run('@cf/meta/llama-4-scout-17b-16e-instruct', {
messages,
stream: true,
});
@@ -235,7 +235,7 @@ export default {
}
]
const answer = await env.AI.run('@cf/google/gemma-3-12b-it', {
const answer = await env.AI.run('@cf/meta/llama-4-scout-17b-16e-instruct', {
messages,
stream: false,
});

View File

@@ -6,6 +6,7 @@ cd blog
mkdir Mabbs
curl -L -o Mabbs/README.md https://github.com/Mabbs/Mabbs/raw/main/README.md
bundle exec jekyll build -d ../public_html
rsync --delete -rv ../public_html/ mayx@pgs.sh:/blog
tar czvf MayxBlog.tgz --exclude-vcs ../public_html/
mv MayxBlog.tgz ../public_html/
cd ../public_html/
@@ -14,8 +15,10 @@ git init
git branch -m main
git add .
git commit -m "update"
git branch pages
git remote add codeberg ssh://git@codeberg.org/mayx/pages.git
git remote add bitbucket ssh://git@bitbucket.org/unmayx/unmayx.bitbucket.io.git
git push -f codeberg main
git push -f codeberg pages
git push -f bitbucket main
/home/mayx/blog-env/node_modules/surge/bin/surge /home/mayx/public_html/ mayx.surge.sh

View File

@@ -0,0 +1 @@
curl -LO https://github.com/Homebrew/homebrew-portable-ruby/releases/download/3.4.5/portable-ruby-3.4.5.x86_64_linux.bottle.tar.gz && mkdir -p ~/.local/portable-ruby && tar -xvf portable-ruby-3.4.5.x86_64_linux.bottle.tar.gz -C ~/.local/portable-ruby --strip-components=1 && export PATH="$HOME/.local/portable-ruby/3.4.5/bin:$PATH" && bundle install

View File

@@ -1274,5 +1274,3 @@
transform: rotate(360deg);
}
}
/*# sourceMappingURL=gitalk.css.map*/

View File

@@ -190,4 +190,16 @@ td.h-entry {
td.h-entry:hover {
background: #f9f9f9;
}
}
body.pjax-loading::after {
content: '';
position: fixed;
top: 16px;
right: 16px;
width: 20px;
height: 20px;
background: url('/images/loading.svg') center / contain no-repeat;
z-index: 9999;
pointer-events: none;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

6
assets/js/jquery.pjax.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,22 @@
var message_Path = '/Live2dHistoire/live2d/';
var talkAPI = BlogAPI + "/ai_chat";
function initVisitors() {
if ($('.visitors').length === 1) {
var $visitor = $('.visitors:first');
$.get(BlogAPI + '/count_click_add?id=' + $visitor.attr('id'), function (data) {
$visitor.text(Number(data));
});
} else if ($('.visitors-index').length > 0) {
$('.visitors-index').each(function () {
var $elem = $(this);
$.get(BlogAPI + '/count_click?id=' + $elem.attr('id'), function (data) {
$elem.text(Number(data));
});
});
}
}
$(function () {
(function () {
var $backToTopTxt = "返回顶部", $backToTopEle = $('<div class="backToTop"></div>').appendTo($("body"))
@@ -14,32 +30,14 @@ $(function () {
$(function () { $backToTopFun(); });
})();
function showHitCount() {
$(".visitors-index").each(function () {
var $elem = $(this);
$.get(BlogAPI + "/count_click?id=" + $elem.attr('id'), function (data) {
$elem.text(Number(data));
});
});
}
function addCount() {
var $visitor = $(".visitors:first");
$.get(BlogAPI + "/count_click_add?id=" + $visitor.attr('id'), function (data) {
$visitor.text(Number(data));
});
}
if ($('.visitors').length == 1) {
addCount();
} else if ($('.visitors-index').length > 0) {
showHitCount();
}
initVisitors();
if (Math.floor((new Date().getTime() - lastUpdated.getTime()) / (24 * 60 * 60 * 1000)) > 90) {
$("html").css({
"-webkit-filter": "grayscale(100%)",
"filter": "progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)"
})
$('body').html(function(_, oldHTML) {
$('body').html(function (_, oldHTML) {
return oldHTML.replace(/Mayx/g, 'Ghost');
});
console.warn("Mayx may already be Dead");
@@ -66,4 +64,29 @@ function getSearchJSON(callback) {
} else {
callback(searchData);
}
}
}
if (typeof window.go === 'undefined') {
window.go = function (url) {
window.location.href = url;
return;
}
}
function getWelcomeText(pathname, title) {
pathname = pathname || window.location.pathname;
title = title || document.title.split(' | ')[0];
if (pathname === '/' || pathname === '/index.html') {
var now = (new Date()).getHours();
if (now > 23 || now <= 5) return '你是夜猫子呀?这么晚还不睡觉,明天起的来嘛?';
if (now > 5 && now <= 7) return '早上好!一日之计在于晨,美好的一天就要开始了!';
if (now > 7 && now <= 11) return '上午好!工作顺利嘛,不要久坐,多起来走动走动哦!';
if (now > 11 && now <= 14) return '中午了,工作了一个上午,现在是午餐时间!';
if (now > 14 && now <= 17) return '午后很容易犯困呢,今天的运动目标完成了吗?';
if (now > 17 && now <= 19) return '傍晚了!窗外夕阳的景色很美丽呢,最美不过夕阳红~~';
if (now > 19 && now <= 21) return '晚上好,今天过得怎么样?';
if (now > 21 && now <= 23) return '已经这么晚了呀,早点休息吧,晚安~~';
return '嗨~ 快来逗我玩吧!';
}
return '欢迎阅读<span style="color:#0099cc;">「 ' + title + ' 」</span>';
}

View File

@@ -1,4 +1,8 @@
$(function () {
/**
* 根据 URL ?kw= 参数高亮页面内匹配的关键词。
* 提取为全局函数,供 pjax.js 在页面切换后复用,避免重复实现。
*/
function highlightKeyword() {
const urlParams = new URLSearchParams(window.location.search);
const keyword = urlParams.get('kw')?.trim();
@@ -10,7 +14,7 @@ $(function () {
const regex = new RegExp(`(${escapedKeyword})`, 'gi');
// 递归遍历并高亮文本节点
const escapeHTML = str => str.replace(/[&<>"']/g,
const escapeHTML = str => str.replace(/[&<>"']/g,
tag => ({
'&': '&amp;',
'<': '&lt;',
@@ -41,37 +45,24 @@ $(function () {
$('section').each(function () {
highlightTextNodes(this);
});
});
};
$(function() {
var $codeBlocks = $('div.highlight');
$codeBlocks.each(function() {
var $copyButton = $('<button>', {
class: 'copy',
type: 'button',
text: '📋'
});
$(this).append($copyButton);
$copyButton.on('click', function() {
var code = $(this).siblings('pre').find('code').text().trim();
var $button = $(this);
function initCopyButtons() {
$('.copy').remove();
$('div.highlight').each(function () {
var $btn = $('<button>', { class: 'copy', type: 'button', text: '📋' });
$(this).append($btn);
$btn.on('click', function () {
var code = $btn.siblings('pre').find('code').text().trim();
navigator.clipboard.writeText(code)
.then(function() {
$button.text('');
})
.catch(function(err) {
$button.text('❌');
console.error('复制失败:', err);
})
.finally(function() {
setTimeout(function() {
$button.text('📋');
}, 1500);
});
.then(function () { $btn.text('✅'); })
.catch(function () { $btn.text(''); })
.finally(function () { setTimeout(function () { $btn.text('📋'); }, 1500); });
});
});
}
$(function () {
highlightKeyword();
initCopyButtons();
});

164
assets/js/pjax.js Normal file
View File

@@ -0,0 +1,164 @@
/**
* PJAX 初始化与页面切换重绑定脚本
* 依赖jQuery, jquery.pjax.min.js
* 加载顺序:在 jquery.pjax.min.js 之后body 末尾
*/
(function ($) {
// ========== 常量 ==========
var CONTAINER = '#pjax-container';
var PJAX_OPTS = {
container: CONTAINER,
fragment: CONTAINER,
timeout: 8000,
scrollTo: false
};
// ========== 各组件重初始化 ==========
/** AI 摘要post.html 内联脚本pjax 后由 executeScripts 触发) */
function reinitAISummary() {
if (typeof ai_gen === 'function' && $('#ai-output').length) {
try { ai_gen(); } catch (e) { /* ignore */ }
}
}
/** Google Analytics 页面浏览事件 */
function trackPageView() {
if (typeof gtag === 'function') {
gtag('config', window._gaId || '', { page_path: window.location.pathname });
}
}
/** Live2D 重初始化 */
var _live2dSelectors = ['.post-link', '#search-input'];
var _live2dDelegateBound = false;
function reinitLive2d() {
if (!window._live2d) return;
var pathname = window.location.pathname;
// 更新"想问这篇文章"相关状态(仅真正的文章页显示)
$('#post_id').val(pathname);
if ($(CONTAINER + ' #gitalk-container').length > 0) {
$('.live_talk_input_name_body').show();
} else {
$('.live_talk_input_name_body').hide();
$('#load_this').prop('checked', false);
}
// 音乐按钮:根据当前页面是否有 BGM 输入来显示/隐藏
if (typeof window._live2d.initBGM === 'function') {
window._live2d.initBGM();
}
// 事件委托绑定(只执行一次)
if (!_live2dDelegateBound && typeof String.prototype.renderTip === 'function') {
var selector = CONTAINER + ' ' + _live2dSelectors.join(', ' + CONTAINER + ' ');
$(document).on('mouseover._live2d_pjax', selector, function (e) {
var $el = $(e.currentTarget || e.target);
if ($el.is('.post-link')) {
window._live2d.showMessage('要看看 ' + $el.text() + ' 么?', 3000);
} else if ($el.is('#search-input')) {
window._live2d.showMessage('在找什么东西呢,需要帮忙吗?', 3000);
}
});
$(document).on('mouseout._live2d_pjax', selector, function () {
if (window._live2d.showHitokoto) window._live2d.showHitokoto();
});
_live2dDelegateBound = true;
}
// 欢迎语
if (typeof window._live2d.showMessage === 'function') {
window._live2d.showMessage(getWelcomeText(pathname), 6000);
}
}
// ========== PJAX 导航 ==========
/** PJAX 完成后的统一处理 */
function doPjaxComplete() {
$('body').removeClass('pjax-loading');
// 清理可能残留的浮层(如推荐文章 tooltiphover 后点击跳转时 mouseleave 来不及触发)
$('.content-tooltip').remove();
onPjaxComplete();
}
/** 暴露给模板内 onclick/onchange 调用的导航函数 */
window.go = function (url) {
$.pjax($.extend({ url: url }, PJAX_OPTS));
};
// ========== 初始化 ==========
/** pjax 完成后滚动到目标位置:有锚点则定位锚点,否则回到顶部 */
function scrollToAnchor() {
var hash = window.location.hash;
if (hash) {
// 中文等非 ASCII 字符在 URL 中会被编码,需先解码再匹配元素 id
var id = hash.slice(1);
try { id = decodeURIComponent(id); } catch (e) { /* 保持原值 */ }
var target = document.getElementById(id) ||
document.querySelector('a[name="' + id + '"]');
if (target) {
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
return;
}
}
window.scrollTo(0, 0);
}
/** 每次 pjax 完成后执行所有重初始化 */
function onPjaxComplete() {
initVisitors();
initCopyButtons();
highlightKeyword();
reinitAISummary();
reinitLive2d();
trackPageView();
scrollToAnchor();
}
$(document).ready(function () {
// 排除列表外链、锚点、静态资源、Live2D 目录
var exclude = ':not([target="_blank"]):not([href^="http"]):not([href^="//"])' +
':not([href^="mailto"]):not([href^="#"])' +
':not([href$=".xml"]):not([href$=".json"]):not([href$=".tgz"]):not([href$=".zip"])' +
':not([href^="/Live2dHistoire"])';
$(document).pjax('a' + exclude, PJAX_OPTS.container, PJAX_OPTS);
$(document).on('submit', 'form#search-input-all', function (e) {
$.pjax.submit(e, PJAX_OPTS.container, PJAX_OPTS);
});
$(document).on('pjax:send', function () {
$('body').addClass('pjax-loading');
});
$(document).on('pjax:complete', doPjaxComplete);
$(document).on('pjax:error', function (xhr, textStatus, error) {
console.warn('[pjax] error, fallback:', error);
});
$(document).on('pjax:end', function (event, xhr, options) {
var $container = $(options.container || PJAX_OPTS.container);
$container.find('script[type="module"]').each(function () {
var oldScript = this;
var newScript = document.createElement('script');
newScript.type = 'module';
// 如果是外链脚本 (<script src="..."></script>)
if (oldScript.src) {
newScript.src = oldScript.src;
} else {
// 如果是行内脚本 (<script>...code...</script>)
newScript.textContent = oldScript.textContent;
}
// 插入到 body 中触发浏览器执行
document.body.appendChild(newScript);
// 运行完后建议移除,防止 DOM 变得混乱(不影响模块执行)
newScript.remove();
});
});
});
})(jQuery);

17
humans.txt Normal file
View File

@@ -0,0 +1,17 @@
---
---
/* AUTHOR */
Name: Mayx
Contact: mayx@outlook.com
GitHub: Mabbs
From: China
/* THANKS */
Built with: Jekyll (https://jekyllrb.com)
/* SITE */
Last update: {{ site.time | date: "%F" }}
Language: Chinese / English
Doctype: HTML5
IDE: VSCode

View File

@@ -5,14 +5,14 @@ image: https://screenshot.mayx.eu.org/
---
{% if paginator.page == 1 %}<div class="hslice" id="LatestPost">{% endif %}
<h1 class="entry-title" style="display:inline"> 首页 - 我的文章 </h1><small><a href="/archives.html">Archives</a> | <a href="javascript:getSearchJSON(function(data){location=data[Math.floor(Math.random()*data.length)].url})">Random</a></small><br /><br />
<h1 class="entry-title" style="display:inline"> 首页 - 我的文章 </h1><small><a href="/archives.html">Archives</a> | <a href="javascript:void(0)" onclick="getSearchJSON(function(data){go(data[Math.floor(Math.random()*data.length)].url)})">Random</a></small><br /><br />
<hr />
<!-- 遍历分页后的文章 -->
<table class="entry-content h-feed">
{% for post in paginator.posts %}
<tr><td class="h-entry" onclick="location='{{ post.url }}'">
<tr><td class="h-entry" data-url="{{ post.url }}">
<h2 class="p-name"><a class="post-link u-url" href="{{ post.url }}">{{ post.title }}{% if post.layout == "encrypt" %} [加密] {% endif %}</a></h2>
<p>
<time class="date dt-published" datetime="{{ post.date | date_to_xmlschema }}">{{ post.date | date: "%-d %B %Y" }}</time>
@@ -44,7 +44,7 @@ image: https://screenshot.mayx.eu.org/
<span>&laquo; Prev</span>
{% endif %}
<select onchange="window.location = this.value == 1 ? '/index.html' : '/page' + this.value + '/index.html'">
<select onchange="go(this.value == 1 ? '/index.html' : '/page' + this.value + '/index.html')">
{% for page in (1..paginator.total_pages) %}
{% if page == paginator.page %}
<option value="{{ page }}" selected>{{ page }}</option>
@@ -77,4 +77,11 @@ image: https://screenshot.mayx.eu.org/
<small><a href="https://xn--sr8hvo.ws/previous"></a>
An <a href="https://xn--sr8hvo.ws">IndieWeb Webring</a> 🕸💍
<a href="https://xn--sr8hvo.ws/next"></a><br /><a href="https://icp.gov.moe/?keyword=20218888" target="_blank">萌ICP备 20218888号</a></small>
<input name="live2dBGM" value="https://music.163.com/song/media/outer/url?id=523658881.mp3" type="hidden" />
<input name="live2dBGM" value="https://music.163.com/song/media/outer/url?id=523658881.mp3" type="hidden" />
<script>
$(document).on('click', '.h-entry', function(e) {
if ($(e.target).closest('.p-category').length === 0) {
go($(this).attr('data-url'));
}
});
</script>

14
llms.txt Normal file
View File

@@ -0,0 +1,14 @@
---
---
# {{ site.title }}
> {{ site.description }}
## Site Info
- [About Site](/README.html)
- [About Author](/humans.txt)
## Posts
{% for post in site.posts %}
- [{{ post.title }}{% if post.layout == "encrypt" %} [加密] {% endif %}]({{ post.url }}): {% assign ai_cache = site.data.ai-cache[post.url] %}{% if ai_cache %}{{ ai_cache | strip_html | strip_newlines }}{% elsif post.excerpt %}{{ post.excerpt | strip_html | strip_newlines }}{% else %}Just a Post.{% endif %}{% endfor %}

View File

@@ -32,7 +32,8 @@ graph LR;
GH@{ shape: bow-rect, label: "GitHub" }
GL@{ shape: bow-rect, label: "GitLab" }
GE@{ shape: bow-rect, label: "Gitee" }
OG@{ shape: bow-rect, label: "Other..." }
OG@{ shape: bow-rect, label: "And more..." }
OGP@{ shape: docs, label: "And more..." }
CFP@{ shape: docs, label: "CloudFlare Pages" }
GHP@{ shape: docs, label: "GitHub Pages" }
GLP@{ shape: docs, label: "GitLab Pages" }
@@ -41,14 +42,13 @@ graph LR;
GF@{ shape: lin-cyl, label: "Greenfield" }
Vercel@{ shape: docs, label: "Vercel" }
Netlify@{ shape: docs, label: "Netlify" }
SH@{ shape: docs, label: "statichost.eu" }
DA@{ shape: docs, label: "dAppling" }
CFW@{ label: "CloudFlare Workers" }
CFAI@{ shape: procs, label: "CloudFlare AI" }
CFD@{ shape: lin-cyl, label: "CloudFlare D1" }
Deno@{ shape: curv-trap, label: "Deno" }
Glitch@{ shape: curv-trap, label: "Glitch" }
Other@{ shape: curv-trap, label: "Other..." }
Other@{ shape: curv-trap, label: "And more..." }
subgraph Repo
GH
GL
@@ -60,11 +60,11 @@ graph LR;
GHP
GLP
CFP
SH
FELH
DA
Vercel
Netlify
OGP
end
subgraph API[API Service]
@@ -87,7 +87,7 @@ graph LR;
GH <-- Sync --> GL
GH -- Sync --> GE
GH -. Sync .-> OG
GH -- Deploy --> GHP & SH & Netlify & FELH & DA
GH -- Deploy --> GHP & Netlify & FELH & DA & OGP
GL -- Deploy --> CFP & Vercel & GLP
CFW -- Reverse Proxy --> GHP
Deno -- Reverse Proxy --> GHP

View File

@@ -27,7 +27,7 @@ if (mykeyword) {
</script>
<script src="/assets/js/simple-jekyll-search.min.js"></script>
<script>
getSearchJSON(function(json){
function _doSearch(json) {
var sjs = SimpleJekyllSearch({
searchInput: sbox,
resultsContainer: document.getElementById('results-container'),
@@ -37,5 +37,22 @@ getSearchJSON(function(json){
});
sjs.search(mykeyword);
document.getElementById('search-loading').style.display = "none";
}
getSearchJSON(function(json) {
if (typeof SimpleJekyllSearch !== 'undefined') {
_doSearch(json);
} else {
// PJAX 场景:外部脚本通过 pjax 库异步加载,需要等待加载完成
var _poll = 0;
var _waitSJS = setInterval(function() {
if (typeof SimpleJekyllSearch !== 'undefined') {
clearInterval(_waitSJS);
_doSearch(json);
} else if (++_poll > 100) {
clearInterval(_waitSJS);
document.getElementById('search-loading').style.display = "none";
}
}, 50);
}
});
</script>