Compare commits

...

16 Commits

Author SHA1 Message Date
mayx 481df19596 Update 5 files 2 months ago
mayx 1a529143a8 Update 6 files 2 months ago
mayx b25a864ee3 Update 3 files 2 months ago
mayx c5ad917d9e Update 6 files 2 months ago
mayx d6274791a8 Update 2 files 2 months ago
mayx 111dc1e25f Update 2 files 2 months ago
mayx c4ae25dcb1 Update 10 files 2 months ago
mayx 862bffac80 Update 3 files 3 months ago
mayx c888a89f41 Update 4 files 3 months ago
mayx b48e93890c Update 3 files 3 months ago
mayx f6b35814b1 Update 3 files 3 months ago
mayx fe26e4f6c3 Update 2 files 3 months ago
mayx 45f1183f9a Update 2 files 3 months ago
mayx dd1141d872 Update 3 files 3 months ago
mayx c0ca105edc Update 3 files 3 months ago
mayx bc45ef27b8 Update 2 files 3 months ago
  1. 199
      Live2dHistoire/live2d/js/message.js
  2. 2
      README.md
  3. 3
      _data/ai-cache.json
  4. 4
      _data/links.csv
  5. 299
      _data/other_repo_list.csv
  6. 11
      _data/proxylist.yml
  7. 20
      _layouts/default.html
  8. 15
      _layouts/post.html
  9. 76
      _posts/2026-05-01-virtual-net.md
  10. 6
      _tools/ai-summary.js
  11. 3
      _tools/envs_post-receive
  12. 1
      _tools/stormkit-env_install
  13. 2
      assets/css/gitalk.css
  14. 12
      assets/css/style.scss
  15. 1
      assets/js/gitalk.min.js
  16. 1
      assets/js/jquery.min.js
  17. 6
      assets/js/jquery.pjax.min.js
  18. 63
      assets/js/main.js
  19. 42
      assets/js/main_new.js
  20. 175
      assets/js/pjax.js
  21. 17
      humans.txt
  22. 6
      index.html
  23. 14
      llms.txt
  24. 10
      proxylist.md
  25. 19
      search.html

@ -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>';
}
} 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 = '嗨~ 快来逗我玩吧!';
}
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;">「 ' + document.title.split(' | ')[0] + '</span>';
text = '嗨!来自 <span style="color:#0099cc;">' + referrer.hostname + '</span> 的朋友!';
}
} else {
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');
}
});
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);
});
// BGM 事件监听(仅绑定一次,使用标志位避免重复)
if (!window._live2d._bgmEventsBound) {
$bgm[0].addEventListener("timeupdate", function () {
sessionStorage.setItem("live2dBGM_PlayTime", $bgm[0].currentTime);
});
document.getElementById('live2d_bgm').addEventListener("ended", function () {
var listNow = parseInt($('#live2d_bgm').attr('data-bgm'));
$bgm[0].addEventListener("ended", function () {
var listNow = parseInt($bgm.attr('data-bgm'));
listNow++;
if (listNow > $('input[name=live2dBGM]').length - 1) {
var inputs = $('input[name=live2dBGM]');
if (inputs.length === 0) return;
if (listNow > inputs.length - 1) {
listNow = 0;
}
var listNewSrc = $('input[name=live2dBGM]').eq(listNow).val();
var listNewSrc = inputs.eq(listNow).val();
if (!listNewSrc) return;
sessionStorage.setItem("live2dBGM_Num", listNow);
$('#live2d_bgm').attr('src', listNewSrc);
$('#live2d_bgm')[0].play();
$('#live2d_bgm').attr('data-bgm', listNow);
$bgm.attr('src', listNewSrc);
$bgm[0].play();
$bgm.attr('data-bgm', listNow);
});
document.getElementById('live2d_bgm').addEventListener("error", function () {
$('#live2d_bgm')[0].pause();
$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');
}
};
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",

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

@ -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的原因:简单、够用、可靠性不错,且已经投入了大量配置。"
}

@ -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.

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

@ -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,12 +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/
@ -36,9 +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://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
@ -47,6 +57,7 @@ repos:
- https://sourcecraft.dev/mayx/mayx
- https://code.forgejo.org/mayx/blog
- https://gitflic.ru/project/mayx/blog
- https://rocketgit.com/user/mayx/blog/
- https://tangled.org/mayx.tngl.sh/blog/
- https://gitee.com/mabbs/mabbs
- https://cnb.cool/unmayx/mayx

@ -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>

@ -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]-->

@ -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方案,主要还是简单够用,可靠性也不错,而且折腾了这么多再换也不太合适吧🤣。

@ -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,
});

@ -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

@ -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

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

@ -191,3 +191,15 @@ 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

File diff suppressed because one or more lines are too long

@ -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");
@ -67,3 +65,28 @@ function getSearchJSON(callback) {
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>';
}

@ -43,35 +43,21 @@ $(function () {
});
});
$(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() {
initCopyButtons();
});

@ -0,0 +1,175 @@
/**
* 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 */ }
}
}
/** 关键词高亮 */
function reinitHighlight() {
var keyword = new URLSearchParams(window.location.search).get('kw');
if (!keyword) return;
keyword = keyword.trim();
if (!keyword) return;
var escaped = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
var regex = new RegExp('(' + escaped + ')', 'gi');
var escapeHTML = function (str) {
return str.replace(/[&<>"']/g, function (t) {
return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }[t] || t;
});
};
function walk(node) {
$(node).contents().each(function () {
if (this.nodeType === Node.TEXT_NODE) {
var $t = $(this);
var text = escapeHTML($t.text());
if (regex.test(text)) $t.replaceWith(text.replace(regex, '<mark>$1</mark>'));
} else if (this.nodeType === Node.ELEMENT_NODE && !$(this).is('script, style, noscript, textarea')) {
walk(this);
}
});
}
$('section').each(function () { walk(this); });
}
/** 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');
// 清理可能残留的浮层(如推荐文章 tooltip,hover 后点击跳转时 mouseleave 来不及触发)
$('.content-tooltip').remove();
onPjaxComplete();
}
/** 暴露给模板内 onclick/onchange 调用的导航函数 */
window.go = function (url) {
$.pjax({ url: url, ...PJAX_OPTS });
};
// ========== 初始化 ==========
/** 每次 pjax 完成后执行所有重初始化 */
function onPjaxComplete() {
initVisitors();
initCopyButtons();
reinitHighlight();
reinitAISummary();
reinitLive2d();
trackPageView();
window.scrollTo(0, 0);
}
$(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);

@ -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

@ -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" onclick="if (!event.target.closest('a.p-category')) go('{{ 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>

@ -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 %}

@ -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

@ -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>
Loading…
Cancel
Save