7 Commits

Author SHA1 Message Date
Mayx 5f2a3a99ee Merge pull request #203 from xingwangzhe/patch-1
友链:xingwangzhe
2026-06-09 15:43:55 +08:00
王兴家 36cf19d4aa 友链:xingwangzhe
名称	姓王者的博客
图标	https://xingwangzhe.fun/avatar.webp
网址	https://xingwangzhe.fun/
描述	探索、学习、进步、创造无限可能!
2026-06-09 15:37:22 +08:00
Mayx 9c769e4ab2 Merge pull request #202 from Typhoon-Messenger/patch-1
Update links.csv
2026-06-09 15:15:58 +08:00
初然忆 fd5f1703dd Update links.csv 2026-06-09 15:11:55 +08:00
mayx 2a512a487d Update 3 files
- /_data/other_repo_list.csv
- /_data/links.csv
- /assets/js/jquery.min.js
2026-06-03 06:45:43 +00:00
mayx 556e27c9ad Update 2 files
- /index.html
- /assets/js/main_new.js
2026-06-01 05:36:14 +00:00
mayx 5a4baf5f4b Update 4 files
- /_data/ai-cache.json
- /_data/other_repo_list.csv
- /assets/js/pjax.js
- /_layouts/post.html
2026-06-01 01:09:42 +00:00
8 changed files with 50 additions and 82 deletions
+2 -1
View File
@@ -177,5 +177,6 @@
"/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/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/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的原因:简单、够用、可靠性不错,且已经投入了大量配置。" "/2026/05/01/virtual-net.html": "这篇文章介绍了作者在尝试异地组网搭建虚拟局域网时,对多种组网工具的探索和体验。作者首先尝试了n2n,但由于其项目停止更新且在NAT后的机器间存在掉线问题,最终选择了WireGuard作为主要方案。文章详细描述了WireGuard的配置过程,包括在Linux、OpenWrt和openEuler系统上的安装和配置,并遇到了各种各样的挑战,例如在红米AX3000路由器上找不到内核模块,以及在openEuler上缺少WireGuard相关包。此外,文章还提到了Netmaker和Headscale等WireGuard的控制平面,以及VNT和EasyTier等其他组网工具,并总结了最终选择WireGuard的原因:简单、够用、可靠性不错,且已经投入了大量配置。",
"/2026/06/01/dedupe.html": "这篇文章介绍了如何通过优化游戏资源文件来节约游戏占用的硬盘空间。作者由于Mac只有256GiB的硬盘存储空间,在下载了几十部游戏后空间不足,于是寻找解决方法。文章主要介绍了以下几点:\n\n1. 使用jdupes工具去除重复素材:作者发现许多游戏使用相同的引擎和素材,导致硬盘空间浪费。通过使用jdupes工具进行硬链接,可以有效去除重复文件,节约空间。\n\n2. 不同引擎的处理方式:\n - 对于RPG制作大师MV/MZ,作者使用RPG Maker Decrypter工具解密资源文件,并将图片转换为WebP格式以压缩空间。\n - 对于RPG制作大师XP/VX/VA,作者使用mkxp-z工具跨平台运行游戏,并通过RPG Maker Decrypter解包资源文件,与RTP素材合并后进行去重。\n - 对于Ren'Py游戏,作者使用unrpa工具解包rpa文件,但由于公共资源不多,仅在系列游戏情况下进行解包。\n\n3. 最终效果:通过以上优化,作者成功将游戏文件夹大小从47G降至33G,节约了大量硬盘空间。"
} }
+3 -2
View File
@@ -18,7 +18,8 @@ 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,一个属于自己的云朵。 Pinpe 的云端,https://pinpe.top/,https://pinpe.top/rss.xml,一个属于自己的云朵。
Chise Hachiroku,https://chise.hachiroku.com/zh/,https://chise.hachiroku.com/zh/feed/,向明日的辉迹,干杯! Chise Hachiroku,https://chise.hachiroku.com/zh/,https://chise.hachiroku.com/zh/feed/,向明日的辉迹,干杯!
映屿,https://www.glowisle.me/,https://www.glowisle.me/atom.xml,关于互联网、书籍、生活琐事以及那些一闪而过的念头 映屿,https://blog.verdant.ee/,https://blog.verdant.ee/atom.xml,关于互联网、书籍、生活琐事以及那些一闪而过的念头
Restent's Notebook,https://blog.gxres.net/,https://blog.gxres.net/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. RavelloH's Blog,https://ravelloh.com,https://ravelloh.com/feed.xml,Beginning of meditation.
初然忆,https://www.imcry.vip,https://www.imcry.vip/index.xml,初心如初见,然忆似流年。
姓王者,https://xingwangzhe.fun/,https://xingwangzhe.fun/rss.xml,探索、学习、进步、创造无限可能!
1 title link feed_url description
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://blog.verdant.ee/ https://www.glowisle.me/atom.xml https://blog.verdant.ee/atom.xml 关于互联网、书籍、生活琐事以及那些一闪而过的念头
22 Restent's Notebook https://blog.gxres.net/ https://blog.gxres.net/atom.xml 不前沿技术分享
Coseroom https://coseroom.com
23 RavelloH's Blog https://ravelloh.com https://ravelloh.com/feed.xml Beginning of meditation.
24 初然忆 https://www.imcry.vip https://www.imcry.vip/index.xml 初心如初见,然忆似流年。
25 姓王者 https://xingwangzhe.fun/ https://xingwangzhe.fun/rss.xml 探索、学习、进步、创造无限可能!
+21 -15
View File
@@ -28,7 +28,6 @@ http://162.215.134.149:4000/mayx/blog
http://durfee.mycrestron.com:3000/mayx/blog http://durfee.mycrestron.com:3000/mayx/blog
https://gitea.nongnghiepso.com/mayx/blog https://gitea.nongnghiepso.com/mayx/blog
https://codes.tools.asitavsen.com/mayx/blog https://codes.tools.asitavsen.com/mayx/blog
http://50.19.111.193:3000/mayx/blog
https://git.zeroplay.io/mayx/blog https://git.zeroplay.io/mayx/blog
http://45.33.87.87/mayx/blog http://45.33.87.87/mayx/blog
http://168.126.28.36:3000/mayx/blog http://168.126.28.36:3000/mayx/blog
@@ -56,7 +55,6 @@ http://27.124.12.222:3000/mayx/blog
https://gitea.hintsight.com/mayx/blog https://gitea.hintsight.com/mayx/blog
http://blackobelisk.xyz:3000/mayx/blog http://blackobelisk.xyz:3000/mayx/blog
https://git.the-kn.com/mayx/blog https://git.the-kn.com/mayx/blog
https://gitea.shirom.me/mayx/blog
https://git.wangxinlei.cn/mayx/blog https://git.wangxinlei.cn/mayx/blog
http://123.56.193.182:3000/mayx/blog http://123.56.193.182:3000/mayx/blog
http://167.172.7.198:8081/mayx/blog http://167.172.7.198:8081/mayx/blog
@@ -81,7 +79,6 @@ https://git.nusaerp.com/mayx/blog
http://35.207.205.18:3000/mayx/blog http://35.207.205.18:3000/mayx/blog
http://git.zjsciot.com:3000/mayx/blog http://git.zjsciot.com:3000/mayx/blog
https://gitea.ontoast.uk/mayx/blog https://gitea.ontoast.uk/mayx/blog
http://112.124.40.88:5510/mayx/blog
http://121.36.37.70:15501/mayx/blog http://121.36.37.70:15501/mayx/blog
http://187.216.152.151:9999/mayx/blog http://187.216.152.151:9999/mayx/blog
http://116.63.173.179:8001/mayx/blog http://116.63.173.179:8001/mayx/blog
@@ -126,7 +123,6 @@ http://202.65.194.19:3000/mayx/blog
http://101.201.34.43:3000/mayx/blog http://101.201.34.43:3000/mayx/blog
https://git.gloje-rinchen-dorjee-rinpoche-buddhist-monastery.org/mayx/blog https://git.gloje-rinchen-dorjee-rinpoche-buddhist-monastery.org/mayx/blog
http://101.35.227.2:3000/mayx/blog http://101.35.227.2:3000/mayx/blog
http://175.126.123.163:3000/mayx/blog
http://209.141.47.52:3000/mayx/blog http://209.141.47.52:3000/mayx/blog
http://60.204.158.188:3000/mayx/blog http://60.204.158.188:3000/mayx/blog
http://60.204.156.211:3000/mayx/blog http://60.204.156.211:3000/mayx/blog
@@ -159,7 +155,6 @@ http://210.245.20.73:3333/mayx/blog
http://43.248.97.109:3000/mayx/blog http://43.248.97.109:3000/mayx/blog
http://113.207.86.104:3080/mayx/blog http://113.207.86.104:3080/mayx/blog
http://39.96.195.72:10082/mayx/blog http://39.96.195.72:10082/mayx/blog
https://221.219.181.35:30000/mayx/blog
http://172.172.102.93:3000/mayx/blog http://172.172.102.93:3000/mayx/blog
http://115.120.245.164:3000/mayx/blog http://115.120.245.164:3000/mayx/blog
http://35.194.179.90:3000/mayx/blog http://35.194.179.90:3000/mayx/blog
@@ -184,7 +179,6 @@ http://120.46.23.215:3000/mayx/blog
http://121.41.2.71:3000/mayx/blog http://121.41.2.71:3000/mayx/blog
http://110.41.177.80:5000/mayx/blog http://110.41.177.80:5000/mayx/blog
https://gitea.dsmaster.myds.me/mayx/blog https://gitea.dsmaster.myds.me/mayx/blog
https://gitea.primecontrols-dev.com/mayx/blog
http://www.scserverddns.top:13000/mayx/blog http://www.scserverddns.top:13000/mayx/blog
https://git.lucas-michel.fr/mayx/blog https://git.lucas-michel.fr/mayx/blog
https://git.imvictor.tech:2/mayx/blog https://git.imvictor.tech:2/mayx/blog
@@ -207,7 +201,6 @@ https://Repo.gusdya.net/mayx/blog
https://git.m.ctf.arrobe.fr/mayx/blog https://git.m.ctf.arrobe.fr/mayx/blog
http://69.62.64.52:3333/mayx/blog http://69.62.64.52:3333/mayx/blog
https://git.flymiracle.com/mayx/blog https://git.flymiracle.com/mayx/blog
https://gitea.manekenbrand.com/mayx/blog
http://106.14.138.181:3000/mayx/blog http://106.14.138.181:3000/mayx/blog
https://git.yyuu.xyz/mayx/blog https://git.yyuu.xyz/mayx/blog
http://39.107.70.124:3000/mayx/blog http://39.107.70.124:3000/mayx/blog
@@ -224,7 +217,6 @@ http://101.37.69.204:3000/mayx/blog
https://gitea.tecamino.com/mayx/blog https://gitea.tecamino.com/mayx/blog
http://39.99.175.172:8000/mayx/blog http://39.99.175.172:8000/mayx/blog
http://8.138.13.251:3000/mayx/blog http://8.138.13.251:3000/mayx/blog
http://47.115.223.229:8888/mayx/blog
http://104.254.131.244:3000/mayx/blog http://104.254.131.244:3000/mayx/blog
https://gitea.alacloud.de/mayx/blog https://gitea.alacloud.de/mayx/blog
https://git.tobiasweise.dev/mayx/blog https://git.tobiasweise.dev/mayx/blog
@@ -235,7 +227,6 @@ http://8.130.128.130:3000/mayx/blog
https://repos.fbpx.io/mayx/blog https://repos.fbpx.io/mayx/blog
https://git.cavemanon.xyz/mayx/blog https://git.cavemanon.xyz/mayx/blog
http://svn.rivastudio.cn/mayx/blog http://svn.rivastudio.cn/mayx/blog
https://kamtk.ru:4000/mayx/blog
http://39.98.126.115:8080/mayx/blog http://39.98.126.115:8080/mayx/blog
http://46.202.189.66:3000/mayx/blog http://46.202.189.66:3000/mayx/blog
http://82.26.157.11:3001/mayx/blog http://82.26.157.11:3001/mayx/blog
@@ -258,7 +249,6 @@ http://113.44.218.8:3000/mayx/blog
https://git.cenoq.com/mayx/blog https://git.cenoq.com/mayx/blog
http://8.152.205.35:3000/mayx/blog http://8.152.205.35:3000/mayx/blog
http://120.210.80.160:3000/mayx/blog http://120.210.80.160:3000/mayx/blog
http://1.95.192.200:59300/mayx/blog
http://194.5.152.156:3000/mayx/blog http://194.5.152.156:3000/mayx/blog
http://8.155.172.147:3001/mayx/blog http://8.155.172.147:3001/mayx/blog
https://git.erfmann.dev/mayx/blog https://git.erfmann.dev/mayx/blog
@@ -279,7 +269,6 @@ http://221.203.14.217:3000/mayx/blog
https://git.sophiagwen.au/mayx/blog https://git.sophiagwen.au/mayx/blog
http://139.196.96.28:13000/mayx/blog http://139.196.96.28:13000/mayx/blog
https://dev.kiramtech.com/mayx/blog https://dev.kiramtech.com/mayx/blog
https://git.ihatemen.uk/mayx/blog
https://git.123doit.com/mayx/blog https://git.123doit.com/mayx/blog
http://62.43.207.91:8889/mayx/blog http://62.43.207.91:8889/mayx/blog
https://git.johntsai.online/mayx/blog https://git.johntsai.online/mayx/blog
@@ -354,7 +343,6 @@ https://git.automathon.org/mayx/blog
https://git.esen.gay/mayx/blog https://git.esen.gay/mayx/blog
https://git.webtims.ru/mayx/blog https://git.webtims.ru/mayx/blog
https://gitea.personalsoftware.space/mayx/blog https://gitea.personalsoftware.space/mayx/blog
http://gitea.yiban.com.tw:3030/mayx/blog
https://gitlab.iplusus.com/mayx/blog https://gitlab.iplusus.com/mayx/blog
https://gitea.zachl.tech/mayx/blog https://gitea.zachl.tech/mayx/blog
https://git.miasma-os.com/mayx/blog https://git.miasma-os.com/mayx/blog
@@ -403,7 +391,6 @@ http://82.156.249.211:3000/mayx/blog_cn
http://36.133.248.69:3088/mayx/blog_cn http://36.133.248.69:3088/mayx/blog_cn
http://220.205.16.27:18081/mayx/blog_cn http://220.205.16.27:18081/mayx/blog_cn
http://81.69.221.216:3000/mayx/blog_cn http://81.69.221.216:3000/mayx/blog_cn
http://115.159.194.75:4000/mayx/blog_cn
http://183.204.60.122:10081/mayx/blog_cn http://183.204.60.122:10081/mayx/blog_cn
http://43.139.240.37:17000/mayx/blog_cn http://43.139.240.37:17000/mayx/blog_cn
http://159.75.27.114:3000/mayx/blog_cn http://159.75.27.114:3000/mayx/blog_cn
@@ -424,7 +411,6 @@ http://35.175.189.8/mayx/blog
http://meowug.com:8418/mayx/blog_cn http://meowug.com:8418/mayx/blog_cn
http://36.138.125.206:3000/mayx/blog_cn http://36.138.125.206:3000/mayx/blog_cn
https://git.4lcap.com/mayx/blog_cn https://git.4lcap.com/mayx/blog_cn
http://101.43.238.71:3000/mayx/blog_cn
http://59.110.175.62:4322/mayx/blog_cn http://59.110.175.62:4322/mayx/blog_cn
https://www.luluvip.cn:8419/mayx/blog_cn https://www.luluvip.cn:8419/mayx/blog_cn
http://xianyuhome.cn:11013/mayx/blog_cn http://xianyuhome.cn:11013/mayx/blog_cn
@@ -434,7 +420,6 @@ https://git.crystalyx.net/mayx/blog
https://gittea.dev/mayx/blog https://gittea.dev/mayx/blog
https://git.newnaturalphilosophy.org/mayx/blog https://git.newnaturalphilosophy.org/mayx/blog
https://code.infininov.com/mayx/blog https://code.infininov.com/mayx/blog
https://git.apt142.ru/mayx/blog
http://gitea.mcelwain.net/mayx/blog http://gitea.mcelwain.net/mayx/blog
https://chunkks.com/mayx/blog https://chunkks.com/mayx/blog
https://gitea.earthmanrpg.me/mayx/blog https://gitea.earthmanrpg.me/mayx/blog
@@ -520,3 +505,24 @@ https://git.heartnn.com/mayx/blog
https://git.joinplu.me/mayx/blog https://git.joinplu.me/mayx/blog
https://git.research.dezeeuw.ca/mayx/blog https://git.research.dezeeuw.ca/mayx/blog
http://149.104.29.239:8081/mayx/blog http://149.104.29.239:8081/mayx/blog
http://ysx.myds.me:3005/mayx/blog
http://124.71.169.183:3000/mayx/blog
https://git.csi-kjsce.org/mayx/blog
https://hiwifi.denq.us:8418/mayx/blog
http://39.108.124.198:3000/mayx/blog
http://1090391-twk8saas.tmweb.ru/mayx/blog
https://git.msoucy.me/mayx/blog
https://git.niisse.net/mayx/blog
http://139.224.24.61:3000/mayx/blog
http://140.120.108.238:49308/mayx/blog
http://220.132.16.87:3000/mayx/blog
http://git.chilidoginteractive.com:3000/mayx/blog_cn
https://git.thunder-data.cn/mayx/blog_cn
https://git.cukak.com/mayx/blog_cn
https://git.ixu.me/mayx/blog_cn
http://git.uhfdemo.com/mayx/blog_cn
http://43.143.142.38:7001/mayx/blog_cn
http://111.230.243.127:3000/mayx/blog_cn
http://git.qniao.cn/mayx/blog_cn
https://gitea.smartechouse.com/mayx/blog_cn
http://git.feashow.cn/mayx/blog_cn
1 repo_url
28 http://durfee.mycrestron.com:3000/mayx/blog
29 https://gitea.nongnghiepso.com/mayx/blog
30 https://codes.tools.asitavsen.com/mayx/blog
http://50.19.111.193:3000/mayx/blog
31 https://git.zeroplay.io/mayx/blog
32 http://45.33.87.87/mayx/blog
33 http://168.126.28.36:3000/mayx/blog
55 https://gitea.hintsight.com/mayx/blog
56 http://blackobelisk.xyz:3000/mayx/blog
57 https://git.the-kn.com/mayx/blog
https://gitea.shirom.me/mayx/blog
58 https://git.wangxinlei.cn/mayx/blog
59 http://123.56.193.182:3000/mayx/blog
60 http://167.172.7.198:8081/mayx/blog
79 http://35.207.205.18:3000/mayx/blog
80 http://git.zjsciot.com:3000/mayx/blog
81 https://gitea.ontoast.uk/mayx/blog
http://112.124.40.88:5510/mayx/blog
82 http://121.36.37.70:15501/mayx/blog
83 http://187.216.152.151:9999/mayx/blog
84 http://116.63.173.179:8001/mayx/blog
123 http://101.201.34.43:3000/mayx/blog
124 https://git.gloje-rinchen-dorjee-rinpoche-buddhist-monastery.org/mayx/blog
125 http://101.35.227.2:3000/mayx/blog
http://175.126.123.163:3000/mayx/blog
126 http://209.141.47.52:3000/mayx/blog
127 http://60.204.158.188:3000/mayx/blog
128 http://60.204.156.211:3000/mayx/blog
155 http://43.248.97.109:3000/mayx/blog
156 http://113.207.86.104:3080/mayx/blog
157 http://39.96.195.72:10082/mayx/blog
https://221.219.181.35:30000/mayx/blog
158 http://172.172.102.93:3000/mayx/blog
159 http://115.120.245.164:3000/mayx/blog
160 http://35.194.179.90:3000/mayx/blog
179 http://121.41.2.71:3000/mayx/blog
180 http://110.41.177.80:5000/mayx/blog
181 https://gitea.dsmaster.myds.me/mayx/blog
https://gitea.primecontrols-dev.com/mayx/blog
182 http://www.scserverddns.top:13000/mayx/blog
183 https://git.lucas-michel.fr/mayx/blog
184 https://git.imvictor.tech:2/mayx/blog
201 https://git.m.ctf.arrobe.fr/mayx/blog
202 http://69.62.64.52:3333/mayx/blog
203 https://git.flymiracle.com/mayx/blog
https://gitea.manekenbrand.com/mayx/blog
204 http://106.14.138.181:3000/mayx/blog
205 https://git.yyuu.xyz/mayx/blog
206 http://39.107.70.124:3000/mayx/blog
217 https://gitea.tecamino.com/mayx/blog
218 http://39.99.175.172:8000/mayx/blog
219 http://8.138.13.251:3000/mayx/blog
http://47.115.223.229:8888/mayx/blog
220 http://104.254.131.244:3000/mayx/blog
221 https://gitea.alacloud.de/mayx/blog
222 https://git.tobiasweise.dev/mayx/blog
227 https://repos.fbpx.io/mayx/blog
228 https://git.cavemanon.xyz/mayx/blog
229 http://svn.rivastudio.cn/mayx/blog
https://kamtk.ru:4000/mayx/blog
230 http://39.98.126.115:8080/mayx/blog
231 http://46.202.189.66:3000/mayx/blog
232 http://82.26.157.11:3001/mayx/blog
249 https://git.cenoq.com/mayx/blog
250 http://8.152.205.35:3000/mayx/blog
251 http://120.210.80.160:3000/mayx/blog
http://1.95.192.200:59300/mayx/blog
252 http://194.5.152.156:3000/mayx/blog
253 http://8.155.172.147:3001/mayx/blog
254 https://git.erfmann.dev/mayx/blog
269 https://git.sophiagwen.au/mayx/blog
270 http://139.196.96.28:13000/mayx/blog
271 https://dev.kiramtech.com/mayx/blog
https://git.ihatemen.uk/mayx/blog
272 https://git.123doit.com/mayx/blog
273 http://62.43.207.91:8889/mayx/blog
274 https://git.johntsai.online/mayx/blog
343 https://git.esen.gay/mayx/blog
344 https://git.webtims.ru/mayx/blog
345 https://gitea.personalsoftware.space/mayx/blog
http://gitea.yiban.com.tw:3030/mayx/blog
346 https://gitlab.iplusus.com/mayx/blog
347 https://gitea.zachl.tech/mayx/blog
348 https://git.miasma-os.com/mayx/blog
391 http://36.133.248.69:3088/mayx/blog_cn
392 http://220.205.16.27:18081/mayx/blog_cn
393 http://81.69.221.216:3000/mayx/blog_cn
http://115.159.194.75:4000/mayx/blog_cn
394 http://183.204.60.122:10081/mayx/blog_cn
395 http://43.139.240.37:17000/mayx/blog_cn
396 http://159.75.27.114:3000/mayx/blog_cn
411 http://meowug.com:8418/mayx/blog_cn
412 http://36.138.125.206:3000/mayx/blog_cn
413 https://git.4lcap.com/mayx/blog_cn
http://101.43.238.71:3000/mayx/blog_cn
414 http://59.110.175.62:4322/mayx/blog_cn
415 https://www.luluvip.cn:8419/mayx/blog_cn
416 http://xianyuhome.cn:11013/mayx/blog_cn
420 https://gittea.dev/mayx/blog
421 https://git.newnaturalphilosophy.org/mayx/blog
422 https://code.infininov.com/mayx/blog
https://git.apt142.ru/mayx/blog
423 http://gitea.mcelwain.net/mayx/blog
424 https://chunkks.com/mayx/blog
425 https://gitea.earthmanrpg.me/mayx/blog
505 https://git.joinplu.me/mayx/blog
506 https://git.research.dezeeuw.ca/mayx/blog
507 http://149.104.29.239:8081/mayx/blog
508 http://ysx.myds.me:3005/mayx/blog
509 http://124.71.169.183:3000/mayx/blog
510 https://git.csi-kjsce.org/mayx/blog
511 https://hiwifi.denq.us:8418/mayx/blog
512 http://39.108.124.198:3000/mayx/blog
513 http://1090391-twk8saas.tmweb.ru/mayx/blog
514 https://git.msoucy.me/mayx/blog
515 https://git.niisse.net/mayx/blog
516 http://139.224.24.61:3000/mayx/blog
517 http://140.120.108.238:49308/mayx/blog
518 http://220.132.16.87:3000/mayx/blog
519 http://git.chilidoginteractive.com:3000/mayx/blog_cn
520 https://git.thunder-data.cn/mayx/blog_cn
521 https://git.cukak.com/mayx/blog_cn
522 https://git.ixu.me/mayx/blog_cn
523 http://git.uhfdemo.com/mayx/blog_cn
524 http://43.143.142.38:7001/mayx/blog_cn
525 http://111.230.243.127:3000/mayx/blog_cn
526 http://git.qniao.cn/mayx/blog_cn
527 https://gitea.smartechouse.com/mayx/blog_cn
528 http://git.feashow.cn/mayx/blog_cn
+2 -2
View File
@@ -162,7 +162,7 @@ $.get(BlogAPI + "/suggest?id={{ page.url }}&update=" + lastUpdated.valueOf(), fu
<div id="gitalk-container" data-page-id="{{ page.id }}"></div> <div id="gitalk-container" data-page-id="{{ page.id }}"></div>
<script> <script>
var gitalk = new Gitalk(Object.assign({ id: '{{ page.id }}' }, GitalkConfig)) var gitalk = new Gitalk($.extend({ id: '{{ page.id }}' }, GitalkConfig));
gitalk.render('gitalk-container') gitalk.render('gitalk-container');
</script> </script>
<!-- <![endif]--> <!-- <![endif]-->
+5 -4
View File
File diff suppressed because one or more lines are too long
+14 -44
View File
@@ -1,51 +1,21 @@
/**
* 根据 URL ?kw= 参数高亮页面内匹配的关键词。
* 提取为全局函数,供 pjax.js 在页面切换后复用,避免重复实现。
*/
function highlightKeyword() { function highlightKeyword() {
const urlParams = new URLSearchParams(window.location.search); var match = location.search.match(/[?&]kw=([^&]+)/);
const keyword = urlParams.get('kw')?.trim(); var kw = match ? $.trim(decodeURIComponent(match[1].replace(/\+/g, ' '))) : '';
if (!kw) return;
if (!keyword) return; var reg = new RegExp('(' + kw.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + ')', 'gi');
var escapeMap = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' };
// 转义正则表达式特殊字符,避免安全问题 $('section, section *').not('script, style, textarea').contents().filter(function() {
const escapedKeyword = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); return this.nodeType === 3;
// 创建不区分大小写的正则表达式(全局匹配) }).each(function() {
const regex = new RegExp(`(${escapedKeyword})`, 'gi'); var escapedText = this.nodeValue.replace(/[&<>"']/g, function(m) { return escapeMap[m]; });
var highlighted = escapedText.replace(reg, '<mark>$1</mark>');
// 递归遍历并高亮文本节点 if (escapedText !== highlighted) {
const escapeHTML = str => str.replace(/[&<>"']/g, $(this).replaceWith(highlighted);
tag => ({ }
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&#39;'
}[tag] || tag));
function highlightTextNodes(element) {
$(element).contents().each(function () {
if (this.nodeType === Node.TEXT_NODE) {
const $this = $(this);
const text = escapeHTML($this.text());
// 使用正则替换并保留原始大小写
if (regex.test(text)) {
const replaced = text.replace(regex, '<mark>$1</mark>');
$this.replaceWith(replaced);
}
} else if (
this.nodeType === Node.ELEMENT_NODE &&
!$(this).is('script, style, noscript, textarea')
) {
highlightTextNodes(this);
}
});
}
$('section').each(function () {
highlightTextNodes(this);
}); });
}; }
function initCopyButtons() { function initCopyButtons() {
$('.copy').remove(); $('.copy').remove();
+1 -12
View File
@@ -10,19 +10,12 @@
var PJAX_OPTS = { var PJAX_OPTS = {
container: CONTAINER, container: CONTAINER,
fragment: CONTAINER, fragment: CONTAINER,
timeout: 8000, timeout: 5000,
scrollTo: false scrollTo: false
}; };
// ========== 各组件重初始化 ========== // ========== 各组件重初始化 ==========
/** AI 摘要(post.html 内联脚本,pjax 后由 executeScripts 触发) */
function reinitAISummary() {
if (typeof ai_gen === 'function' && $('#ai-output').length) {
try { ai_gen(); } catch (e) { /* ignore */ }
}
}
/** Google Analytics 页面浏览事件 */ /** Google Analytics 页面浏览事件 */
function trackPageView() { function trackPageView() {
if (typeof gtag === 'function') { if (typeof gtag === 'function') {
@@ -114,7 +107,6 @@
initVisitors(); initVisitors();
initCopyButtons(); initCopyButtons();
highlightKeyword(); highlightKeyword();
reinitAISummary();
reinitLive2d(); reinitLive2d();
trackPageView(); trackPageView();
scrollToAnchor(); scrollToAnchor();
@@ -134,9 +126,6 @@
$('body').addClass('pjax-loading'); $('body').addClass('pjax-loading');
}); });
$(document).on('pjax:complete', doPjaxComplete); $(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) { $(document).on('pjax:end', function (event, xhr, options) {
var $container = $(options.container || PJAX_OPTS.container); var $container = $(options.container || PJAX_OPTS.container);
+2 -2
View File
@@ -12,7 +12,7 @@ image: https://screenshot.mayx.eu.org/
<!-- 遍历分页后的文章 --> <!-- 遍历分页后的文章 -->
<table class="entry-content h-feed"> <table class="entry-content h-feed">
{% for post in paginator.posts %} {% for post in paginator.posts %}
<tr><td class="h-entry" data-url="{{ post.url }}"> <tr><td class="h-entry post-row" data-url="{{ post.url }}">
<h2 class="p-name"><a class="post-link u-url" href="{{ post.url }}">{{ post.title }}{% if post.layout == "encrypt" %} [加密] {% endif %}</a></h2> <h2 class="p-name"><a class="post-link u-url" href="{{ post.url }}">{{ post.title }}{% if post.layout == "encrypt" %} [加密] {% endif %}</a></h2>
<p> <p>
<time class="date dt-published" datetime="{{ post.date | date_to_xmlschema }}">{{ post.date | date: "%-d %B %Y" }}</time> <time class="date dt-published" datetime="{{ post.date | date_to_xmlschema }}">{{ post.date | date: "%-d %B %Y" }}</time>
@@ -79,7 +79,7 @@ image: https://screenshot.mayx.eu.org/
<a href="https://xn--sr8hvo.ws/next"></a><br /><a href="https://icp.gov.moe/?keyword=20218888" target="_blank">萌ICP备 20218888号</a></small> <a href="https://xn--sr8hvo.ws/next"></a><br /><a href="https://icp.gov.moe/?keyword=20218888" target="_blank">萌ICP备 20218888号</a></small>
<input name="live2dBGM" value="https://music.163.com/song/media/outer/url?id=523658881.mp3" type="hidden" /> <input name="live2dBGM" value="https://music.163.com/song/media/outer/url?id=523658881.mp3" type="hidden" />
<script> <script>
$(document).on('click', '.h-entry', function(e) { $(document).on('click', '.post-row', function(e) {
if ($(e.target).closest('.p-category').length === 0) { if ($(e.target).closest('.p-category').length === 0) {
go($(this).attr('data-url')); go($(this).attr('data-url'));
} }