From 5c739ed69573c91e0a745e1d4c9eaa2488097c3f Mon Sep 17 00:00:00 2001
From: mayx
Date: Sat, 6 Sep 2025 16:15:58 +0000
Subject: [PATCH 01/29] Update 5 files
- /_data/proxylist.yml
- /_data/other_repo_list.csv
- /proxylist.md
- /other_repo_list.md
- /.readthedocs.yaml
---
.readthedocs.yaml | 16 ++
_data/other_repo_list.csv | 413 ++++++++++++++++++++++++++++++++++++++
_data/proxylist.yml | 18 +-
other_repo_list.md | 8 +
proxylist.md | 2 +
5 files changed, 443 insertions(+), 14 deletions(-)
create mode 100644 .readthedocs.yaml
create mode 100644 _data/other_repo_list.csv
create mode 100644 other_repo_list.md
diff --git a/.readthedocs.yaml b/.readthedocs.yaml
new file mode 100644
index 0000000..5124702
--- /dev/null
+++ b/.readthedocs.yaml
@@ -0,0 +1,16 @@
+# Required
+version: 2
+
+build:
+ os: ubuntu-24.04
+ tools:
+ ruby: "3.3"
+
+ commands:
+ - gem install bundler
+ - bundle install
+ - mkdir Mabbs
+ - curl -L -o Mabbs/README.md https://github.com/Mabbs/Mabbs/raw/main/README.md
+ - bundle exec jekyll build --destination $READTHEDOCS_OUTPUT/html
+ - tar czvf MayxBlog.tgz -C $READTHEDOCS_OUTPUT html
+ - mv MayxBlog.tgz $READTHEDOCS_OUTPUT/html
\ No newline at end of file
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
new file mode 100644
index 0000000..29bf931
--- /dev/null
+++ b/_data/other_repo_list.csv
@@ -0,0 +1,413 @@
+http://gdatura24gtdy23lxd7ht3xzx6mi7mdlkabpvuefhrjn4t5jduviw5ad.onion/Mayx/mayx
+http://giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q.b32.i2p/mayx/blog
+https://gitlab.lain.la/mayx/mayx.pages.lain.la
+https://gitea.moe/Mayx/mayx
+https://tvoygit.ru/Mayx/mayx
+https://git.envs.net/Mayx/mayx
+https://tildegit.org/Mayx/mayx
+https://git.pixie.town/mayx/mayx
+https://cgit.tilde.town/~mayx/blog
+https://gitlab.haskell.org/mayx/mayx
+https://git.gammaspectra.live/Mayx/blog
+https://repo2.serv00.com/git/pub/Mayx/mayx/
+https://git.tea-assets.com/mayx/blog
+https://repo.komhumana.org/mayx/blog
+https://git.minetest.land/Mayx/blog
+https://git.dungeon.fi/mayx/blog
+http://ucarmesin.de:3000/mayx/blog
+http://101.34.211.172:3000/mayx/blog
+http://178.44.118.232/mayx/blog
+https://gitea.johannes-hegele.de/mayx/blog
+https://git.paulcolfer.ie/mayx/blog
+https://git.goolink.org/mayx/blog
+https://git.octava.cool/mayx/blog
+https://git.haowuan.top/mayx/blog
+https://git.esc-plus.com/mayx/blog
+https://gogs.tankernn.eu/mayx/blog
+http://101.132.73.14:3000/mayx/blog
+http://117.72.78.89:3000/mayx/blog
+https://gitea.stormyhome.net/mayx/blog
+http://www.litehome.top/mayx/blog
+http://47.120.60.153:10880/mayx/blog
+http://zfselect.cn:3000/mayx/blog
+http://61.139.16.27:26684/mayx/blog
+https://git.dpark.io/mayx/blog
+https://git.ykonkov.com/mayx/blog
+http://116.62.245.34:3000/mayx/blog
+https://git.johann-brauer.de/mayx/blog
+https://git.barneo-tech.com/mayx/blog
+https://git.shaunmcpeck.com/mayx/blog
+http://1.6.141.109:3000/mayx/blog
+http://52.28.156.42/mayx/blog
+http://164.92.160.200:3000/mayx/blog
+https://git.louhau.edu.mo/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
+https://git.unglab.com/mayx/blog
+https://git.empirica.pro/mayx/blog
+http://xiaowangnas.com:8418/mayx/blog
+http://47.115.203.168:3000/mayx/blog
+http://www.gitea.zhangc.top:3000/mayx/blog
+https://git.chistyakov-it.ru/mayx/blog
+https://git.emanuelemiani.it/mayx/blog
+https://git.dehemi.com/mayx/blog
+https://git.traband.ovh/mayx/blog
+https://git.ngcr.de/mayx/blog
+https://www.gittttttttt.top/mayx/blog
+http://101.66.229.132:61088/mayx/blog
+http://118.26.39.39:3000/mayx/blog
+https://gitea.severmed.com/mayx/blog
+http://150.109.95.245/mayx/blog
+https://git.pcgf.io/mayx/blog
+https://nucleation.fusion.bref.cool/mayx/blog
+https://gitea.l2reworld.com/mayx/blog
+https://git.bp-web.app/mayx/blog
+https://git.carinae.org/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://git.casperxddddd.uk/mayx/blog
+https://git.tanxhub.com/mayx/blog
+https://git.expiera.com/mayx/blog
+https://gitea.nongnghiepso.com/mayx/blog
+https://codes.tools.asitavsen.com/mayx/blog
+https://gitea.kursatessiz.com/mayx/blog
+https://git.siin.space/mayx/blog
+http://47.117.26.49:3000/mayx/blog
+https://giteaismyownrepository.nosv.org/mayx/blog
+http://122.116.190.233:3001/mayx/blog
+http://101.200.127.15:3000/mayx/blog
+http://50.19.111.193:3000/mayx/blog
+https://git-test.zcy.dev/mayx/blog
+https://git.nothamor.com/mayx/blog
+https://git.appkraft.ru/mayx/blog
+https://git.terrainknowledge.com/mayx/blog
+https://gitea.pickalurv.com/mayx/blog
+http://183.239.197.12:10803/mayx/blog
+https://git.zeroplay.io/mayx/blog
+https://vpgs.pro/mayx/blog
+https://git.successkaoyan.com/mayx/blog
+https://git.veydlin.com/mayx/blog
+https://git.dcircus.com/mayx/blog
+https://gitea.bitshift.us/mayx/blog
+http://114.55.134.197:3000/mayx/blog
+http://139.129.25.251:3000/mayx/blog
+http://git4edu.net/mayx/blog
+http://45.33.87.87/mayx/blog
+http://162.19.95.94:3000/mayx/blog
+https://git.rankenste.in/mayx/blog
+https://git.ghostpacket.org/mayx/blog
+https://git.catswords.net/mayx/blog
+https://gitea.dilap.ru/mayx/blog
+http://168.126.28.36:3000/mayx/blog
+https://git.cloud.leonclassroom.com/mayx/blog
+https://git.noxxxx.com/mayx/blog
+http://120.25.239.206:20080/mayx/blog
+https://registry.gametuoitho.vn/mayx/blog
+http://8.137.103.221:3000/mayx/blog
+https://gitea.lutix.org/mayx/blog
+http://120.79.27.232:3000/mayx/blog
+http://wangbeibei.xyz:6002/mayx/blog
+http://43.224.227.219:3000/mayx/blog
+https://git.duplanet.ovh/mayx/blog
+http://Shiningon.top/mayx/blog
+http://wsygitea.top/mayx/blog
+https://git.ofdl.tools/mayx/blog
+http://precious.harpy.faith/mayx/blog
+https://git.yardtech.ru/mayx/blog
+http://69.62.77.234:8888/mayx/blog
+https://gitea.bake.systems/mayx/blog
+http://8.134.15.96:3000/mayx/blog
+http://112.219.147.186:7000/mayx/blog
+https://gitea.siriusun.com/mayx/blog
+http://47.119.38.109:3000/mayx/blog
+https://mysite.myvnc.com:3000/mayx/blog
+http://8.134.32.42:3000/mayx/blog
+https://git.rootfinlay.co.uk/mayx/blog
+https://repo.beithing.com/mayx/blog
+https://git.tinker.infamous.games/mayx/blog
+http://45.197.2.58:3029/mayx/blog
+https://git.yi-guanjia.com/mayx/blog
+http://106.14.174.241:3000/mayx/blog
+https://git.datdanguy.com/mayx/blog
+http://43.163.207.174:3000/mayx/blog
+http://rack1.raincs.cc:20253/mayx/blog
+https://git.repo.in.net/mayx/blog
+https://git.dihe.moe/mayx/blog
+https://git.fracturedcode.net/mayx/blog
+http://47.113.231.74:3000/mayx/blog
+https://gitea.belanjaparts.com/mayx/blog
+http://185.208.225.190:3000/mayx/blog
+https://git.sudo-fhir.au/mayx/blog
+https://git.odabasioglu.fr/mayx/blog
+https://git.warzin.com/mayx/blog
+https://git.burning.cloud/mayx/blog
+https://git.ihackfx.ru/mayx/blog
+https://gitea.sguba.de/mayx/blog
+https://git.flywithu.com/mayx/blog
+https://git.purplepanda.cc/mayx/blog
+https://gitea.freeyoursystem.de/mayx/blog
+https://git.moguyn.cn/mayx/blog
+https://git.arachno.de/mayx/blog
+https://git.zhanzhi.life/mayx/blog
+http://121.36.255.50:3000/mayx/blog
+https://apoloz-git.md-desk.ru/mayx/blog
+http://116.204.34.35:12000/mayx/blog
+https://git.echaeplay.com/mayx/blog
+https://git.bethelean.kr/mayx/blog
+https://git.barsisr.fr/mayx/blog
+http://45.192.105.100:3000/mayx/blog
+http://47.112.175.39:3000/mayx/blog
+https://www.improve-git.xyz/mayx/blog
+https://git.Apture.io/mayx/blog
+https://git.dbfmp.cn/mayx/blog
+http://103.231.8.120/mayx/blog
+https://gitea.jasonstolle.com/mayx/blog
+https://gitea.dokm.xyz/mayx/blog
+https://nemoserver.iict.bas.bg/mayx/blog
+https://git.istsoft.ru/mayx/blog
+http://8.134.61.107:3000/mayx/blog
+http://47.107.88.161:3000/mayx/blog
+https://git.ktk-pc.de/mayx/blog
+http://git.open-dev.ru/mayx/blog
+https://git.kaizer.cloud/mayx/blog
+http://git.gpsix.com:3000/mayx/blog
+http://101.132.113.255:3000/mayx/blog
+https://gitea.zybc.online/mayx/blog
+https://git.votava.org/mayx/blog
+http://8.137.12.29:3000/mayx/blog
+https://gitea.irons.nz/mayx/blog
+https://gitea.madf12.com/mayx/blog
+http://8.134.104.234:3000/mayx/blog
+http://47.99.142.152:3000/mayx/blog
+http://45.45.238.98:3000/mayx/blog
+http://git.ugohous.com/mayx/blog
+https://git.vce.de/mayx/blog
+https://gitea.carmon.co.kr/mayx/blog
+http://142.171.47.170:3000/mayx/blog
+https://git.aion.bi/mayx/blog
+https://git.skillmad.ru/mayx/blog
+https://git.werkraum-karlsruhe.org/mayx/blog
+http://111.231.146.230:8418/mayx/blog
+https://git.winscloud.net/mayx/blog
+https://git.pwaapp.cc/mayx/blog
+http://188.245.99.186:3000/mayx/blog
+https://sources.krechet.tech/mayx/blog
+http://119.28.73.80:5000/mayx/blog
+http://194.60.231.252:3000/mayx/blog
+https://git.brele.net/mayx/blog
+https://git.sleepingforest.co.uk/mayx/blog
+https://git.chinamario.ru/mayx/blog
+https://gitea.wangyige.cn/mayx/blog
+http://47.103.223.114:8081/mayx/blog
+https://git.xdsite.fun/mayx/blog
+https://git.brb.homeip.net/mayx/blog
+https://an360.top/mayx/blog
+https://git.agusandelnorte.gov.ph/mayx/blog
+http://git.maiwd.cn:3000/mayx/blog
+https://git.reinoud.cloud/mayx/blog
+https://gitea.chenxu2233.com/mayx/blog
+http://106.15.78.64:3000/mayx/blog
+http://hoenking.cn:3000/mayx/blog
+https://git.harddays.dev/mayx/blog
+https://git.hantify.ru/mayx/blog
+https://GIT.Agri-Sys.com/mayx/blog
+http://8.156.68.150:3008/mayx/blog
+http://47.113.96.20:3000/mayx/blog
+https://gitea.anessen.xyz/mayx/blog
+https://sengit.us/mayx/blog
+https://git.cjcrace.io/mayx/blog
+https://tee.eddykk.com/mayx/blog
+https://git.yinbonet.cn/mayx/blog
+https://git.inkcore.cn/mayx/blog
+http://47.98.129.193:3000/mayx/blog
+http://8.138.91.73:3000/mayx/blog
+https://git.wisder.net/mayx/blog
+http://8.138.187.97:3000/mayx/blog
+https://gitea.potatox.net/mayx/blog
+https://git.martin.md/mayx/blog
+https://git2.ujin.tech/mayx/blog
+http://git.joypetsisland.com/mayx/blog
+http://111.119.244.185:3000/mayx/blog
+http://110.41.179.36:13000/mayx/blog
+http://115.187.22.75:3000/mayx/blog
+http://163.223.13.95:3000/mayx/blog
+https://git.chrisbeckstrom.com/mayx/blog
+https://dev.zaphar.net/mayx/blog
+http://git.tinycio.com/mayx/blog
+https://git.moonwoou.com/mayx/blog
+https://git.stupidpz.com/mayx/blog
+https://git.tomlab.dev/mayx/blog
+http://182.92.109.202:8070/mayx/blog
+https://helx-artifacts-git.apps.renci.org/mayx/blog
+https://git.ataber.pw/mayx/blog
+https://gogs.soyootech.com/mayx/blog
+http://94.130.182.154:3000/mayx/blog
+https://git.unicom.studio/mayx/blog
+https://Gitea.Sephalon.net/mayx/blog
+https://git.gestio365.com/mayx/blog
+http://47.122.132.187:3000/mayx/blog
+https://gitea.mahss.io/mayx/blog
+https://git.k-corporation.org/mayx/blog
+https://git.myinternet.services/mayx/blog
+http://43.138.173.153:8804/mayx/blog
+http://frktedu.ru:3000/mayx/blog
+https://git.bloade.com/mayx/blog
+https://git.lokalix.de/mayx/blog
+http://8.141.14.13:3000/mayx/blog
+http://47.94.103.75:3000/mayx/blog
+http://gitea.danongshu.cn/mayx/blog
+https://git.palagov.tv/mayx/blog
+http://139.196.201.231:3000/mayx/blog
+http://takway.ai:3000/mayx/blog
+http://8.155.23.172:3000/mayx/blog
+https://git.influxfin.com/mayx/blog
+http://47.100.177.77:3000/mayx/blog
+https://gitea.beonx.com/mayx/blog
+https://git.programar.io/mayx/blog
+https://git.doitcan.com/mayx/blog
+http://202.181.26.150:3000/mayx/blog
+http://219.157.255.213:25311/mayx/blog
+https://git.melvincarvalho.com/mayx/blog
+https://gitea.aerwen.net/mayx/blog
+http://8.155.14.189:3000/mayx/blog
+https://git.vekus.ru/mayx/blog
+https://gitea.svc.obaa.cloud/mayx/blog
+https://git.infortek.tech/mayx/blog
+http://8.134.64.84:3000/mayx/blog
+http://test-www.writebug.com:3000/mayx/blog
+https://git.thetoc.net/mayx/blog
+https://gitea.blubeacon.com/mayx/blog
+http://116.204.75.78:6180/mayx/blog
+https://git.powerdata.dk/mayx/blog
+https://git.ods-company.ru/mayx/blog
+http://109.228.48.121:8000/mayx/blog
+https://git.libx.ir/mayx/blog
+https://code.autumnsky.jp/mayx/blog
+https://git.u2.nu/mayx/blog
+https://bk-house.synology.me:3081/mayx/blog
+http://123.57.95.66:9000/mayx/blog
+https://git.the-archive.xyz/mayx/blog
+http://git.yjmt191314.com/mayx/blog
+https://git.sparrowcomm.com/mayx/blog
+https://gitea.chaos-it.pl/mayx/blog
+https://gitea.timurcelik.de/mayx/blog
+http://www.rubikscomplex.com:3000/mayx/blog
+https://git.hubhoo.com/mayx/blog
+https://git.ultra.pub/mayx/blog
+https://git.cloud13.de/mayx/blog
+https://gitea.visoftware.com.co/mayx/blog
+https://git.erg.school/mayx/blog
+http://20.249.208.89:3000/mayx/blog
+http://121.199.172.238:3000/mayx/blog
+http://27.124.12.222:3000/mayx/blog
+https://wzpmc.cn:3000/mayx/blog
+https://saga.iao.ru:3043/mayx/blog
+https://git.sayndone.ru/mayx/blog
+https://git.kodors.net/mayx/blog
+http://47.113.118.108:3000/mayx/blog
+https://gitea.hintsight.com/mayx/blog
+https://git.code-works.de/mayx/blog
+https://anzsco.co.nz/mayx/blog
+https://git.valami.giize.com/mayx/blog
+https://git.simbarbet.com/mayx/blog
+http://47.109.132.168:3000/mayx/blog
+https://forge.death.id.au/mayx/blog
+https://git.saintdoggie.org/mayx/blog
+http://blackobelisk.xyz:3000/mayx/blog
+https://git.dushes.keenetic.pro/mayx/blog
+https://git.go-chat.ru/mayx/blog
+https://gitt.vireoapp.com/mayx/blog
+http://47.129.22.53:22345/mayx/blog
+https://git.tech.troyrc.com/mayx/blog
+http://git.zkyspace.top/mayx/blog
+http://47.107.62.152:3000/mayx/blog
+https://git.openmonero.co/mayx/blog
+http://47.99.119.173:13000/mayx/blog
+https://git.outsidecontext.solutions/mayx/blog
+http://8.210.112.49:8860/mayx/blog
+http://149.88.87.128:3000/mayx/blog
+http://124.70.167.140:3000/mayx/blog
+http://8.137.38.60:8201/mayx/blog
+https://git.emoscape.org/mayx/blog
+http://112.74.106.216:3000/mayx/blog
+http://77.223.118.106:8081/mayx/blog
+http://frp-old.com:41879/mayx/blog
+https://git.the-kn.com/mayx/blog
+https://git.campfiregg.ru/mayx/blog
+https://gitea.net50.ne.jp/mayx/blog
+https://git.ism-dev.net/mayx/blog
+http://sinzero.xyz:3000/mayx/blog
+http://69.10.53.202:3000/mayx/blog
+https://gitea.b54.co/mayx/blog
+https://git.matevi.sh/mayx/blog
+http://gitea-ui.shiba-server.fr:19000/mayx/blog
+http://www.pcaidiy.cn:3000/mayx/blog
+https://code.tiantongsl.com/mayx/blog
+http://213.35.118.215:60001/mayx/blog
+https://git.jasonpittman.com/mayx/blog
+https://git.elmukoding.com/mayx/blog
+https://gitea.shirom.me/mayx/blog
+https://git.pasarex.com/mayx/blog
+http://1.95.221.174:3000/mayx/blog
+https://git.wangxinlei.cn/mayx/blog
+http://101.200.74.121:3000/mayx/blog
+https://potokobox-releases.prodduction.ru/mayx/blog
+http://123.56.193.182:3000/mayx/blog
+https://git.akarpov.ru/mayx/blog
+http://60.204.131.99:3000/mayx/blog
+http://femail.email:8418/mayx/blog
+http://47.93.56.66:8080/mayx/blog
+https://git.hefzteam.ir/mayx/blog
+http://47.92.218.215:3000/mayx/blog
+http://167.172.7.198:8081/mayx/blog
+https://gitea.meetgu.ru/mayx/blog
+http://8.134.253.108:3000/mayx/blog
+https://git.patrich.se/mayx/blog
+https://gitea.orlife.ru/mayx/blog
+http://47.251.18.130:3000/mayx/blog
+http://116.236.50.103:8789/mayx/blog
+https://git.dracodev.net/mayx/blog
+https://gitnto.innovationcampus.ru/mayx/blog
+https://git.paulll.cc/mayx/blog
+https://gitea.alaindee.net/mayx/blog
+https://gitea.reimann.ee/mayx/blog
+http://109.74.197.189/mayx/blog
+https://git.nussi.net/mayx/blog
+https://git.thepain.dev/mayx/blog
+https://git.geobretagne.fr/mayx/blog
+https://gitea.ultrasoft.cm/mayx/blog
+http://94.224.160.69:7990/mayx/blog
+http://8.134.144.137:3000/mayx/blog
+https://git.bodu.ro/mayx/blog
+https://git.hxps.ru/mayx/blog
+https://gitea.ekjeong.synology.me/mayx/blog
+https://git.d4m13n.dev/mayx/blog
+https://gitimpo.liara.run/mayx/blog
+https://git.needon.kr/mayx/blog
+https://git.4lcap.com/mayx/blog
+https://gitea.bastiqui.com/mayx/blog
+https://git.stit.tech/mayx/blog
+https://git.wun.im/mayx/blog
+https://git.lichx.top/mayx/blog
+https://www.9miao.fun:6839/mayx/blog
+https://git.ssktv.vip/mayx/blog
+https://git.autotion.net/mayx/blog
+http://octifor.synology.me:53000/mayx/blog
+https://git.daoyoucloud.com/mayx/blog
+https://git.entryrise.com/mayx/blog
+https://repo.apps.odatahub.net/mayx/blog
+http://okbestgood.com:3000/mayx/blog
+https://git.tallshim.ru/mayx/blog
+https://code.bitahub.com/mayx/blog
+https://tomtop.ru/mayx/blog
+https://git.daneric.dev/mayx/blog
+http://git.guaiyun.com.cn/mayx/blog
+http://malingshu.site:6010/mayx/blog
+https://git.jbangit.com/mayx/blog
+https://repo.gusdya.net/mayx/blog
+https://gitea.tmartens.dev/mayx/blog
+http://218.206.106.50:19901/mayx/blog
diff --git a/_data/proxylist.yml b/_data/proxylist.yml
index 68336b1..d4eff13 100644
--- a/_data/proxylist.yml
+++ b/_data/proxylist.yml
@@ -18,8 +18,9 @@ mirrors:
- https://mayx.pixie.homes/
- https://mabbs.kinsta.page/
- https://mayx.codeberg.page/
-- https://mayx.4everland.app/
- https://mayx.pages.lain.la/
+- https://mayx.4everland.app/
+- https://mayx.readthedocs.io/
- https://mayx.sourceforge.io/
- https://unmayx.bitbucket.io/
- https://mayx.pages.debian.net/
@@ -31,31 +32,20 @@ gits:
- https://gitlab.com/mayx/mayx.gitlab.io
- https://framagit.org/mayx/mayx.frama.io
- https://salsa.debian.org/mayx/mayx.pages.debian.net
-- https://gitlab.lain.la/mayx/mayx.pages.lain.la
- https://codeberg.org/mayx/blog
- https://git.gay/mayx/mayx
- https://gitea.com/mayx/mayx
-- https://gitea.moe/Mayx/mayx
- https://gitgud.io/mayx/mayx
- https://git.sr.ht/~mayx/mayx
-- https://tvoygit.ru/Mayx/mayx
-- https://git.envs.net/Mayx/mayx
-- https://tildegit.org/Mayx/mayx
- https://git.launchpad.net/mayx
-- https://git.pixie.town/mayx/mayx
-- https://cgit.tilde.town/~mayx/blog
+- https://git.disroot.org/mayx/mayx
- https://bitbucket.org/unmayx/mayx
- https://sourcecraft.dev/mayx/mayx
-- https://git.disroot.org/mayx/mayx
-- https://gitlab.haskell.org/mayx/mayx
-- https://git.gammaspectra.live/Mayx/blog
-- https://repo2.serv00.com/git/pub/Mayx/mayx/
- https://gitee.com/mabbs/mabbs
- https://cnb.cool/unmayx/mayx
- https://atomgit.com/mayx/blog
- https://sourceforge.net/projects/mayx/
-- http://gdatura24gtdy23lxd7ht3xzx6mi7mdlkabpvuefhrjn4t5jduviw5ad.onion/Mayx/mayx
-- http://giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q.b32.i2p/mayx/blog
+
static:
- https://mayx.nekoweb.org/
- https://mayx.neocities.org/
diff --git a/other_repo_list.md b/other_repo_list.md
new file mode 100644
index 0000000..77fbd12
--- /dev/null
+++ b/other_repo_list.md
@@ -0,0 +1,8 @@
+---
+layout: default
+title: 其他Git仓库镜像列表
+---
+
+# 其他Git仓库镜像列表
+{% for item in site.data.other_repo_list %}- <{{ item }}>
+{% endfor %}
\ No newline at end of file
diff --git a/proxylist.md b/proxylist.md
index 819bca8..273e892 100644
--- a/proxylist.md
+++ b/proxylist.md
@@ -22,6 +22,8 @@ title: 代理列表
{% for item in site.data.proxylist.gits %}- <{{ item }}>
{% endfor %}
+其他更多社区/个人类型实例托管的Git仓库列表参见[这里](/other_repo_list.html)
+
# 服务架构
```mermaid
graph LR;
From f5e43a61f84150f8510adef0ca901e6c9eb94a03 Mon Sep 17 00:00:00 2001
From: mayx
Date: Sat, 6 Sep 2025 16:30:54 +0000
Subject: [PATCH 02/29] Update 2 files
- /_data/other_repo_list.csv
- /other_repo_list.md
---
_data/other_repo_list.csv | 1 +
other_repo_list.md | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 29bf931..6ebe7ed 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -1,3 +1,4 @@
+repo_url
http://gdatura24gtdy23lxd7ht3xzx6mi7mdlkabpvuefhrjn4t5jduviw5ad.onion/Mayx/mayx
http://giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q.b32.i2p/mayx/blog
https://gitlab.lain.la/mayx/mayx.pages.lain.la
diff --git a/other_repo_list.md b/other_repo_list.md
index 77fbd12..264fd46 100644
--- a/other_repo_list.md
+++ b/other_repo_list.md
@@ -4,5 +4,5 @@ title: 其他Git仓库镜像列表
---
# 其他Git仓库镜像列表
-{% for item in site.data.other_repo_list %}- <{{ item }}>
+{% for item in site.data.other_repo_list.repo_url %}- <{{ item }}>
{% endfor %}
\ No newline at end of file
From 3d5d7eaa161228e0a93b1a57756b5452739f0caa Mon Sep 17 00:00:00 2001
From: mayx
Date: Sat, 6 Sep 2025 16:37:44 +0000
Subject: [PATCH 03/29] Update 3 files
- /other_repo_list.md
- /_data/proxylist.yml
- /proxylist.md
---
_data/proxylist.yml | 3 +--
other_repo_list.md | 2 +-
proxylist.md | 4 ++--
3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/_data/proxylist.yml b/_data/proxylist.yml
index d4eff13..41ce435 100644
--- a/_data/proxylist.yml
+++ b/_data/proxylist.yml
@@ -27,7 +27,7 @@ mirrors:
- https://mayx.dappling.network/
- https://mayx-blog.statichost.eu/
- https://mabbs-blog.static.hf.space/
-gits:
+repos:
- https://github.com/Mabbs/mabbs.github.io
- https://gitlab.com/mayx/mayx.gitlab.io
- https://framagit.org/mayx/mayx.frama.io
@@ -45,7 +45,6 @@ gits:
- https://cnb.cool/unmayx/mayx
- https://atomgit.com/mayx/blog
- https://sourceforge.net/projects/mayx/
-
static:
- https://mayx.nekoweb.org/
- https://mayx.neocities.org/
diff --git a/other_repo_list.md b/other_repo_list.md
index 264fd46..a2d0588 100644
--- a/other_repo_list.md
+++ b/other_repo_list.md
@@ -4,5 +4,5 @@ title: 其他Git仓库镜像列表
---
# 其他Git仓库镜像列表
-{% for item in site.data.other_repo_list.repo_url %}- <{{ item }}>
+{% for item in site.data.other_repo_list %}- <{{ item.repo_url }}>
{% endfor %}
\ No newline at end of file
diff --git a/proxylist.md b/proxylist.md
index 273e892..ab397e0 100644
--- a/proxylist.md
+++ b/proxylist.md
@@ -18,8 +18,8 @@ title: 代理列表
{% for item in site.data.proxylist.mirrors %}- <{{ item }}>
{% endfor %}
-# Git列表
-{% for item in site.data.proxylist.gits %}- <{{ item }}>
+# Git仓库列表
+{% for item in site.data.proxylist.repos %}- <{{ item }}>
{% endfor %}
其他更多社区/个人类型实例托管的Git仓库列表参见[这里](/other_repo_list.html)
From b4af6686ce47a5cffd569ea3b32bbbe1d79e914f Mon Sep 17 00:00:00 2001
From: mayx
Date: Sun, 7 Sep 2025 08:47:54 +0000
Subject: [PATCH 04/29] Update 4 files
- /_posts/2025-09-01-quine.md
- /_layouts/default.html
- /_data/other_repo_list.csv
- /other_repo_list.md
---
_data/other_repo_list.csv | 6 ++++++
_layouts/default.html | 2 +-
_posts/2025-09-01-quine.md | 2 +-
other_repo_list.md | 1 +
4 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 6ebe7ed..b9c50d2 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -412,3 +412,9 @@ https://git.jbangit.com/mayx/blog
https://repo.gusdya.net/mayx/blog
https://gitea.tmartens.dev/mayx/blog
http://218.206.106.50:19901/mayx/blog
+https://g.6tm.es/mayx/blog
+https://git.slegeir.com/mayx/blog
+https://git.kimcblog.com/mayx/blog
+http://www.mygamework.com:3000/mayx/blog
+https://gogs.m14xa.ru/mayx/blog
+https://git.minaev.su/mayx/blog
diff --git a/_layouts/default.html b/_layouts/default.html
index aec367a..2e13ed9 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -9,7 +9,7 @@ layout: xslt_container
{% seo %}
- {% unless site.github %}{% endunless %}
+ {% unless site.github %}{% endunless %}
{% feed_meta %}
diff --git a/_posts/2025-09-01-quine.md b/_posts/2025-09-01-quine.md
index 1b39c16..6201f64 100644
--- a/_posts/2025-09-01-quine.md
+++ b/_posts/2025-09-01-quine.md
@@ -86,7 +86,7 @@ Hello, world!
```
作为脚本执行的结果就是原样输出这段内容,不过把内容当作代码算不算作弊呢……如果看作是cat的输入显然是作弊,但如果是当作源代码的话应该就不算了吧😋……但这就不是能写出逻辑的语言了。所以说Quine的趣味并不在“能不能实现”,而在于如何在限制条件下实现。正是因为大多数语言不会直接“自我输出”,才会觉得那些精巧的Quine程序如此有意思。
## Quine Relay的探索
- 还有一个更加复杂的Quine变种是“Quine接力”(Quine Relay),即一个程序输出另一个程序的源代码,另一个程序又输出下一个程序的源代码,最后回到原始程序,就和之前所说的的嵌套循环ZIP Quine有点类似。最著名的例子是[Yusuke Endoh](https://github.com/mame)(这位还是[IOCCC](https://www.ioccc.org/)的冠军之一)创建的[quine-relay](https://github.com/mame/quine-relay)项目,它包含了128种编程语言的循环。
+ 还有一个更加复杂的Quine变种是“Quine接力”(Quine Relay),即一个程序输出另一个程序的源代码,另一个程序又输出下一个程序的源代码,最后回到原始程序,就和之前所说的嵌套循环ZIP Quine有点类似。最著名的例子是[Yusuke Endoh](https://github.com/mame)(这位还是[IOCCC](https://www.ioccc.org/)的冠军之一)创建的[quine-relay](https://github.com/mame/quine-relay)项目,它包含了128种编程语言的循环。
这种程序写起来会更复杂一些,不过原理都差不多,通常除了当前运行的部分是可执行代码外,其他的代码都需要以额外包含的数据形式(如字符串)存储在变量中。如果想自己做个类似简单的Quine Relay,除了去看[维基百科](https://en.wikipedia.org/wiki/Quine_(computing)#Ouroboros_programs)之外,前段时间我还看到过一个不错的[文章](https://blog.mistivia.com/posts/2024-09-21-quine/),里面就讲了如何用“笨办法”编写Quine和Quine Relay,通过把变量中的内容编码为16进制来避免不同语言可能存在的特殊字符转译问题,思路不错,对于理解如何编写这类程序的问题很有帮助。当然这只是个**简单**的方案,仅适用于一些常规的编程语言,像上面那个[quine-relay](https://github.com/mame/quine-relay)项目中甚至还包含Brainfuck之类的esolang,这种估计得要想办法让相对高级一些的语言通过“生成”的方式得到输出下一种代码的代码,而不是简单的赋值了,所以只靠这点知识想去完全理解大佬的作品还是想多了😆。
# 感想
diff --git a/other_repo_list.md b/other_repo_list.md
index a2d0588..e8036eb 100644
--- a/other_repo_list.md
+++ b/other_repo_list.md
@@ -4,5 +4,6 @@ title: 其他Git仓库镜像列表
---
# 其他Git仓库镜像列表
+目前已有的社区/个人类型实例托管Git仓库共有{{ site.data.other_repo_list | size }}个:
{% for item in site.data.other_repo_list %}- <{{ item.repo_url }}>
{% endfor %}
\ No newline at end of file
From ebe45018f5b43d94412dede405be2e276b971958 Mon Sep 17 00:00:00 2001
From: mayx
Date: Wed, 17 Sep 2025 12:55:54 +0000
Subject: [PATCH 05/29] Update 4 files
- /_data/other_repo_list.csv
- /_data/proxylist.yml
- /_posts/2024-04-06-old-pc.md
- /_posts/2025-09-01-quine.md
---
_data/other_repo_list.csv | 1 +
_data/proxylist.yml | 1 +
_posts/2024-04-06-old-pc.md | 2 +-
_posts/2025-09-01-quine.md | 11 +++++++----
4 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index b9c50d2..237200e 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -10,6 +10,7 @@ https://git.pixie.town/mayx/mayx
https://cgit.tilde.town/~mayx/blog
https://gitlab.haskell.org/mayx/mayx
https://git.gammaspectra.live/Mayx/blog
+https://pagure.io/fork/mabbs/Blog
https://repo2.serv00.com/git/pub/Mayx/mayx/
https://git.tea-assets.com/mayx/blog
https://repo.komhumana.org/mayx/blog
diff --git a/_data/proxylist.yml b/_data/proxylist.yml
index 41ce435..1abc538 100644
--- a/_data/proxylist.yml
+++ b/_data/proxylist.yml
@@ -41,6 +41,7 @@ repos:
- https://git.disroot.org/mayx/mayx
- https://bitbucket.org/unmayx/mayx
- https://sourcecraft.dev/mayx/mayx
+- https://gitflic.ru/project/mayx/blog
- https://gitee.com/mabbs/mabbs
- https://cnb.cool/unmayx/mayx
- https://atomgit.com/mayx/blog
diff --git a/_posts/2024-04-06-old-pc.md b/_posts/2024-04-06-old-pc.md
index 9b9d74a..99cef6f 100644
--- a/_posts/2024-04-06-old-pc.md
+++ b/_posts/2024-04-06-old-pc.md
@@ -115,7 +115,7 @@ ossyNMMMNyMMhsssssssssssssshmmmhssssssso Memory: 8773MiB / 11928MiB
不过我按照官方文档上安装,对于CentOS Stream 8来说有好多包不知道为什么似乎都没有,比如libavformat-free-devel之类的,我只好从网上找其他RedHat系列类似的包,或者找替代品FFmpeg,另外Darling需要Linux 5.0或者更高的内核,CentOS的内核版本太低了,所以我升到了主线版本的Linux,也就是6.8的版本……最终花了一天的时间终于编译好了,然而悲剧的是运行的时候报了非法指令“Illegal instruction (core dumped)”的错误。一般来说这个错误是新机器上编译的程序在旧机器运行才会报的错,可我是在同一台机器上编译的为什么会报这种错误呢?可能是因为代码里包含汇编语言的代码吧。我发了个[Issue](https://github.com/darlinghq/darling/issues/1497)问了一下作者,不过看起来他也不知道是什么问题……
对于这种问题我感觉也没什么好办法……可能这台机器真的就没办法了?在第二台速龙641的电脑上试了一下也不行……不过后来我在第三台装有奔腾G3240的电脑上试着编译安装了一下,结果可以运行。看来确实是奔腾E5300的问题。不过它俩到底差在哪里呢?看介绍会发现奔腾G3240里包含了Intel® SSE4.1和Intel® SSE4.2的指令集扩展。那么对于没有这个指令集扩展的CPU就没办法了吗?Intel官方给了一个解决方法是[Intel® SDE](https://www.intel.com/content/www/us/en/developer/articles/tool/software-development-emulator.html),可以在旧机器上模拟运行使用了最新指令集的程序,甚至包括AVX512都可以模拟的出来,但是我用这个东西运行Darling的时候还是报错了,可能Darling需要用到内核的一些特性,但是SDE不能模拟……这都没办法是不是就彻底没办法了呢?
在偶然的一次浏览中,我发现了一个神奇的东西,内核扩展[OPEMU](https://github.com/mirh/opemu-linux),它可以让不支持一些指令集扩展的CPU通过模拟的方式支持,其实功能和SDE很像,只是它是在内核中运行的,我试着在第一台机器上编译安装了一下(顺便一说,如果是旧的5.x或者更早的Linux可以直接用这个仓库,而更新的Linux比如6.x的需要用[PR](https://github.com/Spacefish/opemu-linux)中的这个仓库),结果Darling真的可以运行了!真是令人难以置信。
- 安装成功之后我在网上找了个C语言的程序:[endoh1](http://www.ioccc.org/2012/endoh1/hint.html),这个程序可以用文本模拟流体。我在我的MacBook上编译了试了一下,运行没有问题,当然直接编译的程序是ARM64的程序,肯定不能在Darling里面运行,于是我切换到x86_64模式下又编译了一次,并且用`lipo`命令把两个程序合并到了一起,然后把程序上传到第一台机器中使用Darling运行,竟然可以正常运行,看来那个内核扩展还不错啊,Darling居然没有出问题。
+ 安装成功之后我在网上找了个C语言的程序:[endoh1](https://github.com/ioccc-src/winner/tree/master/2012/endoh1),这个程序可以用文本模拟流体。我在我的MacBook上编译了试了一下,运行没有问题,当然直接编译的程序是ARM64的程序,肯定不能在Darling里面运行,于是我切换到x86_64模式下又编译了一次,并且用`lipo`命令把两个程序合并到了一起,然后把程序上传到第一台机器中使用Darling运行,竟然可以正常运行,看来那个内核扩展还不错啊,Darling居然没有出问题。
不过测试了一下,可能还是有些地方有BUG,比如用Git的时候会报错,可能是和README中所说的CRC32表现有问题吧,不过Darling好像可以直接运行Linux中的命令,那我在用Git的时候调用Linux下的Git是不是也可以呢?试了一下不太行,因为执行Linux程序的时候不能用Darling中的目录结构,不过我想装omz只需要/Users目录就够了,我直接创建一个软链接把Darling的/Users目录映射到Linux的根目录就可以了吧,试了一下还行,可以正常运行,虽然Homebrew不能安装有点可惜……不过Neofetch可以安装😆,效果如下:
```
'c. root@localhost.localdomain
diff --git a/_posts/2025-09-01-quine.md b/_posts/2025-09-01-quine.md
index 6201f64..b9f92bd 100644
--- a/_posts/2025-09-01-quine.md
+++ b/_posts/2025-09-01-quine.md
@@ -15,7 +15,7 @@ tags: [压缩包, Quine, 自产生程序, Quine Relay]
关于原理方面,先看[Will Greenberg](https://github.com/wgreenberg)制作的一个[示例](https://wgreenberg.github.io/quine.zip/),在这里面有一个谜题,使用“print M”(原样输出接下来的M行输入内容)和“repeat M N”(从倒数第N行的输出内容开始,重复M行)这两个指令让最终执行的结果和输入的指令完全相同。这正是对DEFLATE压缩算法所使用的LZ77编码的一种简化模拟,也就是说只要解决了这个问题,就可以让压缩包在解压时原样输出自己了。
这个问题看起来还挺复杂,不过在仓库的[Issues](https://github.com/wgreenberg/quine.zip/issues/1)就有人给出了几种解法(当然,这个题目解法不唯一),所以在理论上应该是可行的,那么接下来就需要研究压缩文件的格式来实现它了。
## 实现ZIP Quine的探索
- 在[Russ Cox](https://swtch.com/~rsc/)写的[Zip Files All The Way Down](https://research.swtch.com/zip)文章中,同样说明了这个原理,而且给出了一个方案,让上述这两个命令除了能够对命令本身的重复以外,还可以添加一些额外数据,这样才能做到构建一个压缩包文件。按照文章的描述,如果用之前谜题的规则来说,我们设头和尾的内容都是“print 0”,那么Cox给出的方案如下:
+ 在[Russ Cox](https://swtch.com/~rsc/)写的《[Zip Files All The Way Down](https://research.swtch.com/zip)》文章中,同样说明了这个原理,而且给出了一个方案,让上述这两个命令除了能够对命令本身的重复以外,还可以添加一些额外数据,这样才能做到构建一个压缩包文件。按照文章的描述,如果用之前谜题的规则来说,我们设头和尾的内容都是“print 0”,那么Cox给出的方案如下:
```
print 0
print 2
@@ -56,10 +56,10 @@ print 0
另外这个方案是针对使用基于LZ77与哈夫曼编码的DEFLATE压缩算法,所以格式不重要。因此无论是ZIP,还是GZIP,以及TGZ(GZIP压缩后的TAR),其实都是一样的,因为他们都使用的是DEFLATE压缩算法。顺便一提,[Matthew Barber](https://github.com/honno)写了一篇很棒的[文章](https://github.com/honno/gzip-quine),通过动画演示并详细讲解了如何实现一个简单的GZIP版ZIP Quine,很值得一看。
还有一点,普通的TAR文件能否实现类似功能呢?从原理来说估计不行,因为TAR文件本身并没有压缩,也不包含指令,就单纯是一堆文件和元数据的拼接,所以就做不到自包含了。
这么来看既然TGZ可以,那是不是在我博客网站的压缩包里放一份和自己一模一样的压缩包是可行的?很遗憾按照这个方法来看是做不到的,由于压缩格式和编码的限制,这个方案在实际实现时发现操作码需要是5个字节,最后发现最多只有类似`repeat 64 64`这样的指令能够满足要求,因此头尾区最多只能放64-5=59个字节的数据,也就刚刚好能容纳压缩格式需要的内容,几乎没法塞更多东西进去……显然,这些限制导致这种方式对我来说意义就不大了,何况作者的代码我也看不懂……而且还要考虑压缩包还存在校验用的CRC32,需要找满足整个压缩包的CRC32正好在压缩包中的“不动点”。虽然从CRC32的原理来说应该有办法做到通过数学方式解决,但这篇文章的作者因为解决了自包含的问题之后累了,因此放弃继续研究,选择直接暴力破解,毕竟CRC32只有32位,估计思考的时间都要比爆破的时间长吧😂。但如果是这样,即使有方案能存下我博客的数据,也不能在每次网站构建的时候都制作一次了……
- 虽然Russ Cox写的文章看起来做不到包含更多内容了,但Erling Ellingsen制作的droste.zip却包含了一张图片,说明并不是没办法加入更多数据,只是没有找到正确的方法。在2024年[Ruben Van Mello](https://github.com/ruvmello)写了一篇论文[A Generator for Recursive Zip Files](https://www.mdpi.com/2076-3417/14/21/9797),在这篇论文里他不仅解决了包含的额外数据过少的问题,还编写了一个通用工具,能让普通人也能生成这样的压缩包,而且他还创新性的做了一种像衔尾蛇一样的双层嵌套循环压缩包,非常的有意思,所以接下来我打算试试他的方案。
+ 虽然Russ Cox写的文章看起来做不到包含更多内容了,但Erling Ellingsen制作的droste.zip却包含了一张图片,说明并不是没办法加入更多数据,只是没有找到正确的方法。在2024年[Ruben Van Mello](https://github.com/ruvmello)写了一篇论文《[A Generator for Recursive Zip Files](https://www.mdpi.com/2076-3417/14/21/9797)》,在这篇论文里他不仅解决了包含的额外数据过少的问题,还编写了一个通用工具,能让普通人也能生成这样的压缩包,而且他还创新性的做了一种像衔尾蛇一样的双层嵌套循环压缩包,非常的有意思,所以接下来我打算试试他的方案。
在这篇论文中,里面简述了之前Russ Cox写的内容,也提到了59字节的限制,于是作者对原有的结构进行了一些改动,让操作码可以超出5字节的限制,具体可以看论文的表6,从而解决了只能包含59字节额外数据的限制。但由于DEFLATE压缩格式本身的约束(16位存储块长度以及32KiB回溯窗口),即使能够添加文件,最多也只能额外容纳32763字节的数据(其中包括压缩包所需的文件头)……显然这点空间完全存不下我的博客😭,看来我只能打消这个想法了。但既然都研究了半天,也不一定要存我的博客嘛,可以看看还有没有别的东西可以存?在这之前先继续阅读论文,看完再说吧。
## 制作一个嵌套循环的ZIP Quine
- 在实现了常规的ZIP Quine之后,接下来就是作者的创新点了(如果光是解决存储限制这点创新点估计还不够发论文吧😂)。作者在接下来制作了一种循环压缩文件,在压缩包内包含文件A和压缩包A,而压缩包A中则包含文件B和最初的压缩包,从而形成一个循环递归的结构。看论文的描述所说如果把外层的压缩包和内层的压缩包的开头和结尾按照一定的规则交替混合,就可以看作是一个整体,然后按照之前做ZIP Quine那样处理就可以……具体实现的细节得看论文的表10。只不过既然是把两个压缩包看作一个整体的话,按照上面的限制,自然每个压缩包能容纳的数据量就更小了,每个最多只能容纳16376字节的数据……
+ 在实现了常规的ZIP Quine之后,接下来就是作者的创新点了(如果光是解决存储限制这点创新点估计还不够发论文吧😂)。作者接下来制作了一种循环压缩文件,在压缩包内包含文件A和压缩包A,而压缩包A中则包含文件B和最初的压缩包,从而形成一个循环递归的结构。看论文的描述所说如果把外层的压缩包和内层的压缩包的开头和结尾按照一定的规则交替混合,就可以看作是一个整体,然后按照之前做ZIP Quine那样处理就可以……具体实现的细节得看论文的表10。只不过既然是把两个压缩包看作一个整体的话,按照上面的限制,自然每个压缩包能容纳的数据量就更小了,每个最多只能容纳16376字节的数据……
另外既然这里面有两个压缩包,那么每个压缩包还有自己的CRC32校验和,理论上如果要爆破的话计算难度得是原来的平方,这样难度就太大了。不过作者发现如果把数据的CRC32值取反(即与“0xFFFFFFFF”取异或)然后和原始数据拼到一起,整个数据的CRC32校验和就会被重置为一个固定的值“0xFFFFFFFF”,看起来挺有意思,正常的哈希算法可没有这种特性。因此原本计算难度很大的爆破计算现在就可以和之前一样了……话说为什么不让两层的CRC32都这样计算(包括之前单层的ZIP Quine)?这样就不需要爆破了……貌似是因为在普通的ZIP Quine中满足条件的CRC32需要出现两次,所以不能用这个方案吧?
现在所有的理论都足够了,我需要挑一个文件来做这样嵌套循环的ZIP Quine,既然博客的大小不可以……要不然我就用我写过的第一个大项目——[Mabbs](https://github.com/Mabbs/Mabbs.Project)吧,这个项目的主程序是22KiB,看起来似乎超出了嵌套循环ZIP Quine的限制?其实没有,它的限制指的是压缩后的大小,我这个程序压缩之后是8KiB左右,所以完全没问题。
接下来就该使用论文中提到的生成工具:[zip-quine-generator](https://github.com/ruvmello/zip-quine-generator),这是一个Kotlin编写的程序,从发布中可以下载预构建的程序,接下来只要按照README中的描述使用“`--loop`”参数就可以用这个程序创建嵌套循环的ZIP Quine了。不过它原本的代码不能修改里面生成的压缩包的名字,另外[压缩后的文件属性是隐藏文件](https://github.com/ruvmello/zip-quine-generator/blob/3b8cf977e7a93bb956ad966d5e3b4d503f410529/src/main/kotlin/zip/ZIPArchiver.kt#L845),还有[生成的压缩包中文件的创建时间总是当前时间](https://github.com/ruvmello/zip-quine-generator/blob/3b8cf977e7a93bb956ad966d5e3b4d503f410529/src/main/kotlin/zip/ZIPArchiver.kt#L29),以及[给文件内填充额外数据的代码里面填的是作者的声明](https://github.com/ruvmello/zip-quine-generator/blob/3b8cf977e7a93bb956ad966d5e3b4d503f410529/src/main/kotlin/zip/ZIPArchiver.kt#L30),表示文件是由他论文的所写的生成器生成的……这些情况让我感觉有点不爽,还是希望这些部分能自定义一下,所以我就小改了一下他的代码。顺便一说,Kotlin编译起来还挺简单,直接一句`kotlinc src/main/kotlin -include-runtime -d output.jar`就可以了,也不需要折腾Maven之类乱七八糟的东西。最终我修改并编译完程序之后就把文件丢到服务器上开始给我爆破CRC32了,花了10个小时就算出来了,倒是比想象中快😂。
@@ -77,7 +77,7 @@ c = 'c = %r; print(c %% c)'; print(c % c)
```
D'<;_98=6Z43Wxx/.R?Pa
```
- 代码就像加了密似的,顺便一说这个执行结果是“Mayx”,关于Malbolge的具体细节可以看它的[规范](http://www.lscheffer.com/malbolge_spec.html),另外虽然这个语言写起来很复杂,但还是有人能用它编出程序的,甚至还有人用[Malbolge Unshackled](https://esolangs.org/wiki/Malbolge_Unshackled)(Malbolge不限内存的变种)写过[Lisp解释器](https://github.com/iczelia/malbolge-lisp),实在是恐怖如斯😨。
+ 代码就像加了密似的,顺便一说这个执行的输出结果是“Mayx”,关于Malbolge的具体细节可以看它的[规范](http://www.lscheffer.com/malbolge_spec.html),另外虽然这个语言写起来很复杂,但还是有人能用它编出程序的,甚至还有人用[Malbolge Unshackled](https://esolangs.org/wiki/Malbolge_Unshackled)(Malbolge不限内存的变种)写过[Lisp解释器](https://github.com/iczelia/malbolge-lisp),实在是恐怖如斯😨。
## 只能Quine的语言
其实想要做出Quine,还有一种更加无聊的方案,那就是设计一种只能Quine的语言🤣。根据Quine的定义,代码输出的结果就是它本身……所以我们可以把任何内容都看作代码,然后这种语言的行为就是输出所有代码……听起来是不是有点无聊?但是想想看如果把Linux中的cat命令当作解释器,就可以实现这种语言了,比如:
```
@@ -88,6 +88,9 @@ Hello, world!
## Quine Relay的探索
还有一个更加复杂的Quine变种是“Quine接力”(Quine Relay),即一个程序输出另一个程序的源代码,另一个程序又输出下一个程序的源代码,最后回到原始程序,就和之前所说的嵌套循环ZIP Quine有点类似。最著名的例子是[Yusuke Endoh](https://github.com/mame)(这位还是[IOCCC](https://www.ioccc.org/)的冠军之一)创建的[quine-relay](https://github.com/mame/quine-relay)项目,它包含了128种编程语言的循环。
这种程序写起来会更复杂一些,不过原理都差不多,通常除了当前运行的部分是可执行代码外,其他的代码都需要以额外包含的数据形式(如字符串)存储在变量中。如果想自己做个类似简单的Quine Relay,除了去看[维基百科](https://en.wikipedia.org/wiki/Quine_(computing)#Ouroboros_programs)之外,前段时间我还看到过一个不错的[文章](https://blog.mistivia.com/posts/2024-09-21-quine/),里面就讲了如何用“笨办法”编写Quine和Quine Relay,通过把变量中的内容编码为16进制来避免不同语言可能存在的特殊字符转译问题,思路不错,对于理解如何编写这类程序的问题很有帮助。当然这只是个**简单**的方案,仅适用于一些常规的编程语言,像上面那个[quine-relay](https://github.com/mame/quine-relay)项目中甚至还包含Brainfuck之类的esolang,这种估计得要想办法让相对高级一些的语言通过“生成”的方式得到输出下一种代码的代码,而不是简单的赋值了,所以只靠这点知识想去完全理解大佬的作品还是想多了😆。
+## Polyglot Quine的探索
+ 除了Quine Relay之外还有一种很复杂的Quine,叫做[Polyglot](https://en.wikipedia.org/wiki/Polyglot_(computing)) Quine,与Quine Relay需要在程序执行后才能切换到其他语言接力不同,Polyglot Quine的源代码本身即可同时属于多种语言,而且用这些语言的解释器每个执行后的输出全都一样,都与源代码完全一致。由于不同的编程语言的格式既有些相同之处,也有很多不同之处,所以让同一份代码表示不同语言就会很容易产生歧义,这时候就只能想办法通过一些特别的方式(比如将可能会对当前语言产生干扰的代码看作是注释的方式)来规避语言之间的差异。
+ Quine本身就已经很困难了,再加上这些限制就变得更加复杂了,所以制作Polyglot Quine的编程语言基本上都得精挑细选,而且通常只有两种语言,比如[这段代码](https://github.com/TrAyZeN/polyglot-quine/blob/master/main.c)就是C和Python的Polyglot Quine,它巧妙利用了C预处理器指令在Python中可视为注释的特性,使两种语言互不干扰,非常有趣。更令人惊叹的则是[PyZipQuine](https://github.com/d0sboots/PyZipQuine)项目,它既可以被当作压缩包,也可以作为Python2.7代码,而且二者都是Quine,实在令人赞叹。
# 感想
虽然这次探索最终没能完成让包含博客所有内容的压缩包自包含,但是在探索的过程中我还是收获了不少,尤其是Ruben Van Mello制作的ZIP Quine生成工具,实在是太棒了。很久以前我见到droste.zip这个压缩包的时候,就想整一个属于自己的ZIP Quine,现在我不仅用那个生成工具做了一个,还是对我来说很有意义的第一个项目——Mabbs,而且更关键的还是生成的是比普通的ZIP Quine更高级的嵌套循环ZIP Quine,也算是圆了小时候的心愿了。
From d7c957b68ac1e015a39d8b2430922cf44cef98d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=BA=94=E6=9C=88=E4=B8=83=E6=97=A5=E5=8D=83=E7=B7=92?=
<46957197+tuyuritio@users.noreply.github.com>
Date: Sat, 20 Sep 2025 23:18:25 +0900
Subject: [PATCH 06/29] =?UTF-8?q?Fix=20feed=20URL=20for=20=E8=A8=98?=
=?UTF-8?q?=E7=B7=92=E6=BC=82=E6=B5=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
_data/links.csv | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/_data/links.csv b/_data/links.csv
index 1c2db21..52178d6 100644
--- a/_data/links.csv
+++ b/_data/links.csv
@@ -12,7 +12,7 @@ Sinofine,https://sinofine.me/,https://sinofine.me/atom.xml,
花生莲子粥,https://blog.hslzz.cn/,https://blog.hslzz.cn/atom.xml,与世无争,不染于泥
Vullfin的博客,https://blog.vull.top/,https://blog.vull.top/atom.xml,Vullfin's Home Page
阿涛の小破站,https://emohe.cn/,https://emohe.cn/rss.xml,Docker技术分享
-記緒漂流,https://ttio.cc/,https://ttio.cc/feed/,于记忆之川,泛思绪之舟。
+記緒漂流,https://ttio.cc/,https://ttio.cc/feed.xml,于记忆之川,泛思绪之舟。
陈陈菌博客,https://blog.glumi.cn/,https://blog.glumi.cn/rss.xml,计算机业余爱好者。
彬红茶日记,https://note.redcha.cn/,https://note.redcha.cn/rss.xml,我的个人日记!
Lanke's blog,https://www.blueke.top/,https://www.blueke.top/rss.xml,请为一切不真实之物骄傲,因为我们高于这个世界!
From 2803a0773aca83db6afd2c0b4fbb1b8f73e4b3be Mon Sep 17 00:00:00 2001
From: mayx
Date: Mon, 22 Sep 2025 15:42:20 +0000
Subject: [PATCH 07/29] Update 3 files
- /Live2dHistoire/live2d/js/message.js
- /_data/links.csv
- /_posts/2025-09-01-quine.md
---
Live2dHistoire/live2d/js/message.js | 4 +++-
_data/links.csv | 2 +-
_posts/2025-09-01-quine.md | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/Live2dHistoire/live2d/js/message.js b/Live2dHistoire/live2d/js/message.js
index 6442299..ebf821f 100644
--- a/Live2dHistoire/live2d/js/message.js
+++ b/Live2dHistoire/live2d/js/message.js
@@ -201,7 +201,9 @@ if (!norunFlag) {
eventFlag = true;
}
var data = JSON.parse(event.data);
- outputContainer.textContent += data.response;
+ if (data.response) {
+ outputContainer.textContent += data.response;
+ }
}
}
} else {
diff --git a/_data/links.csv b/_data/links.csv
index 52178d6..c7e8e21 100644
--- a/_data/links.csv
+++ b/_data/links.csv
@@ -15,7 +15,7 @@ Vullfin的博客,https://blog.vull.top/,https://blog.vull.top/atom.xml,Vullfin's
記緒漂流,https://ttio.cc/,https://ttio.cc/feed.xml,于记忆之川,泛思绪之舟。
陈陈菌博客,https://blog.glumi.cn/,https://blog.glumi.cn/rss.xml,计算机业余爱好者。
彬红茶日记,https://note.redcha.cn/,https://note.redcha.cn/rss.xml,我的个人日记!
-Lanke's blog,https://www.blueke.top/,https://www.blueke.top/rss.xml,请为一切不真实之物骄傲,因为我们高于这个世界!
+Lanke's blog,https://blog.blueke.top/,https://blog.blueke.top/rss.xml,请为一切不真实之物骄傲,因为我们高于这个世界!
时光流·言,https://www.hansjack.com/,https://www.hansjack.com/feed/,个人博客,持续分享网站部署实战经验、精选书评解读和生活观察手记。 这里提供可复用的技术教程、深度阅读指南和真实生活洞察,与技术爱好者一起进步......
Pinpe 的云端,https://pinpe.top/,https://pinpe.top/rss.xml,一个属于自己的云朵。
Chise Hachiroku,https://chise.hachiroku.com/,https://chise.hachiroku.com/zh/feed/,向明日的辉迹,干杯!
diff --git a/_posts/2025-09-01-quine.md b/_posts/2025-09-01-quine.md
index b9f92bd..b2e584e 100644
--- a/_posts/2025-09-01-quine.md
+++ b/_posts/2025-09-01-quine.md
@@ -88,9 +88,10 @@ Hello, world!
## Quine Relay的探索
还有一个更加复杂的Quine变种是“Quine接力”(Quine Relay),即一个程序输出另一个程序的源代码,另一个程序又输出下一个程序的源代码,最后回到原始程序,就和之前所说的嵌套循环ZIP Quine有点类似。最著名的例子是[Yusuke Endoh](https://github.com/mame)(这位还是[IOCCC](https://www.ioccc.org/)的冠军之一)创建的[quine-relay](https://github.com/mame/quine-relay)项目,它包含了128种编程语言的循环。
这种程序写起来会更复杂一些,不过原理都差不多,通常除了当前运行的部分是可执行代码外,其他的代码都需要以额外包含的数据形式(如字符串)存储在变量中。如果想自己做个类似简单的Quine Relay,除了去看[维基百科](https://en.wikipedia.org/wiki/Quine_(computing)#Ouroboros_programs)之外,前段时间我还看到过一个不错的[文章](https://blog.mistivia.com/posts/2024-09-21-quine/),里面就讲了如何用“笨办法”编写Quine和Quine Relay,通过把变量中的内容编码为16进制来避免不同语言可能存在的特殊字符转译问题,思路不错,对于理解如何编写这类程序的问题很有帮助。当然这只是个**简单**的方案,仅适用于一些常规的编程语言,像上面那个[quine-relay](https://github.com/mame/quine-relay)项目中甚至还包含Brainfuck之类的esolang,这种估计得要想办法让相对高级一些的语言通过“生成”的方式得到输出下一种代码的代码,而不是简单的赋值了,所以只靠这点知识想去完全理解大佬的作品还是想多了😆。
+ 顺便一说,quine-relay并不是那位大佬唯一的Quine作品,他还做过[有冗余的Quine](https://github.com/mame/radiation-hardened-quine)以及[动态的Quine](https://mamememo.blogspot.com/2010/09/qlobe.html),真的是相当的厉害……
## Polyglot Quine的探索
除了Quine Relay之外还有一种很复杂的Quine,叫做[Polyglot](https://en.wikipedia.org/wiki/Polyglot_(computing)) Quine,与Quine Relay需要在程序执行后才能切换到其他语言接力不同,Polyglot Quine的源代码本身即可同时属于多种语言,而且用这些语言的解释器每个执行后的输出全都一样,都与源代码完全一致。由于不同的编程语言的格式既有些相同之处,也有很多不同之处,所以让同一份代码表示不同语言就会很容易产生歧义,这时候就只能想办法通过一些特别的方式(比如将可能会对当前语言产生干扰的代码看作是注释的方式)来规避语言之间的差异。
- Quine本身就已经很困难了,再加上这些限制就变得更加复杂了,所以制作Polyglot Quine的编程语言基本上都得精挑细选,而且通常只有两种语言,比如[这段代码](https://github.com/TrAyZeN/polyglot-quine/blob/master/main.c)就是C和Python的Polyglot Quine,它巧妙利用了C预处理器指令在Python中可视为注释的特性,使两种语言互不干扰,非常有趣。更令人惊叹的则是[PyZipQuine](https://github.com/d0sboots/PyZipQuine)项目,它既可以被当作压缩包,也可以作为Python2.7代码,而且二者都是Quine,实在令人赞叹。
+ Quine本身就已经很困难了,再加上这些限制就变得更加复杂了,所以制作Polyglot Quine的编程语言基本上都得精挑细选,而且通常只有两种语言,比如[这段代码](https://github.com/TrAyZeN/polyglot-quine/blob/master/main.c)就是C和Python的Polyglot Quine,它巧妙利用了C预处理器指令在Python中可视为注释的特性,使两种语言互不干扰,非常有趣。当然并不是说只能是两种语言,像[这个](https://github.com/2KAbhishek/polyquine)项目甚至使用了五种语言(C、Perl、PHP、Python、Ruby),可以说是相当厉害了。除此之外更令人惊叹的则是[PyZipQuine](https://github.com/d0sboots/PyZipQuine)项目,在这其中LZ77编码也可以作为一种语言,所以既可以被当作压缩包,也可以作为Python2.7代码,而且二者都是Quine,实在是令人赞叹。
# 感想
虽然这次探索最终没能完成让包含博客所有内容的压缩包自包含,但是在探索的过程中我还是收获了不少,尤其是Ruben Van Mello制作的ZIP Quine生成工具,实在是太棒了。很久以前我见到droste.zip这个压缩包的时候,就想整一个属于自己的ZIP Quine,现在我不仅用那个生成工具做了一个,还是对我来说很有意义的第一个项目——Mabbs,而且更关键的还是生成的是比普通的ZIP Quine更高级的嵌套循环ZIP Quine,也算是圆了小时候的心愿了。
From ae6a6d3029341ed0ffa59bec4c9d5e0460a22972 Mon Sep 17 00:00:00 2001
From: mayx
Date: Fri, 26 Sep 2025 08:07:57 +0000
Subject: [PATCH 08/29] Update 2 files
- /_data/other_repo_list.csv
- /_posts/2025-09-01-quine.md
---
_data/other_repo_list.csv | 211 +++++++++++++++++++++++++++++++++----
_posts/2025-09-01-quine.md | 3 +-
2 files changed, 192 insertions(+), 22 deletions(-)
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 237200e..72d97d8 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -25,7 +25,6 @@ https://git.goolink.org/mayx/blog
https://git.octava.cool/mayx/blog
https://git.haowuan.top/mayx/blog
https://git.esc-plus.com/mayx/blog
-https://gogs.tankernn.eu/mayx/blog
http://101.132.73.14:3000/mayx/blog
http://117.72.78.89:3000/mayx/blog
https://gitea.stormyhome.net/mayx/blog
@@ -57,10 +56,8 @@ https://git.emanuelemiani.it/mayx/blog
https://git.dehemi.com/mayx/blog
https://git.traband.ovh/mayx/blog
https://git.ngcr.de/mayx/blog
-https://www.gittttttttt.top/mayx/blog
http://101.66.229.132:61088/mayx/blog
http://118.26.39.39:3000/mayx/blog
-https://gitea.severmed.com/mayx/blog
http://150.109.95.245/mayx/blog
https://git.pcgf.io/mayx/blog
https://nucleation.fusion.bref.cool/mayx/blog
@@ -79,13 +76,11 @@ https://codes.tools.asitavsen.com/mayx/blog
https://gitea.kursatessiz.com/mayx/blog
https://git.siin.space/mayx/blog
http://47.117.26.49:3000/mayx/blog
-https://giteaismyownrepository.nosv.org/mayx/blog
http://122.116.190.233:3001/mayx/blog
http://101.200.127.15:3000/mayx/blog
http://50.19.111.193:3000/mayx/blog
https://git-test.zcy.dev/mayx/blog
https://git.nothamor.com/mayx/blog
-https://git.appkraft.ru/mayx/blog
https://git.terrainknowledge.com/mayx/blog
https://gitea.pickalurv.com/mayx/blog
http://183.239.197.12:10803/mayx/blog
@@ -103,7 +98,6 @@ http://162.19.95.94:3000/mayx/blog
https://git.rankenste.in/mayx/blog
https://git.ghostpacket.org/mayx/blog
https://git.catswords.net/mayx/blog
-https://gitea.dilap.ru/mayx/blog
http://168.126.28.36:3000/mayx/blog
https://git.cloud.leonclassroom.com/mayx/blog
https://git.noxxxx.com/mayx/blog
@@ -131,7 +125,6 @@ http://8.134.32.42:3000/mayx/blog
https://git.rootfinlay.co.uk/mayx/blog
https://repo.beithing.com/mayx/blog
https://git.tinker.infamous.games/mayx/blog
-http://45.197.2.58:3029/mayx/blog
https://git.yi-guanjia.com/mayx/blog
http://106.14.174.241:3000/mayx/blog
https://git.datdanguy.com/mayx/blog
@@ -175,8 +168,6 @@ http://8.134.61.107:3000/mayx/blog
http://47.107.88.161:3000/mayx/blog
https://git.ktk-pc.de/mayx/blog
http://git.open-dev.ru/mayx/blog
-https://git.kaizer.cloud/mayx/blog
-http://git.gpsix.com:3000/mayx/blog
http://101.132.113.255:3000/mayx/blog
https://gitea.zybc.online/mayx/blog
https://git.votava.org/mayx/blog
@@ -200,7 +191,6 @@ http://188.245.99.186:3000/mayx/blog
https://sources.krechet.tech/mayx/blog
http://119.28.73.80:5000/mayx/blog
http://194.60.231.252:3000/mayx/blog
-https://git.brele.net/mayx/blog
https://git.sleepingforest.co.uk/mayx/blog
https://git.chinamario.ru/mayx/blog
https://gitea.wangyige.cn/mayx/blog
@@ -230,7 +220,6 @@ http://8.138.91.73:3000/mayx/blog
https://git.wisder.net/mayx/blog
http://8.138.187.97:3000/mayx/blog
https://gitea.potatox.net/mayx/blog
-https://git.martin.md/mayx/blog
https://git2.ujin.tech/mayx/blog
http://git.joypetsisland.com/mayx/blog
http://111.119.244.185:3000/mayx/blog
@@ -239,9 +228,7 @@ http://115.187.22.75:3000/mayx/blog
http://163.223.13.95:3000/mayx/blog
https://git.chrisbeckstrom.com/mayx/blog
https://dev.zaphar.net/mayx/blog
-http://git.tinycio.com/mayx/blog
https://git.moonwoou.com/mayx/blog
-https://git.stupidpz.com/mayx/blog
https://git.tomlab.dev/mayx/blog
http://182.92.109.202:8070/mayx/blog
https://helx-artifacts-git.apps.renci.org/mayx/blog
@@ -270,8 +257,6 @@ https://git.influxfin.com/mayx/blog
http://47.100.177.77:3000/mayx/blog
https://gitea.beonx.com/mayx/blog
https://git.programar.io/mayx/blog
-https://git.doitcan.com/mayx/blog
-http://202.181.26.150:3000/mayx/blog
http://219.157.255.213:25311/mayx/blog
https://git.melvincarvalho.com/mayx/blog
https://gitea.aerwen.net/mayx/blog
@@ -288,7 +273,6 @@ https://git.powerdata.dk/mayx/blog
https://git.ods-company.ru/mayx/blog
http://109.228.48.121:8000/mayx/blog
https://git.libx.ir/mayx/blog
-https://code.autumnsky.jp/mayx/blog
https://git.u2.nu/mayx/blog
https://bk-house.synology.me:3081/mayx/blog
http://123.57.95.66:9000/mayx/blog
@@ -302,7 +286,6 @@ https://git.hubhoo.com/mayx/blog
https://git.ultra.pub/mayx/blog
https://git.cloud13.de/mayx/blog
https://gitea.visoftware.com.co/mayx/blog
-https://git.erg.school/mayx/blog
http://20.249.208.89:3000/mayx/blog
http://121.199.172.238:3000/mayx/blog
http://27.124.12.222:3000/mayx/blog
@@ -351,7 +334,6 @@ http://www.pcaidiy.cn:3000/mayx/blog
https://code.tiantongsl.com/mayx/blog
http://213.35.118.215:60001/mayx/blog
https://git.jasonpittman.com/mayx/blog
-https://git.elmukoding.com/mayx/blog
https://gitea.shirom.me/mayx/blog
https://git.pasarex.com/mayx/blog
http://1.95.221.174:3000/mayx/blog
@@ -369,10 +351,8 @@ http://167.172.7.198:8081/mayx/blog
https://gitea.meetgu.ru/mayx/blog
http://8.134.253.108:3000/mayx/blog
https://git.patrich.se/mayx/blog
-https://gitea.orlife.ru/mayx/blog
http://47.251.18.130:3000/mayx/blog
http://116.236.50.103:8789/mayx/blog
-https://git.dracodev.net/mayx/blog
https://gitnto.innovationcampus.ru/mayx/blog
https://git.paulll.cc/mayx/blog
https://gitea.alaindee.net/mayx/blog
@@ -384,7 +364,6 @@ https://git.geobretagne.fr/mayx/blog
https://gitea.ultrasoft.cm/mayx/blog
http://94.224.160.69:7990/mayx/blog
http://8.134.144.137:3000/mayx/blog
-https://git.bodu.ro/mayx/blog
https://git.hxps.ru/mayx/blog
https://gitea.ekjeong.synology.me/mayx/blog
https://git.d4m13n.dev/mayx/blog
@@ -419,3 +398,193 @@ https://git.kimcblog.com/mayx/blog
http://www.mygamework.com:3000/mayx/blog
https://gogs.m14xa.ru/mayx/blog
https://git.minaev.su/mayx/blog
+https://git.0fs.ru/mayx/blog
+https://git.bremauer.cc/mayx/blog
+https://git.itbcode.com/mayx/blog
+http://119.3.29.177:3000/mayx/blog
+http://47.110.224.240:13000/mayx/blog
+https://Git.Getmind.cn/mayx/blog
+http://dev.icrosswalk.ru:46300/mayx/blog
+http://8.134.206.4:9001/mayx/blog
+https://git.huwhy.cn/mayx/blog
+http://194.67.86.160:3100/mayx/blog
+http://47.101.58.33:3000/mayx/blog
+https://git.johnen.biz/mayx/blog
+https://git.unitsoft.io/mayx/blog
+https://gitea.synapsetec.cn/mayx/blog
+http://124.222.211.253:3000/mayx/blog
+http://47.121.207.193:3000/mayx/blog
+http://git.pushecommerce.com/mayx/blog
+http://220.132.16.87:3000/mayx/blog
+https://git.tintinger.org/mayx/blog
+http://gitea.yunshanghub.com:8081/mayx/blog
+http://47.111.136.200:3000/mayx/blog
+https://repo.c-software.id/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
+https://g2.m8il.in/mayx/blog
+http://8.129.84.221:10800/mayx/blog
+http://122.51.51.35:3000/mayx/blog
+http://34.81.52.16/mayx/blog
+https://git.aopcloud.com/mayx/blog
+https://gitea.zerova.com/mayx/blog
+http://120.78.74.94:3000/mayx/blog
+https://git.genowisdom.cn/mayx/blog
+http://120.26.116.243:3000/mayx/blog
+http://120.26.46.180:3000/mayx/blog
+http://8.222.156.46:3000/mayx/blog
+http://123.57.16.111:3000/mayx/blog
+https://git.andy.lgbt/mayx/blog
+http://115.159.107.117:3000/mayx/blog
+http://47.99.98.98:9000/mayx/blog
+http://116.62.115.84:3000/mayx/blog
+https://Cagit.Cacode.net/mayx/blog
+https://gitea.rodaw.net/mayx/blog
+https://gitea.lightchen.info/mayx/blog
+http://45.55.138.82:3000/mayx/blog
+http://wingsing.net:3000/mayx/blog
+http://hgngit.ipdz.me/mayx/blog
+http://185.163.116.39:49153/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
+https://gitea.mpc-web.jp/mayx/blog
+https://git.roshanca.com/mayx/blog
+https://git.poggerer.xyz/mayx/blog
+https://git.wisptales.org/mayx/blog
+https://git.peaksscrm.com/mayx/blog
+http://git.chaojing-film.com:3000/mayx/blog
+http://8.142.81.167:1080/mayx/blog
+https://git.nusaerp.com/mayx/blog
+http://39.100.245.231:40030/mayx/blog
+http://35.207.205.18:3000/mayx/blog
+http://git.zjsciot.com:3000/mayx/blog
+https://gitea.ontoast.uk/mayx/blog
+http://112.124.40.88:5510/mayx/blog
+https://got.joshuakatz.me/mayx/blog
+https://git-web.phomecoming.com/mayx/blog
+http://121.36.37.70:15501/mayx/blog
+http://187.216.152.151:9999/mayx/blog
+https://coderepos.mticas.com/mayx/blog
+http://116.63.173.179:8001/mayx/blog
+https://git.iop.plus/mayx/blog
+http://47.114.82.162:3000/mayx/blog
+http://114.116.79.196/mayx/blog
+https://gitea.cybs.io/mayx/blog
+https://gitea.fcliu.net/mayx/blog
+http://git.yinas.cn/mayx/blog
+http://git.chilidoginteractive.com:3000/mayx/blog
+http://121.40.40.177:3000/mayx/blog
+http://118.31.223.224:3000/mayx/blog
+http://47.109.67.128:3000/mayx/blog
+https://git.enwatmon.de/mayx/blog
+http://voicebot.digitalakademie-bw.de:3000/mayx/blog
+https://gitea.services.gsd-srv.com/mayx/blog
+https://repo.divisilabs.com/mayx/blog
+http://178.254.35.219:3000/mayx/blog
+http://114.215.207.150:3000/mayx/blog
+http://2.59.132.109:3001/mayx/blog
+http://newslabx.csie.ntu.edu.tw:3000/mayx/blog
+http://81.71.148.57:8080/mayx/blog
+https://git.ides.club/mayx/blog
+https://git.lmskaran.com/mayx/blog
+http://sdgit.zfmgr.top/mayx/blog
+http://47.122.26.54:3000/mayx/blog
+http://154.86.0.30:3000/mayx/blog
+http://139.224.196.148:3000/mayx/blog
+http://47.95.167.249:3000/mayx/blog
+https://www.enginx.dev/mayx/blog
+http://gitea.dctpay.com/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://6068688.xyz:3000/mayx/blog
+http://8.137.105.8:5530/mayx/blog
+https://git.881221.xyz/mayx/blog
+http://47.93.219.55:20080/mayx/blog
+http://120.46.222.128:10021/mayx/blog
+http://39.106.86.127:3000/mayx/blog
+https://git.techspec.pro/mayx/blog
+http://47.92.23.211:3000/mayx/blog
+http://120.26.108.239:9188/mayx/blog
+http://felicitiz.fr/mayx/blog
+https://git.van-peeren.de/mayx/blog
+http://gitea.msadb.cn/mayx/blog
+https://git.changenhealth.cn/mayx/blog
+http://git.gkcorp.com.vn:16000/mayx/blog
+http://47.111.17.177:3000/mayx/blog
+http://git.hnits360.com/mayx/blog
+https://git.bag-ltd.ru/mayx/blog
+https://k0ki-dev.com/mayx/blog
+http://110.42.45.89:2052/mayx/blog
+https://git.furcom.org/mayx/blog
+http://47.109.95.73:3000/mayx/blog
+http://47.104.196.63:8418/mayx/blog
+https://git.mkubiak.com/mayx/blog
+http://38.22.90.74:3000/mayx/blog
+https://git.unknwn.ru/mayx/blog
+https://git.asdf.cafe/mayx/blog
+http://8.133.240.249:3456/mayx/blog
+https://git.mista.ru/mayx/blog
+http://34.102.70.200:3000/mayx/blog
+https://vcs.int.feuerwehr-ziemetshausen.de/mayx/blog
+http://175.178.219.170:3000/mayx/blog
+https://git.camus.cat/mayx/blog
+https://code.miraclezhb.com/mayx/blog
+http://blueroses.top:8888/mayx/blog
+https://git.cnml.de/mayx/blog
+https://giteas.fullmooncyberworks.com/mayx/blog
+http://47.112.118.149:10082/mayx/blog
+https://gitea.jobiglo.com/mayx/blog
+https://gitea.rpg-librarium.de/mayx/blog
+https://git.pheros.es/mayx/blog
+https://git.juici.ly/mayx/blog
+https://git.lkwplus.com/mayx/blog
+http://begild.top:8418/mayx/blog
+http://58.221.13.198:30010/mayx/blog
+https://gitea.kaz62.ru/mayx/blog
+https://git.tbaer.de/mayx/blog
+http://74.48.174.77:3000/mayx/blog
+https://git.atggroup.vn/mayx/blog
+https://git.d-popov.com/mayx/blog
+https://git.liliyamol.cn/mayx/blog
+https://git.srblerp.com/mayx/blog
+http://8.138.90.28:3000/mayx/blog
+https://git.hotolab.win/mayx/blog
+https://home.zhupei.me:3000/mayx/blog
+https://gitea.theaken.com/mayx/blog
+https://git.ja-schwarz.de/mayx/blog
+https://git.obicloud.net/mayx/blog
+https://shanewan.cn:30000/mayx/blog
+https://git.xemo-net.de/mayx/blog
+https://git.bigtravelchat.com/mayx/blog
+https://git.23cm.cn/mayx/blog
+https://gitea.oio.cat/mayx/blog
+https://git.rokiy.com/mayx/blog
+https://git.w2tj.net/mayx/blog
+http://59.110.17.86:3000/mayx/blog
+https://git.karma-riuk.com/mayx/blog
+https://git.saidomar.fr/mayx/blog
+https://gitea.pnkx.top:8/mayx/blog
+http://gitea.fcunb.cn:10083/mayx/blog
+http://mengshang.xyz:8418/mayx/blog
+http://47.107.152.87:3000/mayx/blog
+https://git.ligmatiktok.com/mayx/blog
+http://106.15.58.155:3333/mayx/blog
+https://git.sduonline.cn/mayx/blog
+https://git.7o9o.net/mayx/blog
+https://gitea.adminakademia.pl/mayx/blog
+https://dev.init.zone/mayx/blog
+https://git.baneynet.net/mayx/blog
+http://43.143.224.106:2000/mayx/blog
+http://47.97.225.73:3000/mayx/blog
+http://1.15.11.52:13000/mayx/blog
+https://git.gupaoedu.cn/mayx/blog
+http://60.205.233.184:3010/mayx/blog
+http://121.43.49.226/mayx/blog
+https://git.ricecakecat.com/mayx/blog
+https://git.mahaines.com/mayx/blog
+http://gitee.mrsang.cfd/mayx/blog
+https://gittea.biveki.ru/mayx/blog
diff --git a/_posts/2025-09-01-quine.md b/_posts/2025-09-01-quine.md
index b2e584e..3f27c92 100644
--- a/_posts/2025-09-01-quine.md
+++ b/_posts/2025-09-01-quine.md
@@ -60,9 +60,10 @@ print 0
在这篇论文中,里面简述了之前Russ Cox写的内容,也提到了59字节的限制,于是作者对原有的结构进行了一些改动,让操作码可以超出5字节的限制,具体可以看论文的表6,从而解决了只能包含59字节额外数据的限制。但由于DEFLATE压缩格式本身的约束(16位存储块长度以及32KiB回溯窗口),即使能够添加文件,最多也只能额外容纳32763字节的数据(其中包括压缩包所需的文件头)……显然这点空间完全存不下我的博客😭,看来我只能打消这个想法了。但既然都研究了半天,也不一定要存我的博客嘛,可以看看还有没有别的东西可以存?在这之前先继续阅读论文,看完再说吧。
## 制作一个嵌套循环的ZIP Quine
在实现了常规的ZIP Quine之后,接下来就是作者的创新点了(如果光是解决存储限制这点创新点估计还不够发论文吧😂)。作者接下来制作了一种循环压缩文件,在压缩包内包含文件A和压缩包A,而压缩包A中则包含文件B和最初的压缩包,从而形成一个循环递归的结构。看论文的描述所说如果把外层的压缩包和内层的压缩包的开头和结尾按照一定的规则交替混合,就可以看作是一个整体,然后按照之前做ZIP Quine那样处理就可以……具体实现的细节得看论文的表10。只不过既然是把两个压缩包看作一个整体的话,按照上面的限制,自然每个压缩包能容纳的数据量就更小了,每个最多只能容纳16376字节的数据……
- 另外既然这里面有两个压缩包,那么每个压缩包还有自己的CRC32校验和,理论上如果要爆破的话计算难度得是原来的平方,这样难度就太大了。不过作者发现如果把数据的CRC32值取反(即与“0xFFFFFFFF”取异或)然后和原始数据拼到一起,整个数据的CRC32校验和就会被重置为一个固定的值“0xFFFFFFFF”,看起来挺有意思,正常的哈希算法可没有这种特性。因此原本计算难度很大的爆破计算现在就可以和之前一样了……话说为什么不让两层的CRC32都这样计算(包括之前单层的ZIP Quine)?这样就不需要爆破了……貌似是因为在普通的ZIP Quine中满足条件的CRC32需要出现两次,所以不能用这个方案吧?
+ 另外既然这里面有两个压缩包,那么每个压缩包还有自己的CRC32校验和,理论上如果要爆破的话计算难度得是原来的平方,这样难度就太大了。不过作者发现如果把数据的CRC32值取反(即与“0xFFFFFFFF”取异或)然后和原始数据拼到一起,整个数据的CRC32校验和就会被重置为一个固定的值“0xFFFFFFFF”,看起来挺有意思,正常的哈希算法可没有这种特性。因此原本计算难度很大的爆破计算现在就可以和之前一样了…… ~~话说为什么不让两层的CRC32都这样计算(包括之前单层的ZIP Quine)?这样就不需要爆破了……貌似是因为在普通的ZIP Quine中满足条件的CRC32需要出现两次,所以不能用这个方案吧?~~
现在所有的理论都足够了,我需要挑一个文件来做这样嵌套循环的ZIP Quine,既然博客的大小不可以……要不然我就用我写过的第一个大项目——[Mabbs](https://github.com/Mabbs/Mabbs.Project)吧,这个项目的主程序是22KiB,看起来似乎超出了嵌套循环ZIP Quine的限制?其实没有,它的限制指的是压缩后的大小,我这个程序压缩之后是8KiB左右,所以完全没问题。
接下来就该使用论文中提到的生成工具:[zip-quine-generator](https://github.com/ruvmello/zip-quine-generator),这是一个Kotlin编写的程序,从发布中可以下载预构建的程序,接下来只要按照README中的描述使用“`--loop`”参数就可以用这个程序创建嵌套循环的ZIP Quine了。不过它原本的代码不能修改里面生成的压缩包的名字,另外[压缩后的文件属性是隐藏文件](https://github.com/ruvmello/zip-quine-generator/blob/3b8cf977e7a93bb956ad966d5e3b4d503f410529/src/main/kotlin/zip/ZIPArchiver.kt#L845),还有[生成的压缩包中文件的创建时间总是当前时间](https://github.com/ruvmello/zip-quine-generator/blob/3b8cf977e7a93bb956ad966d5e3b4d503f410529/src/main/kotlin/zip/ZIPArchiver.kt#L29),以及[给文件内填充额外数据的代码里面填的是作者的声明](https://github.com/ruvmello/zip-quine-generator/blob/3b8cf977e7a93bb956ad966d5e3b4d503f410529/src/main/kotlin/zip/ZIPArchiver.kt#L30),表示文件是由他论文的所写的生成器生成的……这些情况让我感觉有点不爽,还是希望这些部分能自定义一下,所以我就小改了一下他的代码。顺便一说,Kotlin编译起来还挺简单,直接一句`kotlinc src/main/kotlin -include-runtime -d output.jar`就可以了,也不需要折腾Maven之类乱七八糟的东西。最终我修改并编译完程序之后就把文件丢到服务器上开始给我爆破CRC32了,花了10个小时就算出来了,倒是比想象中快😂。
+ (2025.09.26更新)在2025年9月15日的时候,[Nate Choe](https://github.com/NateChoe1)给zip-quine-generator做了个[重大贡献](https://github.com/ruvmello/zip-quine-generator/pull/3),他通过[数学的方式](https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm)让CRC32的值可以不需要通过爆破的方式算出来,现在想要再制作这样的压缩包就可以瞬间生成了……要是我再晚点做这个压缩包就不需要花那么长时间了吧🤣。
最终我给我的[Mabbs](https://github.com/Mabbs/Mabbs.Project)项目创建了[Infinite Mabbs](https://github.com/Mabbs/Mabbs.Project/releases/tag/Final-version)这个发布,生成的文件也可以在[这里](/assets/Mabbs.zip)下载,这也算是不枉我研究半天这个论文了😆。
# 自产生程序的探索
From 5098b24ce67e97b4e12c6c0821bc101633805f90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=98=A0=E5=B1=BF?=
Date: Sat, 27 Sep 2025 18:48:30 +0800
Subject: [PATCH 09/29] Update links.csv
---
_data/links.csv | 1 +
1 file changed, 1 insertion(+)
diff --git a/_data/links.csv b/_data/links.csv
index c7e8e21..3431d42 100644
--- a/_data/links.csv
+++ b/_data/links.csv
@@ -19,3 +19,4 @@ Lanke's blog,https://blog.blueke.top/,https://blog.blueke.top/rss.xml,请为一
时光流·言,https://www.hansjack.com/,https://www.hansjack.com/feed/,个人博客,持续分享网站部署实战经验、精选书评解读和生活观察手记。 这里提供可复用的技术教程、深度阅读指南和真实生活洞察,与技术爱好者一起进步......
Pinpe 的云端,https://pinpe.top/,https://pinpe.top/rss.xml,一个属于自己的云朵。
Chise Hachiroku,https://chise.hachiroku.com/,https://chise.hachiroku.com/zh/feed/,向明日的辉迹,干杯!
+映屿,https://www.yingyu5658.me/,https://www.yingyu5658.me/atom.xml,关于互联网、书籍、生活琐事以及那些一闪而过的念头
From c71a48263e78d09fa7d008a8074e0b10d39e2207 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=98=A0=E5=B1=BF?=
Date: Fri, 10 Oct 2025 22:46:25 +0800
Subject: [PATCH 10/29] Update links.csv
---
_data/links.csv | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/_data/links.csv b/_data/links.csv
index 3431d42..be5564b 100644
--- a/_data/links.csv
+++ b/_data/links.csv
@@ -19,4 +19,4 @@ Lanke's blog,https://blog.blueke.top/,https://blog.blueke.top/rss.xml,请为一
时光流·言,https://www.hansjack.com/,https://www.hansjack.com/feed/,个人博客,持续分享网站部署实战经验、精选书评解读和生活观察手记。 这里提供可复用的技术教程、深度阅读指南和真实生活洞察,与技术爱好者一起进步......
Pinpe 的云端,https://pinpe.top/,https://pinpe.top/rss.xml,一个属于自己的云朵。
Chise Hachiroku,https://chise.hachiroku.com/,https://chise.hachiroku.com/zh/feed/,向明日的辉迹,干杯!
-映屿,https://www.yingyu5658.me/,https://www.yingyu5658.me/atom.xml,关于互联网、书籍、生活琐事以及那些一闪而过的念头
+映屿,https://www.glowisle.me/,https://www.glowisle.me/atom.xml,关于互联网、书籍、生活琐事以及那些一闪而过的念头
From 1b5efb8edd408c6d2f9afde4cd177e3ef44922d4 Mon Sep 17 00:00:00 2001
From: mayx
Date: Sun, 12 Oct 2025 09:54:55 +0000
Subject: [PATCH 11/29] Update 3 files
- /_posts/2025-10-12-recover.md
- /_data/other_repo_list.csv
- /index.html
---
_data/other_repo_list.csv | 51 +++++++++++++++++++++---------------
_posts/2025-10-12-recover.md | 29 ++++++++++++++++++++
index.html | 1 +
3 files changed, 60 insertions(+), 21 deletions(-)
create mode 100644 _posts/2025-10-12-recover.md
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 72d97d8..3eea9c1 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -36,7 +36,6 @@ https://git.dpark.io/mayx/blog
https://git.ykonkov.com/mayx/blog
http://116.62.245.34:3000/mayx/blog
https://git.johann-brauer.de/mayx/blog
-https://git.barneo-tech.com/mayx/blog
https://git.shaunmcpeck.com/mayx/blog
http://1.6.141.109:3000/mayx/blog
http://52.28.156.42/mayx/blog
@@ -85,10 +84,8 @@ https://git.terrainknowledge.com/mayx/blog
https://gitea.pickalurv.com/mayx/blog
http://183.239.197.12:10803/mayx/blog
https://git.zeroplay.io/mayx/blog
-https://vpgs.pro/mayx/blog
https://git.successkaoyan.com/mayx/blog
https://git.veydlin.com/mayx/blog
-https://git.dcircus.com/mayx/blog
https://gitea.bitshift.us/mayx/blog
http://114.55.134.197:3000/mayx/blog
http://139.129.25.251:3000/mayx/blog
@@ -112,7 +109,6 @@ https://git.duplanet.ovh/mayx/blog
http://Shiningon.top/mayx/blog
http://wsygitea.top/mayx/blog
https://git.ofdl.tools/mayx/blog
-http://precious.harpy.faith/mayx/blog
https://git.yardtech.ru/mayx/blog
http://69.62.77.234:8888/mayx/blog
https://gitea.bake.systems/mayx/blog
@@ -161,8 +157,6 @@ https://git.Apture.io/mayx/blog
https://git.dbfmp.cn/mayx/blog
http://103.231.8.120/mayx/blog
https://gitea.jasonstolle.com/mayx/blog
-https://gitea.dokm.xyz/mayx/blog
-https://nemoserver.iict.bas.bg/mayx/blog
https://git.istsoft.ru/mayx/blog
http://8.134.61.107:3000/mayx/blog
http://47.107.88.161:3000/mayx/blog
@@ -182,13 +176,11 @@ https://git.vce.de/mayx/blog
https://gitea.carmon.co.kr/mayx/blog
http://142.171.47.170:3000/mayx/blog
https://git.aion.bi/mayx/blog
-https://git.skillmad.ru/mayx/blog
https://git.werkraum-karlsruhe.org/mayx/blog
http://111.231.146.230:8418/mayx/blog
https://git.winscloud.net/mayx/blog
https://git.pwaapp.cc/mayx/blog
http://188.245.99.186:3000/mayx/blog
-https://sources.krechet.tech/mayx/blog
http://119.28.73.80:5000/mayx/blog
http://194.60.231.252:3000/mayx/blog
https://git.sleepingforest.co.uk/mayx/blog
@@ -204,10 +196,7 @@ https://git.reinoud.cloud/mayx/blog
https://gitea.chenxu2233.com/mayx/blog
http://106.15.78.64:3000/mayx/blog
http://hoenking.cn:3000/mayx/blog
-https://git.harddays.dev/mayx/blog
-https://git.hantify.ru/mayx/blog
https://GIT.Agri-Sys.com/mayx/blog
-http://8.156.68.150:3008/mayx/blog
http://47.113.96.20:3000/mayx/blog
https://gitea.anessen.xyz/mayx/blog
https://sengit.us/mayx/blog
@@ -276,7 +265,6 @@ https://git.libx.ir/mayx/blog
https://git.u2.nu/mayx/blog
https://bk-house.synology.me:3081/mayx/blog
http://123.57.95.66:9000/mayx/blog
-https://git.the-archive.xyz/mayx/blog
http://git.yjmt191314.com/mayx/blog
https://git.sparrowcomm.com/mayx/blog
https://gitea.chaos-it.pl/mayx/blog
@@ -286,7 +274,6 @@ https://git.hubhoo.com/mayx/blog
https://git.ultra.pub/mayx/blog
https://git.cloud13.de/mayx/blog
https://gitea.visoftware.com.co/mayx/blog
-http://20.249.208.89:3000/mayx/blog
http://121.199.172.238:3000/mayx/blog
http://27.124.12.222:3000/mayx/blog
https://wzpmc.cn:3000/mayx/blog
@@ -305,7 +292,6 @@ https://git.saintdoggie.org/mayx/blog
http://blackobelisk.xyz:3000/mayx/blog
https://git.dushes.keenetic.pro/mayx/blog
https://git.go-chat.ru/mayx/blog
-https://gitt.vireoapp.com/mayx/blog
http://47.129.22.53:22345/mayx/blog
https://git.tech.troyrc.com/mayx/blog
http://git.zkyspace.top/mayx/blog
@@ -320,7 +306,6 @@ http://8.137.38.60:8201/mayx/blog
https://git.emoscape.org/mayx/blog
http://112.74.106.216:3000/mayx/blog
http://77.223.118.106:8081/mayx/blog
-http://frp-old.com:41879/mayx/blog
https://git.the-kn.com/mayx/blog
https://git.campfiregg.ru/mayx/blog
https://gitea.net50.ne.jp/mayx/blog
@@ -329,7 +314,6 @@ http://sinzero.xyz:3000/mayx/blog
http://69.10.53.202:3000/mayx/blog
https://gitea.b54.co/mayx/blog
https://git.matevi.sh/mayx/blog
-http://gitea-ui.shiba-server.fr:19000/mayx/blog
http://www.pcaidiy.cn:3000/mayx/blog
https://code.tiantongsl.com/mayx/blog
http://213.35.118.215:60001/mayx/blog
@@ -339,7 +323,6 @@ https://git.pasarex.com/mayx/blog
http://1.95.221.174:3000/mayx/blog
https://git.wangxinlei.cn/mayx/blog
http://101.200.74.121:3000/mayx/blog
-https://potokobox-releases.prodduction.ru/mayx/blog
http://123.56.193.182:3000/mayx/blog
https://git.akarpov.ru/mayx/blog
http://60.204.131.99:3000/mayx/blog
@@ -351,7 +334,6 @@ http://167.172.7.198:8081/mayx/blog
https://gitea.meetgu.ru/mayx/blog
http://8.134.253.108:3000/mayx/blog
https://git.patrich.se/mayx/blog
-http://47.251.18.130:3000/mayx/blog
http://116.236.50.103:8789/mayx/blog
https://gitnto.innovationcampus.ru/mayx/blog
https://git.paulll.cc/mayx/blog
@@ -373,7 +355,6 @@ https://git.4lcap.com/mayx/blog
https://gitea.bastiqui.com/mayx/blog
https://git.stit.tech/mayx/blog
https://git.wun.im/mayx/blog
-https://git.lichx.top/mayx/blog
https://www.9miao.fun:6839/mayx/blog
https://git.ssktv.vip/mayx/blog
https://git.autotion.net/mayx/blog
@@ -451,7 +432,6 @@ https://lius.familyds.org:3000/mayx/blog
https://git.morozoff.pro/mayx/blog
https://gitea.questline.coop/mayx/blog
https://gitea.mpc-web.jp/mayx/blog
-https://git.roshanca.com/mayx/blog
https://git.poggerer.xyz/mayx/blog
https://git.wisptales.org/mayx/blog
https://git.peaksscrm.com/mayx/blog
@@ -524,7 +504,6 @@ http://47.109.95.73:3000/mayx/blog
http://47.104.196.63:8418/mayx/blog
https://git.mkubiak.com/mayx/blog
http://38.22.90.74:3000/mayx/blog
-https://git.unknwn.ru/mayx/blog
https://git.asdf.cafe/mayx/blog
http://8.133.240.249:3456/mayx/blog
https://git.mista.ru/mayx/blog
@@ -588,3 +567,33 @@ https://git.ricecakecat.com/mayx/blog
https://git.mahaines.com/mayx/blog
http://gitee.mrsang.cfd/mayx/blog
https://gittea.biveki.ru/mayx/blog
+https://git.7milch.com/mayx/blog
+https://gitea.marvinronk.com/mayx/blog
+https://gitea.zmanplex.com/mayx/blog
+https://git.hexdive.com/mayx/blog
+http://139.224.250.209:3000/mayx/blog
+https://vcc808.site/mayx/blog
+https://battitech.net/mayx/blog
+https://git.sitenevis.com/mayx/blog
+https://git.nightime.org/mayx/blog
+https://dreamplacesai.de/mayx/blog
+http://repo.bpo.technology/mayx/blog
+https://git.soy.dog/mayx/blog
+https://bachner.synology.me:10002/mayx/blog
+https://git.cool2645.com/mayx/blog
+https://gitea.codedbycaleb.com/mayx/blog
+https://gitea.jludwig.net/mayx/blog
+https://git.z1.mk/mayx/blog
+http://185.87.111.46:3000/mayx/blog
+http://suncheng.asia:14200/mayx/blog
+https://git.sorogon.eu/mayx/blog
+http://1.94.13.224:9080/mayx/blog
+https://git.manabo.org/mayx/blog
+https://auric-org.org/mayx/blog
+https://git.git-happens.de/mayx/blog
+https://gitea.seanomad.ru/mayx/blog
+http://47.104.241.192:19999/mayx/blog
+http://47.105.61.58:3000/mayx/blog
+https://git.memosnag.com/mayx/blog
+http://tdss.website:801/mayx/blog
+https://gitea.wenpang.asia/mayx/blog
diff --git a/_posts/2025-10-12-recover.md b/_posts/2025-10-12-recover.md
new file mode 100644
index 0000000..e2b451e
--- /dev/null
+++ b/_posts/2025-10-12-recover.md
@@ -0,0 +1,29 @@
+---
+layout: post
+title: 一次找回GitHub上被删除仓库的经历
+tags: [GitHub, Git, 代码恢复, 软件存档]
+---
+
+ 在GitHub中寻找踪迹也许是非常简单的事情……
+
+# 起因
+ 前段时间,有人和我聊天的时候提到了[Brainfuck](https://esolangs.org/wiki/Brainfuck)语言,让我回想起了高中时写的[演讲稿](/%E6%BC%94%E8%AE%B2%E7%A8%BF/2018/06/20/Coding.html)。那时候我在演讲时也介绍了Brainfuck语言。对于Brainfuck的解释器,[各种语言都可以实现](https://rosettacode.org/wiki/RCBF),不过我当时为了方便理解用了一个在GitHub Pages上的网站,用可视化的方式演示了它的运行过程,效果很不错。现在既然聊到了,自然就想分享一下这个[演示的网站](https://fatiherikli.github.io/brainfuck-visualizer/),但我正想打开时,发现网站已经404了😰。
+ 在GitHub Pages上的网站都有对应的仓库,现在不仅原仓库消失了,连作者的[首页](https://github.com/fatiherikli)都打不开,看样子是完全退出GitHub了……那么我想找到这个网站的想法就无法实现了吗?不过GitHub有些有意思的特性也许能帮助我找回这个网站。
+
+# GitHub的特性
+ 在GitHub中,一个普通的仓库可能没有什么特别的,也许就是服务器上的一个文件夹。但是当仓库被其他人Fork的时候就不一样了,在执行Fork时,显然GitHub不会完整复制整个仓库。否则,同一个仓库在服务器上会占用双倍空间,这显然不合理。另外,想想Git的结构:它由提交对象和分支指针构成,每次提交都有唯一的Hash值且不会冲突。因此可以推测,GitHub在实现Fork时,所有被Fork的仓库可能共享同一个对象库,而每个用户仓库只保存指针,这样所有仓库只会占用增量空间,而不会存储重复内容。
+ 但这样也会带来一个问题,首先因为很多人可能要共用一部分对象,所以也很难确认对象的所有权,而且也因为这个原因所有的对象要能被所有人访问。因此在整个Fork网络中,只要有一个仓库存在,GitHub就必须保留所有的对象,而且每个仓库都能访问这个网络中所有的对象。为了验证这一点,我们可以用最知名的[Linux内核仓库](https://github.com/torvalds/linux)做个示例。
+ 首先对Linux仓库进行Fork,然后我们可以随便做一些改动,比如在README中写“Linux已经被我占领了😆”之类的内容,提交到自己的仓库,并且记下提交的Hash值,接下来就可以把自己的仓库删掉了。如果上面的猜想是正确的,那么在这个Fork网络中的任何一个仓库查看我刚刚的提交应该都可以,于是我直接在主仓库拼上了[提交的Hash值](https://github.com/torvalds/linux/tree/78e1d0446b94012da8639aa2b157d4f2dee481ce)(顺便一说只要值唯一,和其他的提交不冲突,[短的Hash值](https://github.com/torvalds/linux/tree/78e1d044)也可以),果不其然能找到刚刚修改的内容,这样一来,只要GitHub和任意一个Linux仓库的Fork还存在,这个提交就永远存在了😝。
+
+# 找回仓库
+ 那么接下来找回之前网站的方案就很简单了,我只要找到网站仓库的任意一个Fork,然后只要知道最新的提交Hash,我就可以还原最新的仓库了。Fork倒是好找,随便搜一下[就能找到一个](https://github.com/ashupk/brainfuck-visualizer)。这个Fork的最新提交是2016年,但要想找到我当年演讲的版本至少到2018年之后。不过这个Hash值也不太好找,虽然理论上爆破短Hash值也可以,但是感觉太麻烦了,没有那个必要,所以我干脆直接去互联网档案馆看看能找到的[最新的仓库页面](https://web.archive.org/web/20201229125043/https://github.com/fatiherikli/brainfuck-visualizer/)吧,这样我就能找到它的Hash值了,然后我再把Fork仓库的地址和Hash拼到一起,就看得到最新代码了。
+ 当然,仅仅看到代码还不够。我想Fork这个项目并在自己的GitHub Pages上部署一份。有没有什么好办法可以将我仓库的HEAD指针指向最新的提交呢?其实很简单,首先我要Fork这个Fork仓库,然后Clone我的仓库到本地。不过,此时Clone下来的仓库并不包含GitHub上完整的对象库,因此直接checkout或reset是不行的。这时Hash值就派上用场了,通过fetch拉取对应提交后,就可以进行上述操作。具体命令如下:
+```bash
+git fetch origin
+git reset --hard
+git push origin master
+```
+ 最终我就获得了包含[最新代码](https://github.com/Mabbs/brainfuck-visualizer)的[Brainfuck可视化演示](https://mabbs.github.io/brainfuck-visualizer/)了🎉。
+
+# 结局
+ 后来我才知道,原来有一个专门的组织[Software Heritage](https://archive.softwareheritage.org)会保存所有代码,根本没必要搞这些花里胡哨的操作😂,像这个仓库也是能很轻易在[上面](https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://github.com/fatiherikli/brainfuck-visualizer)找到,这下以后知道了,再遇到类似情况就可以直接去Software Heritage查找,而不必在互联网档案馆上找线索瞎折腾了🤣。
\ No newline at end of file
diff --git a/index.html b/index.html
index f880503..35942de 100644
--- a/index.html
+++ b/index.html
@@ -67,6 +67,7 @@ image: https://screenshot.mayx.eu.org/
Mayx的公开服务
凯露&危险生存( CHS | JA | KO )
+ Brainfuck可视化演示
留言板
Links
代理列表
From 1198b6c191dc2280f7393ee22fecdb9db8b48925 Mon Sep 17 00:00:00 2001
From: mayx
Date: Sat, 25 Oct 2025 15:10:08 +0000
Subject: [PATCH 12/29] Update 3 files
- /_data/links.csv
- /_data/ai-cache.json
- /_data/other_repo_list.csv
---
_data/ai-cache.json | 3 +-
_data/links.csv | 1 +
_data/other_repo_list.csv | 75 +++++++++++++++++++++++++++------------
3 files changed, 56 insertions(+), 23 deletions(-)
diff --git a/_data/ai-cache.json b/_data/ai-cache.json
index d0da3cf..4bcce70 100644
--- a/_data/ai-cache.json
+++ b/_data/ai-cache.json
@@ -169,5 +169,6 @@
"/2025/07/24/screenshot.html": "这篇文章介绍了如何利用Cloudflare的“浏览器呈现”功能,创建一个自动更新的网站预览图服务。作者发现这个新功能可以用来展示网站在不同设备上的显示效果,通过在Cloudflare Workers中使用iframe和CSS缩放技术,以及调用Cloudflare的接口抓取浏览器渲染的截图。虽然免费用户每天只有10分钟的使用时间,限制了实时更新,但作者通过缓存实现了每天自动更新一次的预览图,并分享了具体的实现代码和使用方法。作者赞赏Cloudflare提供的这项强大且免费的服务。",
"/2025/08/01/sw-proxy.html": "这篇文章介绍了作者如何利用Service Worker在现代浏览器中实现一个简单的反向代理功能,以提供博客的备份和离线访问。作者原本希望通过Service Worker在用户浏览器中运行一个Web服务器来存储博客副本,但发现 tar.gz 文件的处理需要第三方库且难以找到适用的解决方案,尤其是对于tar文件的处理。作者最终选择使用Service Worker作为反向代理,将请求转发到其他网站,如GeoCities风格的静态网站托管平台,实现了类似的效果。这个过程中,作者体验到了浏览器功能的强大,并认为Service Worker在离线场景中有更大的潜力,尽管在他的例子中并没有充分展示这种优势。",
"/2025/08/10/tilde.html": "这篇文章介绍了作者在Tilde社区的体验,这是一类基于类Unix环境的公共服务器社区,类似于家目录,提供预装的软件、开发环境和公共服务,如聊天室、邮件、BBS论坛等,强调了社区的互动性和共享精神。作者通过申请、审核过程加入了几个社区,并详细描述了在这些社区中的个人主页、编程支持(如Gemini和Gopher协议)、博客发布、代码托管(Git支持)、CI/CD部署以及使用Git hooks自动化博客更新等功能。尽管作者受限于语言和工具使用体验,未能充分参与社区交流,但对社区学习新知识和丰富博客内容印象深刻。",
- "/2025/09/01/quine.html": "这篇文章主要介绍了作者在博客部署过程中,对ZIP Quine(自包含压缩包)和自产生程序的探索过程。作者起初想利用压缩包实现离线浏览,但遇到了压缩包不包含自身的问题。随后,作者回顾了ZIP Quine的原理,如droste.zip,以及如何通过DEFLATE压缩算法的LZ77编码实现自包含。作者尝试了Russ Cox的方案,但发现由于压缩格式限制,实际操作中存在数据容量的限制,无法存下整个博客。尽管如此,作者还是研究了嵌套循环的ZIP Quine,如Ruben Van Mello的论文中所描述的,尽管空间仍然有限。探索过程中,作者还学习了自产生程序(Quine)的概念,包括其实现原理和各种编程语言中的例子。作者最后感慨,探索过程中的收获比原本的目标更重要。"
+ "/2025/09/01/quine.html": "这篇文章主要介绍了作者在博客部署过程中,对ZIP Quine(自包含压缩包)和自产生程序的探索过程。作者起初想利用压缩包实现离线浏览,但遇到了压缩包不包含自身的问题。随后,作者回顾了ZIP Quine的原理,如droste.zip,以及如何通过DEFLATE压缩算法的LZ77编码实现自包含。作者尝试了Russ Cox的方案,但发现由于压缩格式限制,实际操作中存在数据容量的限制,无法存下整个博客。尽管如此,作者还是研究了嵌套循环的ZIP Quine,如Ruben Van Mello的论文中所描述的,尽管空间仍然有限。探索过程中,作者还学习了自产生程序(Quine)的概念,包括其实现原理和各种编程语言中的例子。作者最后感慨,探索过程中的收获比原本的目标更重要。",
+ "/2025/10/12/recover.html": "这篇文章讲述了作者通过GitHub的Fork特性找回一个被删除的Brainfuck可视化演示仓库的经历。由于原仓库和作者主页都已消失,作者推测GitHub在Fork时会共享对象库,只要有任意一个Fork仓库存在,GitHub就会保留所有对象,从而可以通过找到一个Fork仓库的最新提交Hash值来还原目标仓库。作者通过Linux内核仓库的Fork进行验证,随后在互联网档案馆上找到目标仓库的Fork以及其Hash值,最终通过Git命令将本地仓库的HEAD指针指向目标提交,成功恢复了该仓库的代码,并将其部署到自己的GitHub Pages上。最后,作者发现Software Heritage组织会保存所有代码,因此在遇到类似情况时可以直接通过该平台进行查找。"
}
\ No newline at end of file
diff --git a/_data/links.csv b/_data/links.csv
index be5564b..fac27bb 100644
--- a/_data/links.csv
+++ b/_data/links.csv
@@ -20,3 +20,4 @@ Lanke's blog,https://blog.blueke.top/,https://blog.blueke.top/rss.xml,请为一
Pinpe 的云端,https://pinpe.top/,https://pinpe.top/rss.xml,一个属于自己的云朵。
Chise Hachiroku,https://chise.hachiroku.com/,https://chise.hachiroku.com/zh/feed/,向明日的辉迹,干杯!
映屿,https://www.glowisle.me/,https://www.glowisle.me/atom.xml,关于互联网、书籍、生活琐事以及那些一闪而过的念头
+东东,https://nihaha.com/,https://nihaha.com/feed/,城市与信仰
\ No newline at end of file
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 3eea9c1..65bbd63 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -9,7 +9,6 @@ https://tildegit.org/Mayx/mayx
https://git.pixie.town/mayx/mayx
https://cgit.tilde.town/~mayx/blog
https://gitlab.haskell.org/mayx/mayx
-https://git.gammaspectra.live/Mayx/blog
https://pagure.io/fork/mabbs/Blog
https://repo2.serv00.com/git/pub/Mayx/mayx/
https://git.tea-assets.com/mayx/blog
@@ -47,7 +46,6 @@ https://git.anibilag.ru/mayx/blog
https://git.lolpro11.me/mayx/blog
https://git.unglab.com/mayx/blog
https://git.empirica.pro/mayx/blog
-http://xiaowangnas.com:8418/mayx/blog
http://47.115.203.168:3000/mayx/blog
http://www.gitea.zhangc.top:3000/mayx/blog
https://git.chistyakov-it.ru/mayx/blog
@@ -62,7 +60,6 @@ https://git.pcgf.io/mayx/blog
https://nucleation.fusion.bref.cool/mayx/blog
https://gitea.l2reworld.com/mayx/blog
https://git.bp-web.app/mayx/blog
-https://git.carinae.org/mayx/blog
http://47.103.91.160:50903/mayx/blog
https://mygit.iexercice.com/mayx/blog
http://162.215.134.149:4000/mayx/blog
@@ -108,7 +105,6 @@ http://43.224.227.219:3000/mayx/blog
https://git.duplanet.ovh/mayx/blog
http://Shiningon.top/mayx/blog
http://wsygitea.top/mayx/blog
-https://git.ofdl.tools/mayx/blog
https://git.yardtech.ru/mayx/blog
http://69.62.77.234:8888/mayx/blog
https://gitea.bake.systems/mayx/blog
@@ -128,7 +124,6 @@ http://43.163.207.174:3000/mayx/blog
http://rack1.raincs.cc:20253/mayx/blog
https://git.repo.in.net/mayx/blog
https://git.dihe.moe/mayx/blog
-https://git.fracturedcode.net/mayx/blog
http://47.113.231.74:3000/mayx/blog
https://gitea.belanjaparts.com/mayx/blog
http://185.208.225.190:3000/mayx/blog
@@ -169,7 +164,6 @@ http://8.137.12.29:3000/mayx/blog
https://gitea.irons.nz/mayx/blog
https://gitea.madf12.com/mayx/blog
http://8.134.104.234:3000/mayx/blog
-http://47.99.142.152:3000/mayx/blog
http://45.45.238.98:3000/mayx/blog
http://git.ugohous.com/mayx/blog
https://git.vce.de/mayx/blog
@@ -192,29 +186,24 @@ https://git.brb.homeip.net/mayx/blog
https://an360.top/mayx/blog
https://git.agusandelnorte.gov.ph/mayx/blog
http://git.maiwd.cn:3000/mayx/blog
-https://git.reinoud.cloud/mayx/blog
https://gitea.chenxu2233.com/mayx/blog
http://106.15.78.64:3000/mayx/blog
http://hoenking.cn:3000/mayx/blog
https://GIT.Agri-Sys.com/mayx/blog
-http://47.113.96.20:3000/mayx/blog
https://gitea.anessen.xyz/mayx/blog
https://sengit.us/mayx/blog
https://git.cjcrace.io/mayx/blog
-https://tee.eddykk.com/mayx/blog
https://git.yinbonet.cn/mayx/blog
https://git.inkcore.cn/mayx/blog
http://47.98.129.193:3000/mayx/blog
http://8.138.91.73:3000/mayx/blog
https://git.wisder.net/mayx/blog
http://8.138.187.97:3000/mayx/blog
-https://gitea.potatox.net/mayx/blog
https://git2.ujin.tech/mayx/blog
http://git.joypetsisland.com/mayx/blog
http://111.119.244.185:3000/mayx/blog
http://110.41.179.36:13000/mayx/blog
http://115.187.22.75:3000/mayx/blog
-http://163.223.13.95:3000/mayx/blog
https://git.chrisbeckstrom.com/mayx/blog
https://dev.zaphar.net/mayx/blog
https://git.moonwoou.com/mayx/blog
@@ -240,7 +229,6 @@ http://47.94.103.75:3000/mayx/blog
http://gitea.danongshu.cn/mayx/blog
https://git.palagov.tv/mayx/blog
http://139.196.201.231:3000/mayx/blog
-http://takway.ai:3000/mayx/blog
http://8.155.23.172:3000/mayx/blog
https://git.influxfin.com/mayx/blog
http://47.100.177.77:3000/mayx/blog
@@ -276,10 +264,8 @@ https://git.cloud13.de/mayx/blog
https://gitea.visoftware.com.co/mayx/blog
http://121.199.172.238:3000/mayx/blog
http://27.124.12.222:3000/mayx/blog
-https://wzpmc.cn:3000/mayx/blog
https://saga.iao.ru:3043/mayx/blog
https://git.sayndone.ru/mayx/blog
-https://git.kodors.net/mayx/blog
http://47.113.118.108:3000/mayx/blog
https://gitea.hintsight.com/mayx/blog
https://git.code-works.de/mayx/blog
@@ -342,7 +328,6 @@ https://gitea.reimann.ee/mayx/blog
http://109.74.197.189/mayx/blog
https://git.nussi.net/mayx/blog
https://git.thepain.dev/mayx/blog
-https://git.geobretagne.fr/mayx/blog
https://gitea.ultrasoft.cm/mayx/blog
http://94.224.160.69:7990/mayx/blog
http://8.134.144.137:3000/mayx/blog
@@ -352,7 +337,6 @@ https://git.d4m13n.dev/mayx/blog
https://gitimpo.liara.run/mayx/blog
https://git.needon.kr/mayx/blog
https://git.4lcap.com/mayx/blog
-https://gitea.bastiqui.com/mayx/blog
https://git.stit.tech/mayx/blog
https://git.wun.im/mayx/blog
https://www.9miao.fun:6839/mayx/blog
@@ -459,7 +443,6 @@ http://git.chilidoginteractive.com:3000/mayx/blog
http://121.40.40.177:3000/mayx/blog
http://118.31.223.224:3000/mayx/blog
http://47.109.67.128:3000/mayx/blog
-https://git.enwatmon.de/mayx/blog
http://voicebot.digitalakademie-bw.de:3000/mayx/blog
https://gitea.services.gsd-srv.com/mayx/blog
https://repo.divisilabs.com/mayx/blog
@@ -475,7 +458,6 @@ http://47.122.26.54:3000/mayx/blog
http://154.86.0.30:3000/mayx/blog
http://139.224.196.148:3000/mayx/blog
http://47.95.167.249:3000/mayx/blog
-https://www.enginx.dev/mayx/blog
http://gitea.dctpay.com/mayx/blog
https://omegat.dmu-medical.de/mayx/blog
http://52.23.128.62:3000/mayx/blog
@@ -483,7 +465,6 @@ http://85.214.41.219:49153/mayx/blog
http://6068688.xyz:3000/mayx/blog
http://8.137.105.8:5530/mayx/blog
https://git.881221.xyz/mayx/blog
-http://47.93.219.55:20080/mayx/blog
http://120.46.222.128:10021/mayx/blog
http://39.106.86.127:3000/mayx/blog
https://git.techspec.pro/mayx/blog
@@ -496,7 +477,6 @@ https://git.changenhealth.cn/mayx/blog
http://git.gkcorp.com.vn:16000/mayx/blog
http://47.111.17.177:3000/mayx/blog
http://git.hnits360.com/mayx/blog
-https://git.bag-ltd.ru/mayx/blog
https://k0ki-dev.com/mayx/blog
http://110.42.45.89:2052/mayx/blog
https://git.furcom.org/mayx/blog
@@ -518,7 +498,6 @@ https://giteas.fullmooncyberworks.com/mayx/blog
http://47.112.118.149:10082/mayx/blog
https://gitea.jobiglo.com/mayx/blog
https://gitea.rpg-librarium.de/mayx/blog
-https://git.pheros.es/mayx/blog
https://git.juici.ly/mayx/blog
https://git.lkwplus.com/mayx/blog
http://begild.top:8418/mayx/blog
@@ -573,7 +552,6 @@ https://gitea.zmanplex.com/mayx/blog
https://git.hexdive.com/mayx/blog
http://139.224.250.209:3000/mayx/blog
https://vcc808.site/mayx/blog
-https://battitech.net/mayx/blog
https://git.sitenevis.com/mayx/blog
https://git.nightime.org/mayx/blog
https://dreamplacesai.de/mayx/blog
@@ -597,3 +575,56 @@ http://47.105.61.58:3000/mayx/blog
https://git.memosnag.com/mayx/blog
http://tdss.website:801/mayx/blog
https://gitea.wenpang.asia/mayx/blog
+http://101.35.183.241/mayx/blog
+https://gitea.quiztimes.nl/mayx/blog
+http://106.14.189.125:3000/mayx/blog
+https://git.hundseth.com/mayx/blog
+https://git.xming.cloud/mayx/blog
+https://travgit.guillorystack.com/mayx/blog
+http://gitea.coderpath.com/mayx/blog
+https://gitea.thanh0x.com/mayx/blog
+http://175.198.180.19:3000/mayx/blog
+https://gitea.albanmary.com/mayx/blog
+http://ngtools.cn:53000/mayx/blog
+https://git.hantify.ru/mayx/blog
+https://git.unpas.dev/mayx/blog
+http://43.136.169.169:3000/mayx/blog
+http://121.196.213.68:3000/mayx/blog
+https://git.vereint-digital.de/mayx/blog
+https://git.advarna.fr/mayx/blog
+http://111.198.4.69:8092/mayx/blog
+https://git.lakaweb.com/mayx/blog
+https://git.kitti.ac.th/mayx/blog
+http://106.15.233.223:3001/mayx/blog
+http://giteastaraire.vip.cpolar.cn/mayx/blog
+https://forge.coreymclark.com/mayx/blog
+http://ems.iclematis.com:30000/mayx/blog
+https://git.micahmoore.io/mayx/blog
+https://git.zlyum.com/mayx/blog
+https://git.alexerdei.co.uk/mayx/blog
+https://git.aelhost.com/mayx/blog
+https://schokigeschmack.de/mayx/blog
+https://git.anatid.net/mayx/blog
+https://catsdev.com/mayx/blog
+https://git.lekai.info/mayx/blog
+https://git.avclick.ru/mayx/blog
+http://135.235.225.198:3000/mayx/blog
+http://giteaiposeek.cn/mayx/blog
+https://git.zimerguz.net/mayx/blog
+https://git.cukak.com/mayx/blog
+http://farsinot.ir:3000/mayx/blog
+https://gitea.sosaley.in/mayx/blog
+https://gitea.vidoks.fr/mayx/blog
+https://dev.ncot.uk/mayx/blog
+https://git.sick.earth/mayx/blog
+https://git.ncue.net/mayx/blog
+https://gitea.rbpsw.net/mayx/blog
+https://git.prayujt.com/mayx/blog
+http://121.199.11.156:3000/mayx/blog
+http://www.sh-hpg.com:3000/mayx/blog
+https://git.galaxylabs.ca/mayx/blog
+https://gitlab.n8n-store.xyz/mayx/blog
+https://forgejo.win/mayx/blog
+https://gitea.katiethe.dev/mayx/blog
+https://gitea.ai-demo.duckdns.org/mayx/blog
+https://git0.zpqrtbnk.net/mayx/blog
From d13dd560c26f1bbe2898acc386f9319b9f4834c4 Mon Sep 17 00:00:00 2001
From: mayx
Date: Sat, 1 Nov 2025 11:41:16 +0000
Subject: [PATCH 13/29] Update 4 files
- /_posts/2025-11-01-mirrors.md
- /_data/other_repo_list.csv
- /_layouts/post.html
- /Live2dHistoire/live2d/js/message.js
---
Live2dHistoire/live2d/js/message.js | 4 +-
_data/other_repo_list.csv | 230 ++++++++++++++++++++++++++--
_layouts/post.html | 4 +-
_posts/2025-11-01-mirrors.md | 91 +++++++++++
4 files changed, 316 insertions(+), 13 deletions(-)
create mode 100644 _posts/2025-11-01-mirrors.md
diff --git a/Live2dHistoire/live2d/js/message.js b/Live2dHistoire/live2d/js/message.js
index ebf821f..08d1675 100644
--- a/Live2dHistoire/live2d/js/message.js
+++ b/Live2dHistoire/live2d/js/message.js
@@ -201,9 +201,9 @@ if (!norunFlag) {
eventFlag = true;
}
var data = JSON.parse(event.data);
- if (data.response) {
+ if (data.response) {
outputContainer.textContent += data.response;
- }
+ }
}
}
} else {
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 65bbd63..7ae0b6e 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -69,7 +69,6 @@ https://git.tanxhub.com/mayx/blog
https://git.expiera.com/mayx/blog
https://gitea.nongnghiepso.com/mayx/blog
https://codes.tools.asitavsen.com/mayx/blog
-https://gitea.kursatessiz.com/mayx/blog
https://git.siin.space/mayx/blog
http://47.117.26.49:3000/mayx/blog
http://122.116.190.233:3001/mayx/blog
@@ -152,12 +151,10 @@ https://git.Apture.io/mayx/blog
https://git.dbfmp.cn/mayx/blog
http://103.231.8.120/mayx/blog
https://gitea.jasonstolle.com/mayx/blog
-https://git.istsoft.ru/mayx/blog
http://8.134.61.107:3000/mayx/blog
http://47.107.88.161:3000/mayx/blog
https://git.ktk-pc.de/mayx/blog
http://git.open-dev.ru/mayx/blog
-http://101.132.113.255:3000/mayx/blog
https://gitea.zybc.online/mayx/blog
https://git.votava.org/mayx/blog
http://8.137.12.29:3000/mayx/blog
@@ -297,7 +294,6 @@ https://git.campfiregg.ru/mayx/blog
https://gitea.net50.ne.jp/mayx/blog
https://git.ism-dev.net/mayx/blog
http://sinzero.xyz:3000/mayx/blog
-http://69.10.53.202:3000/mayx/blog
https://gitea.b54.co/mayx/blog
https://git.matevi.sh/mayx/blog
http://www.pcaidiy.cn:3000/mayx/blog
@@ -310,7 +306,6 @@ http://1.95.221.174:3000/mayx/blog
https://git.wangxinlei.cn/mayx/blog
http://101.200.74.121:3000/mayx/blog
http://123.56.193.182:3000/mayx/blog
-https://git.akarpov.ru/mayx/blog
http://60.204.131.99:3000/mayx/blog
http://femail.email:8418/mayx/blog
http://47.93.56.66:8080/mayx/blog
@@ -377,9 +372,7 @@ http://47.101.58.33:3000/mayx/blog
https://git.johnen.biz/mayx/blog
https://git.unitsoft.io/mayx/blog
https://gitea.synapsetec.cn/mayx/blog
-http://124.222.211.253:3000/mayx/blog
http://47.121.207.193:3000/mayx/blog
-http://git.pushecommerce.com/mayx/blog
http://220.132.16.87:3000/mayx/blog
https://git.tintinger.org/mayx/blog
http://gitea.yunshanghub.com:8081/mayx/blog
@@ -470,7 +463,6 @@ http://39.106.86.127:3000/mayx/blog
https://git.techspec.pro/mayx/blog
http://47.92.23.211:3000/mayx/blog
http://120.26.108.239:9188/mayx/blog
-http://felicitiz.fr/mayx/blog
https://git.van-peeren.de/mayx/blog
http://gitea.msadb.cn/mayx/blog
https://git.changenhealth.cn/mayx/blog
@@ -514,7 +506,6 @@ https://git.hotolab.win/mayx/blog
https://home.zhupei.me:3000/mayx/blog
https://gitea.theaken.com/mayx/blog
https://git.ja-schwarz.de/mayx/blog
-https://git.obicloud.net/mayx/blog
https://shanewan.cn:30000/mayx/blog
https://git.xemo-net.de/mayx/blog
https://git.bigtravelchat.com/mayx/blog
@@ -601,7 +592,6 @@ https://forge.coreymclark.com/mayx/blog
http://ems.iclematis.com:30000/mayx/blog
https://git.micahmoore.io/mayx/blog
https://git.zlyum.com/mayx/blog
-https://git.alexerdei.co.uk/mayx/blog
https://git.aelhost.com/mayx/blog
https://schokigeschmack.de/mayx/blog
https://git.anatid.net/mayx/blog
@@ -628,3 +618,223 @@ https://forgejo.win/mayx/blog
https://gitea.katiethe.dev/mayx/blog
https://gitea.ai-demo.duckdns.org/mayx/blog
https://git0.zpqrtbnk.net/mayx/blog
+http://159.203.33.179:3000/mayx/blog
+http://117.72.114.197:3000/mayx/blog
+http://192.210.186.179:20051/mayx/blog
+https://git.ashcloud.com/mayx/blog
+http://us2.fornoone.top:3000/mayx/blog
+https://git.louislabs.com/mayx/blog
+https://ste-van.de/mayx/blog
+https://git.novaa.xyz/mayx/blog
+https://gitea.noname-studios.es/mayx/blog
+http://101.46.208.93:3000/mayx/blog
+http://45.93.137.91:3000/mayx/blog
+https://git.smartdev.cz/mayx/blog
+http://23.94.57.60:3000/mayx/blog
+http://120.26.116.145:3000/mayx/blog
+https://git.atomos.io/mayx/blog
+https://git.tylantyson.com/mayx/blog
+https://watch.mommys.plumbing/mayx/blog
+https://devkona.net/mayx/blog
+https://gitea.avixc-nas.myds.me/mayx/blog
+http://www.ggafrik.site/mayx/blog
+https://gitea.chaopi.dev/mayx/blog
+https://git.jonasjones.dev/mayx/blog
+https://gitea.kaidodev.org/mayx/blog
+http://118.196.23.96:1866/mayx/blog
+http://47.119.120.128:8085/mayx/blog
+http://sjhome.cloud:3000/mayx/blog
+https://gitea.sciotech.cn/mayx/blog
+https://manage.gitea.djangoadmin.cn/mayx/blog
+http://8.148.220.5:8089/mayx/blog
+http://8.140.250.85:3000/mayx/blog
+https://gitea.damconsulting.llc/mayx/blog
+http://8.134.11.35:3000/mayx/blog
+https://dev.ilink-app.com/mayx/blog
+https://git.ctx.dev/mayx/blog
+https://git.nailoong.me/mayx/blog
+https://w2k.sh/mayx/blog
+http://82.157.205.190:3000/mayx/blog
+https://nas.szwyll.com:3000/mayx/blog
+http://baylan.la.asu.edu:3000/mayx/blog
+http://8.155.35.51:3000/mayx/blog
+https://git.koppa.pro/mayx/blog
+http://188.120.243.108:3000/mayx/blog
+http://202.65.194.19:3000/mayx/blog
+https://gitea.eggtech.net/mayx/blog
+http://47.101.60.131:10082/mayx/blog
+http://8.148.234.146:3001/mayx/blog
+https://git.ypepin.com/mayx/blog
+http://www.bzturbo.com.br/mayx/blog
+https://git.maiasoft.jp/mayx/blog
+https://git.athelas-conseils.fr/mayx/blog
+https://git.churiland.com/mayx/blog
+http://git.huangwc.com/mayx/blog
+https://gitea.xala.dev/mayx/blog
+http://101.201.34.43:3000/mayx/blog
+https://git.ixu.me/mayx/blog
+http://178.18.255.136:3000/mayx/blog
+http://118.89.124.175:3000/mayx/blog
+https://git.gloje-rinchen-dorjee-rinpoche-buddhist-monastery.org/mayx/blog
+https://git.pxlbuzzard.com/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
+http://47.108.217.75:3000/mayx/blog
+https://git.jakubzabski.pl/mayx/blog
+https://gitea.forgeandflowsolutions.com/mayx/blog
+https://gitea.ybxsddb.cc/mayx/blog
+https://www.git.omezaldama.xyz/mayx/blog
+https://vila.go.ro/mayx/blog
+https://git.olyntec.com/mayx/blog
+http://8.134.218.17:8013/mayx/blog
+https://www.invds.uk/mayx/blog
+http://124.223.89.168:8080/mayx/blog
+http://139.129.21.166:3000/mayx/blog
+http://111.231.240.168:9082/mayx/blog
+https://git.afonsosoares.com/mayx/blog
+https://gitea.nswteam.net/mayx/blog
+https://git.toad.city/mayx/blog
+http://103.191.208.145:3000/mayx/blog
+https://git.shawncarter.co.uk/mayx/blog
+http://209.141.47.52:3000/mayx/blog
+http://114.66.58.145:11501/mayx/blog
+https://git.apfern.com/mayx/blog
+http://120.46.213.136:9528/mayx/blog
+http://120.26.115.132:3000/mayx/blog
+http://47.103.155.22:3000/mayx/blog
+http://dapainas.asia:5990/mayx/blog
+http://60.204.158.188:3000/mayx/blog
+https://zqz5.com/mayx/blog
+https://git.3dizart.ru/mayx/blog
+http://119.3.252.2:3000/mayx/blog
+http://60.204.156.211:3000/mayx/blog
+http://youneed.top:10014/mayx/blog
+https://gitea.abra.me/mayx/blog
+https://git.yukaige.com/mayx/blog
+http://www.liubai.site:3000/mayx/blog
+http://nas.bi1kbu.com:8418/mayx/blog
+http://123.56.74.235:3000/mayx/blog
+http://15.204.210.141:30121/mayx/blog
+http://1.94.178.207:3000/mayx/blog
+http://47.96.145.34:3000/mayx/blog
+https://gitea.tsaida.synology.me/mayx/blog
+http://xapple.ru:3000/mayx/blog
+https://git.teygaming.com/mayx/blog
+https://git.alhsk.top/mayx/blog
+http://8.138.4.170:8980/mayx/blog
+https://git.fishestlife.com/mayx/blog
+http://185.128.138.246:3000/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://87.228.74.88:3000/mayx/blog
+http://118.163.190.249:3000/mayx/blog
+https://git.farmeris.sk/mayx/blog
+http://39.107.226.169:3000/mayx/blog
+https://git.ueda.sk/mayx/blog
+http://113.45.76.155:3000/mayx/blog
+http://47.100.28.88:3000/mayx/blog
+http://168.138.196.70:3000/mayx/blog
+http://39.96.211.118:3000/mayx/blog
+https://git.server.isalem.net/mayx/blog
+http://47.103.100.52:3000/mayx/blog
+https://git.cos777nnn777.win/mayx/blog
+http://5.189.140.23:8080/mayx/blog
+https://gitea.xy88.fun/mayx/blog
+http://8.134.253.216:8081/mayx/blog
+http://121.37.47.20:3000/mayx/blog
+https://code.metapipe.net/mayx/blog
+https://gitea.alittlejag.uk/mayx/blog
+https://git.antropix.dev/mayx/blog
+http://15.237.198.144/mayx/blog
+https://gitea.soap.wf/mayx/blog
+http://123.249.119.122:3000/mayx/blog
+http://183.6.120.101:30000/mayx/blog
+http://134.122.173.191:3000/mayx/blog
+https://git.kalinin.in/mayx/blog
+http://8.138.81.5:3000/mayx/blog
+https://xgit.tsuimg.top/mayx/blog
+http://123.60.156.158:13000/mayx/blog
+http://57.129.94.190:3000/mayx/blog
+https://gitea.micro-stack.org/mayx/blog
+https://vapor.solarvoid.com/mayx/blog
+http://101.132.160.67:3000/mayx/blog
+https://gitea.temp.brentgruber.com/mayx/blog
+https://www.naepho.dev/mayx/blog
+http://git.innoschool.org:3000/mayx/blog
+https://www.know-how.store/mayx/blog
+http://47.102.147.170:3050/mayx/blog
+https://git.borg.unak.is/mayx/blog
+http://209.38.235.254:3000/mayx/blog
+http://52.66.204.217:3001/mayx/blog
+http://123.60.153.169:3006/mayx/blog
+https://pdje.uk/mayx/blog
+http://172.236.250.154:3000/mayx/blog
+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
+https://git.hibikiame.com:3000/mayx/blog
+https://www.yseven.net/mayx/blog
+http://8.138.187.132:3000/mayx/blog
+https://gitea.codeathome.ovh/mayx/blog
+http://117.72.15.187:3000/mayx/blog
+http://159.223.54.247:3030/mayx/blog
+https://git.jaytux.com/mayx/blog
+http://81.70.30.91:3000/mayx/blog
+http://47.98.105.248:3000/mayx/blog
+http://218.84.152.14:65001/mayx/blog
+https://gitea.kisechan.space/mayx/blog
+http://103.118.17.150:3000/mayx/blog
+http://nas-home.top:8418/mayx/blog
+http://140.238.9.133:3007/mayx/blog
+http://8.138.100.115:3000/mayx/blog
+https://git.soupcafe.cc/mayx/blog
+https://git.mwapp.com.br/mayx/blog
+http://yidaima.cn:6008/mayx/blog
+https://git.happytanuki.kr/mayx/blog
+http://213.199.46.54:3001/mayx/blog
+http://47.94.156.73:3000/mayx/blog
+http://185.126.237.57:3000/mayx/blog
+http://47.97.50.232:3000/mayx/blog
+http://106.54.211.95:3000/mayx/blog
+http://210.245.20.73:3333/mayx/blog
+http://43.248.97.109:3000/mayx/blog
+http://git.dhitechnical.com/mayx/blog
+http://113.207.86.104:3080/mayx/blog
+http://down.luanhailiang.cn:9000/mayx/blog
+http://39.96.195.72:10082/mayx/blog
+http://8.140.60.82:3000/mayx/blog
+https://gitea.klopfenstein.org/mayx/blog
+http://8.148.24.160:3000/mayx/blog
+https://gitea.hailstorm.gay/mayx/blog
+http://hxu.ac.cn:3000/mayx/blog
+https://gitea.codeopslag.nl/mayx/blog
+http://221.219.181.35:30000/mayx/blog
+https://git.cymnb.com/mayx/blog
+http://8.163.31.138:3000/mayx/blog
+http://47.108.27.137:3000/mayx/blog
+http://182.92.9.236:3000/mayx/blog
+http://47.96.98.191:9980/mayx/blog
+http://172.172.102.93:3000/mayx/blog
+http://101.132.255.70:3000/mayx/blog
+http://139.196.179.195:3000/mayx/blog
+http://115.120.245.164:3000/mayx/blog
+http://120.27.19.58:30000/mayx/blog
+https://git.devnul.cz/mayx/blog
+https://git-virtual.ru/mayx/blog
+http://47.122.125.40:16867/mayx/blog
+https://git.infinitix.kr/mayx/blog
+https://gitea.suchodupin.com/mayx/blog
+http://8.134.116.217:3000/mayx/blog
+http://117.72.219.18:6000/mayx/blog
+http://47.99.144.51:3000/mayx/blog
+https://git.rcdiamondgh.cc/mayx/blog
+http://35.194.179.90:3000/mayx/blog
+http://188.245.173.247:3080/mayx/blog
+http://8.153.14.94:61308/mayx/blog
+http://git.liubeiting.cn:8000/mayx/blog
diff --git a/_layouts/post.html b/_layouts/post.html
index 1de008b..54ae900 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -59,7 +59,9 @@ layout: default
return;
} else {
const data = JSON.parse(event.data);
- outputContainer.textContent += data.response;
+ if (data.response) {
+ outputContainer.textContent += data.response;
+ }
}
}
});
diff --git a/_posts/2025-11-01-mirrors.md b/_posts/2025-11-01-mirrors.md
new file mode 100644
index 0000000..a41f9e5
--- /dev/null
+++ b/_posts/2025-11-01-mirrors.md
@@ -0,0 +1,91 @@
+---
+layout: post
+title: 让博客永恒的探索
+tags: [Git, Gitea, 镜像, Forever]
+---
+
+ Mayx Forever Project – Phase II
+
+# 起因
+ 在前段时间,我通过[Ecosyste.ms: Repos](https://github.com/ecosyste-ms/repos)找到了不少Git平台的实例,也在探索的过程中发现和了解了[Tilde社区](/2025/08/10/tilde.html)。当然仅仅是这样显然还不够,里面的实例太多了,显然还有一些其他值得探索的东西。
+ 在我查看这里面的某些Gitea实例时,发现了一些奇怪的事情,有些实例的仓库数和用户数多得离谱,正常来说除了几个大的平台,绝大多数应该只有几十到几百个仓库,这就让我有点好奇了。于是当我点进去之后发现,里面有一大堆仓库都是空的,而且用户名和仓库名都非常有规律,看起来都是一组单词加4位数字命名的,显然这不是正常现象,应该是一种有组织的行为。
+
+# 被SPAM滥用的Git实例
+ 于是我就简单看了一下这些异常的仓库和用户的规律,可以发现每个用户都填了个人主页地址,然后个人简介里大都是一段广告词。另外这些个人主页的地址看起来很多都是利用公开可注册的服务,比如开源的有各种Git平台、Wiki,以及论坛,还有一些允许用户写个人主页的新闻网站。在这其中,Git平台大多都没有广告文章,基本上都是通过个人主页地址链接到网站,而Wiki之类的就会写一些篇幅比较长的广告文章。
+ 另外这些平台但凡还在开放注册,就会被以大约每分钟一次的速度自动注册新账号……所以这种事情到底是谁在干呢?我翻了几个仓库,里面的广告多种多样,有些看起来还算正常,还有一些看起来有些黑产。其中我发现有一家叫做“悠闲羊驼SEO”的网站,看介绍主要是给加密货币、对冲基金和博彩网站提供SEO优化的,再加上这些被滥用的平台里也有不少类似的广告,所以我怀疑这些滥用的行为就是这家SEO公司做的(虽然没有证据😂)。
+
+# 永恒的探索
+ 看到这么多Git平台被滥用,我就有个想法,之前为了保证可靠性给博客加了不少[镜像](/proxylist.html),除此之外也在互联网档案馆、[Software Heritage](https://archive.softwareheritage.org/)、Git Protect等存档服务中上传了备份,而且也在IPFS和Arweave等Web3平台上有相应的副本,但是我觉得还不够,再大的平台也有可能会倒闭,IPFS不Pin还会被GC,至于Arweave前段时间看了一眼整个网络才几百个节点,感觉一点也不靠谱……所以我应该好好利用这些平台提高我博客的可靠性。
+ 既然那些Spammer只是为了SEO去滥用这些平台,不如让我利用这些平台给我的博客进行镜像吧!至于使用哪个平台……显然用Git平台方便一些,所以接下来就该考虑一下怎么样分发了。
+
+# 镜像的分发
+ 在Git平台中也有很多选择,最知名的是GitLab,不过GitLab有点复杂,接口不太好用……而且很多实例没有开镜像仓库的功能,毕竟如果我每次更新都给一堆仓库推送太费时间了,我打算让各个平台主动从GitHub上拉取我的最新代码。正好Gogs系列的平台基本上都默认支持镜像仓库,不过在我实际使用的时候发现Gogs默认情况下注册要验证码……写识别验证码感觉又挺麻烦,而Gogs的两个分支——Gitea和Forgejo反倒没有……还挺奇怪,所以接下来我的目标主要就是Gitea和Forgejo的实例了。
+ 既然决定好目标,我就得先发现它们了,那些Spammer在注册的时候会在个人主页里写不同的网站,其中也有一些类Gogs平台,那么我可以先找一个Gitea平台,用接口读取这些网站,然后再调类Gogs专属的接口来检测这些网站哪个是类Gogs平台,于是我就写了个[脚本](https://github.com/Mabbs/spam_gogs-like_scanner/blob/main/main.py)来找到它们。
+ 找到这些平台之后就该注册了,还好Gitea和Forgejo默认没有验证码,注册起来也很简单,随便写了个函数实现了一下:
+```python
+def register_account(session, url, email, username, password):
+ try:
+ resp = session.get(url + "/user/sign_up")
+ soup = BeautifulSoup(resp.text, "html.parser")
+ csrf_token = soup.find("input", {"name": "_csrf"}).get("value")
+
+ payload = {
+ "_csrf": csrf_token,
+ "user_name": username,
+ "email": email,
+ "password": password,
+ "retype": password,
+ }
+ headers = {"Content-Type": "application/x-www-form-urlencoded"}
+ resp = session.post(url + "/user/sign_up", data=payload, headers=headers)
+ if "flash-success" in resp.text:
+ print(
+ f"Successfully registered at {url} with username: {username}, email: {email}, password: {password}"
+ )
+ save_to_file(
+ "instances_userinfo.csv", f"{url},{username},{email},{password}"
+ )
+ return True
+ else:
+ print(f"Failed to register at {url}.")
+ return False
+ except Exception as e:
+ print(f"Error registering at {url}: {e}")
+ return False
+```
+ 注册完之后就该导入仓库了,只是通过模拟前端发包的方式在Gitea和Forgejo中不同版本的表现可能不太一样,所以我想用API实现,但是API又得有API Key,生成API Key还得模拟前端发包😥……所以怎么都绕不过。
+ 不过这个生成API Key还挺麻烦,有些版本不需要配权限范围,有些配权限的参数还不一样……不过我就是随便一写,凑合用吧,像那些专业的Spammer应该是有更强大的脚本判断各种情况。
+ 最后我还是选择用API导入,又写了个函数:
+```python
+def import_repos(token, url):
+ try:
+ response = requests.post(
+ url=url + "/api/v1/repos/migrate",
+ headers={
+ "Authorization": "token " + token,
+ },
+ json={
+ "repo_name": "blog",
+ "mirror_interval": "1h",
+ "mirror": True,
+ "description": "Mayx's Home Page",
+ "clone_addr": "https://github.com/Mabbs/mabbs.github.io",
+ },
+ )
+ if response.status_code == 201:
+ print("Repository import initiated successfully.")
+ save_to_file("repo_list.txt", url + "/mayx/blog")
+ return True
+ else:
+ print(f"Failed to initiate repository import. Status code: {response.status_code}")
+ print(f"Response: {response.text}")
+ return False
+ except Exception as e:
+ print(f"Error updating website: {e}")
+ return False
+```
+ 脚本写好之后我就只需要重复扫描、注册、导入的步骤就行了,这样我的镜像就会越来越多,而且用类Gogs的实例还有一个好处就是不需要我手动推送,它会自动定时拉取我的仓库保持最新,这样也许只要人类文明存在我的博客就会在某处存在吧🤣。
+ 最后我创建的Git镜像可以在[这里](/other_repo_list.html)看到,看起来还是挺壮观啊😋。只不过像这种会被Spammer随便注册的Git平台实例很难说它能活多久,如果没人管而且是云服务器也许到期就没了,有人管的话应该不会允许这么多Spam行为吧……
+
+# 感想
+ 不知道用“量”来确保博客的永恒更可靠……还是用“质”的方式更好呢?其实我觉得还得是活动的更好,就像我以前所说的,如果有[僵尸网络](/2024/11/02/trojan.html#%E6%84%9F%E6%83%B3),自动帮我执行发现并推送的操作,也许比等着这些实例逐渐消失更好吧……只不过那样可能就不太友好了😂。
\ No newline at end of file
From e9ac9bf1df043c79c540674f0ad113b0583bc4e6 Mon Sep 17 00:00:00 2001
From: mayx
Date: Wed, 5 Nov 2025 09:47:49 +0000
Subject: [PATCH 14/29] Update 3 files
- /Gemfile
- /_data/other_repo_list.csv
- /_data/ai-cache.json
---
Gemfile | 3 ++
_data/ai-cache.json | 3 +-
_data/other_repo_list.csv | 101 ++++++++++++++++++++++++++++++++------
3 files changed, 91 insertions(+), 16 deletions(-)
diff --git a/Gemfile b/Gemfile
index 1299947..211c197 100644
--- a/Gemfile
+++ b/Gemfile
@@ -14,4 +14,7 @@ group :jekyll_plugins do
gem "jekyll-paginate", "~> 1.1.0"
gem "kramdown-parser-gfm", "~> 1.1.0"
gem "kramdown", "~> 2.3.2"
+ gem "csv"
+ gem "base64"
+ gem "bigdecimal"
end
diff --git a/_data/ai-cache.json b/_data/ai-cache.json
index 4bcce70..5a52736 100644
--- a/_data/ai-cache.json
+++ b/_data/ai-cache.json
@@ -170,5 +170,6 @@
"/2025/08/01/sw-proxy.html": "这篇文章介绍了作者如何利用Service Worker在现代浏览器中实现一个简单的反向代理功能,以提供博客的备份和离线访问。作者原本希望通过Service Worker在用户浏览器中运行一个Web服务器来存储博客副本,但发现 tar.gz 文件的处理需要第三方库且难以找到适用的解决方案,尤其是对于tar文件的处理。作者最终选择使用Service Worker作为反向代理,将请求转发到其他网站,如GeoCities风格的静态网站托管平台,实现了类似的效果。这个过程中,作者体验到了浏览器功能的强大,并认为Service Worker在离线场景中有更大的潜力,尽管在他的例子中并没有充分展示这种优势。",
"/2025/08/10/tilde.html": "这篇文章介绍了作者在Tilde社区的体验,这是一类基于类Unix环境的公共服务器社区,类似于家目录,提供预装的软件、开发环境和公共服务,如聊天室、邮件、BBS论坛等,强调了社区的互动性和共享精神。作者通过申请、审核过程加入了几个社区,并详细描述了在这些社区中的个人主页、编程支持(如Gemini和Gopher协议)、博客发布、代码托管(Git支持)、CI/CD部署以及使用Git hooks自动化博客更新等功能。尽管作者受限于语言和工具使用体验,未能充分参与社区交流,但对社区学习新知识和丰富博客内容印象深刻。",
"/2025/09/01/quine.html": "这篇文章主要介绍了作者在博客部署过程中,对ZIP Quine(自包含压缩包)和自产生程序的探索过程。作者起初想利用压缩包实现离线浏览,但遇到了压缩包不包含自身的问题。随后,作者回顾了ZIP Quine的原理,如droste.zip,以及如何通过DEFLATE压缩算法的LZ77编码实现自包含。作者尝试了Russ Cox的方案,但发现由于压缩格式限制,实际操作中存在数据容量的限制,无法存下整个博客。尽管如此,作者还是研究了嵌套循环的ZIP Quine,如Ruben Van Mello的论文中所描述的,尽管空间仍然有限。探索过程中,作者还学习了自产生程序(Quine)的概念,包括其实现原理和各种编程语言中的例子。作者最后感慨,探索过程中的收获比原本的目标更重要。",
- "/2025/10/12/recover.html": "这篇文章讲述了作者通过GitHub的Fork特性找回一个被删除的Brainfuck可视化演示仓库的经历。由于原仓库和作者主页都已消失,作者推测GitHub在Fork时会共享对象库,只要有任意一个Fork仓库存在,GitHub就会保留所有对象,从而可以通过找到一个Fork仓库的最新提交Hash值来还原目标仓库。作者通过Linux内核仓库的Fork进行验证,随后在互联网档案馆上找到目标仓库的Fork以及其Hash值,最终通过Git命令将本地仓库的HEAD指针指向目标提交,成功恢复了该仓库的代码,并将其部署到自己的GitHub Pages上。最后,作者发现Software Heritage组织会保存所有代码,因此在遇到类似情况时可以直接通过该平台进行查找。"
+ "/2025/10/12/recover.html": "这篇文章讲述了作者通过GitHub的Fork特性找回一个被删除的Brainfuck可视化演示仓库的经历。由于原仓库和作者主页都已消失,作者推测GitHub在Fork时会共享对象库,只要有任意一个Fork仓库存在,GitHub就会保留所有对象,从而可以通过找到一个Fork仓库的最新提交Hash值来还原目标仓库。作者通过Linux内核仓库的Fork进行验证,随后在互联网档案馆上找到目标仓库的Fork以及其Hash值,最终通过Git命令将本地仓库的HEAD指针指向目标提交,成功恢复了该仓库的代码,并将其部署到自己的GitHub Pages上。最后,作者发现Software Heritage组织会保存所有代码,因此在遇到类似情况时可以直接通过该平台进行查找。",
+ "/2025/11/01/mirrors.html": "这篇文章讲述了作者为了提高博客的可靠性,探索利用被滥用的Git平台进行博客镜像的想法和实践。作者发现一些Git实例存在大量空仓库和异常用户,怀疑是SEO公司滥用,因此决定利用这些平台进行博客镜像备份,以应对平台倒闭或数据丢失的风险。作者选择Gitea和Forgejo平台作为目标,编写脚本自动注册账号并导入博客仓库,实现了自动化镜像分发。作者也意识到此类平台的稳定性存在不确定性,并思考了“量”和“质”两种方式确保博客永恒性的优劣,最终认为建立一个活跃的、自动执行维护操作的网络可能更有效。文章最后展示了作者创建的Git镜像列表,并表达了对博客永恒性的思考。"
}
\ No newline at end of file
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 7ae0b6e..c6f7167 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -11,13 +11,13 @@ https://cgit.tilde.town/~mayx/blog
https://gitlab.haskell.org/mayx/mayx
https://pagure.io/fork/mabbs/Blog
https://repo2.serv00.com/git/pub/Mayx/mayx/
+https://git.hana.im/mayx/blog
https://git.tea-assets.com/mayx/blog
https://repo.komhumana.org/mayx/blog
https://git.minetest.land/Mayx/blog
https://git.dungeon.fi/mayx/blog
http://ucarmesin.de:3000/mayx/blog
http://101.34.211.172:3000/mayx/blog
-http://178.44.118.232/mayx/blog
https://gitea.johannes-hegele.de/mayx/blog
https://git.paulcolfer.ie/mayx/blog
https://git.goolink.org/mayx/blog
@@ -81,7 +81,6 @@ https://gitea.pickalurv.com/mayx/blog
http://183.239.197.12:10803/mayx/blog
https://git.zeroplay.io/mayx/blog
https://git.successkaoyan.com/mayx/blog
-https://git.veydlin.com/mayx/blog
https://gitea.bitshift.us/mayx/blog
http://114.55.134.197:3000/mayx/blog
http://139.129.25.251:3000/mayx/blog
@@ -119,7 +118,6 @@ https://git.tinker.infamous.games/mayx/blog
https://git.yi-guanjia.com/mayx/blog
http://106.14.174.241:3000/mayx/blog
https://git.datdanguy.com/mayx/blog
-http://43.163.207.174:3000/mayx/blog
http://rack1.raincs.cc:20253/mayx/blog
https://git.repo.in.net/mayx/blog
https://git.dihe.moe/mayx/blog
@@ -214,7 +212,6 @@ https://git.unicom.studio/mayx/blog
https://Gitea.Sephalon.net/mayx/blog
https://git.gestio365.com/mayx/blog
http://47.122.132.187:3000/mayx/blog
-https://gitea.mahss.io/mayx/blog
https://git.k-corporation.org/mayx/blog
https://git.myinternet.services/mayx/blog
http://43.138.173.153:8804/mayx/blog
@@ -301,7 +298,6 @@ https://code.tiantongsl.com/mayx/blog
http://213.35.118.215:60001/mayx/blog
https://git.jasonpittman.com/mayx/blog
https://gitea.shirom.me/mayx/blog
-https://git.pasarex.com/mayx/blog
http://1.95.221.174:3000/mayx/blog
https://git.wangxinlei.cn/mayx/blog
http://101.200.74.121:3000/mayx/blog
@@ -491,7 +487,6 @@ http://47.112.118.149:10082/mayx/blog
https://gitea.jobiglo.com/mayx/blog
https://gitea.rpg-librarium.de/mayx/blog
https://git.juici.ly/mayx/blog
-https://git.lkwplus.com/mayx/blog
http://begild.top:8418/mayx/blog
http://58.221.13.198:30010/mayx/blog
https://gitea.kaz62.ru/mayx/blog
@@ -555,7 +550,6 @@ https://gitea.jludwig.net/mayx/blog
https://git.z1.mk/mayx/blog
http://185.87.111.46:3000/mayx/blog
http://suncheng.asia:14200/mayx/blog
-https://git.sorogon.eu/mayx/blog
http://1.94.13.224:9080/mayx/blog
https://git.manabo.org/mayx/blog
https://auric-org.org/mayx/blog
@@ -604,7 +598,6 @@ https://git.zimerguz.net/mayx/blog
https://git.cukak.com/mayx/blog
http://farsinot.ir:3000/mayx/blog
https://gitea.sosaley.in/mayx/blog
-https://gitea.vidoks.fr/mayx/blog
https://dev.ncot.uk/mayx/blog
https://git.sick.earth/mayx/blog
https://git.ncue.net/mayx/blog
@@ -648,11 +641,9 @@ https://gitea.sciotech.cn/mayx/blog
https://manage.gitea.djangoadmin.cn/mayx/blog
http://8.148.220.5:8089/mayx/blog
http://8.140.250.85:3000/mayx/blog
-https://gitea.damconsulting.llc/mayx/blog
http://8.134.11.35:3000/mayx/blog
https://dev.ilink-app.com/mayx/blog
https://git.ctx.dev/mayx/blog
-https://git.nailoong.me/mayx/blog
https://w2k.sh/mayx/blog
http://82.157.205.190:3000/mayx/blog
https://nas.szwyll.com:3000/mayx/blog
@@ -696,10 +687,8 @@ http://111.231.240.168:9082/mayx/blog
https://git.afonsosoares.com/mayx/blog
https://gitea.nswteam.net/mayx/blog
https://git.toad.city/mayx/blog
-http://103.191.208.145:3000/mayx/blog
https://git.shawncarter.co.uk/mayx/blog
http://209.141.47.52:3000/mayx/blog
-http://114.66.58.145:11501/mayx/blog
https://git.apfern.com/mayx/blog
http://120.46.213.136:9528/mayx/blog
http://120.26.115.132:3000/mayx/blog
@@ -743,7 +732,6 @@ http://47.103.100.52:3000/mayx/blog
https://git.cos777nnn777.win/mayx/blog
http://5.189.140.23:8080/mayx/blog
https://gitea.xy88.fun/mayx/blog
-http://8.134.253.216:8081/mayx/blog
http://121.37.47.20:3000/mayx/blog
https://code.metapipe.net/mayx/blog
https://gitea.alittlejag.uk/mayx/blog
@@ -763,7 +751,6 @@ https://vapor.solarvoid.com/mayx/blog
http://101.132.160.67:3000/mayx/blog
https://gitea.temp.brentgruber.com/mayx/blog
https://www.naepho.dev/mayx/blog
-http://git.innoschool.org:3000/mayx/blog
https://www.know-how.store/mayx/blog
http://47.102.147.170:3050/mayx/blog
https://git.borg.unak.is/mayx/blog
@@ -789,7 +776,6 @@ http://81.70.30.91:3000/mayx/blog
http://47.98.105.248:3000/mayx/blog
http://218.84.152.14:65001/mayx/blog
https://gitea.kisechan.space/mayx/blog
-http://103.118.17.150:3000/mayx/blog
http://nas-home.top:8418/mayx/blog
http://140.238.9.133:3007/mayx/blog
http://8.138.100.115:3000/mayx/blog
@@ -838,3 +824,88 @@ http://35.194.179.90:3000/mayx/blog
http://188.245.173.247:3080/mayx/blog
http://8.153.14.94:61308/mayx/blog
http://git.liubeiting.cn:8000/mayx/blog
+http://66.179.208.56:3001/mayx/blog
+http://59.110.63.79:13000/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
+https://lunarvow.top:12494/mayx/blog
+http://223.108.157.174:3000/mayx/blog
+http://120.24.249.56/mayx/blog
+https://git.davidwebgt.com/mayx/blog
+http://47.100.90.152:3000/mayx/blog
+http://120.24.251.176:30000/mayx/blog
+http://121.196.237.108:3000/mayx/blog
+http://g.gamesns.cn:3000/mayx/blog
+http://54.179.203.2:3000/mayx/blog
+http://14.103.246.124:16000/mayx/blog
+http://www.yuqiya.cn:8499/mayx/blog
+http://git.goodxp.cn/mayx/blog
+http://47.104.189.3:3000/mayx/blog
+https://git.twinkle.network/mayx/blog
+http://8.137.106.149:3000/mayx/blog
+http://47.112.119.250:3000/mayx/blog
+http://8.137.170.249:3000/mayx/blog
+https://mygit.kikyps.com/mayx/blog
+http://152.42.207.183:3000/mayx/blog
+https://git.lucasluqui.com/mayx/blog
+http://47.99.60.81:10082/mayx/blog
+http://120.211.66.170:8418/mayx/blog
+http://47.242.181.61:3333/mayx/blog
+http://187.189.244.23:3000/mayx/blog
+http://123.60.98.226:3000/mayx/blog
+http://58.176.21.43:9004/mayx/blog
+https://gitea.vilcap.com/mayx/blog
+https://git.2b8.org/mayx/blog
+http://8.137.94.229:3000/mayx/blog
+http://121.196.245.62/mayx/blog
+http://47.92.35.224:3000/mayx/blog
+http://47.102.209.69:53000/mayx/blog
+https://axcl.duckdns.org:8091/mayx/blog
+http://116.205.97.109:3000/mayx/blog
+https://gitea.ysme.top/mayx/blog
+http://8.140.242.230:3000/mayx/blog
+http://8.138.142.17:3000/mayx/blog
+https://git.babalish.com/mayx/blog
+http://47.111.161.191:3000/mayx/blog
+http://47.95.31.56:20080/mayx/blog
+http://123.56.231.200:3000/mayx/blog
+http://113.46.142.74:3000/mayx/blog
+http://47.100.0.167:3000/mayx/blog
+http://www.koelndom.cn:13030/mayx/blog
+http://209.127.59.74:3000/mayx/blog
+http://git.vimer.top:4000/mayx/blog
+http://111.15.179.73:3000/mayx/blog
+http://47.113.119.107:3000/mayx/blog
+https://git.tuongthoi.website/mayx/blog
+https://git.dotb.cloud/mayx/blog
+http://178.205.99.36:3000/mayx/blog
+https://git.bigdalang.com/mayx/blog
+https://gitea.augeo.dev/mayx/blog
+https://demo.stam.kr/mayx/blog
+https://g.szqingling.cn/mayx/blog
+http://120.46.23.215:3000/mayx/blog
+http://47.108.75.198:3000/mayx/blog
+http://121.41.2.71:3000/mayx/blog
+http://47.114.94.196:8030/mayx/blog
+https://sithcom.de/mayx/blog
+http://156.238.243.144:3000/mayx/blog
+http://8.138.242.82:8888/mayx/blog
+http://37.60.245.108/mayx/blog
+http://110.41.177.80:5000/mayx/blog
+https://gitea.dsmaster.myds.me/mayx/blog
+https://git.denco.store/mayx/blog
+http://intechrnd.iptime.org:3000/mayx/blog
+https://gitea.primecontrols-dev.com/mayx/blog
+http://47.104.160.69:3000/mayx/blog
+http://157.66.191.31:3000/mayx/blog
+http://39.104.61.219:3000/mayx/blog
+http://www.scserverddns.top:13000/mayx/blog
+http://156.255.1.229:3000/mayx/blog
+http://120.237.152.218:8888/mayx/blog
+https://git.ndpcloud.ru/mayx/blog
+https://dev.kirill-vorotov.com/mayx/blog
+https://gitea.va-comer.net/mayx/blog
+https://git.lucas-michel.fr/mayx/blog
+http://60.205.162.59:3000/mayx/blog
From da73615b7308fb45699cf471f0f39d69daecc63d Mon Sep 17 00:00:00 2001
From: mayx
Date: Sun, 30 Nov 2025 16:00:03 +0000
Subject: [PATCH 15/29] Update 2 files
- /_posts/2025-12-01-linux.md
- /_data/other_repo_list.csv
---
_data/other_repo_list.csv | 130 +++++++++----------------------------
_posts/2025-12-01-linux.md | 38 +++++++++++
2 files changed, 69 insertions(+), 99 deletions(-)
create mode 100644 _posts/2025-12-01-linux.md
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index c6f7167..96652bd 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -1,5 +1,6 @@
repo_url
http://gdatura24gtdy23lxd7ht3xzx6mi7mdlkabpvuefhrjn4t5jduviw5ad.onion/Mayx/mayx
+http://git.dkforestseeaaq2dqz2uflmlsybvnq2irzn4ygyvu53oazyorednviid.onion/mayx/blog
http://giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q.b32.i2p/mayx/blog
https://gitlab.lain.la/mayx/mayx.pages.lain.la
https://gitea.moe/Mayx/mayx
@@ -15,15 +16,11 @@ https://git.hana.im/mayx/blog
https://git.tea-assets.com/mayx/blog
https://repo.komhumana.org/mayx/blog
https://git.minetest.land/Mayx/blog
-https://git.dungeon.fi/mayx/blog
http://ucarmesin.de:3000/mayx/blog
http://101.34.211.172:3000/mayx/blog
https://gitea.johannes-hegele.de/mayx/blog
https://git.paulcolfer.ie/mayx/blog
-https://git.goolink.org/mayx/blog
https://git.octava.cool/mayx/blog
-https://git.haowuan.top/mayx/blog
-https://git.esc-plus.com/mayx/blog
http://101.132.73.14:3000/mayx/blog
http://117.72.78.89:3000/mayx/blog
https://gitea.stormyhome.net/mayx/blog
@@ -32,7 +29,6 @@ http://47.120.60.153:10880/mayx/blog
http://zfselect.cn:3000/mayx/blog
http://61.139.16.27:26684/mayx/blog
https://git.dpark.io/mayx/blog
-https://git.ykonkov.com/mayx/blog
http://116.62.245.34:3000/mayx/blog
https://git.johann-brauer.de/mayx/blog
https://git.shaunmcpeck.com/mayx/blog
@@ -44,7 +40,6 @@ https://git.tux.pizza/mayx/blog
https://code.dsconce.space/mayx/blog
https://git.anibilag.ru/mayx/blog
https://git.lolpro11.me/mayx/blog
-https://git.unglab.com/mayx/blog
https://git.empirica.pro/mayx/blog
http://47.115.203.168:3000/mayx/blog
http://www.gitea.zhangc.top:3000/mayx/blog
@@ -64,13 +59,10 @@ 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://git.casperxddddd.uk/mayx/blog
-https://git.tanxhub.com/mayx/blog
https://git.expiera.com/mayx/blog
https://gitea.nongnghiepso.com/mayx/blog
https://codes.tools.asitavsen.com/mayx/blog
https://git.siin.space/mayx/blog
-http://47.117.26.49:3000/mayx/blog
http://122.116.190.233:3001/mayx/blog
http://101.200.127.15:3000/mayx/blog
http://50.19.111.193:3000/mayx/blog
@@ -84,7 +76,6 @@ https://git.successkaoyan.com/mayx/blog
https://gitea.bitshift.us/mayx/blog
http://114.55.134.197:3000/mayx/blog
http://139.129.25.251:3000/mayx/blog
-http://git4edu.net/mayx/blog
http://45.33.87.87/mayx/blog
http://162.19.95.94:3000/mayx/blog
https://git.rankenste.in/mayx/blog
@@ -92,11 +83,9 @@ https://git.ghostpacket.org/mayx/blog
https://git.catswords.net/mayx/blog
http://168.126.28.36:3000/mayx/blog
https://git.cloud.leonclassroom.com/mayx/blog
-https://git.noxxxx.com/mayx/blog
http://120.25.239.206:20080/mayx/blog
https://registry.gametuoitho.vn/mayx/blog
http://8.137.103.221:3000/mayx/blog
-https://gitea.lutix.org/mayx/blog
http://120.79.27.232:3000/mayx/blog
http://wangbeibei.xyz:6002/mayx/blog
http://43.224.227.219:3000/mayx/blog
@@ -108,7 +97,6 @@ http://69.62.77.234:8888/mayx/blog
https://gitea.bake.systems/mayx/blog
http://8.134.15.96:3000/mayx/blog
http://112.219.147.186:7000/mayx/blog
-https://gitea.siriusun.com/mayx/blog
http://47.119.38.109:3000/mayx/blog
https://mysite.myvnc.com:3000/mayx/blog
http://8.134.32.42:3000/mayx/blog
@@ -120,12 +108,10 @@ http://106.14.174.241:3000/mayx/blog
https://git.datdanguy.com/mayx/blog
http://rack1.raincs.cc:20253/mayx/blog
https://git.repo.in.net/mayx/blog
-https://git.dihe.moe/mayx/blog
http://47.113.231.74:3000/mayx/blog
https://gitea.belanjaparts.com/mayx/blog
http://185.208.225.190:3000/mayx/blog
https://git.sudo-fhir.au/mayx/blog
-https://git.odabasioglu.fr/mayx/blog
https://git.warzin.com/mayx/blog
https://git.burning.cloud/mayx/blog
https://git.ihackfx.ru/mayx/blog
@@ -134,7 +120,6 @@ https://git.flywithu.com/mayx/blog
https://git.purplepanda.cc/mayx/blog
https://gitea.freeyoursystem.de/mayx/blog
https://git.moguyn.cn/mayx/blog
-https://git.arachno.de/mayx/blog
https://git.zhanzhi.life/mayx/blog
http://121.36.255.50:3000/mayx/blog
https://apoloz-git.md-desk.ru/mayx/blog
@@ -151,20 +136,16 @@ http://103.231.8.120/mayx/blog
https://gitea.jasonstolle.com/mayx/blog
http://8.134.61.107:3000/mayx/blog
http://47.107.88.161:3000/mayx/blog
-https://git.ktk-pc.de/mayx/blog
http://git.open-dev.ru/mayx/blog
-https://gitea.zybc.online/mayx/blog
https://git.votava.org/mayx/blog
http://8.137.12.29:3000/mayx/blog
https://gitea.irons.nz/mayx/blog
https://gitea.madf12.com/mayx/blog
http://8.134.104.234:3000/mayx/blog
-http://45.45.238.98:3000/mayx/blog
http://git.ugohous.com/mayx/blog
https://git.vce.de/mayx/blog
https://gitea.carmon.co.kr/mayx/blog
http://142.171.47.170:3000/mayx/blog
-https://git.aion.bi/mayx/blog
https://git.werkraum-karlsruhe.org/mayx/blog
http://111.231.146.230:8418/mayx/blog
https://git.winscloud.net/mayx/blog
@@ -173,14 +154,11 @@ http://188.245.99.186:3000/mayx/blog
http://119.28.73.80:5000/mayx/blog
http://194.60.231.252:3000/mayx/blog
https://git.sleepingforest.co.uk/mayx/blog
-https://git.chinamario.ru/mayx/blog
https://gitea.wangyige.cn/mayx/blog
http://47.103.223.114:8081/mayx/blog
https://git.xdsite.fun/mayx/blog
https://git.brb.homeip.net/mayx/blog
https://an360.top/mayx/blog
-https://git.agusandelnorte.gov.ph/mayx/blog
-http://git.maiwd.cn:3000/mayx/blog
https://gitea.chenxu2233.com/mayx/blog
http://106.15.78.64:3000/mayx/blog
http://hoenking.cn:3000/mayx/blog
@@ -198,14 +176,12 @@ https://git2.ujin.tech/mayx/blog
http://git.joypetsisland.com/mayx/blog
http://111.119.244.185:3000/mayx/blog
http://110.41.179.36:13000/mayx/blog
-http://115.187.22.75:3000/mayx/blog
https://git.chrisbeckstrom.com/mayx/blog
https://dev.zaphar.net/mayx/blog
https://git.moonwoou.com/mayx/blog
https://git.tomlab.dev/mayx/blog
http://182.92.109.202:8070/mayx/blog
https://helx-artifacts-git.apps.renci.org/mayx/blog
-https://git.ataber.pw/mayx/blog
https://gogs.soyootech.com/mayx/blog
http://94.130.182.154:3000/mayx/blog
https://git.unicom.studio/mayx/blog
@@ -226,7 +202,6 @@ http://139.196.201.231:3000/mayx/blog
http://8.155.23.172:3000/mayx/blog
https://git.influxfin.com/mayx/blog
http://47.100.177.77:3000/mayx/blog
-https://gitea.beonx.com/mayx/blog
https://git.programar.io/mayx/blog
http://219.157.255.213:25311/mayx/blog
https://git.melvincarvalho.com/mayx/blog
@@ -237,19 +212,16 @@ https://gitea.svc.obaa.cloud/mayx/blog
https://git.infortek.tech/mayx/blog
http://8.134.64.84:3000/mayx/blog
http://test-www.writebug.com:3000/mayx/blog
-https://git.thetoc.net/mayx/blog
https://gitea.blubeacon.com/mayx/blog
http://116.204.75.78:6180/mayx/blog
https://git.powerdata.dk/mayx/blog
https://git.ods-company.ru/mayx/blog
http://109.228.48.121:8000/mayx/blog
-https://git.libx.ir/mayx/blog
https://git.u2.nu/mayx/blog
https://bk-house.synology.me:3081/mayx/blog
http://123.57.95.66:9000/mayx/blog
http://git.yjmt191314.com/mayx/blog
https://git.sparrowcomm.com/mayx/blog
-https://gitea.chaos-it.pl/mayx/blog
https://gitea.timurcelik.de/mayx/blog
http://www.rubikscomplex.com:3000/mayx/blog
https://git.hubhoo.com/mayx/blog
@@ -262,12 +234,10 @@ https://saga.iao.ru:3043/mayx/blog
https://git.sayndone.ru/mayx/blog
http://47.113.118.108:3000/mayx/blog
https://gitea.hintsight.com/mayx/blog
-https://git.code-works.de/mayx/blog
https://anzsco.co.nz/mayx/blog
https://git.valami.giize.com/mayx/blog
https://git.simbarbet.com/mayx/blog
http://47.109.132.168:3000/mayx/blog
-https://forge.death.id.au/mayx/blog
https://git.saintdoggie.org/mayx/blog
http://blackobelisk.xyz:3000/mayx/blog
https://git.dushes.keenetic.pro/mayx/blog
@@ -276,7 +246,6 @@ http://47.129.22.53:22345/mayx/blog
https://git.tech.troyrc.com/mayx/blog
http://git.zkyspace.top/mayx/blog
http://47.107.62.152:3000/mayx/blog
-https://git.openmonero.co/mayx/blog
http://47.99.119.173:13000/mayx/blog
https://git.outsidecontext.solutions/mayx/blog
http://8.210.112.49:8860/mayx/blog
@@ -293,8 +262,6 @@ https://git.ism-dev.net/mayx/blog
http://sinzero.xyz:3000/mayx/blog
https://gitea.b54.co/mayx/blog
https://git.matevi.sh/mayx/blog
-http://www.pcaidiy.cn:3000/mayx/blog
-https://code.tiantongsl.com/mayx/blog
http://213.35.118.215:60001/mayx/blog
https://git.jasonpittman.com/mayx/blog
https://gitea.shirom.me/mayx/blog
@@ -305,14 +272,12 @@ http://123.56.193.182:3000/mayx/blog
http://60.204.131.99:3000/mayx/blog
http://femail.email:8418/mayx/blog
http://47.93.56.66:8080/mayx/blog
-https://git.hefzteam.ir/mayx/blog
http://47.92.218.215:3000/mayx/blog
http://167.172.7.198:8081/mayx/blog
https://gitea.meetgu.ru/mayx/blog
http://8.134.253.108:3000/mayx/blog
https://git.patrich.se/mayx/blog
http://116.236.50.103:8789/mayx/blog
-https://gitnto.innovationcampus.ru/mayx/blog
https://git.paulll.cc/mayx/blog
https://gitea.alaindee.net/mayx/blog
https://gitea.reimann.ee/mayx/blog
@@ -325,7 +290,6 @@ http://8.134.144.137:3000/mayx/blog
https://git.hxps.ru/mayx/blog
https://gitea.ekjeong.synology.me/mayx/blog
https://git.d4m13n.dev/mayx/blog
-https://gitimpo.liara.run/mayx/blog
https://git.needon.kr/mayx/blog
https://git.4lcap.com/mayx/blog
https://git.stit.tech/mayx/blog
@@ -338,9 +302,7 @@ https://git.daoyoucloud.com/mayx/blog
https://git.entryrise.com/mayx/blog
https://repo.apps.odatahub.net/mayx/blog
http://okbestgood.com:3000/mayx/blog
-https://git.tallshim.ru/mayx/blog
https://code.bitahub.com/mayx/blog
-https://tomtop.ru/mayx/blog
https://git.daneric.dev/mayx/blog
http://git.guaiyun.com.cn/mayx/blog
http://malingshu.site:6010/mayx/blog
@@ -351,7 +313,6 @@ http://218.206.106.50:19901/mayx/blog
https://g.6tm.es/mayx/blog
https://git.slegeir.com/mayx/blog
https://git.kimcblog.com/mayx/blog
-http://www.mygamework.com:3000/mayx/blog
https://gogs.m14xa.ru/mayx/blog
https://git.minaev.su/mayx/blog
https://git.0fs.ru/mayx/blog
@@ -365,8 +326,6 @@ http://8.134.206.4:9001/mayx/blog
https://git.huwhy.cn/mayx/blog
http://194.67.86.160:3100/mayx/blog
http://47.101.58.33:3000/mayx/blog
-https://git.johnen.biz/mayx/blog
-https://git.unitsoft.io/mayx/blog
https://gitea.synapsetec.cn/mayx/blog
http://47.121.207.193:3000/mayx/blog
http://220.132.16.87:3000/mayx/blog
@@ -389,7 +348,6 @@ http://120.26.116.243:3000/mayx/blog
http://120.26.46.180:3000/mayx/blog
http://8.222.156.46:3000/mayx/blog
http://123.57.16.111:3000/mayx/blog
-https://git.andy.lgbt/mayx/blog
http://115.159.107.117:3000/mayx/blog
http://47.99.98.98:9000/mayx/blog
http://116.62.115.84:3000/mayx/blog
@@ -420,7 +378,6 @@ https://got.joshuakatz.me/mayx/blog
https://git-web.phomecoming.com/mayx/blog
http://121.36.37.70:15501/mayx/blog
http://187.216.152.151:9999/mayx/blog
-https://coderepos.mticas.com/mayx/blog
http://116.63.173.179:8001/mayx/blog
https://git.iop.plus/mayx/blog
http://47.114.82.162:3000/mayx/blog
@@ -472,7 +429,6 @@ http://47.109.95.73:3000/mayx/blog
http://47.104.196.63:8418/mayx/blog
https://git.mkubiak.com/mayx/blog
http://38.22.90.74:3000/mayx/blog
-https://git.asdf.cafe/mayx/blog
http://8.133.240.249:3456/mayx/blog
https://git.mista.ru/mayx/blog
http://34.102.70.200:3000/mayx/blog
@@ -486,7 +442,6 @@ https://giteas.fullmooncyberworks.com/mayx/blog
http://47.112.118.149:10082/mayx/blog
https://gitea.jobiglo.com/mayx/blog
https://gitea.rpg-librarium.de/mayx/blog
-https://git.juici.ly/mayx/blog
http://begild.top:8418/mayx/blog
http://58.221.13.198:30010/mayx/blog
https://gitea.kaz62.ru/mayx/blog
@@ -503,17 +458,14 @@ https://gitea.theaken.com/mayx/blog
https://git.ja-schwarz.de/mayx/blog
https://shanewan.cn:30000/mayx/blog
https://git.xemo-net.de/mayx/blog
-https://git.bigtravelchat.com/mayx/blog
https://git.23cm.cn/mayx/blog
https://gitea.oio.cat/mayx/blog
https://git.rokiy.com/mayx/blog
-https://git.w2tj.net/mayx/blog
http://59.110.17.86:3000/mayx/blog
https://git.karma-riuk.com/mayx/blog
https://git.saidomar.fr/mayx/blog
https://gitea.pnkx.top:8/mayx/blog
http://gitea.fcunb.cn:10083/mayx/blog
-http://mengshang.xyz:8418/mayx/blog
http://47.107.152.87:3000/mayx/blog
https://git.ligmatiktok.com/mayx/blog
http://106.15.58.155:3333/mayx/blog
@@ -529,11 +481,8 @@ https://git.gupaoedu.cn/mayx/blog
http://60.205.233.184:3010/mayx/blog
http://121.43.49.226/mayx/blog
https://git.ricecakecat.com/mayx/blog
-https://git.mahaines.com/mayx/blog
-http://gitee.mrsang.cfd/mayx/blog
https://gittea.biveki.ru/mayx/blog
https://git.7milch.com/mayx/blog
-https://gitea.marvinronk.com/mayx/blog
https://gitea.zmanplex.com/mayx/blog
https://git.hexdive.com/mayx/blog
http://139.224.250.209:3000/mayx/blog
@@ -541,17 +490,14 @@ https://vcc808.site/mayx/blog
https://git.sitenevis.com/mayx/blog
https://git.nightime.org/mayx/blog
https://dreamplacesai.de/mayx/blog
-http://repo.bpo.technology/mayx/blog
https://git.soy.dog/mayx/blog
https://bachner.synology.me:10002/mayx/blog
https://git.cool2645.com/mayx/blog
-https://gitea.codedbycaleb.com/mayx/blog
https://gitea.jludwig.net/mayx/blog
https://git.z1.mk/mayx/blog
http://185.87.111.46:3000/mayx/blog
http://suncheng.asia:14200/mayx/blog
http://1.94.13.224:9080/mayx/blog
-https://git.manabo.org/mayx/blog
https://auric-org.org/mayx/blog
https://git.git-happens.de/mayx/blog
https://gitea.seanomad.ru/mayx/blog
@@ -559,7 +505,6 @@ http://47.104.241.192:19999/mayx/blog
http://47.105.61.58:3000/mayx/blog
https://git.memosnag.com/mayx/blog
http://tdss.website:801/mayx/blog
-https://gitea.wenpang.asia/mayx/blog
http://101.35.183.241/mayx/blog
https://gitea.quiztimes.nl/mayx/blog
http://106.14.189.125:3000/mayx/blog
@@ -581,12 +526,10 @@ http://111.198.4.69:8092/mayx/blog
https://git.lakaweb.com/mayx/blog
https://git.kitti.ac.th/mayx/blog
http://106.15.233.223:3001/mayx/blog
-http://giteastaraire.vip.cpolar.cn/mayx/blog
https://forge.coreymclark.com/mayx/blog
http://ems.iclematis.com:30000/mayx/blog
https://git.micahmoore.io/mayx/blog
https://git.zlyum.com/mayx/blog
-https://git.aelhost.com/mayx/blog
https://schokigeschmack.de/mayx/blog
https://git.anatid.net/mayx/blog
https://catsdev.com/mayx/blog
@@ -609,22 +552,18 @@ https://git.galaxylabs.ca/mayx/blog
https://gitlab.n8n-store.xyz/mayx/blog
https://forgejo.win/mayx/blog
https://gitea.katiethe.dev/mayx/blog
-https://gitea.ai-demo.duckdns.org/mayx/blog
https://git0.zpqrtbnk.net/mayx/blog
http://159.203.33.179:3000/mayx/blog
http://117.72.114.197:3000/mayx/blog
http://192.210.186.179:20051/mayx/blog
https://git.ashcloud.com/mayx/blog
http://us2.fornoone.top:3000/mayx/blog
-https://git.louislabs.com/mayx/blog
-https://ste-van.de/mayx/blog
https://git.novaa.xyz/mayx/blog
https://gitea.noname-studios.es/mayx/blog
http://101.46.208.93:3000/mayx/blog
http://45.93.137.91:3000/mayx/blog
https://git.smartdev.cz/mayx/blog
http://23.94.57.60:3000/mayx/blog
-http://120.26.116.145:3000/mayx/blog
https://git.atomos.io/mayx/blog
https://git.tylantyson.com/mayx/blog
https://watch.mommys.plumbing/mayx/blog
@@ -632,8 +571,6 @@ https://devkona.net/mayx/blog
https://gitea.avixc-nas.myds.me/mayx/blog
http://www.ggafrik.site/mayx/blog
https://gitea.chaopi.dev/mayx/blog
-https://git.jonasjones.dev/mayx/blog
-https://gitea.kaidodev.org/mayx/blog
http://118.196.23.96:1866/mayx/blog
http://47.119.120.128:8085/mayx/blog
http://sjhome.cloud:3000/mayx/blog
@@ -644,15 +581,12 @@ http://8.140.250.85:3000/mayx/blog
http://8.134.11.35:3000/mayx/blog
https://dev.ilink-app.com/mayx/blog
https://git.ctx.dev/mayx/blog
-https://w2k.sh/mayx/blog
http://82.157.205.190:3000/mayx/blog
https://nas.szwyll.com:3000/mayx/blog
http://baylan.la.asu.edu:3000/mayx/blog
-http://8.155.35.51:3000/mayx/blog
https://git.koppa.pro/mayx/blog
http://188.120.243.108:3000/mayx/blog
http://202.65.194.19:3000/mayx/blog
-https://gitea.eggtech.net/mayx/blog
http://47.101.60.131:10082/mayx/blog
http://8.148.234.146:3001/mayx/blog
https://git.ypepin.com/mayx/blog
@@ -664,7 +598,6 @@ http://git.huangwc.com/mayx/blog
https://gitea.xala.dev/mayx/blog
http://101.201.34.43:3000/mayx/blog
https://git.ixu.me/mayx/blog
-http://178.18.255.136:3000/mayx/blog
http://118.89.124.175:3000/mayx/blog
https://git.gloje-rinchen-dorjee-rinpoche-buddhist-monastery.org/mayx/blog
https://git.pxlbuzzard.com/mayx/blog
@@ -675,7 +608,6 @@ http://git.uhfdemo.com/mayx/blog
http://47.108.217.75:3000/mayx/blog
https://git.jakubzabski.pl/mayx/blog
https://gitea.forgeandflowsolutions.com/mayx/blog
-https://gitea.ybxsddb.cc/mayx/blog
https://www.git.omezaldama.xyz/mayx/blog
https://vila.go.ro/mayx/blog
https://git.olyntec.com/mayx/blog
@@ -686,11 +618,8 @@ http://139.129.21.166:3000/mayx/blog
http://111.231.240.168:9082/mayx/blog
https://git.afonsosoares.com/mayx/blog
https://gitea.nswteam.net/mayx/blog
-https://git.toad.city/mayx/blog
-https://git.shawncarter.co.uk/mayx/blog
http://209.141.47.52:3000/mayx/blog
https://git.apfern.com/mayx/blog
-http://120.46.213.136:9528/mayx/blog
http://120.26.115.132:3000/mayx/blog
http://47.103.155.22:3000/mayx/blog
http://dapainas.asia:5990/mayx/blog
@@ -702,7 +631,6 @@ http://60.204.156.211:3000/mayx/blog
http://youneed.top:10014/mayx/blog
https://gitea.abra.me/mayx/blog
https://git.yukaige.com/mayx/blog
-http://www.liubai.site:3000/mayx/blog
http://nas.bi1kbu.com:8418/mayx/blog
http://123.56.74.235:3000/mayx/blog
http://15.204.210.141:30121/mayx/blog
@@ -713,14 +641,12 @@ http://xapple.ru:3000/mayx/blog
https://git.teygaming.com/mayx/blog
https://git.alhsk.top/mayx/blog
http://8.138.4.170:8980/mayx/blog
-https://git.fishestlife.com/mayx/blog
http://185.128.138.246:3000/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://87.228.74.88:3000/mayx/blog
http://118.163.190.249:3000/mayx/blog
-https://git.farmeris.sk/mayx/blog
http://39.107.226.169:3000/mayx/blog
https://git.ueda.sk/mayx/blog
http://113.45.76.155:3000/mayx/blog
@@ -731,10 +657,7 @@ https://git.server.isalem.net/mayx/blog
http://47.103.100.52:3000/mayx/blog
https://git.cos777nnn777.win/mayx/blog
http://5.189.140.23:8080/mayx/blog
-https://gitea.xy88.fun/mayx/blog
http://121.37.47.20:3000/mayx/blog
-https://code.metapipe.net/mayx/blog
-https://gitea.alittlejag.uk/mayx/blog
https://git.antropix.dev/mayx/blog
http://15.237.198.144/mayx/blog
https://gitea.soap.wf/mayx/blog
@@ -747,16 +670,13 @@ https://xgit.tsuimg.top/mayx/blog
http://123.60.156.158:13000/mayx/blog
http://57.129.94.190:3000/mayx/blog
https://gitea.micro-stack.org/mayx/blog
-https://vapor.solarvoid.com/mayx/blog
http://101.132.160.67:3000/mayx/blog
https://gitea.temp.brentgruber.com/mayx/blog
-https://www.naepho.dev/mayx/blog
https://www.know-how.store/mayx/blog
http://47.102.147.170:3050/mayx/blog
https://git.borg.unak.is/mayx/blog
http://209.38.235.254:3000/mayx/blog
http://52.66.204.217:3001/mayx/blog
-http://123.60.153.169:3006/mayx/blog
https://pdje.uk/mayx/blog
http://172.236.250.154:3000/mayx/blog
http://54.198.134.152:3000/mayx/blog
@@ -771,7 +691,6 @@ http://8.138.187.132:3000/mayx/blog
https://gitea.codeathome.ovh/mayx/blog
http://117.72.15.187:3000/mayx/blog
http://159.223.54.247:3030/mayx/blog
-https://git.jaytux.com/mayx/blog
http://81.70.30.91:3000/mayx/blog
http://47.98.105.248:3000/mayx/blog
http://218.84.152.14:65001/mayx/blog
@@ -782,7 +701,6 @@ http://8.138.100.115:3000/mayx/blog
https://git.soupcafe.cc/mayx/blog
https://git.mwapp.com.br/mayx/blog
http://yidaima.cn:6008/mayx/blog
-https://git.happytanuki.kr/mayx/blog
http://213.199.46.54:3001/mayx/blog
http://47.94.156.73:3000/mayx/blog
http://185.126.237.57:3000/mayx/blog
@@ -790,11 +708,9 @@ http://47.97.50.232:3000/mayx/blog
http://106.54.211.95:3000/mayx/blog
http://210.245.20.73:3333/mayx/blog
http://43.248.97.109:3000/mayx/blog
-http://git.dhitechnical.com/mayx/blog
http://113.207.86.104:3080/mayx/blog
http://down.luanhailiang.cn:9000/mayx/blog
http://39.96.195.72:10082/mayx/blog
-http://8.140.60.82:3000/mayx/blog
https://gitea.klopfenstein.org/mayx/blog
http://8.148.24.160:3000/mayx/blog
https://gitea.hailstorm.gay/mayx/blog
@@ -805,16 +721,12 @@ https://git.cymnb.com/mayx/blog
http://8.163.31.138:3000/mayx/blog
http://47.108.27.137:3000/mayx/blog
http://182.92.9.236:3000/mayx/blog
-http://47.96.98.191:9980/mayx/blog
http://172.172.102.93:3000/mayx/blog
http://101.132.255.70:3000/mayx/blog
http://139.196.179.195:3000/mayx/blog
http://115.120.245.164:3000/mayx/blog
http://120.27.19.58:30000/mayx/blog
-https://git.devnul.cz/mayx/blog
https://git-virtual.ru/mayx/blog
-http://47.122.125.40:16867/mayx/blog
-https://git.infinitix.kr/mayx/blog
https://gitea.suchodupin.com/mayx/blog
http://8.134.116.217:3000/mayx/blog
http://117.72.219.18:6000/mayx/blog
@@ -823,7 +735,6 @@ https://git.rcdiamondgh.cc/mayx/blog
http://35.194.179.90:3000/mayx/blog
http://188.245.173.247:3080/mayx/blog
http://8.153.14.94:61308/mayx/blog
-http://git.liubeiting.cn:8000/mayx/blog
http://66.179.208.56:3001/mayx/blog
http://59.110.63.79:13000/mayx/blog
http://59.110.63.80:3000/mayx/blog
@@ -833,7 +744,6 @@ http://211.22.221.188:3000/mayx/blog
https://lunarvow.top:12494/mayx/blog
http://223.108.157.174:3000/mayx/blog
http://120.24.249.56/mayx/blog
-https://git.davidwebgt.com/mayx/blog
http://47.100.90.152:3000/mayx/blog
http://120.24.251.176:30000/mayx/blog
http://121.196.237.108:3000/mayx/blog
@@ -854,7 +764,6 @@ http://47.99.60.81:10082/mayx/blog
http://120.211.66.170:8418/mayx/blog
http://47.242.181.61:3333/mayx/blog
http://187.189.244.23:3000/mayx/blog
-http://123.60.98.226:3000/mayx/blog
http://58.176.21.43:9004/mayx/blog
https://gitea.vilcap.com/mayx/blog
https://git.2b8.org/mayx/blog
@@ -862,7 +771,6 @@ http://8.137.94.229:3000/mayx/blog
http://121.196.245.62/mayx/blog
http://47.92.35.224:3000/mayx/blog
http://47.102.209.69:53000/mayx/blog
-https://axcl.duckdns.org:8091/mayx/blog
http://116.205.97.109:3000/mayx/blog
https://gitea.ysme.top/mayx/blog
http://8.140.242.230:3000/mayx/blog
@@ -875,16 +783,13 @@ http://113.46.142.74:3000/mayx/blog
http://47.100.0.167:3000/mayx/blog
http://www.koelndom.cn:13030/mayx/blog
http://209.127.59.74:3000/mayx/blog
-http://git.vimer.top:4000/mayx/blog
http://111.15.179.73:3000/mayx/blog
http://47.113.119.107:3000/mayx/blog
-https://git.tuongthoi.website/mayx/blog
https://git.dotb.cloud/mayx/blog
http://178.205.99.36:3000/mayx/blog
https://git.bigdalang.com/mayx/blog
https://gitea.augeo.dev/mayx/blog
https://demo.stam.kr/mayx/blog
-https://g.szqingling.cn/mayx/blog
http://120.46.23.215:3000/mayx/blog
http://47.108.75.198:3000/mayx/blog
http://121.41.2.71:3000/mayx/blog
@@ -892,14 +797,11 @@ http://47.114.94.196:8030/mayx/blog
https://sithcom.de/mayx/blog
http://156.238.243.144:3000/mayx/blog
http://8.138.242.82:8888/mayx/blog
-http://37.60.245.108/mayx/blog
http://110.41.177.80:5000/mayx/blog
https://gitea.dsmaster.myds.me/mayx/blog
-https://git.denco.store/mayx/blog
http://intechrnd.iptime.org:3000/mayx/blog
https://gitea.primecontrols-dev.com/mayx/blog
http://47.104.160.69:3000/mayx/blog
-http://157.66.191.31:3000/mayx/blog
http://39.104.61.219:3000/mayx/blog
http://www.scserverddns.top:13000/mayx/blog
http://156.255.1.229:3000/mayx/blog
@@ -909,3 +811,33 @@ https://dev.kirill-vorotov.com/mayx/blog
https://gitea.va-comer.net/mayx/blog
https://git.lucas-michel.fr/mayx/blog
http://60.205.162.59:3000/mayx/blog
+https://git.imvictor.tech:2/mayx/blog
+https://git.pwcedge-sbs-innov-lab.com/mayx/blog
+https://git.beitzah.net/mayx/blog
+http://47.112.137.193:3000/mayx/blog
+https://www.cadquos.dev/mayx/blog
+https://gitea.malin.onl/mayx/blog
+http://58.38.123.148:3176/mayx/blog
+http://docker.clhero.fun:3000/mayx/blog
+http://42.193.251.215:3000/mayx/blog
+http://kpro.shanghaiopen.org.cn:8005/mayx/blog
+https://bdgit.educoder.net/mayx/blog
+http://77.104.76.44/mayx/blog
+http://101.42.172.53:27007/mayx/blog
+http://e19510c831.iok.la/mayx/blog
+https://gitea.clintmasden.duckdns.org/mayx/blog
+http://gitea.liaozhuangkeji.com/mayx/blog
+https://www.nxgit.xyz/mayx/blog
+http://220.112.1.148:7166/mayx/blog
+http://119.45.49.212:3000/mayx/blog
+https://git.synapsenet.net/mayx/blog
+https://gitea.kdlsvps.top/mayx/blog
+http://deiniusoft.com:3000/mayx/blog
+https://code.antopie.org/mayx/blog
+http://120.197.24.77:3000/mayx/blog
+http://c6h5gp.top:3000/mayx/blog
+https://git.serenetia.com/mayx/blog
+https://tm-jikayo.com/mayx/blog
+https://vcs.cozydsp.space/mayx/blog
+https://stephens.cc/mayx/blog
+https://git.aoun.ltd/mayx/blog
diff --git a/_posts/2025-12-01-linux.md b/_posts/2025-12-01-linux.md
new file mode 100644
index 0000000..80e2a22
--- /dev/null
+++ b/_posts/2025-12-01-linux.md
@@ -0,0 +1,38 @@
+---
+layout: post
+title: 在浏览器中运行Linux的各种方法
+tags: [浏览器, Linux, 虚拟机, WASM]
+---
+
+ 浏览器已经无所不能了!
+
+# 起因
+ 前段时间跟网友交流时,有人展示了他博客里的一个Linux终端模拟项目:[jsnix](https://github.com/Erzbir/jsnix),看起来挺有意思的,里面甚至还藏了一个CTF。不过我感觉他这个终端和博客本身并没有真正联动起来,本质上只是一个模拟了Linux Shell行为的交互界面。除此之外我还发现了另一个风格类似的[个人主页](https://github.com/Luyoung0001/myWebsite),它虽然也走了终端风格,但功能更简单,还原度也不算高。不过它至少和博客内容做了一些基础联动——尽管目前也只是做到列出文章这种程度😂,当然有这类功能的博客应该也不少,只是我发现的不太多……于是我就想,不如我也给自己的博客加一个类似的“命令行访问”功能,应该会很有趣。当然如果真要做的话,我肯定不会满足于只实现几个模拟指令——既然要做,就要追求真实感,至少得在浏览器上运行真实的Linux终端,才不会让人觉得出戏吧😋。
+
+# 在浏览器中运行Linux
+## 虚拟机方案
+### 纯JS虚拟机
+ 要说到在浏览器上运行Linux,最先想到的应该就是[Fabrice Bellard](https://bellard.org)大神写的[JSLinux](https://bellard.org/jslinux/)吧,这可能是第一个在浏览器中实现的虚拟机(毕竟是最强虚拟机QEMU的作者编写的)。现在他的个人主页中展示的这个版本是WASM版本,而他最早写的是纯JS实现的。那个JS实现的版本现在在GitHub上有一个[去混淆的版本](https://github.com/levskaya/jslinux-deobfuscated)可以用作学习和研究,于是我顺手Fork了一份在GitHub Pages上部署作为[演示](http://mabbs.github.io/jslinux/)。
+ 作为纯JS实现的x86虚拟机,性能估计是最差的,但相应的兼容性也最好,在Bellard当年写JSLinux的时候,还没有WASM这种东西呢,所以即使是在不支持WASM的IE11中,也可以正常运行。假如我想把它作为终端用在我的博客上,似乎也是个不错的选择,即使我完全看不懂代码,不知道如何实现JS和虚拟机的通信,它也预留了一个剪贴板设备,可以让我轻松地做到类似的事情,比如我在里面写个Bash脚本,通过它和外面的JS脚本联动来读取我的文章列表和内容,那也挺不错。
+ 当然Bellard用纯JS编写虚拟机也不是独一份,他实现了x86的虚拟机,相应的也有人用纯JS实现了RISC-V的虚拟机,比如[ANGEL](https://github.com/riscv-software-src/riscv-angel),看起来挺不错,所以同样也顺手[搭了一份](https://mabbs.github.io/riscv-angel/)。只不过它似乎用了一些更先进的语法,至少IE11上不能运行。
+ 另外还有一个比较知名的项目,叫做[jor1k](https://github.com/s-macke/jor1k),它模拟的是OpenRISC架构。只是这个架构目前已经过时,基本上没什么人用了,不过这里面还内置了几个演示的小游戏,看起来还挺有意思。
+ 除了这些之外,其实能在浏览器上运行的Linux也不一定是个网页,有一个叫做[LinuxPDF](https://github.com/ading2210/linuxpdf)的项目可以让Linux运行在PDF中,它的原理和JSLinux差不多,所以需要PDF阅读器支持JS,看它的介绍貌似只能在基于Chromium内核的浏览器中运行,而且因为安全问题在PDF中有很多功能不能用,所以它的速度甚至比JSLinux还要慢,功能还很少,因此它基本上只是个PoC,没什么太大的意义。
+### WASM虚拟机
+ 那还有别的方案吗?既然Bellard都选择放弃纯JS的JSLinux而选择了WASM,显然还有其他类似的项目,比如[v86](https://github.com/copy/v86),这也是一个能在浏览器中运行的x86虚拟机,不过因为使用了WASM和JIT技术,所以效率要比纯JS的JSLinux高得多。另外作为虚拟机,自然是不止能运行Linux,其他的系统也能运行,在示例中除了Linux之外还有DOS和Windows之类的系统,功能还挺强大,如果能自己做个系统镜像在博客里运行,似乎也是不错的选择。
+ 另外还有一个相对比较知名的叫[WebVM](https://github.com/leaningtech/webvm),从效果上来说和v86几乎没有区别,同样使用了WASM和JIT技术,也都只支持32位x86,然而它的虚拟化引擎CheerpX是闭源产品,既然和v86都拉不开差距,不知道是谁给他们的信心把它作为闭源产品😅。不过看它的说明文档,其相比于v86的主要区别是实现了Linux系统调用,考虑到它不能运行其他操作系统,而且Linux内核也不能更换,那我想它可能是类似于WSL1的那种实现方案,也许性能上会比v86好一些吧……只不过毕竟是闭源产品,不太清楚具体实现了。
+ 既然纯JS有RISC-V的虚拟机,WASM当然也有,比如[WebCM](https://github.com/edubart/webcm)。这个项目相比于其他的项目有个不太一样的地方,它把虚拟机、内核以及镜像打包成了一个单独的WASM文件……只是这样感觉并没有什么好处吧,改起来更加复杂了。
+ 以上这些虚拟机方案各有不同,但是想做一个自己的镜像相对来说还是有点困难,于是我又发现了另一个项目:[container2wasm](https://github.com/container2wasm/container2wasm),它可以让一个Docker镜像在浏览器中运行,当然实际实现其实和Docker并没有什么关系,本质还是虚拟机,只是制作镜像的时候可以直接用Docker镜像,方便了不少,但Docker镜像一般也都很大,所以第一次加载可能要下载很长时间。另外它还有一个优势,可以使用[Bochs](https://bochs.sourceforge.io/)运行x86_64的镜像,不像v86和WebVM只能模拟32位的x86(虽然Bochs的运行效率可能会差一些),而且可以使用WASI直接访问网络,不像以上几个项目如果需要访问网络需要用到中继服务。当然访问网络这个还是要受浏览器本身的跨域策略限制。总之从项目本身来说感觉也算是相当成熟了,尤其能用Docker镜像的话……我甚至可以考虑直接用[镜像](https://hub.docker.com/r/unmayx/mabbs)在线演示我曾经的[Mabbs](https://github.com/Mabbs/Mabbs.Project)项目😋。
+## 纯WASM方案
+ 其实想要在浏览器中运行Linux也不一定非得要用虚拟机,用虚拟机相当于是把其他指令集的机器码翻译为WASM,然后浏览器还得再翻译成宿主机CPU支持的指令集,然而WASM本身其实也算是一种指令集,各种编译型语言编写的程序也能编译出WASM的产物,比如[FFmpeg](https://github.com/ffmpegwasm/ffmpeg.wasm)。所以Linux内核也完全可以被编译成WASM,正好前段时间我看新闻说[Joel Severin](https://github.com/joelseverin)做了这么一个[项目](https://github.com/joelseverin/linux-wasm),对Linux内核做了一些修改使其可以被编译为WASM程序,我试了一下,貌似在Safari浏览器中不能正常工作……Chrome浏览器倒是没问题,不过即使这样用起来BUG也很多,随便执行几条命令就会冻结,体验不是很好。
+ 沿着这个项目,我又找到一个由[Thomas Stokes](https://github.com/tombl)制作的[项目](https://github.com/tombl/linux),和Joel的项目差不多,但我测了一下可以在Safari上运行,感觉这个项目更完善,不过之前那个项目上了新闻,所以⭐️数比这个更高😂。
+ 于是我把它复制了一份,在我的GitHub Pages上[部署](https://mabbs.github.io/linux/)了,但直接用仓库中的源代码会显示“Error: not cross origin isolated”,然而在Thomas自己部署的网站中可以正常打开,我看了一眼貌似是因为在GitHub Pages中没有[COOP和COEP响应头](https://web.dev/articles/coop-coep)导致的。Linux作为多任务操作系统来说,当然要运行多个进程,而Linux要管理它们就需要跨线程(Web Worker)读取内存的能力,所以用到了SharedArrayBuffer对象。不过由于CPU曾经出过“幽灵”漏洞,导致现代浏览器默认禁止使用SharedArrayBuffer对象,除非在服务器中配置COOP和COEP响应头才可以用,但是Joel的项目也是在GitHub Pages上运行的啊,为什么可以正常运行?看了源代码后才发现原来可以[用Service Worker作为反向代理](/2025/08/01/sw-proxy.html)来给请求的资源加上响应头,他使用的是[coi-serviceworker](https://github.com/gzuidhof/coi-serviceworker)这个项目,所以我也给我部署的代码中加上了这个脚本,总算是解决了这个问题。
+ 部署好这个项目之后我试用了几下,虽然有些操作仍然会导致系统冻结,但相比Joel的版本来说已经好多了。很遗憾的是目前这个WASM Linux还不能和外界通信,所以作用不是很大,另外如果想在里面运行其他二进制程序还是相当困难,首先在WASM中不存在内存管理单元(MMU),不能实现隔离和分页的功能,另外以WASM作为指令集的环境下编译的产物也得是WASM,所以目前来说想用它做点什么还是不太合适。
+ 以上的这两个将Linux内核编译为WASM的方案其实相当于给内核打补丁,然后把浏览器看作是虚拟机来运行,有点像Xen,不过还有一种让Linux原生运行在WASM的[项目](https://github.com/okuoku/wasmlinux-project),它将[Linux kernel library](https://github.com/lkl/linux)编译为了WASM。那么什么是LKL?简单来说它有点像Wine,就和我之前所说的[OS模拟器](/2024/12/08/simulator.html)差不多,可以提供一个环境,让程序以为自己在Linux下运行,所以说它和之前的实现有一些不一样,它不存在内核模式,更像是一个普通的程序,而不是系统了。
+ 不过这个项目的体验也比较一般,它无论做什么都得按两次回车,看说明的意思貌似是因为没有实现异步信号传递,所以要手动打断`read`函数,而且也经常莫名其妙卡住,总体体验不如Thomas的项目。
+## 模仿的Linux
+ 其实如果只是想做到和Linux类似的功能,也有这样的项目,比如[WebContainers](https://github.com/stackblitz/webcontainer-core),它没有运行Linux系统,但是模拟了一个环境,可以在浏览器中运行Node.js以及Python之类的脚本,而且让脚本以为自己在Linux中运行,除此之外它还能用Service Worker把环境中运行的端口映射给浏览器,可以算是真的把服务端跑在浏览器上了。这个技术还挺高级,不过想想也挺合理,毕竟有WASI,直接编译为WASM的程序也不需要操作系统就能运行,所以用WASM去运行Linux本来就有点多此一举了😂。不过很遗憾的是WebContainers也不是开源软件,要使用它只能引入StackBlitz的资源,而且全网完全没有开源的替代品……也许在浏览器上进行开发本来就是个伪需求,所以没什么人实现吧。
+ 当然如果只是实现和WebContainers类似的功能,[JupyterLite](https://github.com/jupyterlite/jupyterlite)也可以实现,它可以在浏览器中像使用本地JupyterLab那样运行JS和Python,还能用Matplotlib、Numpy、Pandas进行数据处理,功能可以说非常强大,而且还是开源软件。只不过它没有模拟操作系统的环境,所以不能运行Node.js项目,也不能提供终端,所以不太符合我想要的效果……
+
+# 总结
+ 总的来说,如果想要在博客上搞Linux终端,目前来看似乎虚拟机方案会更靠谱一些,虽然相对来说效率可能比较低,但毕竟目前WASM方案的可靠性还是不够,而且考虑到还需要配置额外的响应头,感觉有点麻烦,当然我觉得WASM还是算未来可期的,如果成熟的话肯定还是比虚拟机要更好一些,毕竟没有转译性能肯定要好不少。至于WebContainers这种方案……等什么时候有开源替代再考虑吧,需要依赖其他服务感觉不够可靠。只是也许我的想法只需要模拟一个合适的文件系统,然后给WASM版的Busybox加个终端就够了?不过这样感觉Bug会更多😂。
+ 至于打算什么时候给博客加上这个功能?应该也是未来可期吧😝,目前还没什么好的思路,仅仅是分享一下在浏览器中运行Linux的各种方法。
\ No newline at end of file
From 03a2f1fdf9420cf91ca8b42b517186f3c4561170 Mon Sep 17 00:00:00 2001
From: mayx
Date: Wed, 31 Dec 2025 16:00:09 +0000
Subject: [PATCH 16/29] Update 4 files
- /_posts/2026-01-01-summary.md
- /_data/ai-cache.json
- /_data/proxylist.yml
- /_data/other_repo_list.csv
---
_data/ai-cache.json | 3 +-
_data/other_repo_list.csv | 106 +++--------------------------------
_data/proxylist.yml | 4 ++
_posts/2026-01-01-summary.md | 20 +++++++
4 files changed, 33 insertions(+), 100 deletions(-)
create mode 100644 _posts/2026-01-01-summary.md
diff --git a/_data/ai-cache.json b/_data/ai-cache.json
index 5a52736..f4f70b5 100644
--- a/_data/ai-cache.json
+++ b/_data/ai-cache.json
@@ -171,5 +171,6 @@
"/2025/08/10/tilde.html": "这篇文章介绍了作者在Tilde社区的体验,这是一类基于类Unix环境的公共服务器社区,类似于家目录,提供预装的软件、开发环境和公共服务,如聊天室、邮件、BBS论坛等,强调了社区的互动性和共享精神。作者通过申请、审核过程加入了几个社区,并详细描述了在这些社区中的个人主页、编程支持(如Gemini和Gopher协议)、博客发布、代码托管(Git支持)、CI/CD部署以及使用Git hooks自动化博客更新等功能。尽管作者受限于语言和工具使用体验,未能充分参与社区交流,但对社区学习新知识和丰富博客内容印象深刻。",
"/2025/09/01/quine.html": "这篇文章主要介绍了作者在博客部署过程中,对ZIP Quine(自包含压缩包)和自产生程序的探索过程。作者起初想利用压缩包实现离线浏览,但遇到了压缩包不包含自身的问题。随后,作者回顾了ZIP Quine的原理,如droste.zip,以及如何通过DEFLATE压缩算法的LZ77编码实现自包含。作者尝试了Russ Cox的方案,但发现由于压缩格式限制,实际操作中存在数据容量的限制,无法存下整个博客。尽管如此,作者还是研究了嵌套循环的ZIP Quine,如Ruben Van Mello的论文中所描述的,尽管空间仍然有限。探索过程中,作者还学习了自产生程序(Quine)的概念,包括其实现原理和各种编程语言中的例子。作者最后感慨,探索过程中的收获比原本的目标更重要。",
"/2025/10/12/recover.html": "这篇文章讲述了作者通过GitHub的Fork特性找回一个被删除的Brainfuck可视化演示仓库的经历。由于原仓库和作者主页都已消失,作者推测GitHub在Fork时会共享对象库,只要有任意一个Fork仓库存在,GitHub就会保留所有对象,从而可以通过找到一个Fork仓库的最新提交Hash值来还原目标仓库。作者通过Linux内核仓库的Fork进行验证,随后在互联网档案馆上找到目标仓库的Fork以及其Hash值,最终通过Git命令将本地仓库的HEAD指针指向目标提交,成功恢复了该仓库的代码,并将其部署到自己的GitHub Pages上。最后,作者发现Software Heritage组织会保存所有代码,因此在遇到类似情况时可以直接通过该平台进行查找。",
- "/2025/11/01/mirrors.html": "这篇文章讲述了作者为了提高博客的可靠性,探索利用被滥用的Git平台进行博客镜像的想法和实践。作者发现一些Git实例存在大量空仓库和异常用户,怀疑是SEO公司滥用,因此决定利用这些平台进行博客镜像备份,以应对平台倒闭或数据丢失的风险。作者选择Gitea和Forgejo平台作为目标,编写脚本自动注册账号并导入博客仓库,实现了自动化镜像分发。作者也意识到此类平台的稳定性存在不确定性,并思考了“量”和“质”两种方式确保博客永恒性的优劣,最终认为建立一个活跃的、自动执行维护操作的网络可能更有效。文章最后展示了作者创建的Git镜像列表,并表达了对博客永恒性的思考。"
+ "/2025/11/01/mirrors.html": "这篇文章讲述了作者为了提高博客的可靠性,探索利用被滥用的Git平台进行博客镜像的想法和实践。作者发现一些Git实例存在大量空仓库和异常用户,怀疑是SEO公司滥用,因此决定利用这些平台进行博客镜像备份,以应对平台倒闭或数据丢失的风险。作者选择Gitea和Forgejo平台作为目标,编写脚本自动注册账号并导入博客仓库,实现了自动化镜像分发。作者也意识到此类平台的稳定性存在不确定性,并思考了“量”和“质”两种方式确保博客永恒性的优劣,最终认为建立一个活跃的、自动执行维护操作的网络可能更有效。文章最后展示了作者创建的Git镜像列表,并表达了对博客永恒性的思考。",
+ "/2025/12/01/linux.html": "这篇文章介绍了在浏览器中运行Linux的各种方法,从最初的纯JS虚拟机JSLinux,到后来的WASM虚拟机如v86、WebVM、WebCM,再到容器化方案container2wasm,以及直接将Linux内核编译为WASM的方案。作者详细对比了这些方案的优缺点,包括性能、兼容性、功能和开发难度。文章还提到了模仿Linux环境的WebContainers和JupyterLite,并最终认为虚拟机方案更靠谱,但对WASM的未来充满期待。作者最后表示,博客上添加类似功能的计划还在考虑中,目前主要分享了各种方法的探索过程。"
}
\ No newline at end of file
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 96652bd..b1d8380 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -3,28 +3,22 @@ http://gdatura24gtdy23lxd7ht3xzx6mi7mdlkabpvuefhrjn4t5jduviw5ad.onion/Mayx/mayx
http://git.dkforestseeaaq2dqz2uflmlsybvnq2irzn4ygyvu53oazyorednviid.onion/mayx/blog
http://giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q.b32.i2p/mayx/blog
https://gitlab.lain.la/mayx/mayx.pages.lain.la
-https://gitea.moe/Mayx/mayx
https://tvoygit.ru/Mayx/mayx
https://git.envs.net/Mayx/mayx
https://tildegit.org/Mayx/mayx
https://git.pixie.town/mayx/mayx
https://cgit.tilde.town/~mayx/blog
https://gitlab.haskell.org/mayx/mayx
-https://pagure.io/fork/mabbs/Blog
https://repo2.serv00.com/git/pub/Mayx/mayx/
https://git.hana.im/mayx/blog
https://git.tea-assets.com/mayx/blog
https://repo.komhumana.org/mayx/blog
https://git.minetest.land/Mayx/blog
http://ucarmesin.de:3000/mayx/blog
-http://101.34.211.172:3000/mayx/blog
https://gitea.johannes-hegele.de/mayx/blog
-https://git.paulcolfer.ie/mayx/blog
https://git.octava.cool/mayx/blog
-http://101.132.73.14:3000/mayx/blog
http://117.72.78.89:3000/mayx/blog
https://gitea.stormyhome.net/mayx/blog
-http://www.litehome.top/mayx/blog
http://47.120.60.153:10880/mayx/blog
http://zfselect.cn:3000/mayx/blog
http://61.139.16.27:26684/mayx/blog
@@ -46,14 +40,11 @@ http://www.gitea.zhangc.top:3000/mayx/blog
https://git.chistyakov-it.ru/mayx/blog
https://git.emanuelemiani.it/mayx/blog
https://git.dehemi.com/mayx/blog
-https://git.traband.ovh/mayx/blog
https://git.ngcr.de/mayx/blog
http://101.66.229.132:61088/mayx/blog
http://118.26.39.39:3000/mayx/blog
http://150.109.95.245/mayx/blog
https://git.pcgf.io/mayx/blog
-https://nucleation.fusion.bref.cool/mayx/blog
-https://gitea.l2reworld.com/mayx/blog
https://git.bp-web.app/mayx/blog
http://47.103.91.160:50903/mayx/blog
https://mygit.iexercice.com/mayx/blog
@@ -77,7 +68,6 @@ https://gitea.bitshift.us/mayx/blog
http://114.55.134.197:3000/mayx/blog
http://139.129.25.251:3000/mayx/blog
http://45.33.87.87/mayx/blog
-http://162.19.95.94:3000/mayx/blog
https://git.rankenste.in/mayx/blog
https://git.ghostpacket.org/mayx/blog
https://git.catswords.net/mayx/blog
@@ -94,7 +84,6 @@ http://Shiningon.top/mayx/blog
http://wsygitea.top/mayx/blog
https://git.yardtech.ru/mayx/blog
http://69.62.77.234:8888/mayx/blog
-https://gitea.bake.systems/mayx/blog
http://8.134.15.96:3000/mayx/blog
http://112.219.147.186:7000/mayx/blog
http://47.119.38.109:3000/mayx/blog
@@ -114,7 +103,6 @@ http://185.208.225.190:3000/mayx/blog
https://git.sudo-fhir.au/mayx/blog
https://git.warzin.com/mayx/blog
https://git.burning.cloud/mayx/blog
-https://git.ihackfx.ru/mayx/blog
https://gitea.sguba.de/mayx/blog
https://git.flywithu.com/mayx/blog
https://git.purplepanda.cc/mayx/blog
@@ -136,13 +124,11 @@ http://103.231.8.120/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://git.open-dev.ru/mayx/blog
https://git.votava.org/mayx/blog
http://8.137.12.29:3000/mayx/blog
https://gitea.irons.nz/mayx/blog
https://gitea.madf12.com/mayx/blog
http://8.134.104.234:3000/mayx/blog
-http://git.ugohous.com/mayx/blog
https://git.vce.de/mayx/blog
https://gitea.carmon.co.kr/mayx/blog
http://142.171.47.170:3000/mayx/blog
@@ -154,7 +140,6 @@ http://188.245.99.186:3000/mayx/blog
http://119.28.73.80:5000/mayx/blog
http://194.60.231.252:3000/mayx/blog
https://git.sleepingforest.co.uk/mayx/blog
-https://gitea.wangyige.cn/mayx/blog
http://47.103.223.114:8081/mayx/blog
https://git.xdsite.fun/mayx/blog
https://git.brb.homeip.net/mayx/blog
@@ -169,7 +154,6 @@ https://git.cjcrace.io/mayx/blog
https://git.yinbonet.cn/mayx/blog
https://git.inkcore.cn/mayx/blog
http://47.98.129.193:3000/mayx/blog
-http://8.138.91.73:3000/mayx/blog
https://git.wisder.net/mayx/blog
http://8.138.187.97:3000/mayx/blog
https://git2.ujin.tech/mayx/blog
@@ -177,12 +161,10 @@ http://git.joypetsisland.com/mayx/blog
http://111.119.244.185:3000/mayx/blog
http://110.41.179.36:13000/mayx/blog
https://git.chrisbeckstrom.com/mayx/blog
-https://dev.zaphar.net/mayx/blog
https://git.moonwoou.com/mayx/blog
https://git.tomlab.dev/mayx/blog
http://182.92.109.202:8070/mayx/blog
https://helx-artifacts-git.apps.renci.org/mayx/blog
-https://gogs.soyootech.com/mayx/blog
http://94.130.182.154:3000/mayx/blog
https://git.unicom.studio/mayx/blog
https://Gitea.Sephalon.net/mayx/blog
@@ -195,8 +177,6 @@ http://frktedu.ru:3000/mayx/blog
https://git.bloade.com/mayx/blog
https://git.lokalix.de/mayx/blog
http://8.141.14.13:3000/mayx/blog
-http://47.94.103.75:3000/mayx/blog
-http://gitea.danongshu.cn/mayx/blog
https://git.palagov.tv/mayx/blog
http://139.196.201.231:3000/mayx/blog
http://8.155.23.172:3000/mayx/blog
@@ -206,12 +186,9 @@ https://git.programar.io/mayx/blog
http://219.157.255.213:25311/mayx/blog
https://git.melvincarvalho.com/mayx/blog
https://gitea.aerwen.net/mayx/blog
-http://8.155.14.189:3000/mayx/blog
https://git.vekus.ru/mayx/blog
https://gitea.svc.obaa.cloud/mayx/blog
-https://git.infortek.tech/mayx/blog
http://8.134.64.84:3000/mayx/blog
-http://test-www.writebug.com:3000/mayx/blog
https://gitea.blubeacon.com/mayx/blog
http://116.204.75.78:6180/mayx/blog
https://git.powerdata.dk/mayx/blog
@@ -226,7 +203,6 @@ https://gitea.timurcelik.de/mayx/blog
http://www.rubikscomplex.com:3000/mayx/blog
https://git.hubhoo.com/mayx/blog
https://git.ultra.pub/mayx/blog
-https://git.cloud13.de/mayx/blog
https://gitea.visoftware.com.co/mayx/blog
http://121.199.172.238:3000/mayx/blog
http://27.124.12.222:3000/mayx/blog
@@ -237,7 +213,6 @@ https://gitea.hintsight.com/mayx/blog
https://anzsco.co.nz/mayx/blog
https://git.valami.giize.com/mayx/blog
https://git.simbarbet.com/mayx/blog
-http://47.109.132.168:3000/mayx/blog
https://git.saintdoggie.org/mayx/blog
http://blackobelisk.xyz:3000/mayx/blog
https://git.dushes.keenetic.pro/mayx/blog
@@ -248,7 +223,6 @@ http://git.zkyspace.top/mayx/blog
http://47.107.62.152:3000/mayx/blog
http://47.99.119.173:13000/mayx/blog
https://git.outsidecontext.solutions/mayx/blog
-http://8.210.112.49:8860/mayx/blog
http://149.88.87.128:3000/mayx/blog
http://124.70.167.140:3000/mayx/blog
http://8.137.38.60:8201/mayx/blog
@@ -283,55 +257,40 @@ https://gitea.alaindee.net/mayx/blog
https://gitea.reimann.ee/mayx/blog
http://109.74.197.189/mayx/blog
https://git.nussi.net/mayx/blog
-https://git.thepain.dev/mayx/blog
-https://gitea.ultrasoft.cm/mayx/blog
http://94.224.160.69:7990/mayx/blog
-http://8.134.144.137:3000/mayx/blog
https://git.hxps.ru/mayx/blog
https://gitea.ekjeong.synology.me/mayx/blog
https://git.d4m13n.dev/mayx/blog
-https://git.needon.kr/mayx/blog
https://git.4lcap.com/mayx/blog
https://git.stit.tech/mayx/blog
-https://git.wun.im/mayx/blog
https://www.9miao.fun:6839/mayx/blog
-https://git.ssktv.vip/mayx/blog
https://git.autotion.net/mayx/blog
http://octifor.synology.me:53000/mayx/blog
https://git.daoyoucloud.com/mayx/blog
https://git.entryrise.com/mayx/blog
-https://repo.apps.odatahub.net/mayx/blog
http://okbestgood.com:3000/mayx/blog
https://code.bitahub.com/mayx/blog
https://git.daneric.dev/mayx/blog
http://git.guaiyun.com.cn/mayx/blog
http://malingshu.site:6010/mayx/blog
-https://git.jbangit.com/mayx/blog
https://repo.gusdya.net/mayx/blog
https://gitea.tmartens.dev/mayx/blog
http://218.206.106.50:19901/mayx/blog
-https://g.6tm.es/mayx/blog
https://git.slegeir.com/mayx/blog
https://git.kimcblog.com/mayx/blog
-https://gogs.m14xa.ru/mayx/blog
https://git.minaev.su/mayx/blog
https://git.0fs.ru/mayx/blog
https://git.bremauer.cc/mayx/blog
https://git.itbcode.com/mayx/blog
http://119.3.29.177:3000/mayx/blog
http://47.110.224.240:13000/mayx/blog
-https://Git.Getmind.cn/mayx/blog
http://dev.icrosswalk.ru:46300/mayx/blog
-http://8.134.206.4:9001/mayx/blog
https://git.huwhy.cn/mayx/blog
http://194.67.86.160:3100/mayx/blog
http://47.101.58.33:3000/mayx/blog
https://gitea.synapsetec.cn/mayx/blog
-http://47.121.207.193:3000/mayx/blog
http://220.132.16.87:3000/mayx/blog
-https://git.tintinger.org/mayx/blog
http://gitea.yunshanghub.com:8081/mayx/blog
-http://47.111.136.200:3000/mayx/blog
https://repo.c-software.id/mayx/blog
http://113.177.27.200:2033/mayx/blog
http://152.69.204.151:3000/mayx/blog
@@ -341,7 +300,6 @@ http://8.129.84.221:10800/mayx/blog
http://122.51.51.35:3000/mayx/blog
http://34.81.52.16/mayx/blog
https://git.aopcloud.com/mayx/blog
-https://gitea.zerova.com/mayx/blog
http://120.78.74.94:3000/mayx/blog
https://git.genowisdom.cn/mayx/blog
http://120.26.116.243:3000/mayx/blog
@@ -365,17 +323,14 @@ https://gitea.questline.coop/mayx/blog
https://gitea.mpc-web.jp/mayx/blog
https://git.poggerer.xyz/mayx/blog
https://git.wisptales.org/mayx/blog
-https://git.peaksscrm.com/mayx/blog
http://git.chaojing-film.com:3000/mayx/blog
http://8.142.81.167:1080/mayx/blog
https://git.nusaerp.com/mayx/blog
-http://39.100.245.231:40030/mayx/blog
http://35.207.205.18:3000/mayx/blog
http://git.zjsciot.com:3000/mayx/blog
https://gitea.ontoast.uk/mayx/blog
http://112.124.40.88:5510/mayx/blog
https://got.joshuakatz.me/mayx/blog
-https://git-web.phomecoming.com/mayx/blog
http://121.36.37.70:15501/mayx/blog
http://187.216.152.151:9999/mayx/blog
http://116.63.173.179:8001/mayx/blog
@@ -412,13 +367,11 @@ http://6068688.xyz:3000/mayx/blog
http://8.137.105.8:5530/mayx/blog
https://git.881221.xyz/mayx/blog
http://120.46.222.128:10021/mayx/blog
-http://39.106.86.127:3000/mayx/blog
https://git.techspec.pro/mayx/blog
http://47.92.23.211:3000/mayx/blog
http://120.26.108.239:9188/mayx/blog
https://git.van-peeren.de/mayx/blog
http://gitea.msadb.cn/mayx/blog
-https://git.changenhealth.cn/mayx/blog
http://git.gkcorp.com.vn:16000/mayx/blog
http://47.111.17.177:3000/mayx/blog
http://git.hnits360.com/mayx/blog
@@ -427,32 +380,25 @@ http://110.42.45.89:2052/mayx/blog
https://git.furcom.org/mayx/blog
http://47.109.95.73:3000/mayx/blog
http://47.104.196.63:8418/mayx/blog
-https://git.mkubiak.com/mayx/blog
-http://38.22.90.74:3000/mayx/blog
http://8.133.240.249:3456/mayx/blog
https://git.mista.ru/mayx/blog
http://34.102.70.200:3000/mayx/blog
-https://vcs.int.feuerwehr-ziemetshausen.de/mayx/blog
http://175.178.219.170:3000/mayx/blog
https://git.camus.cat/mayx/blog
https://code.miraclezhb.com/mayx/blog
http://blueroses.top:8888/mayx/blog
https://git.cnml.de/mayx/blog
-https://giteas.fullmooncyberworks.com/mayx/blog
http://47.112.118.149:10082/mayx/blog
https://gitea.jobiglo.com/mayx/blog
https://gitea.rpg-librarium.de/mayx/blog
http://begild.top:8418/mayx/blog
http://58.221.13.198:30010/mayx/blog
-https://gitea.kaz62.ru/mayx/blog
https://git.tbaer.de/mayx/blog
http://74.48.174.77:3000/mayx/blog
-https://git.atggroup.vn/mayx/blog
https://git.d-popov.com/mayx/blog
https://git.liliyamol.cn/mayx/blog
https://git.srblerp.com/mayx/blog
http://8.138.90.28:3000/mayx/blog
-https://git.hotolab.win/mayx/blog
https://home.zhupei.me:3000/mayx/blog
https://gitea.theaken.com/mayx/blog
https://git.ja-schwarz.de/mayx/blog
@@ -460,40 +406,28 @@ https://shanewan.cn:30000/mayx/blog
https://git.xemo-net.de/mayx/blog
https://git.23cm.cn/mayx/blog
https://gitea.oio.cat/mayx/blog
-https://git.rokiy.com/mayx/blog
http://59.110.17.86:3000/mayx/blog
https://git.karma-riuk.com/mayx/blog
https://git.saidomar.fr/mayx/blog
-https://gitea.pnkx.top:8/mayx/blog
http://gitea.fcunb.cn:10083/mayx/blog
http://47.107.152.87:3000/mayx/blog
-https://git.ligmatiktok.com/mayx/blog
http://106.15.58.155:3333/mayx/blog
https://git.sduonline.cn/mayx/blog
https://git.7o9o.net/mayx/blog
-https://gitea.adminakademia.pl/mayx/blog
https://dev.init.zone/mayx/blog
https://git.baneynet.net/mayx/blog
-http://43.143.224.106:2000/mayx/blog
http://47.97.225.73:3000/mayx/blog
http://1.15.11.52:13000/mayx/blog
https://git.gupaoedu.cn/mayx/blog
http://60.205.233.184:3010/mayx/blog
-http://121.43.49.226/mayx/blog
https://git.ricecakecat.com/mayx/blog
https://gittea.biveki.ru/mayx/blog
https://git.7milch.com/mayx/blog
-https://gitea.zmanplex.com/mayx/blog
-https://git.hexdive.com/mayx/blog
-http://139.224.250.209:3000/mayx/blog
-https://vcc808.site/mayx/blog
https://git.sitenevis.com/mayx/blog
https://git.nightime.org/mayx/blog
https://dreamplacesai.de/mayx/blog
https://git.soy.dog/mayx/blog
-https://bachner.synology.me:10002/mayx/blog
https://git.cool2645.com/mayx/blog
-https://gitea.jludwig.net/mayx/blog
https://git.z1.mk/mayx/blog
http://185.87.111.46:3000/mayx/blog
http://suncheng.asia:14200/mayx/blog
@@ -503,8 +437,6 @@ https://git.git-happens.de/mayx/blog
https://gitea.seanomad.ru/mayx/blog
http://47.104.241.192:19999/mayx/blog
http://47.105.61.58:3000/mayx/blog
-https://git.memosnag.com/mayx/blog
-http://tdss.website:801/mayx/blog
http://101.35.183.241/mayx/blog
https://gitea.quiztimes.nl/mayx/blog
http://106.14.189.125:3000/mayx/blog
@@ -539,20 +471,14 @@ http://135.235.225.198:3000/mayx/blog
http://giteaiposeek.cn/mayx/blog
https://git.zimerguz.net/mayx/blog
https://git.cukak.com/mayx/blog
-http://farsinot.ir:3000/mayx/blog
-https://gitea.sosaley.in/mayx/blog
https://dev.ncot.uk/mayx/blog
https://git.sick.earth/mayx/blog
-https://git.ncue.net/mayx/blog
-https://gitea.rbpsw.net/mayx/blog
https://git.prayujt.com/mayx/blog
http://121.199.11.156:3000/mayx/blog
http://www.sh-hpg.com:3000/mayx/blog
https://git.galaxylabs.ca/mayx/blog
https://gitlab.n8n-store.xyz/mayx/blog
-https://forgejo.win/mayx/blog
https://gitea.katiethe.dev/mayx/blog
-https://git0.zpqrtbnk.net/mayx/blog
http://159.203.33.179:3000/mayx/blog
http://117.72.114.197:3000/mayx/blog
http://192.210.186.179:20051/mayx/blog
@@ -562,7 +488,6 @@ https://git.novaa.xyz/mayx/blog
https://gitea.noname-studios.es/mayx/blog
http://101.46.208.93:3000/mayx/blog
http://45.93.137.91:3000/mayx/blog
-https://git.smartdev.cz/mayx/blog
http://23.94.57.60:3000/mayx/blog
https://git.atomos.io/mayx/blog
https://git.tylantyson.com/mayx/blog
@@ -572,10 +497,8 @@ https://gitea.avixc-nas.myds.me/mayx/blog
http://www.ggafrik.site/mayx/blog
https://gitea.chaopi.dev/mayx/blog
http://118.196.23.96:1866/mayx/blog
-http://47.119.120.128:8085/mayx/blog
http://sjhome.cloud:3000/mayx/blog
https://gitea.sciotech.cn/mayx/blog
-https://manage.gitea.djangoadmin.cn/mayx/blog
http://8.148.220.5:8089/mayx/blog
http://8.140.250.85:3000/mayx/blog
http://8.134.11.35:3000/mayx/blog
@@ -583,7 +506,6 @@ https://dev.ilink-app.com/mayx/blog
https://git.ctx.dev/mayx/blog
http://82.157.205.190:3000/mayx/blog
https://nas.szwyll.com:3000/mayx/blog
-http://baylan.la.asu.edu:3000/mayx/blog
https://git.koppa.pro/mayx/blog
http://188.120.243.108:3000/mayx/blog
http://202.65.194.19:3000/mayx/blog
@@ -592,8 +514,6 @@ http://8.148.234.146:3001/mayx/blog
https://git.ypepin.com/mayx/blog
http://www.bzturbo.com.br/mayx/blog
https://git.maiasoft.jp/mayx/blog
-https://git.athelas-conseils.fr/mayx/blog
-https://git.churiland.com/mayx/blog
http://git.huangwc.com/mayx/blog
https://gitea.xala.dev/mayx/blog
http://101.201.34.43:3000/mayx/blog
@@ -607,7 +527,6 @@ https://vw-git.senecasense.com/mayx/blog
http://git.uhfdemo.com/mayx/blog
http://47.108.217.75:3000/mayx/blog
https://git.jakubzabski.pl/mayx/blog
-https://gitea.forgeandflowsolutions.com/mayx/blog
https://www.git.omezaldama.xyz/mayx/blog
https://vila.go.ro/mayx/blog
https://git.olyntec.com/mayx/blog
@@ -617,10 +536,8 @@ http://124.223.89.168:8080/mayx/blog
http://139.129.21.166:3000/mayx/blog
http://111.231.240.168:9082/mayx/blog
https://git.afonsosoares.com/mayx/blog
-https://gitea.nswteam.net/mayx/blog
http://209.141.47.52:3000/mayx/blog
https://git.apfern.com/mayx/blog
-http://120.26.115.132:3000/mayx/blog
http://47.103.155.22:3000/mayx/blog
http://dapainas.asia:5990/mayx/blog
http://60.204.158.188:3000/mayx/blog
@@ -629,13 +546,11 @@ https://git.3dizart.ru/mayx/blog
http://119.3.252.2:3000/mayx/blog
http://60.204.156.211:3000/mayx/blog
http://youneed.top:10014/mayx/blog
-https://gitea.abra.me/mayx/blog
https://git.yukaige.com/mayx/blog
http://nas.bi1kbu.com:8418/mayx/blog
http://123.56.74.235:3000/mayx/blog
http://15.204.210.141:30121/mayx/blog
http://1.94.178.207:3000/mayx/blog
-http://47.96.145.34:3000/mayx/blog
https://gitea.tsaida.synology.me/mayx/blog
http://xapple.ru:3000/mayx/blog
https://git.teygaming.com/mayx/blog
@@ -653,7 +568,6 @@ http://113.45.76.155:3000/mayx/blog
http://47.100.28.88:3000/mayx/blog
http://168.138.196.70:3000/mayx/blog
http://39.96.211.118:3000/mayx/blog
-https://git.server.isalem.net/mayx/blog
http://47.103.100.52:3000/mayx/blog
https://git.cos777nnn777.win/mayx/blog
http://5.189.140.23:8080/mayx/blog
@@ -677,7 +591,6 @@ http://47.102.147.170:3050/mayx/blog
https://git.borg.unak.is/mayx/blog
http://209.38.235.254:3000/mayx/blog
http://52.66.204.217:3001/mayx/blog
-https://pdje.uk/mayx/blog
http://172.236.250.154:3000/mayx/blog
http://54.198.134.152:3000/mayx/blog
http://121.41.35.226:11011/mayx/blog
@@ -685,7 +598,6 @@ 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
-https://git.hibikiame.com:3000/mayx/blog
https://www.yseven.net/mayx/blog
http://8.138.187.132:3000/mayx/blog
https://gitea.codeathome.ovh/mayx/blog
@@ -693,7 +605,6 @@ http://117.72.15.187:3000/mayx/blog
http://159.223.54.247:3030/mayx/blog
http://81.70.30.91:3000/mayx/blog
http://47.98.105.248:3000/mayx/blog
-http://218.84.152.14:65001/mayx/blog
https://gitea.kisechan.space/mayx/blog
http://nas-home.top:8418/mayx/blog
http://140.238.9.133:3007/mayx/blog
@@ -741,7 +652,6 @@ 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
-https://lunarvow.top:12494/mayx/blog
http://223.108.157.174:3000/mayx/blog
http://120.24.249.56/mayx/blog
http://47.100.90.152:3000/mayx/blog
@@ -755,7 +665,6 @@ http://git.goodxp.cn/mayx/blog
http://47.104.189.3:3000/mayx/blog
https://git.twinkle.network/mayx/blog
http://8.137.106.149:3000/mayx/blog
-http://47.112.119.250:3000/mayx/blog
http://8.137.170.249:3000/mayx/blog
https://mygit.kikyps.com/mayx/blog
http://152.42.207.183:3000/mayx/blog
@@ -769,7 +678,6 @@ https://gitea.vilcap.com/mayx/blog
https://git.2b8.org/mayx/blog
http://8.137.94.229:3000/mayx/blog
http://121.196.245.62/mayx/blog
-http://47.92.35.224:3000/mayx/blog
http://47.102.209.69:53000/mayx/blog
http://116.205.97.109:3000/mayx/blog
https://gitea.ysme.top/mayx/blog
@@ -783,7 +691,6 @@ http://113.46.142.74:3000/mayx/blog
http://47.100.0.167:3000/mayx/blog
http://www.koelndom.cn:13030/mayx/blog
http://209.127.59.74:3000/mayx/blog
-http://111.15.179.73:3000/mayx/blog
http://47.113.119.107:3000/mayx/blog
https://git.dotb.cloud/mayx/blog
http://178.205.99.36:3000/mayx/blog
@@ -791,7 +698,6 @@ https://git.bigdalang.com/mayx/blog
https://gitea.augeo.dev/mayx/blog
https://demo.stam.kr/mayx/blog
http://120.46.23.215:3000/mayx/blog
-http://47.108.75.198:3000/mayx/blog
http://121.41.2.71:3000/mayx/blog
http://47.114.94.196:8030/mayx/blog
https://sithcom.de/mayx/blog
@@ -822,22 +728,24 @@ http://docker.clhero.fun:3000/mayx/blog
http://42.193.251.215:3000/mayx/blog
http://kpro.shanghaiopen.org.cn:8005/mayx/blog
https://bdgit.educoder.net/mayx/blog
-http://77.104.76.44/mayx/blog
-http://101.42.172.53:27007/mayx/blog
http://e19510c831.iok.la/mayx/blog
https://gitea.clintmasden.duckdns.org/mayx/blog
http://gitea.liaozhuangkeji.com/mayx/blog
https://www.nxgit.xyz/mayx/blog
-http://220.112.1.148:7166/mayx/blog
http://119.45.49.212:3000/mayx/blog
https://git.synapsenet.net/mayx/blog
https://gitea.kdlsvps.top/mayx/blog
http://deiniusoft.com:3000/mayx/blog
https://code.antopie.org/mayx/blog
-http://120.197.24.77:3000/mayx/blog
http://c6h5gp.top:3000/mayx/blog
https://git.serenetia.com/mayx/blog
https://tm-jikayo.com/mayx/blog
https://vcs.cozydsp.space/mayx/blog
-https://stephens.cc/mayx/blog
https://git.aoun.ltd/mayx/blog
+http://43.162.113.116:3000/mayx/blog
+http://8.129.11.230:7002/mayx/blog
+http://115.190.107.87:3000/mayx/blog
+https://git.ponekf.com/mayx/blog
+https://git.hast.one/mayx/blog
+http://106.12.50.144:8081/mayx/blog
+http://43.192.90.133/mayx/blog
diff --git a/_data/proxylist.yml b/_data/proxylist.yml
index 1abc538..082c437 100644
--- a/_data/proxylist.yml
+++ b/_data/proxylist.yml
@@ -33,19 +33,23 @@ repos:
- https://framagit.org/mayx/mayx.frama.io
- https://salsa.debian.org/mayx/mayx.pages.debian.net
- https://codeberg.org/mayx/blog
+- https://pagure.io/mayx
- https://git.gay/mayx/mayx
- https://gitea.com/mayx/mayx
- https://gitgud.io/mayx/mayx
- https://git.sr.ht/~mayx/mayx
- https://git.launchpad.net/mayx
+- https://gin.g-node.org/mayx/blog
- https://git.disroot.org/mayx/mayx
- https://bitbucket.org/unmayx/mayx
- https://sourcecraft.dev/mayx/mayx
- https://gitflic.ru/project/mayx/blog
+- https://tangled.org/mayx.tngl.sh/blog/
- https://gitee.com/mabbs/mabbs
- https://cnb.cool/unmayx/mayx
- https://atomgit.com/mayx/blog
- https://sourceforge.net/projects/mayx/
+- https://dev.azure.com/unmayx/_git/Mayx
static:
- https://mayx.nekoweb.org/
- https://mayx.neocities.org/
diff --git a/_posts/2026-01-01-summary.md b/_posts/2026-01-01-summary.md
new file mode 100644
index 0000000..d8d2d9e
--- /dev/null
+++ b/_posts/2026-01-01-summary.md
@@ -0,0 +1,20 @@
+---
+layout: post
+title: 年终总结
+tags: [总结]
+---
+
+ 0 error(s), ∞ warning(s)
+
+# 2025年的状态
+ 在2025年,感觉状态不如去年……由于没能做出正确的选择,还是有点糟糕。不过总的来说还没有引发关键性的错误,至少还能继续坚持下去。
+ 在这一年中,感觉记忆和思考能力都有所下滑,看来是没把自己照顾好😂,不过看看这一年写的文章,看起来似乎比以前更流畅了,这也许是因为和AI聊得多了,以至于思维有点偏向AI了吧。
+ 总的来说感觉自己的稳定性还是有点低了,但这可能不是我能独自解决的,也不知会有什么转机……
+
+# 2025年发生的事情
+ 回顾了一下[去年的年终总结](/2025/01/01/summary.html),发现自己还是没能做到知行合一,在这一年里全球各类资产突然开始大幅升值,也就是说钱真的开始不值钱了……那时候想着买黄金,这一年下来却没能下定决心,最终错过了资产保值的机会。至于现在,似乎什么也做不了了……当然这对我的生活并没有造成什么严重的打击,只是感受到环境对自己的影响罢了。
+ 至于AI……依然是一天比一天强,而各个公司对AI的投入相比去年也是极大的提升,当然出来的效果也是非常强,那时候的AI还是挺容易出错,但是现在AI解决问题的能力已经可以替代很多人了,不只是文本生成模型,今年的图像与视频生成模型也真的是发展到了以往完全不能想象的地步,真的可以做到一句话想要什么就有什么了。
+ 另外,今年写的博客内容过于围绕博客本身了,以至于似乎不太跟得上时代,虽然我的博客也确实有点老旧了😆。只是看看以前的文章,都还有一些面向未来的趋势,而今年就有点“考古”了。相比于考古,去展望未来显然是更有意义的事情,只不过……真的感觉脑子不太好使,未来会发生什么,已经完全无法预测了。
+
+# 展望2026年
+ 虽然不知道未来会发生什么,但毕竟还没有造成关键性的错误,还有修正的余地,只能希望未来能够做出正确的选择,不要让自己陷入危险的境地吧。
\ No newline at end of file
From 0ad9008f3e573974bfce9caa9233eb4597439ef0 Mon Sep 17 00:00:00 2001
From: mayx
Date: Sat, 17 Jan 2026 09:35:46 +0000
Subject: [PATCH 17/29] Update 4 files
- /_data/other_repo_list.csv
- /_data/links.csv
- /_data/ai-cache.json
- /_data/proxylist.yml
---
_data/ai-cache.json | 3 +-
_data/links.csv | 3 +-
_data/other_repo_list.csv | 131 +++++++++++---------------------------
_data/proxylist.yml | 1 -
4 files changed, 39 insertions(+), 99 deletions(-)
diff --git a/_data/ai-cache.json b/_data/ai-cache.json
index f4f70b5..bf652e1 100644
--- a/_data/ai-cache.json
+++ b/_data/ai-cache.json
@@ -172,5 +172,6 @@
"/2025/09/01/quine.html": "这篇文章主要介绍了作者在博客部署过程中,对ZIP Quine(自包含压缩包)和自产生程序的探索过程。作者起初想利用压缩包实现离线浏览,但遇到了压缩包不包含自身的问题。随后,作者回顾了ZIP Quine的原理,如droste.zip,以及如何通过DEFLATE压缩算法的LZ77编码实现自包含。作者尝试了Russ Cox的方案,但发现由于压缩格式限制,实际操作中存在数据容量的限制,无法存下整个博客。尽管如此,作者还是研究了嵌套循环的ZIP Quine,如Ruben Van Mello的论文中所描述的,尽管空间仍然有限。探索过程中,作者还学习了自产生程序(Quine)的概念,包括其实现原理和各种编程语言中的例子。作者最后感慨,探索过程中的收获比原本的目标更重要。",
"/2025/10/12/recover.html": "这篇文章讲述了作者通过GitHub的Fork特性找回一个被删除的Brainfuck可视化演示仓库的经历。由于原仓库和作者主页都已消失,作者推测GitHub在Fork时会共享对象库,只要有任意一个Fork仓库存在,GitHub就会保留所有对象,从而可以通过找到一个Fork仓库的最新提交Hash值来还原目标仓库。作者通过Linux内核仓库的Fork进行验证,随后在互联网档案馆上找到目标仓库的Fork以及其Hash值,最终通过Git命令将本地仓库的HEAD指针指向目标提交,成功恢复了该仓库的代码,并将其部署到自己的GitHub Pages上。最后,作者发现Software Heritage组织会保存所有代码,因此在遇到类似情况时可以直接通过该平台进行查找。",
"/2025/11/01/mirrors.html": "这篇文章讲述了作者为了提高博客的可靠性,探索利用被滥用的Git平台进行博客镜像的想法和实践。作者发现一些Git实例存在大量空仓库和异常用户,怀疑是SEO公司滥用,因此决定利用这些平台进行博客镜像备份,以应对平台倒闭或数据丢失的风险。作者选择Gitea和Forgejo平台作为目标,编写脚本自动注册账号并导入博客仓库,实现了自动化镜像分发。作者也意识到此类平台的稳定性存在不确定性,并思考了“量”和“质”两种方式确保博客永恒性的优劣,最终认为建立一个活跃的、自动执行维护操作的网络可能更有效。文章最后展示了作者创建的Git镜像列表,并表达了对博客永恒性的思考。",
- "/2025/12/01/linux.html": "这篇文章介绍了在浏览器中运行Linux的各种方法,从最初的纯JS虚拟机JSLinux,到后来的WASM虚拟机如v86、WebVM、WebCM,再到容器化方案container2wasm,以及直接将Linux内核编译为WASM的方案。作者详细对比了这些方案的优缺点,包括性能、兼容性、功能和开发难度。文章还提到了模仿Linux环境的WebContainers和JupyterLite,并最终认为虚拟机方案更靠谱,但对WASM的未来充满期待。作者最后表示,博客上添加类似功能的计划还在考虑中,目前主要分享了各种方法的探索过程。"
+ "/2025/12/01/linux.html": "这篇文章介绍了在浏览器中运行Linux的各种方法,从最初的纯JS虚拟机JSLinux,到后来的WASM虚拟机如v86、WebVM、WebCM,再到容器化方案container2wasm,以及直接将Linux内核编译为WASM的方案。作者详细对比了这些方案的优缺点,包括性能、兼容性、功能和开发难度。文章还提到了模仿Linux环境的WebContainers和JupyterLite,并最终认为虚拟机方案更靠谱,但对WASM的未来充满期待。作者最后表示,博客上添加类似功能的计划还在考虑中,目前主要分享了各种方法的探索过程。",
+ "/2026/01/01/summary.html": "这篇文章介绍了作者对2025年的年终总结,主要表达了对自身状态的担忧和对未来的不确定感。作者认为自己在记忆和思考能力方面有所下滑,稳定性较低,且未能抓住资产保值的机会。同时,文章也记录了AI技术的飞速发展,以及自己博客内容与时代脱节的现象。尽管对未来感到迷茫,作者仍然抱有一丝希望,期望在2026年做出正确的选择,避免陷入危险。"
}
\ No newline at end of file
diff --git a/_data/links.csv b/_data/links.csv
index fac27bb..f84bb7c 100644
--- a/_data/links.csv
+++ b/_data/links.csv
@@ -18,6 +18,5 @@ Vullfin的博客,https://blog.vull.top/,https://blog.vull.top/atom.xml,Vullfin's
Lanke's blog,https://blog.blueke.top/,https://blog.blueke.top/rss.xml,请为一切不真实之物骄傲,因为我们高于这个世界!
时光流·言,https://www.hansjack.com/,https://www.hansjack.com/feed/,个人博客,持续分享网站部署实战经验、精选书评解读和生活观察手记。 这里提供可复用的技术教程、深度阅读指南和真实生活洞察,与技术爱好者一起进步......
Pinpe 的云端,https://pinpe.top/,https://pinpe.top/rss.xml,一个属于自己的云朵。
-Chise Hachiroku,https://chise.hachiroku.com/,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://nihaha.com/,https://nihaha.com/feed/,城市与信仰
\ No newline at end of file
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index b1d8380..02bbfeb 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -10,22 +10,11 @@ https://git.pixie.town/mayx/mayx
https://cgit.tilde.town/~mayx/blog
https://gitlab.haskell.org/mayx/mayx
https://repo2.serv00.com/git/pub/Mayx/mayx/
-https://git.hana.im/mayx/blog
-https://git.tea-assets.com/mayx/blog
-https://repo.komhumana.org/mayx/blog
https://git.minetest.land/Mayx/blog
-http://ucarmesin.de:3000/mayx/blog
-https://gitea.johannes-hegele.de/mayx/blog
-https://git.octava.cool/mayx/blog
-http://117.72.78.89:3000/mayx/blog
https://gitea.stormyhome.net/mayx/blog
http://47.120.60.153:10880/mayx/blog
-http://zfselect.cn:3000/mayx/blog
http://61.139.16.27:26684/mayx/blog
-https://git.dpark.io/mayx/blog
http://116.62.245.34:3000/mayx/blog
-https://git.johann-brauer.de/mayx/blog
-https://git.shaunmcpeck.com/mayx/blog
http://1.6.141.109:3000/mayx/blog
http://52.28.156.42/mayx/blog
http://164.92.160.200:3000/mayx/blog
@@ -35,16 +24,11 @@ https://code.dsconce.space/mayx/blog
https://git.anibilag.ru/mayx/blog
https://git.lolpro11.me/mayx/blog
https://git.empirica.pro/mayx/blog
-http://47.115.203.168:3000/mayx/blog
-http://www.gitea.zhangc.top:3000/mayx/blog
-https://git.chistyakov-it.ru/mayx/blog
https://git.emanuelemiani.it/mayx/blog
https://git.dehemi.com/mayx/blog
https://git.ngcr.de/mayx/blog
http://101.66.229.132:61088/mayx/blog
-http://118.26.39.39:3000/mayx/blog
http://150.109.95.245/mayx/blog
-https://git.pcgf.io/mayx/blog
https://git.bp-web.app/mayx/blog
http://47.103.91.160:50903/mayx/blog
https://mygit.iexercice.com/mayx/blog
@@ -53,15 +37,11 @@ http://durfee.mycrestron.com:3000/mayx/blog
https://git.expiera.com/mayx/blog
https://gitea.nongnghiepso.com/mayx/blog
https://codes.tools.asitavsen.com/mayx/blog
-https://git.siin.space/mayx/blog
http://122.116.190.233:3001/mayx/blog
http://101.200.127.15:3000/mayx/blog
http://50.19.111.193:3000/mayx/blog
https://git-test.zcy.dev/mayx/blog
https://git.nothamor.com/mayx/blog
-https://git.terrainknowledge.com/mayx/blog
-https://gitea.pickalurv.com/mayx/blog
-http://183.239.197.12:10803/mayx/blog
https://git.zeroplay.io/mayx/blog
https://git.successkaoyan.com/mayx/blog
https://gitea.bitshift.us/mayx/blog
@@ -70,31 +50,22 @@ http://139.129.25.251:3000/mayx/blog
http://45.33.87.87/mayx/blog
https://git.rankenste.in/mayx/blog
https://git.ghostpacket.org/mayx/blog
-https://git.catswords.net/mayx/blog
http://168.126.28.36:3000/mayx/blog
-https://git.cloud.leonclassroom.com/mayx/blog
http://120.25.239.206:20080/mayx/blog
https://registry.gametuoitho.vn/mayx/blog
-http://8.137.103.221:3000/mayx/blog
http://120.79.27.232:3000/mayx/blog
http://wangbeibei.xyz:6002/mayx/blog
http://43.224.227.219:3000/mayx/blog
https://git.duplanet.ovh/mayx/blog
-http://Shiningon.top/mayx/blog
http://wsygitea.top/mayx/blog
https://git.yardtech.ru/mayx/blog
http://69.62.77.234:8888/mayx/blog
http://8.134.15.96:3000/mayx/blog
http://112.219.147.186:7000/mayx/blog
-http://47.119.38.109:3000/mayx/blog
https://mysite.myvnc.com:3000/mayx/blog
-http://8.134.32.42:3000/mayx/blog
https://git.rootfinlay.co.uk/mayx/blog
https://repo.beithing.com/mayx/blog
-https://git.tinker.infamous.games/mayx/blog
https://git.yi-guanjia.com/mayx/blog
-http://106.14.174.241:3000/mayx/blog
-https://git.datdanguy.com/mayx/blog
http://rack1.raincs.cc:20253/mayx/blog
https://git.repo.in.net/mayx/blog
http://47.113.231.74:3000/mayx/blog
@@ -105,19 +76,13 @@ https://git.warzin.com/mayx/blog
https://git.burning.cloud/mayx/blog
https://gitea.sguba.de/mayx/blog
https://git.flywithu.com/mayx/blog
-https://git.purplepanda.cc/mayx/blog
-https://gitea.freeyoursystem.de/mayx/blog
-https://git.moguyn.cn/mayx/blog
https://git.zhanzhi.life/mayx/blog
http://121.36.255.50:3000/mayx/blog
-https://apoloz-git.md-desk.ru/mayx/blog
http://116.204.34.35:12000/mayx/blog
https://git.echaeplay.com/mayx/blog
https://git.bethelean.kr/mayx/blog
-https://git.barsisr.fr/mayx/blog
http://45.192.105.100:3000/mayx/blog
http://47.112.175.39:3000/mayx/blog
-https://www.improve-git.xyz/mayx/blog
https://git.Apture.io/mayx/blog
https://git.dbfmp.cn/mayx/blog
http://103.231.8.120/mayx/blog
@@ -136,11 +101,9 @@ https://git.werkraum-karlsruhe.org/mayx/blog
http://111.231.146.230:8418/mayx/blog
https://git.winscloud.net/mayx/blog
https://git.pwaapp.cc/mayx/blog
-http://188.245.99.186:3000/mayx/blog
http://119.28.73.80:5000/mayx/blog
http://194.60.231.252:3000/mayx/blog
https://git.sleepingforest.co.uk/mayx/blog
-http://47.103.223.114:8081/mayx/blog
https://git.xdsite.fun/mayx/blog
https://git.brb.homeip.net/mayx/blog
https://an360.top/mayx/blog
@@ -149,7 +112,6 @@ http://106.15.78.64:3000/mayx/blog
http://hoenking.cn:3000/mayx/blog
https://GIT.Agri-Sys.com/mayx/blog
https://gitea.anessen.xyz/mayx/blog
-https://sengit.us/mayx/blog
https://git.cjcrace.io/mayx/blog
https://git.yinbonet.cn/mayx/blog
https://git.inkcore.cn/mayx/blog
@@ -160,7 +122,6 @@ https://git2.ujin.tech/mayx/blog
http://git.joypetsisland.com/mayx/blog
http://111.119.244.185:3000/mayx/blog
http://110.41.179.36:13000/mayx/blog
-https://git.chrisbeckstrom.com/mayx/blog
https://git.moonwoou.com/mayx/blog
https://git.tomlab.dev/mayx/blog
http://182.92.109.202:8070/mayx/blog
@@ -171,10 +132,8 @@ https://Gitea.Sephalon.net/mayx/blog
https://git.gestio365.com/mayx/blog
http://47.122.132.187:3000/mayx/blog
https://git.k-corporation.org/mayx/blog
-https://git.myinternet.services/mayx/blog
http://43.138.173.153:8804/mayx/blog
http://frktedu.ru:3000/mayx/blog
-https://git.bloade.com/mayx/blog
https://git.lokalix.de/mayx/blog
http://8.141.14.13:3000/mayx/blog
https://git.palagov.tv/mayx/blog
@@ -194,13 +153,10 @@ http://116.204.75.78:6180/mayx/blog
https://git.powerdata.dk/mayx/blog
https://git.ods-company.ru/mayx/blog
http://109.228.48.121:8000/mayx/blog
-https://git.u2.nu/mayx/blog
https://bk-house.synology.me:3081/mayx/blog
http://123.57.95.66:9000/mayx/blog
http://git.yjmt191314.com/mayx/blog
https://git.sparrowcomm.com/mayx/blog
-https://gitea.timurcelik.de/mayx/blog
-http://www.rubikscomplex.com:3000/mayx/blog
https://git.hubhoo.com/mayx/blog
https://git.ultra.pub/mayx/blog
https://gitea.visoftware.com.co/mayx/blog
@@ -268,7 +224,6 @@ https://git.autotion.net/mayx/blog
http://octifor.synology.me:53000/mayx/blog
https://git.daoyoucloud.com/mayx/blog
https://git.entryrise.com/mayx/blog
-http://okbestgood.com:3000/mayx/blog
https://code.bitahub.com/mayx/blog
https://git.daneric.dev/mayx/blog
http://git.guaiyun.com.cn/mayx/blog
@@ -304,7 +259,6 @@ http://120.78.74.94:3000/mayx/blog
https://git.genowisdom.cn/mayx/blog
http://120.26.116.243:3000/mayx/blog
http://120.26.46.180:3000/mayx/blog
-http://8.222.156.46:3000/mayx/blog
http://123.57.16.111:3000/mayx/blog
http://115.159.107.117:3000/mayx/blog
http://47.99.98.98:9000/mayx/blog
@@ -352,14 +306,12 @@ http://114.215.207.150:3000/mayx/blog
http://2.59.132.109:3001/mayx/blog
http://newslabx.csie.ntu.edu.tw:3000/mayx/blog
http://81.71.148.57:8080/mayx/blog
-https://git.ides.club/mayx/blog
https://git.lmskaran.com/mayx/blog
http://sdgit.zfmgr.top/mayx/blog
http://47.122.26.54:3000/mayx/blog
http://154.86.0.30:3000/mayx/blog
http://139.224.196.148:3000/mayx/blog
http://47.95.167.249:3000/mayx/blog
-http://gitea.dctpay.com/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
@@ -367,7 +319,6 @@ http://6068688.xyz:3000/mayx/blog
http://8.137.105.8:5530/mayx/blog
https://git.881221.xyz/mayx/blog
http://120.46.222.128:10021/mayx/blog
-https://git.techspec.pro/mayx/blog
http://47.92.23.211:3000/mayx/blog
http://120.26.108.239:9188/mayx/blog
https://git.van-peeren.de/mayx/blog
@@ -399,7 +350,6 @@ https://git.d-popov.com/mayx/blog
https://git.liliyamol.cn/mayx/blog
https://git.srblerp.com/mayx/blog
http://8.138.90.28:3000/mayx/blog
-https://home.zhupei.me:3000/mayx/blog
https://gitea.theaken.com/mayx/blog
https://git.ja-schwarz.de/mayx/blog
https://shanewan.cn:30000/mayx/blog
@@ -468,14 +418,10 @@ https://catsdev.com/mayx/blog
https://git.lekai.info/mayx/blog
https://git.avclick.ru/mayx/blog
http://135.235.225.198:3000/mayx/blog
-http://giteaiposeek.cn/mayx/blog
https://git.zimerguz.net/mayx/blog
https://git.cukak.com/mayx/blog
-https://dev.ncot.uk/mayx/blog
https://git.sick.earth/mayx/blog
https://git.prayujt.com/mayx/blog
-http://121.199.11.156:3000/mayx/blog
-http://www.sh-hpg.com:3000/mayx/blog
https://git.galaxylabs.ca/mayx/blog
https://gitlab.n8n-store.xyz/mayx/blog
https://gitea.katiethe.dev/mayx/blog
@@ -485,7 +431,6 @@ http://192.210.186.179:20051/mayx/blog
https://git.ashcloud.com/mayx/blog
http://us2.fornoone.top:3000/mayx/blog
https://git.novaa.xyz/mayx/blog
-https://gitea.noname-studios.es/mayx/blog
http://101.46.208.93:3000/mayx/blog
http://45.93.137.91:3000/mayx/blog
http://23.94.57.60:3000/mayx/blog
@@ -496,7 +441,6 @@ https://devkona.net/mayx/blog
https://gitea.avixc-nas.myds.me/mayx/blog
http://www.ggafrik.site/mayx/blog
https://gitea.chaopi.dev/mayx/blog
-http://118.196.23.96:1866/mayx/blog
http://sjhome.cloud:3000/mayx/blog
https://gitea.sciotech.cn/mayx/blog
http://8.148.220.5:8089/mayx/blog
@@ -511,7 +455,6 @@ http://188.120.243.108:3000/mayx/blog
http://202.65.194.19:3000/mayx/blog
http://47.101.60.131:10082/mayx/blog
http://8.148.234.146:3001/mayx/blog
-https://git.ypepin.com/mayx/blog
http://www.bzturbo.com.br/mayx/blog
https://git.maiasoft.jp/mayx/blog
http://git.huangwc.com/mayx/blog
@@ -531,7 +474,6 @@ https://www.git.omezaldama.xyz/mayx/blog
https://vila.go.ro/mayx/blog
https://git.olyntec.com/mayx/blog
http://8.134.218.17:8013/mayx/blog
-https://www.invds.uk/mayx/blog
http://124.223.89.168:8080/mayx/blog
http://139.129.21.166:3000/mayx/blog
http://111.231.240.168:9082/mayx/blog
@@ -549,7 +491,6 @@ http://youneed.top:10014/mayx/blog
https://git.yukaige.com/mayx/blog
http://nas.bi1kbu.com:8418/mayx/blog
http://123.56.74.235:3000/mayx/blog
-http://15.204.210.141:30121/mayx/blog
http://1.94.178.207:3000/mayx/blog
https://gitea.tsaida.synology.me/mayx/blog
http://xapple.ru:3000/mayx/blog
@@ -560,12 +501,10 @@ http://185.128.138.246:3000/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://87.228.74.88:3000/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://113.45.76.155:3000/mayx/blog
-http://47.100.28.88:3000/mayx/blog
http://168.138.196.70:3000/mayx/blog
http://39.96.211.118:3000/mayx/blog
http://47.103.100.52:3000/mayx/blog
@@ -574,7 +513,6 @@ http://5.189.140.23:8080/mayx/blog
http://121.37.47.20:3000/mayx/blog
https://git.antropix.dev/mayx/blog
http://15.237.198.144/mayx/blog
-https://gitea.soap.wf/mayx/blog
http://123.249.119.122:3000/mayx/blog
http://183.6.120.101:30000/mayx/blog
http://134.122.173.191:3000/mayx/blog
@@ -606,14 +544,11 @@ http://159.223.54.247:3030/mayx/blog
http://81.70.30.91:3000/mayx/blog
http://47.98.105.248:3000/mayx/blog
https://gitea.kisechan.space/mayx/blog
-http://nas-home.top:8418/mayx/blog
http://140.238.9.133:3007/mayx/blog
http://8.138.100.115:3000/mayx/blog
-https://git.soupcafe.cc/mayx/blog
https://git.mwapp.com.br/mayx/blog
http://yidaima.cn:6008/mayx/blog
http://213.199.46.54:3001/mayx/blog
-http://47.94.156.73:3000/mayx/blog
http://185.126.237.57:3000/mayx/blog
http://47.97.50.232:3000/mayx/blog
http://106.54.211.95:3000/mayx/blog
@@ -624,12 +559,8 @@ http://down.luanhailiang.cn:9000/mayx/blog
http://39.96.195.72:10082/mayx/blog
https://gitea.klopfenstein.org/mayx/blog
http://8.148.24.160:3000/mayx/blog
-https://gitea.hailstorm.gay/mayx/blog
-http://hxu.ac.cn:3000/mayx/blog
-https://gitea.codeopslag.nl/mayx/blog
http://221.219.181.35:30000/mayx/blog
https://git.cymnb.com/mayx/blog
-http://8.163.31.138:3000/mayx/blog
http://47.108.27.137:3000/mayx/blog
http://182.92.9.236:3000/mayx/blog
http://172.172.102.93:3000/mayx/blog
@@ -637,12 +568,8 @@ http://101.132.255.70:3000/mayx/blog
http://139.196.179.195:3000/mayx/blog
http://115.120.245.164:3000/mayx/blog
http://120.27.19.58:30000/mayx/blog
-https://git-virtual.ru/mayx/blog
https://gitea.suchodupin.com/mayx/blog
-http://8.134.116.217:3000/mayx/blog
http://117.72.219.18:6000/mayx/blog
-http://47.99.144.51:3000/mayx/blog
-https://git.rcdiamondgh.cc/mayx/blog
http://35.194.179.90:3000/mayx/blog
http://188.245.173.247:3080/mayx/blog
http://8.153.14.94:61308/mayx/blog
@@ -660,22 +587,14 @@ http://121.196.237.108:3000/mayx/blog
http://g.gamesns.cn:3000/mayx/blog
http://54.179.203.2:3000/mayx/blog
http://14.103.246.124:16000/mayx/blog
-http://www.yuqiya.cn:8499/mayx/blog
-http://git.goodxp.cn/mayx/blog
-http://47.104.189.3:3000/mayx/blog
-https://git.twinkle.network/mayx/blog
-http://8.137.106.149:3000/mayx/blog
-http://8.137.170.249:3000/mayx/blog
https://mygit.kikyps.com/mayx/blog
http://152.42.207.183:3000/mayx/blog
https://git.lucasluqui.com/mayx/blog
http://47.99.60.81:10082/mayx/blog
http://120.211.66.170:8418/mayx/blog
-http://47.242.181.61:3333/mayx/blog
http://187.189.244.23:3000/mayx/blog
http://58.176.21.43:9004/mayx/blog
https://gitea.vilcap.com/mayx/blog
-https://git.2b8.org/mayx/blog
http://8.137.94.229:3000/mayx/blog
http://121.196.245.62/mayx/blog
http://47.102.209.69:53000/mayx/blog
@@ -684,24 +603,17 @@ https://gitea.ysme.top/mayx/blog
http://8.140.242.230:3000/mayx/blog
http://8.138.142.17:3000/mayx/blog
https://git.babalish.com/mayx/blog
-http://47.111.161.191:3000/mayx/blog
http://47.95.31.56:20080/mayx/blog
http://123.56.231.200:3000/mayx/blog
http://113.46.142.74:3000/mayx/blog
-http://47.100.0.167:3000/mayx/blog
http://www.koelndom.cn:13030/mayx/blog
http://209.127.59.74:3000/mayx/blog
-http://47.113.119.107:3000/mayx/blog
https://git.dotb.cloud/mayx/blog
-http://178.205.99.36:3000/mayx/blog
https://git.bigdalang.com/mayx/blog
https://gitea.augeo.dev/mayx/blog
-https://demo.stam.kr/mayx/blog
http://120.46.23.215:3000/mayx/blog
http://121.41.2.71:3000/mayx/blog
-http://47.114.94.196:8030/mayx/blog
https://sithcom.de/mayx/blog
-http://156.238.243.144:3000/mayx/blog
http://8.138.242.82:8888/mayx/blog
http://110.41.177.80:5000/mayx/blog
https://gitea.dsmaster.myds.me/mayx/blog
@@ -711,26 +623,21 @@ http://47.104.160.69:3000/mayx/blog
http://39.104.61.219:3000/mayx/blog
http://www.scserverddns.top:13000/mayx/blog
http://156.255.1.229:3000/mayx/blog
-http://120.237.152.218:8888/mayx/blog
https://git.ndpcloud.ru/mayx/blog
-https://dev.kirill-vorotov.com/mayx/blog
https://gitea.va-comer.net/mayx/blog
https://git.lucas-michel.fr/mayx/blog
http://60.205.162.59:3000/mayx/blog
https://git.imvictor.tech:2/mayx/blog
https://git.pwcedge-sbs-innov-lab.com/mayx/blog
-https://git.beitzah.net/mayx/blog
http://47.112.137.193:3000/mayx/blog
https://www.cadquos.dev/mayx/blog
https://gitea.malin.onl/mayx/blog
http://58.38.123.148:3176/mayx/blog
http://docker.clhero.fun:3000/mayx/blog
http://42.193.251.215:3000/mayx/blog
-http://kpro.shanghaiopen.org.cn:8005/mayx/blog
https://bdgit.educoder.net/mayx/blog
http://e19510c831.iok.la/mayx/blog
https://gitea.clintmasden.duckdns.org/mayx/blog
-http://gitea.liaozhuangkeji.com/mayx/blog
https://www.nxgit.xyz/mayx/blog
http://119.45.49.212:3000/mayx/blog
https://git.synapsenet.net/mayx/blog
@@ -741,11 +648,45 @@ http://c6h5gp.top:3000/mayx/blog
https://git.serenetia.com/mayx/blog
https://tm-jikayo.com/mayx/blog
https://vcs.cozydsp.space/mayx/blog
-https://git.aoun.ltd/mayx/blog
http://43.162.113.116:3000/mayx/blog
http://8.129.11.230:7002/mayx/blog
http://115.190.107.87:3000/mayx/blog
-https://git.ponekf.com/mayx/blog
https://git.hast.one/mayx/blog
http://106.12.50.144:8081/mayx/blog
http://43.192.90.133/mayx/blog
+http://47.120.16.137:8889/mayx/blog
+http://120.77.94.227:9999/mayx/blog
+https://code.wxk8.com/mayx/blog
+http://www.befitsoft.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.miyo.wiki/mayx/blog
+https://git.christophhagen.de/mayx/blog
+http://rito.synology.me:3000/mayx/blog
+https://gitea.lunaria-unlimited.com/mayx/blog
+http://www.dothing.com:6999/mayx/blog
+http://8.217.32.95:3000/mayx/blog
+https://git.temporaryname.org/mayx/blog
+https://git.loli.surf/mayx/blog
+http://121.135.143.139:5830/mayx/blog
+https://Repo.gusdya.net/mayx/blog
+https://git.m.ctf.arrobe.fr/mayx/blog
+https://gitlab.day/mayx/blog
+http://120.27.238.24:3000/mayx/blog
+https://code.diekabuths.dynu.net/mayx/blog
+http://69.62.64.52:3333/mayx/blog
+https://git.flymiracle.com/mayx/blog
+https://git.scene.to/mayx/blog
+https://git.auwiesen2.de/mayx/blog
+http://naughtycat.biz:3333/mayx/blog
+https://git.p1.bitstorm.co.nz/mayx/blog
+https://gitea.mipt.ru/mayx/blog
+https://www.yalecheung.top:1024/mayx/blog
+http://39.105.67.143:3000/mayx/blog
+https://gitea.manekenbrand.com/mayx/blog
+https://gitea.eabor.xyz/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
diff --git a/_data/proxylist.yml b/_data/proxylist.yml
index 082c437..ea3dddf 100644
--- a/_data/proxylist.yml
+++ b/_data/proxylist.yml
@@ -7,7 +7,6 @@ mirrors:
- https://mayx.gitlab.io/
- https://mayx.pages.dev/
- https://mayx.eu.org/
-- https://mayx.envs.sh/
- https://mayx.envs.net/
- https://mayx.frama.io/
- https://mayx.surge.sh/
From 1553183d31d0e34ec94ad58748042f117c1bc084 Mon Sep 17 00:00:00 2001
From: mayx
Date: Wed, 4 Feb 2026 01:27:35 +0000
Subject: [PATCH 18/29] Update 5 files
- /_data/other_repo_list.csv
- /assets/css/feed.css
- /assets/css/xslt.css
- /_layouts/xslt_container.html
- /rss.xml
---
_data/other_repo_list.csv | 124 ++++++---------------------------
_layouts/xslt_container.html | 1 +
assets/css/feed.css | 131 +++++++++++++++++++++++++++++++++++
assets/css/xslt.css | 35 ++++++++++
rss.xml | 1 +
5 files changed, 190 insertions(+), 102 deletions(-)
create mode 100644 assets/css/feed.css
create mode 100644 assets/css/xslt.css
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 02bbfeb..041eceb 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -26,117 +26,79 @@ https://git.lolpro11.me/mayx/blog
https://git.empirica.pro/mayx/blog
https://git.emanuelemiani.it/mayx/blog
https://git.dehemi.com/mayx/blog
-https://git.ngcr.de/mayx/blog
http://101.66.229.132:61088/mayx/blog
-http://150.109.95.245/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://git.expiera.com/mayx/blog
https://gitea.nongnghiepso.com/mayx/blog
https://codes.tools.asitavsen.com/mayx/blog
http://122.116.190.233:3001/mayx/blog
-http://101.200.127.15:3000/mayx/blog
http://50.19.111.193:3000/mayx/blog
https://git-test.zcy.dev/mayx/blog
https://git.nothamor.com/mayx/blog
https://git.zeroplay.io/mayx/blog
https://git.successkaoyan.com/mayx/blog
-https://gitea.bitshift.us/mayx/blog
-http://114.55.134.197:3000/mayx/blog
http://139.129.25.251:3000/mayx/blog
http://45.33.87.87/mayx/blog
https://git.rankenste.in/mayx/blog
-https://git.ghostpacket.org/mayx/blog
http://168.126.28.36:3000/mayx/blog
-http://120.25.239.206:20080/mayx/blog
-https://registry.gametuoitho.vn/mayx/blog
http://120.79.27.232:3000/mayx/blog
http://wangbeibei.xyz:6002/mayx/blog
-http://43.224.227.219:3000/mayx/blog
https://git.duplanet.ovh/mayx/blog
-http://wsygitea.top/mayx/blog
-https://git.yardtech.ru/mayx/blog
http://69.62.77.234:8888/mayx/blog
-http://8.134.15.96:3000/mayx/blog
http://112.219.147.186:7000/mayx/blog
-https://mysite.myvnc.com:3000/mayx/blog
https://git.rootfinlay.co.uk/mayx/blog
https://repo.beithing.com/mayx/blog
https://git.yi-guanjia.com/mayx/blog
-http://rack1.raincs.cc:20253/mayx/blog
https://git.repo.in.net/mayx/blog
-http://47.113.231.74:3000/mayx/blog
https://gitea.belanjaparts.com/mayx/blog
http://185.208.225.190:3000/mayx/blog
https://git.sudo-fhir.au/mayx/blog
-https://git.warzin.com/mayx/blog
-https://git.burning.cloud/mayx/blog
-https://gitea.sguba.de/mayx/blog
https://git.flywithu.com/mayx/blog
-https://git.zhanzhi.life/mayx/blog
-http://121.36.255.50:3000/mayx/blog
http://116.204.34.35:12000/mayx/blog
https://git.echaeplay.com/mayx/blog
https://git.bethelean.kr/mayx/blog
-http://45.192.105.100:3000/mayx/blog
-http://47.112.175.39:3000/mayx/blog
https://git.Apture.io/mayx/blog
-https://git.dbfmp.cn/mayx/blog
http://103.231.8.120/mayx/blog
https://gitea.jasonstolle.com/mayx/blog
http://8.134.61.107:3000/mayx/blog
http://47.107.88.161:3000/mayx/blog
https://git.votava.org/mayx/blog
-http://8.137.12.29:3000/mayx/blog
-https://gitea.irons.nz/mayx/blog
https://gitea.madf12.com/mayx/blog
http://8.134.104.234:3000/mayx/blog
-https://git.vce.de/mayx/blog
https://gitea.carmon.co.kr/mayx/blog
http://142.171.47.170:3000/mayx/blog
-https://git.werkraum-karlsruhe.org/mayx/blog
http://111.231.146.230:8418/mayx/blog
https://git.winscloud.net/mayx/blog
https://git.pwaapp.cc/mayx/blog
http://119.28.73.80:5000/mayx/blog
http://194.60.231.252:3000/mayx/blog
https://git.sleepingforest.co.uk/mayx/blog
-https://git.xdsite.fun/mayx/blog
https://git.brb.homeip.net/mayx/blog
https://an360.top/mayx/blog
https://gitea.chenxu2233.com/mayx/blog
http://106.15.78.64:3000/mayx/blog
http://hoenking.cn:3000/mayx/blog
-https://GIT.Agri-Sys.com/mayx/blog
https://gitea.anessen.xyz/mayx/blog
https://git.cjcrace.io/mayx/blog
-https://git.yinbonet.cn/mayx/blog
https://git.inkcore.cn/mayx/blog
-http://47.98.129.193:3000/mayx/blog
https://git.wisder.net/mayx/blog
http://8.138.187.97:3000/mayx/blog
https://git2.ujin.tech/mayx/blog
-http://git.joypetsisland.com/mayx/blog
http://111.119.244.185:3000/mayx/blog
http://110.41.179.36:13000/mayx/blog
https://git.moonwoou.com/mayx/blog
https://git.tomlab.dev/mayx/blog
http://182.92.109.202:8070/mayx/blog
-https://helx-artifacts-git.apps.renci.org/mayx/blog
http://94.130.182.154:3000/mayx/blog
https://git.unicom.studio/mayx/blog
-https://Gitea.Sephalon.net/mayx/blog
-https://git.gestio365.com/mayx/blog
http://47.122.132.187:3000/mayx/blog
-https://git.k-corporation.org/mayx/blog
http://43.138.173.153:8804/mayx/blog
http://frktedu.ru:3000/mayx/blog
https://git.lokalix.de/mayx/blog
http://8.141.14.13:3000/mayx/blog
-https://git.palagov.tv/mayx/blog
http://139.196.201.231:3000/mayx/blog
http://8.155.23.172:3000/mayx/blog
https://git.influxfin.com/mayx/blog
@@ -150,17 +112,13 @@ https://gitea.svc.obaa.cloud/mayx/blog
http://8.134.64.84:3000/mayx/blog
https://gitea.blubeacon.com/mayx/blog
http://116.204.75.78:6180/mayx/blog
-https://git.powerdata.dk/mayx/blog
https://git.ods-company.ru/mayx/blog
http://109.228.48.121:8000/mayx/blog
https://bk-house.synology.me:3081/mayx/blog
http://123.57.95.66:9000/mayx/blog
-http://git.yjmt191314.com/mayx/blog
https://git.sparrowcomm.com/mayx/blog
https://git.hubhoo.com/mayx/blog
https://git.ultra.pub/mayx/blog
-https://gitea.visoftware.com.co/mayx/blog
-http://121.199.172.238:3000/mayx/blog
http://27.124.12.222:3000/mayx/blog
https://saga.iao.ru:3043/mayx/blog
https://git.sayndone.ru/mayx/blog
@@ -172,7 +130,6 @@ https://git.simbarbet.com/mayx/blog
https://git.saintdoggie.org/mayx/blog
http://blackobelisk.xyz:3000/mayx/blog
https://git.dushes.keenetic.pro/mayx/blog
-https://git.go-chat.ru/mayx/blog
http://47.129.22.53:22345/mayx/blog
https://git.tech.troyrc.com/mayx/blog
http://git.zkyspace.top/mayx/blog
@@ -182,11 +139,9 @@ https://git.outsidecontext.solutions/mayx/blog
http://149.88.87.128:3000/mayx/blog
http://124.70.167.140:3000/mayx/blog
http://8.137.38.60:8201/mayx/blog
-https://git.emoscape.org/mayx/blog
http://112.74.106.216:3000/mayx/blog
http://77.223.118.106:8081/mayx/blog
https://git.the-kn.com/mayx/blog
-https://git.campfiregg.ru/mayx/blog
https://gitea.net50.ne.jp/mayx/blog
https://git.ism-dev.net/mayx/blog
http://sinzero.xyz:3000/mayx/blog
@@ -209,7 +164,6 @@ http://8.134.253.108:3000/mayx/blog
https://git.patrich.se/mayx/blog
http://116.236.50.103:8789/mayx/blog
https://git.paulll.cc/mayx/blog
-https://gitea.alaindee.net/mayx/blog
https://gitea.reimann.ee/mayx/blog
http://109.74.197.189/mayx/blog
https://git.nussi.net/mayx/blog
@@ -226,7 +180,6 @@ https://git.daoyoucloud.com/mayx/blog
https://git.entryrise.com/mayx/blog
https://code.bitahub.com/mayx/blog
https://git.daneric.dev/mayx/blog
-http://git.guaiyun.com.cn/mayx/blog
http://malingshu.site:6010/mayx/blog
https://repo.gusdya.net/mayx/blog
https://gitea.tmartens.dev/mayx/blog
@@ -236,11 +189,8 @@ https://git.kimcblog.com/mayx/blog
https://git.minaev.su/mayx/blog
https://git.0fs.ru/mayx/blog
https://git.bremauer.cc/mayx/blog
-https://git.itbcode.com/mayx/blog
http://119.3.29.177:3000/mayx/blog
http://47.110.224.240:13000/mayx/blog
-http://dev.icrosswalk.ru:46300/mayx/blog
-https://git.huwhy.cn/mayx/blog
http://194.67.86.160:3100/mayx/blog
http://47.101.58.33:3000/mayx/blog
https://gitea.synapsetec.cn/mayx/blog
@@ -252,9 +202,7 @@ http://152.69.204.151:3000/mayx/blog
http://207.180.229.193:3001/mayx/blog
https://g2.m8il.in/mayx/blog
http://8.129.84.221:10800/mayx/blog
-http://122.51.51.35:3000/mayx/blog
http://34.81.52.16/mayx/blog
-https://git.aopcloud.com/mayx/blog
http://120.78.74.94:3000/mayx/blog
https://git.genowisdom.cn/mayx/blog
http://120.26.116.243:3000/mayx/blog
@@ -265,8 +213,6 @@ http://47.99.98.98:9000/mayx/blog
http://116.62.115.84:3000/mayx/blog
https://Cagit.Cacode.net/mayx/blog
https://gitea.rodaw.net/mayx/blog
-https://gitea.lightchen.info/mayx/blog
-http://45.55.138.82:3000/mayx/blog
http://wingsing.net:3000/mayx/blog
http://hgngit.ipdz.me/mayx/blog
http://185.163.116.39:49153/mayx/blog
@@ -274,7 +220,6 @@ 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
-https://gitea.mpc-web.jp/mayx/blog
https://git.poggerer.xyz/mayx/blog
https://git.wisptales.org/mayx/blog
http://git.chaojing-film.com:3000/mayx/blog
@@ -284,7 +229,6 @@ http://35.207.205.18:3000/mayx/blog
http://git.zjsciot.com:3000/mayx/blog
https://gitea.ontoast.uk/mayx/blog
http://112.124.40.88:5510/mayx/blog
-https://got.joshuakatz.me/mayx/blog
http://121.36.37.70:15501/mayx/blog
http://187.216.152.151:9999/mayx/blog
http://116.63.173.179:8001/mayx/blog
@@ -299,8 +243,6 @@ http://121.40.40.177:3000/mayx/blog
http://118.31.223.224:3000/mayx/blog
http://47.109.67.128:3000/mayx/blog
http://voicebot.digitalakademie-bw.de:3000/mayx/blog
-https://gitea.services.gsd-srv.com/mayx/blog
-https://repo.divisilabs.com/mayx/blog
http://178.254.35.219:3000/mayx/blog
http://114.215.207.150:3000/mayx/blog
http://2.59.132.109:3001/mayx/blog
@@ -322,33 +264,25 @@ http://120.46.222.128:10021/mayx/blog
http://47.92.23.211:3000/mayx/blog
http://120.26.108.239:9188/mayx/blog
https://git.van-peeren.de/mayx/blog
-http://gitea.msadb.cn/mayx/blog
http://git.gkcorp.com.vn:16000/mayx/blog
http://47.111.17.177:3000/mayx/blog
-http://git.hnits360.com/mayx/blog
https://k0ki-dev.com/mayx/blog
http://110.42.45.89:2052/mayx/blog
https://git.furcom.org/mayx/blog
http://47.109.95.73:3000/mayx/blog
http://47.104.196.63:8418/mayx/blog
http://8.133.240.249:3456/mayx/blog
-https://git.mista.ru/mayx/blog
http://34.102.70.200:3000/mayx/blog
http://175.178.219.170:3000/mayx/blog
-https://git.camus.cat/mayx/blog
https://code.miraclezhb.com/mayx/blog
http://blueroses.top:8888/mayx/blog
-https://git.cnml.de/mayx/blog
http://47.112.118.149:10082/mayx/blog
https://gitea.jobiglo.com/mayx/blog
-https://gitea.rpg-librarium.de/mayx/blog
http://begild.top:8418/mayx/blog
http://58.221.13.198:30010/mayx/blog
https://git.tbaer.de/mayx/blog
-http://74.48.174.77:3000/mayx/blog
https://git.d-popov.com/mayx/blog
https://git.liliyamol.cn/mayx/blog
-https://git.srblerp.com/mayx/blog
http://8.138.90.28:3000/mayx/blog
https://gitea.theaken.com/mayx/blog
https://git.ja-schwarz.de/mayx/blog
@@ -361,7 +295,6 @@ https://git.karma-riuk.com/mayx/blog
https://git.saidomar.fr/mayx/blog
http://gitea.fcunb.cn:10083/mayx/blog
http://47.107.152.87:3000/mayx/blog
-http://106.15.58.155:3333/mayx/blog
https://git.sduonline.cn/mayx/blog
https://git.7o9o.net/mayx/blog
https://dev.init.zone/mayx/blog
@@ -376,15 +309,12 @@ https://git.7milch.com/mayx/blog
https://git.sitenevis.com/mayx/blog
https://git.nightime.org/mayx/blog
https://dreamplacesai.de/mayx/blog
-https://git.soy.dog/mayx/blog
https://git.cool2645.com/mayx/blog
-https://git.z1.mk/mayx/blog
http://185.87.111.46:3000/mayx/blog
http://suncheng.asia:14200/mayx/blog
http://1.94.13.224:9080/mayx/blog
https://auric-org.org/mayx/blog
https://git.git-happens.de/mayx/blog
-https://gitea.seanomad.ru/mayx/blog
http://47.104.241.192:19999/mayx/blog
http://47.105.61.58:3000/mayx/blog
http://101.35.183.241/mayx/blog
@@ -406,20 +336,15 @@ https://git.vereint-digital.de/mayx/blog
https://git.advarna.fr/mayx/blog
http://111.198.4.69:8092/mayx/blog
https://git.lakaweb.com/mayx/blog
-https://git.kitti.ac.th/mayx/blog
-http://106.15.233.223:3001/mayx/blog
https://forge.coreymclark.com/mayx/blog
http://ems.iclematis.com:30000/mayx/blog
https://git.micahmoore.io/mayx/blog
-https://git.zlyum.com/mayx/blog
https://schokigeschmack.de/mayx/blog
https://git.anatid.net/mayx/blog
-https://catsdev.com/mayx/blog
https://git.lekai.info/mayx/blog
https://git.avclick.ru/mayx/blog
http://135.235.225.198:3000/mayx/blog
https://git.zimerguz.net/mayx/blog
-https://git.cukak.com/mayx/blog
https://git.sick.earth/mayx/blog
https://git.prayujt.com/mayx/blog
https://git.galaxylabs.ca/mayx/blog
@@ -427,19 +352,14 @@ https://gitlab.n8n-store.xyz/mayx/blog
https://gitea.katiethe.dev/mayx/blog
http://159.203.33.179:3000/mayx/blog
http://117.72.114.197:3000/mayx/blog
-http://192.210.186.179:20051/mayx/blog
https://git.ashcloud.com/mayx/blog
http://us2.fornoone.top:3000/mayx/blog
https://git.novaa.xyz/mayx/blog
http://101.46.208.93:3000/mayx/blog
-http://45.93.137.91:3000/mayx/blog
http://23.94.57.60:3000/mayx/blog
-https://git.atomos.io/mayx/blog
-https://git.tylantyson.com/mayx/blog
https://watch.mommys.plumbing/mayx/blog
https://devkona.net/mayx/blog
https://gitea.avixc-nas.myds.me/mayx/blog
-http://www.ggafrik.site/mayx/blog
https://gitea.chaopi.dev/mayx/blog
http://sjhome.cloud:3000/mayx/blog
https://gitea.sciotech.cn/mayx/blog
@@ -451,19 +371,15 @@ https://git.ctx.dev/mayx/blog
http://82.157.205.190:3000/mayx/blog
https://nas.szwyll.com:3000/mayx/blog
https://git.koppa.pro/mayx/blog
-http://188.120.243.108:3000/mayx/blog
http://202.65.194.19:3000/mayx/blog
http://47.101.60.131:10082/mayx/blog
http://8.148.234.146:3001/mayx/blog
http://www.bzturbo.com.br/mayx/blog
https://git.maiasoft.jp/mayx/blog
-http://git.huangwc.com/mayx/blog
https://gitea.xala.dev/mayx/blog
http://101.201.34.43:3000/mayx/blog
https://git.ixu.me/mayx/blog
-http://118.89.124.175:3000/mayx/blog
https://git.gloje-rinchen-dorjee-rinpoche-buddhist-monastery.org/mayx/blog
-https://git.pxlbuzzard.com/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
@@ -487,7 +403,6 @@ https://zqz5.com/mayx/blog
https://git.3dizart.ru/mayx/blog
http://119.3.252.2:3000/mayx/blog
http://60.204.156.211:3000/mayx/blog
-http://youneed.top:10014/mayx/blog
https://git.yukaige.com/mayx/blog
http://nas.bi1kbu.com:8418/mayx/blog
http://123.56.74.235:3000/mayx/blog
@@ -497,7 +412,6 @@ http://xapple.ru:3000/mayx/blog
https://git.teygaming.com/mayx/blog
https://git.alhsk.top/mayx/blog
http://8.138.4.170:8980/mayx/blog
-http://185.128.138.246:3000/mayx/blog
http://210.211.116.85:3000/mayx/blog
http://osztromok.com:3164/mayx/blog
http://175.209.53.134:3030/mayx/blog
@@ -508,7 +422,6 @@ http://113.45.76.155:3000/mayx/blog
http://168.138.196.70:3000/mayx/blog
http://39.96.211.118:3000/mayx/blog
http://47.103.100.52:3000/mayx/blog
-https://git.cos777nnn777.win/mayx/blog
http://5.189.140.23:8080/mayx/blog
http://121.37.47.20:3000/mayx/blog
https://git.antropix.dev/mayx/blog
@@ -516,7 +429,6 @@ http://15.237.198.144/mayx/blog
http://123.249.119.122:3000/mayx/blog
http://183.6.120.101:30000/mayx/blog
http://134.122.173.191:3000/mayx/blog
-https://git.kalinin.in/mayx/blog
http://8.138.81.5:3000/mayx/blog
https://xgit.tsuimg.top/mayx/blog
http://123.60.156.158:13000/mayx/blog
@@ -526,7 +438,6 @@ http://101.132.160.67:3000/mayx/blog
https://gitea.temp.brentgruber.com/mayx/blog
https://www.know-how.store/mayx/blog
http://47.102.147.170:3050/mayx/blog
-https://git.borg.unak.is/mayx/blog
http://209.38.235.254:3000/mayx/blog
http://52.66.204.217:3001/mayx/blog
http://172.236.250.154:3000/mayx/blog
@@ -536,11 +447,9 @@ 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
-https://www.yseven.net/mayx/blog
http://8.138.187.132:3000/mayx/blog
https://gitea.codeathome.ovh/mayx/blog
http://117.72.15.187:3000/mayx/blog
-http://159.223.54.247:3030/mayx/blog
http://81.70.30.91:3000/mayx/blog
http://47.98.105.248:3000/mayx/blog
https://gitea.kisechan.space/mayx/blog
@@ -548,7 +457,6 @@ http://140.238.9.133:3007/mayx/blog
http://8.138.100.115:3000/mayx/blog
https://git.mwapp.com.br/mayx/blog
http://yidaima.cn:6008/mayx/blog
-http://213.199.46.54:3001/mayx/blog
http://185.126.237.57:3000/mayx/blog
http://47.97.50.232:3000/mayx/blog
http://106.54.211.95:3000/mayx/blog
@@ -560,11 +468,8 @@ http://39.96.195.72:10082/mayx/blog
https://gitea.klopfenstein.org/mayx/blog
http://8.148.24.160:3000/mayx/blog
http://221.219.181.35:30000/mayx/blog
-https://git.cymnb.com/mayx/blog
http://47.108.27.137:3000/mayx/blog
-http://182.92.9.236:3000/mayx/blog
http://172.172.102.93:3000/mayx/blog
-http://101.132.255.70:3000/mayx/blog
http://139.196.179.195:3000/mayx/blog
http://115.120.245.164:3000/mayx/blog
http://120.27.19.58:30000/mayx/blog
@@ -589,7 +494,6 @@ 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
-https://git.lucasluqui.com/mayx/blog
http://47.99.60.81:10082/mayx/blog
http://120.211.66.170:8418/mayx/blog
http://187.189.244.23:3000/mayx/blog
@@ -630,14 +534,12 @@ http://60.205.162.59:3000/mayx/blog
https://git.imvictor.tech:2/mayx/blog
https://git.pwcedge-sbs-innov-lab.com/mayx/blog
http://47.112.137.193:3000/mayx/blog
-https://www.cadquos.dev/mayx/blog
https://gitea.malin.onl/mayx/blog
http://58.38.123.148:3176/mayx/blog
http://docker.clhero.fun:3000/mayx/blog
http://42.193.251.215:3000/mayx/blog
https://bdgit.educoder.net/mayx/blog
http://e19510c831.iok.la/mayx/blog
-https://gitea.clintmasden.duckdns.org/mayx/blog
https://www.nxgit.xyz/mayx/blog
http://119.45.49.212:3000/mayx/blog
https://git.synapsenet.net/mayx/blog
@@ -661,10 +563,8 @@ http://www.befitsoft.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.miyo.wiki/mayx/blog
https://git.christophhagen.de/mayx/blog
http://rito.synology.me:3000/mayx/blog
-https://gitea.lunaria-unlimited.com/mayx/blog
http://www.dothing.com:6999/mayx/blog
http://8.217.32.95:3000/mayx/blog
https://git.temporaryname.org/mayx/blog
@@ -672,7 +572,6 @@ https://git.loli.surf/mayx/blog
http://121.135.143.139:5830/mayx/blog
https://Repo.gusdya.net/mayx/blog
https://git.m.ctf.arrobe.fr/mayx/blog
-https://gitlab.day/mayx/blog
http://120.27.238.24:3000/mayx/blog
https://code.diekabuths.dynu.net/mayx/blog
http://69.62.64.52:3333/mayx/blog
@@ -681,7 +580,6 @@ https://git.scene.to/mayx/blog
https://git.auwiesen2.de/mayx/blog
http://naughtycat.biz:3333/mayx/blog
https://git.p1.bitstorm.co.nz/mayx/blog
-https://gitea.mipt.ru/mayx/blog
https://www.yalecheung.top:1024/mayx/blog
http://39.105.67.143:3000/mayx/blog
https://gitea.manekenbrand.com/mayx/blog
@@ -690,3 +588,25 @@ 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
+http://8.142.36.79:3006/mayx/blog
+http://huanghomenas2.myqnapcloud.com:4000/mayx/blog
+http://218.237.212.51:30003/mayx/blog
+http://gitea.huangyanjie.com/mayx/blog
+https://git.stormrain.cn/mayx/blog
+https://git.deuxfleurs.fr/mayx/blog
+https://www.simpra.org:3000/mayx/blog
+http://8.148.31.14:3000/mayx/blog
+http://55x.top:9300/mayx/blog
+https://gitea.lelespace.top/mayx/blog
+https://git.lmbrs.org/mayx/blog
+https://fj.sinesation.com/mayx/blog
+http://47.94.246.1:3000/mayx/blog
+http://103.87.67.60:3100/mayx/blog
+https://docker-registry-lszz.uj.com.tw/mayx/blog
+https://git.honulla.com/mayx/blog
+https://www.arcbyte.dev/mayx/blog
+http://45.144.30.78:8083/mayx/blog
+https://git.nihil.foo/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
diff --git a/_layouts/xslt_container.html b/_layouts/xslt_container.html
index 9c9e629..44fcff2 100644
--- a/_layouts/xslt_container.html
+++ b/_layouts/xslt_container.html
@@ -1,5 +1,6 @@
{% if page.layout == "xslt" %}
+
title,
+atom|feed>atom|title {
+ display: block;
+ font-size: 1.7em;
+ font-weight: 700;
+ margin: 0 0 1.2em 0;
+ text-align: center;
+ letter-spacing: -0.01em;
+}
+
+item,
+atom|entry {
+ display: block;
+ background: #ffffff;
+ padding: 1.1em 1.2em;
+ margin-bottom: 1.1em;
+ border-radius: 14px;
+ box-shadow:
+ 0 8px 24px rgba(0, 0, 0, 0.04),
+ 0 2px 6px rgba(0, 0, 0, 0.03);
+}
+
+item>title,
+atom|entry>atom|title {
+ display: block;
+ font-size: 1.15em;
+ font-weight: 600;
+ margin-bottom: 0.45em;
+ color: #111;
+ letter-spacing: -0.01em;
+}
+
+item>description,
+atom|entry>atom|summary {
+ display: block;
+ color: #555;
+ line-height: 1.65;
+ max-height: 16.5em;
+ overflow: hidden;
+ position: relative;
+}
+
+item>description::after,
+atom|entry>atom|summary::after {
+ content: "…";
+ position: absolute;
+ right: 0.3em;
+ bottom: 0;
+ padding-left: 1.5em;
+ background: linear-gradient(to right,
+ rgba(255, 255, 255, 0),
+ #ffffff 70%);
+ font-weight: 600;
+}
+
+link,
+guid,
+pubDate,
+author,
+category,
+comments,
+source,
+enclosure,
+content|encoded,
+dc|creator,
+lastBuildDate,
+atom|id,
+atom|link,
+atom|updated,
+atom|published,
+atom|author,
+atom|category,
+atom|rights,
+atom|content,
+language,
+generator {
+ display: none;
+}
+
+channel>description,
+atom|feed>atom|subtitle {
+ display: block;
+ margin: 0.4em 0 2em 0;
+ /* 与条目明显拉开 */
+ text-align: center;
+ color: #666;
+ font-size: 0.95em;
+}
+
+channel>title,
+atom|feed>atom|title {
+ margin-bottom: 0.4em;
+ /* 原来较紧,这里放松 */
+}
+
+atom|feed>atom|subtitle::after,
+channel>description::after {
+ content: "这是一个订阅源(Feed)。复制当前URL到任何支持 Atom/RSS 的阅读器,即可订阅本博客的最新文章。\A以下展示了此订阅源包含的最新文章:";
+ display: block;
+ text-align: center;
+ font-size: 0.95em;
+ color: #666;
+ margin: 1em 0 2em 0;
+ line-height: 1.5;
+ white-space: pre-wrap;
+}
\ No newline at end of file
diff --git a/assets/css/xslt.css b/assets/css/xslt.css
new file mode 100644
index 0000000..ac981f3
--- /dev/null
+++ b/assets/css/xslt.css
@@ -0,0 +1,35 @@
+@namespace xsl "http://www.w3.org/1999/XSL/Transform";
+
+xsl|template {
+ display: none !important;
+}
+
+:root {
+ display: flex !important;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ min-height: 100vh;
+ background-color: #f8f9fa;
+ margin: 0;
+ padding: 2em 1em;
+ font-family: system-ui, -apple-system, sans-serif;
+ box-sizing: border-box;
+ margin-left: max(1em, env(safe-area-inset-left));
+ margin-right: max(1em, env(safe-area-inset-right));
+}
+
+:root::before {
+ content: "💀 这个 XSLT 模板已被谷歌 (Chrome) 杀死";
+ display: block;
+ color: #d93025;
+ font-size: 24px;
+ font-weight: 800;
+ padding: 20px;
+ border: 2px solid #d93025;
+ border-radius: 8px;
+ background: #fff1f0;
+ margin-bottom: 10px;
+ box-shadow: 0 4px 12px rgba(217, 48, 37, 0.1);
+ text-align: center;
+}
\ No newline at end of file
diff --git a/rss.xml b/rss.xml
index 2f09425..a2ed4dd 100644
--- a/rss.xml
+++ b/rss.xml
@@ -3,6 +3,7 @@
+
{{ site.title | xml_escape }}
From 9760f9eb4d5a92a2f449eb44be1d3006b79be6e4 Mon Sep 17 00:00:00 2001
From: Restent Ou
Date: Wed, 4 Feb 2026 22:12:48 +0800
Subject: [PATCH 19/29] link: blog.gxres.net
---
_data/links.csv | 1 +
1 file changed, 1 insertion(+)
diff --git a/_data/links.csv b/_data/links.csv
index f84bb7c..0a5643c 100644
--- a/_data/links.csv
+++ b/_data/links.csv
@@ -20,3 +20,4 @@ Lanke's blog,https://blog.blueke.top/,https://blog.blueke.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/,向明日的辉迹,干杯!
映屿,https://www.glowisle.me/,https://www.glowisle.me/atom.xml,关于互联网、书籍、生活琐事以及那些一闪而过的念头
+Restent's Notebook,https://blog.gxres.net/,https://blog.gxres.net/atom.xml,不前沿技术分享
From 172882a99e136eaa1f88241e97e0085926805a67 Mon Sep 17 00:00:00 2001
From: mayx
Date: Sun, 8 Feb 2026 12:35:47 +0000
Subject: [PATCH 20/29] Update 4 files
- /_posts/2026-02-08-xslt.md
- /_data/other_repo_list.csv
- /_tools/ai-summary.js
- /_tools/envs_post-receive
---
_data/other_repo_list.csv | 58 +--
_posts/2026-02-08-xslt.md | 34 ++
_tools/ai-summary.js | 721 +++++++++++++++++++-------------------
_tools/envs_post-receive | 2 +-
4 files changed, 404 insertions(+), 411 deletions(-)
create mode 100644 _posts/2026-02-08-xslt.md
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 041eceb..abf9c5f 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -18,7 +18,6 @@ http://116.62.245.34:3000/mayx/blog
http://1.6.141.109:3000/mayx/blog
http://52.28.156.42/mayx/blog
http://164.92.160.200:3000/mayx/blog
-https://git.louhau.edu.mo/mayx/blog
https://git.tux.pizza/mayx/blog
https://code.dsconce.space/mayx/blog
https://git.anibilag.ru/mayx/blog
@@ -83,7 +82,6 @@ http://106.15.78.64:3000/mayx/blog
http://hoenking.cn:3000/mayx/blog
https://gitea.anessen.xyz/mayx/blog
https://git.cjcrace.io/mayx/blog
-https://git.inkcore.cn/mayx/blog
https://git.wisder.net/mayx/blog
http://8.138.187.97:3000/mayx/blog
https://git2.ujin.tech/mayx/blog
@@ -94,15 +92,12 @@ https://git.tomlab.dev/mayx/blog
http://182.92.109.202:8070/mayx/blog
http://94.130.182.154:3000/mayx/blog
https://git.unicom.studio/mayx/blog
-http://47.122.132.187:3000/mayx/blog
http://43.138.173.153:8804/mayx/blog
http://frktedu.ru:3000/mayx/blog
https://git.lokalix.de/mayx/blog
http://8.141.14.13:3000/mayx/blog
http://139.196.201.231:3000/mayx/blog
-http://8.155.23.172:3000/mayx/blog
https://git.influxfin.com/mayx/blog
-http://47.100.177.77:3000/mayx/blog
https://git.programar.io/mayx/blog
http://219.157.255.213:25311/mayx/blog
https://git.melvincarvalho.com/mayx/blog
@@ -122,7 +117,6 @@ https://git.ultra.pub/mayx/blog
http://27.124.12.222:3000/mayx/blog
https://saga.iao.ru:3043/mayx/blog
https://git.sayndone.ru/mayx/blog
-http://47.113.118.108:3000/mayx/blog
https://gitea.hintsight.com/mayx/blog
https://anzsco.co.nz/mayx/blog
https://git.valami.giize.com/mayx/blog
@@ -133,9 +127,6 @@ https://git.dushes.keenetic.pro/mayx/blog
http://47.129.22.53:22345/mayx/blog
https://git.tech.troyrc.com/mayx/blog
http://git.zkyspace.top/mayx/blog
-http://47.107.62.152:3000/mayx/blog
-http://47.99.119.173:13000/mayx/blog
-https://git.outsidecontext.solutions/mayx/blog
http://149.88.87.128:3000/mayx/blog
http://124.70.167.140:3000/mayx/blog
http://8.137.38.60:8201/mayx/blog
@@ -157,10 +148,8 @@ http://123.56.193.182:3000/mayx/blog
http://60.204.131.99:3000/mayx/blog
http://femail.email:8418/mayx/blog
http://47.93.56.66:8080/mayx/blog
-http://47.92.218.215:3000/mayx/blog
http://167.172.7.198:8081/mayx/blog
https://gitea.meetgu.ru/mayx/blog
-http://8.134.253.108:3000/mayx/blog
https://git.patrich.se/mayx/blog
http://116.236.50.103:8789/mayx/blog
https://git.paulll.cc/mayx/blog
@@ -194,25 +183,20 @@ http://47.110.224.240:13000/mayx/blog
http://194.67.86.160:3100/mayx/blog
http://47.101.58.33:3000/mayx/blog
https://gitea.synapsetec.cn/mayx/blog
-http://220.132.16.87:3000/mayx/blog
http://gitea.yunshanghub.com:8081/mayx/blog
https://repo.c-software.id/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
https://g2.m8il.in/mayx/blog
-http://8.129.84.221:10800/mayx/blog
http://34.81.52.16/mayx/blog
http://120.78.74.94:3000/mayx/blog
https://git.genowisdom.cn/mayx/blog
http://120.26.116.243:3000/mayx/blog
-http://120.26.46.180:3000/mayx/blog
http://123.57.16.111:3000/mayx/blog
http://115.159.107.117:3000/mayx/blog
-http://47.99.98.98:9000/mayx/blog
http://116.62.115.84:3000/mayx/blog
https://Cagit.Cacode.net/mayx/blog
-https://gitea.rodaw.net/mayx/blog
http://wingsing.net:3000/mayx/blog
http://hgngit.ipdz.me/mayx/blog
http://185.163.116.39:49153/mayx/blog
@@ -223,7 +207,6 @@ https://gitea.questline.coop/mayx/blog
https://git.poggerer.xyz/mayx/blog
https://git.wisptales.org/mayx/blog
http://git.chaojing-film.com:3000/mayx/blog
-http://8.142.81.167:1080/mayx/blog
https://git.nusaerp.com/mayx/blog
http://35.207.205.18:3000/mayx/blog
http://git.zjsciot.com:3000/mayx/blog
@@ -241,7 +224,6 @@ http://git.yinas.cn/mayx/blog
http://git.chilidoginteractive.com:3000/mayx/blog
http://121.40.40.177:3000/mayx/blog
http://118.31.223.224:3000/mayx/blog
-http://47.109.67.128:3000/mayx/blog
http://voicebot.digitalakademie-bw.de:3000/mayx/blog
http://178.254.35.219:3000/mayx/blog
http://114.215.207.150:3000/mayx/blog
@@ -250,18 +232,14 @@ http://newslabx.csie.ntu.edu.tw:3000/mayx/blog
http://81.71.148.57:8080/mayx/blog
https://git.lmskaran.com/mayx/blog
http://sdgit.zfmgr.top/mayx/blog
-http://47.122.26.54:3000/mayx/blog
http://154.86.0.30:3000/mayx/blog
http://139.224.196.148:3000/mayx/blog
-http://47.95.167.249: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://6068688.xyz:3000/mayx/blog
-http://8.137.105.8:5530/mayx/blog
https://git.881221.xyz/mayx/blog
http://120.46.222.128:10021/mayx/blog
-http://47.92.23.211:3000/mayx/blog
http://120.26.108.239:9188/mayx/blog
https://git.van-peeren.de/mayx/blog
http://git.gkcorp.com.vn:16000/mayx/blog
@@ -270,7 +248,6 @@ https://k0ki-dev.com/mayx/blog
http://110.42.45.89:2052/mayx/blog
https://git.furcom.org/mayx/blog
http://47.109.95.73:3000/mayx/blog
-http://47.104.196.63:8418/mayx/blog
http://8.133.240.249:3456/mayx/blog
http://34.102.70.200:3000/mayx/blog
http://175.178.219.170:3000/mayx/blog
@@ -286,7 +263,6 @@ https://git.liliyamol.cn/mayx/blog
http://8.138.90.28:3000/mayx/blog
https://gitea.theaken.com/mayx/blog
https://git.ja-schwarz.de/mayx/blog
-https://shanewan.cn:30000/mayx/blog
https://git.xemo-net.de/mayx/blog
https://git.23cm.cn/mayx/blog
https://gitea.oio.cat/mayx/blog
@@ -299,8 +275,6 @@ https://git.sduonline.cn/mayx/blog
https://git.7o9o.net/mayx/blog
https://dev.init.zone/mayx/blog
https://git.baneynet.net/mayx/blog
-http://47.97.225.73:3000/mayx/blog
-http://1.15.11.52:13000/mayx/blog
https://git.gupaoedu.cn/mayx/blog
http://60.205.233.184:3010/mayx/blog
https://git.ricecakecat.com/mayx/blog
@@ -315,13 +289,10 @@ http://suncheng.asia:14200/mayx/blog
http://1.94.13.224:9080/mayx/blog
https://auric-org.org/mayx/blog
https://git.git-happens.de/mayx/blog
-http://47.104.241.192:19999/mayx/blog
-http://47.105.61.58:3000/mayx/blog
http://101.35.183.241/mayx/blog
https://gitea.quiztimes.nl/mayx/blog
http://106.14.189.125:3000/mayx/blog
https://git.hundseth.com/mayx/blog
-https://git.xming.cloud/mayx/blog
https://travgit.guillorystack.com/mayx/blog
http://gitea.coderpath.com/mayx/blog
https://gitea.thanh0x.com/mayx/blog
@@ -329,7 +300,6 @@ http://175.198.180.19:3000/mayx/blog
https://gitea.albanmary.com/mayx/blog
http://ngtools.cn:53000/mayx/blog
https://git.hantify.ru/mayx/blog
-https://git.unpas.dev/mayx/blog
http://43.136.169.169:3000/mayx/blog
http://121.196.213.68:3000/mayx/blog
https://git.vereint-digital.de/mayx/blog
@@ -344,7 +314,6 @@ https://git.anatid.net/mayx/blog
https://git.lekai.info/mayx/blog
https://git.avclick.ru/mayx/blog
http://135.235.225.198:3000/mayx/blog
-https://git.zimerguz.net/mayx/blog
https://git.sick.earth/mayx/blog
https://git.prayujt.com/mayx/blog
https://git.galaxylabs.ca/mayx/blog
@@ -366,13 +335,10 @@ https://gitea.sciotech.cn/mayx/blog
http://8.148.220.5:8089/mayx/blog
http://8.140.250.85:3000/mayx/blog
http://8.134.11.35:3000/mayx/blog
-https://dev.ilink-app.com/mayx/blog
https://git.ctx.dev/mayx/blog
-http://82.157.205.190:3000/mayx/blog
https://nas.szwyll.com:3000/mayx/blog
https://git.koppa.pro/mayx/blog
http://202.65.194.19:3000/mayx/blog
-http://47.101.60.131:10082/mayx/blog
http://8.148.234.146:3001/mayx/blog
http://www.bzturbo.com.br/mayx/blog
https://git.maiasoft.jp/mayx/blog
@@ -396,7 +362,6 @@ http://111.231.240.168:9082/mayx/blog
https://git.afonsosoares.com/mayx/blog
http://209.141.47.52:3000/mayx/blog
https://git.apfern.com/mayx/blog
-http://47.103.155.22:3000/mayx/blog
http://dapainas.asia:5990/mayx/blog
http://60.204.158.188:3000/mayx/blog
https://zqz5.com/mayx/blog
@@ -436,10 +401,8 @@ http://57.129.94.190:3000/mayx/blog
https://gitea.micro-stack.org/mayx/blog
http://101.132.160.67:3000/mayx/blog
https://gitea.temp.brentgruber.com/mayx/blog
-https://www.know-how.store/mayx/blog
http://47.102.147.170:3050/mayx/blog
http://209.38.235.254:3000/mayx/blog
-http://52.66.204.217:3001/mayx/blog
http://172.236.250.154:3000/mayx/blog
http://54.198.134.152:3000/mayx/blog
http://121.41.35.226:11011/mayx/blog
@@ -448,10 +411,8 @@ https://nelgit.nelpi.co.uk/mayx/blog
http://47.108.156.251:3000/mayx/blog
http://8.141.91.86:3000/mayx/blog
http://8.138.187.132:3000/mayx/blog
-https://gitea.codeathome.ovh/mayx/blog
http://117.72.15.187:3000/mayx/blog
http://81.70.30.91:3000/mayx/blog
-http://47.98.105.248:3000/mayx/blog
https://gitea.kisechan.space/mayx/blog
http://140.238.9.133:3007/mayx/blog
http://8.138.100.115:3000/mayx/blog
@@ -468,7 +429,6 @@ http://39.96.195.72:10082/mayx/blog
https://gitea.klopfenstein.org/mayx/blog
http://8.148.24.160:3000/mayx/blog
http://221.219.181.35:30000/mayx/blog
-http://47.108.27.137:3000/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
@@ -506,7 +466,6 @@ http://116.205.97.109:3000/mayx/blog
https://gitea.ysme.top/mayx/blog
http://8.140.242.230:3000/mayx/blog
http://8.138.142.17:3000/mayx/blog
-https://git.babalish.com/mayx/blog
http://47.95.31.56:20080/mayx/blog
http://123.56.231.200:3000/mayx/blog
http://113.46.142.74:3000/mayx/blog
@@ -517,13 +476,11 @@ 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
-https://sithcom.de/mayx/blog
http://8.138.242.82:8888/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://47.104.160.69:3000/mayx/blog
http://39.104.61.219:3000/mayx/blog
http://www.scserverddns.top:13000/mayx/blog
http://156.255.1.229:3000/mayx/blog
@@ -556,7 +513,6 @@ http://115.190.107.87:3000/mayx/blog
https://git.hast.one/mayx/blog
http://106.12.50.144:8081/mayx/blog
http://43.192.90.133/mayx/blog
-http://47.120.16.137:8889/mayx/blog
http://120.77.94.227:9999/mayx/blog
https://code.wxk8.com/mayx/blog
http://www.befitsoft.com/mayx/blog
@@ -569,7 +525,6 @@ http://www.dothing.com:6999/mayx/blog
http://8.217.32.95:3000/mayx/blog
https://git.temporaryname.org/mayx/blog
https://git.loli.surf/mayx/blog
-http://121.135.143.139:5830/mayx/blog
https://Repo.gusdya.net/mayx/blog
https://git.m.ctf.arrobe.fr/mayx/blog
http://120.27.238.24:3000/mayx/blog
@@ -588,7 +543,6 @@ 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
-http://8.142.36.79:3006/mayx/blog
http://huanghomenas2.myqnapcloud.com:4000/mayx/blog
http://218.237.212.51:30003/mayx/blog
http://gitea.huangyanjie.com/mayx/blog
@@ -610,3 +564,15 @@ https://git.nihil.foo/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
+https://git.darkmattergame.net/mayx/blog
+http://101.37.69.204:3000/mayx/blog
+http://jacksonhampton.com:3000/mayx/blog
+https://git.jaronnie.com/mayx/blog
+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
+https://git.veran.link/mayx/blog
+http://104.254.131.244:3000/mayx/blog
diff --git a/_posts/2026-02-08-xslt.md b/_posts/2026-02-08-xslt.md
new file mode 100644
index 0000000..e02c1ad
--- /dev/null
+++ b/_posts/2026-02-08-xslt.md
@@ -0,0 +1,34 @@
+---
+layout: post
+title: 在Google杀死XSLT之后的XML美化方案
+tags: [XML, Feed, XSLT, 美化]
+---
+
+ 即使没有了XSLT,也不能让读者看到光秃秃的XML!
+
+# 起因
+ 在半年前,我写了一篇[用XSLT美化博客XML文件](/2025/07/01/xslt.html)的文章,自从那以后,每次我在浏览其他人博客的时候,都会看一眼对方博客有没有给自己的订阅文件做美化。不过就在前段时间,我在浏览某个博客的时候,发现他博客的订阅文件,甚至连最基本的XML文档树都没有显示出来。这时候我打开开发者工具看了一眼源代码,发现他也并没有使用`xml-stylesheet`之类的指令……而且控制台貌似报了些错,好像是出现了什么CSP错误……于是我就想,浏览器显示XML文档树的本质,会不会其实也是一种XSLT?之所以报错也有可能是浏览器在自动引用内置的XSLT时违反了CSP。所以我就问了问谷歌AI,结果似乎真的是这样,比如火狐浏览器就内置了一份[XSLT文件](https://github.com/mozilla-firefox/firefox/blob/main/dom/xml/resources/XMLPrettyPrint.xsl),IE浏览器也有。正当我为XSLT的功能感到强大时,谷歌AI随后提到,[Chrome浏览器决定弃用XSLT](https://developer.chrome.com/docs/web-platform/deprecating-xslt),所以以后不要再用XSLT了😰……
+ 我给我的订阅文件加美化功能才半年,怎么就要不能用了?XSLT出现这么多年都还能用,结果等我加上就要废弃了?当时为了增加这个功能,还是费了不少劲的,怎么能让谷歌说没就没?于是我就开始对这件事进行了调查。
+
+# Google杀死了XSLT
+ 从上面Chrome的弃用XSLT文档中,可以发现,这件事的始作俑者是[Mason Freed](https://github.com/mfreed7),他在WHATWG中发起了一个[Issue](https://github.com/whatwg/html/issues/11523),因为XSLT用的人很少,以及实现XSLT的库很老而且容易出漏洞,所以建议把XSLT从Web标准中删除。在这个Issue中可以发现,有很多人表示不满,毕竟这个功能对想要给自己订阅做美化的博主来说还是很有用的。为了对抗谷歌,还有人做了个网站: 。
+ 而且XSLT虽然用的人占比也许不高,但从总量上应该还是挺多的,除了用XSLT美化博客订阅的,甚至还有用[XSLT作为博客框架的](https://github.com/vgr-land/vgr-xslt-blog-framework),另外还有一些人提出[一部分政府网站也有使用XSLT](https://github.com/whatwg/html/issues/11582)。
+ 不过Freed看起来对这件事早有准备,他做了一个[Polyfill库](https://github.com/mfreed7/xslt_polyfill),通过WASM的方式让XSLT可以正常工作,为了方便大家使用这个库,我顺手给CDNJS发了个[PR](https://github.com/cdnjs/packages/pull/2118),以后可以用CDN引用它了。不过使用这个库的前提是需要在订阅中加一段引用JS的代码,像我博客中的Atom订阅,用的是[jekyll-feed](https://github.com/jekyll/jekyll-feed)插件,里面的格式都是写死的,就用不了了……
+ 只不过现在已经没办法阻止谷歌了……而且其他浏览器也表示会跟进,看来我们唯一能做的就是去适应了。
+
+# 没有XSLT之后的美化方案
+## 纯CSS
+ 虽然XSLT不能用,但不代表`xml-stylesheet`指令就不能用了,除了XSLT之外,`xml-stylesheet`同样可以引用CSS。只是似乎完全没见过用CSS美化订阅源的,也许是因为光用CSS能做到的事比较少吧,想用CSS给XML文档加链接之类的估计就做不到了。
+ 但目前能选择的也不多了,既然大家都没写过用CSS美化订阅源,那就让我来写一个吧!然而我并不会写😅……那就只好让AI来写了,我把需求说清楚之后,AI就写出来了:[feed.css](/assets/css/feed.css)。试了一下效果还挺不错的,我让AI写的这个版本无论是RSS还是Atom都可以使用,如果有人感兴趣可以拿去用。可惜我的Atom订阅因为用的是插件的原因用不了😭,只能加到用纯Liquid实现的RSS订阅上了。
+ 但用纯CSS的缺点也很明显,没办法操作文档的内容,像修改日期格式的就做不了了,而且也不能添加超链接……XML的标签本身对浏览器来说并没有内建的语义,正常情况下也没法让浏览器把某个标签当作超链接。那难道就没办法了吗?
+## 混合XHTML
+ 如果完全不能修改XML内容,那确实就没有办法了,但如果能修改XML的内容那还是有办法的,简单来说就是混入XHTML,事实上Freed编写的Polyfill库原理上也是利用了XHTML,只要在能作为XHTML的标签中添加XHTML的命名空间,那么浏览器就可以理解它的语义并渲染,像刚刚用纯CSS美化的订阅没有链接,那就可以在根元素中添加命名空间:`xmlns:xhtml="http://www.w3.org/1999/xhtml"`,然后在合适的位置写:
+```xml
+Read more ->
+```
+ 就可以了。只是这样有个缺点,这样写的订阅文件不够“纯粹”,用验证器验证会显示“[Misplaced XHTML content](https://validator.w3.org/feed/docs/warning/MisplacedXHTMLContent.html)”警告。对有洁癖的人来说可能会有点难受😆。
+ 不过如果能接受这种“不纯粹”,那么其实`xml-stylesheet`指令也没必要了,`link`标签一样可以用,包括`script`也是,所以有人写了一个[不使用XSLT美化XML](https://github.com/dfabulich/style-xml-feeds-without-xslt)的库。
+ 只不过这种方法和XSLT相比还是有一些缺陷,要知道XSLT的本质是转换,是把XML转换为HTML,也就是说转出来的文档本质是HTML,所有的DOM操作都和操作HTML是完全相同的,但是在XML里混入XHTML标签就不一样了,它的本质依然是XML文档,只是嵌入了XHTML命名空间下的元素,所以相应的DOM操作会有一些不同。如果是自己写的纯JS可能还好,如果是用了jQuery之类假定DOM为HTML的库就会出现问题了,因此这也就是那个Polyfill库的局限性,用正常的XSLT执行`document.constructor`会显示`HTMLDocument`,而用这个Polyfill库执行完则是显示`XMLDocument`。因此,直接套用为浏览器原生XSLT编写的旧样式文件,就有可能会出问题,但如果要考虑改XSLT的话那还不如重新写JS,然后用XHTML引入呢。
+
+# 感想
+ 虽然有一些技术会因为各种各样的原因消失,但这不代表我们就要妥协一些东西,总有一些不同的技术可以解决相同的问题,所以我们只需要用其他的技术去实现就好了。不过这也是没办法的事情,毕竟没人能改变浏览器厂商们的决策啊😂。
\ No newline at end of file
diff --git a/_tools/ai-summary.js b/_tools/ai-summary.js
index 4d6999d..2284418 100644
--- a/_tools/ai-summary.js
+++ b/_tools/ai-summary.js
@@ -1,388 +1,381 @@
async function sha(str) {
- const encoder = new TextEncoder();
- const data = encoder.encode(str);
- const hashBuffer = await crypto.subtle.digest("SHA-256", data);
- const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array
- const hashHex = hashArray
- .map((b) => b.toString(16).padStart(2, "0"))
- .join(""); // convert bytes to hex string
- return hashHex;
- }
- async function md5(str) {
- const encoder = new TextEncoder();
- const data = encoder.encode(str);
- const hashBuffer = await crypto.subtle.digest("MD5", data);
- const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array
- const hashHex = hashArray
- .map((b) => b.toString(16).padStart(2, "0"))
- .join(""); // convert bytes to hex string
- return hashHex;
- }
-
- export default {
- async fetch(request, env, ctx) {
- const db = env.blog_summary.withSession();
- const counter_db = env.blog_counter
- const url = new URL(request.url);
- const query = decodeURIComponent(url.searchParams.get('id'));
- var commonHeader = {
- 'Access-Control-Allow-Origin': '*',
- 'Access-Control-Allow-Methods': "*",
- 'Access-Control-Allow-Headers': "*",
- 'Access-Control-Max-Age': '86400',
+ const encoder = new TextEncoder();
+ const data = encoder.encode(str);
+ const hashBuffer = await crypto.subtle.digest("SHA-256", data);
+ const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array
+ const hashHex = hashArray
+ .map((b) => b.toString(16).padStart(2, "0"))
+ .join(""); // convert bytes to hex string
+ return hashHex;
+}
+async function md5(str) {
+ const encoder = new TextEncoder();
+ const data = encoder.encode(str);
+ const hashBuffer = await crypto.subtle.digest("MD5", data);
+ const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array
+ const hashHex = hashArray
+ .map((b) => b.toString(16).padStart(2, "0"))
+ .join(""); // convert bytes to hex string
+ return hashHex;
+}
+
+export default {
+ async fetch(request, env, ctx) {
+ const db = env.blog_summary.withSession();
+ const counter_db = env.blog_counter
+ const url = new URL(request.url);
+ const query = decodeURIComponent(url.searchParams.get('id'));
+ var commonHeader = {
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': "*",
+ 'Access-Control-Allow-Headers': "*",
+ 'Access-Control-Max-Age': '86400',
+ }
+ if (url.pathname.startsWith("/ai_chat")) {
+ // 获取请求中的文本数据
+ if (!(request.headers.get('accept') || '').includes('text/event-stream')) {
+ return Response.redirect("https://mabbs.github.io", 302);
}
- if (url.pathname.startsWith("/ai_chat")) {
- // 获取请求中的文本数据
- if (!(request.headers.get('accept') || '').includes('text/event-stream')) {
- return Response.redirect("https://mabbs.github.io", 302);
+ // const req = await request.formData();
+ let questsion = decodeURIComponent(url.searchParams.get('info'))
+ let notes = [];
+ let refer = [];
+ let contextMessage;
+ if (query != "null") {
+ try {
+ const result = String(await db.prepare(
+ "SELECT content FROM blog_summary WHERE id = ?1"
+ ).bind(query).first("content"));
+ contextMessage = result.length > 6000 ?
+ result.slice(0, 3000) + result.slice(-3000) :
+ result.slice(0, 6000)
+ } catch (e) {
+ console.error({
+ message: e.message
+ });
+ contextMessage = "无法获取到文章内容";
}
- // const req = await request.formData();
- let questsion = decodeURIComponent(url.searchParams.get('info'))
- let notes = [];
- let refer = [];
- let contextMessage;
- if (query != "null") {
- try {
- const result = String(await db.prepare(
- "SELECT content FROM blog_summary WHERE id = ?1"
- ).bind(query).first("content"));
- contextMessage = result.length > 6000 ?
- result.slice(0, 3000) + result.slice(-3000) :
- result.slice(0, 6000)
- } catch (e) {
- console.error({
- message: e.message
- });
- contextMessage = "无法获取到文章内容";
- }
- notes.push("content");
- } else {
- try {
- const response = await env.AI.run(
- "@cf/meta/m2m100-1.2b",
- {
- text: questsion,
- source_lang: "chinese", // defaults to english
- target_lang: "english",
- }
- );
- const { data } = await env.AI.run(
- "@cf/baai/bge-base-en-v1.5",
- {
- text: response.translated_text,
- }
- );
- let embeddings = data[0];
- let { matches } = await env.mayx_index.query(embeddings, { topK: 5 });
- for (let i = 0; i < matches.length; i++) {
- if (matches[i].score > 0.6) {
- notes.push(await db.prepare(
- "SELECT summary FROM blog_summary WHERE id = ?1"
- ).bind(matches[i].id).first("summary"));
- refer.push(matches[i].id);
- }
- };
- contextMessage = notes.length
- ? `Mayx的博客相关文章摘要:\n${notes.map(note => `- ${note}`).join("\n")}`
- : ""
- } catch (e) {
- console.error({
- message: e.message
- });
- contextMessage = "无法获取到文章内容";
- }
+ notes.push("content");
+ } else {
+ try {
+ const response = await env.AI.run(
+ "@cf/meta/m2m100-1.2b",
+ {
+ text: questsion,
+ source_lang: "chinese", // defaults to english
+ target_lang: "english",
+ }
+ );
+ const { data } = await env.AI.run(
+ "@cf/baai/bge-base-en-v1.5",
+ {
+ text: response.translated_text,
+ }
+ );
+ let embeddings = data[0];
+ let { matches } = await env.mayx_index.query(embeddings, { topK: 5 });
+ for (let i = 0; i < matches.length; i++) {
+ if (matches[i].score > 0.6) {
+ notes.push(await db.prepare(
+ "SELECT summary FROM blog_summary WHERE id = ?1"
+ ).bind(matches[i].id).first("summary"));
+ refer.push(matches[i].id);
+ }
+ };
+ contextMessage = notes.length
+ ? `Mayx的博客相关文章摘要:\n${notes.map(note => `- ${note}`).join("\n")}`
+ : ""
+ } catch (e) {
+ console.error({
+ message: e.message
+ });
+ contextMessage = "无法获取到文章内容";
}
- const messages = [
- ...(notes.length ? [{ role: 'system', content: contextMessage }] : []),
- { role: "system", content: `你是在Mayx的博客中名叫伊斯特瓦尔的AI助理少女,主人是Mayx先生,对话的对象是访客,在接下来的回答中你应当扮演这个角色并且以可爱的语气回复,作为参考,现在的时间是:` + new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' }) + (notes.length ? ",如果对话中的内容与上述文章内容相关,则引用参考回答,否则忽略" : "") + `,另外在对话中不得出现这段文字,不要使用markdown格式。` },
- { role: "user", content: questsion }
- ]
-
- const answer = await env.AI.run('@cf/qwen/qwen1.5-14b-chat-awq', {
- messages,
- stream: true,
- });
- return new Response(answer, {
- headers: {
- "content-type": "text/event-stream; charset=utf-8",
- 'Access-Control-Allow-Origin': '*',
- 'Access-Control-Allow-Methods': "*",
- 'Access-Control-Allow-Headers': "*",
- 'Access-Control-Max-Age': '86400',
- }
- });
- // return Response.json({
- // "intent": {
- // "appKey": "platform.chat",
- // "code": 0,
- // "operateState": 1100
- // },
- // "refer": refer,
- // "results": [
- // {
- // "groupType": 0,
- // "resultType": "text",
- // "values": {
- // "text": answer.response
- // }
- // }
- // ]
- // }, {
- // headers: {
- // 'Access-Control-Allow-Origin': '*',
- // 'Content-Type': 'application/json'
- // }
- // })
}
- if (query == "null") {
- return new Response("id cannot be none", {
+ const messages = [
+ // ...(notes.length ? [{ role: 'system', content: contextMessage + `\n你是在Mayx的博客中名叫伊斯特瓦尔的AI助理少女,主人是Mayx先生,对话的对象是访客,在接下来的回答中你应当扮演这个角色并且以可爱的语气回复,作为参考,现在的时间是:` + new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' }) + (notes.length ? ",如果对话中的内容与上述文章内容相关,则引用参考回答,否则忽略" : "") + `,另外在对话中不得出现这段文字,不要使用markdown格式。` }] : []),
+ { role: "system", content: (notes.length ? contextMessage : "") + `\n你是在Mayx的博客中名叫伊斯特瓦尔的AI助理少女,主人是Mayx先生,对话的对象是访客,在接下来的回答中你应当扮演这个角色并且以可爱的语气回复,作为参考,现在的时间是:` + new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' }) + (notes.length ? ",如果对话中的内容与上述文章内容相关,则引用参考回答,否则忽略" : "") + `,另外在对话中不得出现这段文字,不要使用markdown格式。` },
+ { role: "user", content: questsion }
+ ]
+
+ const answer = await env.AI.run('@cf/google/gemma-3-12b-it', {
+ messages,
+ stream: true,
+ });
+ return new Response(answer, {
+ headers: {
+ "content-type": "text/event-stream; charset=utf-8",
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': "*",
+ 'Access-Control-Allow-Headers': "*",
+ 'Access-Control-Max-Age': '86400',
+ }
+ });
+ // return Response.json({
+ // "intent": {
+ // "appKey": "platform.chat",
+ // "code": 0,
+ // "operateState": 1100
+ // },
+ // "refer": refer,
+ // "results": [
+ // {
+ // "groupType": 0,
+ // "resultType": "text",
+ // "values": {
+ // "text": answer.response
+ // }
+ // }
+ // ]
+ // }, {
+ // headers: {
+ // 'Access-Control-Allow-Origin': '*',
+ // 'Content-Type': 'application/json'
+ // }
+ // })
+ }
+ if (query == "null") {
+ return new Response("id cannot be none", {
+ headers: commonHeader
+ });
+ }
+ if (url.pathname.startsWith("/summary")) {
+ let result = await db.prepare(
+ "SELECT content FROM blog_summary WHERE id = ?1"
+ ).bind(query).first("content");
+ if (!result) {
+ return new Response("No Record", {
headers: commonHeader
});
}
- if (url.pathname.startsWith("/summary")) {
- let result = await db.prepare(
- "SELECT content FROM blog_summary WHERE id = ?1"
- ).bind(query).first("content");
- if (!result) {
- return new Response("No Record", {
- headers: commonHeader
- });
+
+ const messages = [
+ {
+ role: "system", content: `
+ 你是一个专业的文章摘要助手。你的主要任务是对各种文章进行精炼和摘要,帮助用户快速了解文章的核心内容。你读完整篇文章后,能够提炼出文章的关键信息,以及作者的主要观点和结论。
+ 技能
+ 精炼摘要:能够快速阅读并理解文章内容,提取出文章的主要关键点,用简洁明了的中文进行阐述。
+ 关键信息提取:识别文章中的重要信息,如主要观点、数据支持、结论等,并有效地进行总结。
+ 客观中立:在摘要过程中保持客观中立的态度,避免引入个人偏见。
+ 约束
+ 输出内容必须以中文进行。
+ 必须确保摘要内容准确反映原文章的主旨和重点。
+ 尊重原文的观点,不能进行歪曲或误导。
+ 在摘要中明确区分事实与作者的意见或分析。
+ 提示
+ 不需要在回答中注明摘要(不需要使用冒号),只需要输出内容。
+ 格式
+ 你的回答格式应该如下:
+ 这篇文章介绍了<这里是内容>
+ ` },
+ {
+ role: "user", content: result.length > 6000 ?
+ result.slice(0, 3000) + result.slice(-3000) :
+ result.slice(0, 6000)
}
-
- const messages = [
- {
- role: "system", content: `
- 你是一个专业的文章摘要助手。你的主要任务是对各种文章进行精炼和摘要,帮助用户快速了解文章的核心内容。你读完整篇文章后,能够提炼出文章的关键信息,以及作者的主要观点和结论。
- 技能
- 精炼摘要:能够快速阅读并理解文章内容,提取出文章的主要关键点,用简洁明了的中文进行阐述。
- 关键信息提取:识别文章中的重要信息,如主要观点、数据支持、结论等,并有效地进行总结。
- 客观中立:在摘要过程中保持客观中立的态度,避免引入个人偏见。
- 约束
- 输出内容必须以中文进行。
- 必须确保摘要内容准确反映原文章的主旨和重点。
- 尊重原文的观点,不能进行歪曲或误导。
- 在摘要中明确区分事实与作者的意见或分析。
- 提示
- 不需要在回答中注明摘要(不需要使用冒号),只需要输出内容。
- 格式
- 你的回答格式应该如下:
- 这篇文章介绍了<这里是内容>
- ` },
- {
- role: "user", content: result.length > 6000 ?
- result.slice(0, 3000) + result.slice(-3000) :
- result.slice(0, 6000)
- }
- ]
-
- const stream = await env.AI.run('@cf/qwen/qwen1.5-14b-chat-awq', {
- messages,
- stream: true,
+ ]
+
+ const stream = await env.AI.run('@cf/google/gemma-3-12b-it', {
+ messages,
+ stream: true,
+ });
+
+ return new Response(stream, {
+ headers: {
+ "content-type": "text/event-stream; charset=utf-8",
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': "*",
+ 'Access-Control-Allow-Headers': "*",
+ 'Access-Control-Max-Age': '86400',
+ }
+ });
+ } else if (url.pathname.startsWith("/get_summary")) {
+ const orig_sha = decodeURIComponent(url.searchParams.get('sign'));
+ let result = await db.prepare(
+ "SELECT content FROM blog_summary WHERE id = ?1"
+ ).bind(query).first("content");
+ if (!result) {
+ return new Response("no", {
+ headers: commonHeader
});
-
- return new Response(stream, {
- headers: {
- "content-type": "text/event-stream; charset=utf-8",
- 'Access-Control-Allow-Origin': '*',
- 'Access-Control-Allow-Methods': "*",
- 'Access-Control-Allow-Headers': "*",
- 'Access-Control-Max-Age': '86400',
- }
+ }
+ let result_sha = await sha(result);
+ if (result_sha != orig_sha) {
+ return new Response("no", {
+ headers: commonHeader
});
- } else if (url.pathname.startsWith("/get_summary")) {
- const orig_sha = decodeURIComponent(url.searchParams.get('sign'));
+ } else {
+ let resp = await db.prepare(
+ "SELECT summary FROM blog_summary WHERE id = ?1"
+ ).bind(query).first("summary");
+ if (!resp) {
+ const messages = [
+ {
+ role: "system", content: `
+ 你是一个专业的文章摘要助手。你的主要任务是对各种文章进行精炼和摘要,帮助用户快速了解文章的核心内容。你读完整篇文章后,能够提炼出文章的关键信息,以及作者的主要观点和结论。
+ 技能
+ 精炼摘要:能够快速阅读并理解文章内容,提取出文章的主要关键点,用简洁明了的中文进行阐述。
+ 关键信息提取:识别文章中的重要信息,如主要观点、数据支持、结论等,并有效地进行总结。
+ 客观中立:在摘要过程中保持客观中立的态度,避免引入个人偏见。
+ 约束
+ 输出内容必须以中文进行。
+ 必须确保摘要内容准确反映原文章的主旨和重点。
+ 尊重原文的观点,不能进行歪曲或误导。
+ 在摘要中明确区分事实与作者的意见或分析。
+ 提示
+ 不需要在回答中注明摘要(不需要使用冒号),只需要输出内容。
+ 格式
+ 你的回答格式应该如下:
+ 这篇文章介绍了<这里是内容>
+ ` },
+ {
+ role: "user", content: result.length > 6000 ?
+ result.slice(0, 3000) + result.slice(-3000) :
+ result.slice(0, 6000)
+ }
+ ]
+
+ const answer = await env.AI.run('@cf/google/gemma-3-12b-it', {
+ messages,
+ stream: false,
+ });
+ resp = answer.response
+ await db.prepare("UPDATE blog_summary SET summary = ?1 WHERE id = ?2")
+ .bind(resp, query).run();
+ }
+ let is_vec = await db.prepare(
+ "SELECT `is_vec` FROM blog_summary WHERE id = ?1"
+ ).bind(query).first("is_vec");
+ if (is_vec == 0) {
+ const response = await env.AI.run(
+ "@cf/meta/m2m100-1.2b",
+ {
+ text: resp,
+ source_lang: "chinese", // defaults to english
+ target_lang: "english",
+ }
+ );
+ const { data } = await env.AI.run(
+ "@cf/baai/bge-base-en-v1.5",
+ {
+ text: response.translated_text,
+ }
+ );
+ let embeddings = data[0];
+ await env.mayx_index.upsert([{
+ id: query,
+ values: embeddings
+ }]);
+ await db.prepare("UPDATE blog_summary SET is_vec = 1 WHERE id = ?1")
+ .bind(query).run();
+ }
+ return new Response(resp, {
+ headers: commonHeader
+ });
+ }
+ } else if (url.pathname.startsWith("/is_uploaded")) {
+ const orig_sha = decodeURIComponent(url.searchParams.get('sign'));
+ let result = await db.prepare(
+ "SELECT content FROM blog_summary WHERE id = ?1"
+ ).bind(query).first("content");
+ if (!result) {
+ return new Response("no", {
+ headers: commonHeader
+ });
+ }
+ let result_sha = await sha(result);
+ if (result_sha != orig_sha) {
+ return new Response("no", {
+ headers: commonHeader
+ });
+ } else {
+ return new Response("yes", {
+ headers: commonHeader
+ });
+ }
+ } else if (url.pathname.startsWith("/upload_blog")) {
+ if (request.method == "POST") {
+ const data = await request.text();
let result = await db.prepare(
"SELECT content FROM blog_summary WHERE id = ?1"
).bind(query).first("content");
if (!result) {
- return new Response("no", {
- headers: commonHeader
- });
- }
- let result_sha = await sha(result);
- if (result_sha != orig_sha) {
- return new Response("no", {
- headers: commonHeader
- });
- } else {
- let resp = await db.prepare(
- "SELECT summary FROM blog_summary WHERE id = ?1"
- ).bind(query).first("summary");
- if (!resp) {
- const messages = [
- {
- role: "system", content: `
- 你是一个专业的文章摘要助手。你的主要任务是对各种文章进行精炼和摘要,帮助用户快速了解文章的核心内容。你读完整篇文章后,能够提炼出文章的关键信息,以及作者的主要观点和结论。
- 技能
- 精炼摘要:能够快速阅读并理解文章内容,提取出文章的主要关键点,用简洁明了的中文进行阐述。
- 关键信息提取:识别文章中的重要信息,如主要观点、数据支持、结论等,并有效地进行总结。
- 客观中立:在摘要过程中保持客观中立的态度,避免引入个人偏见。
- 约束
- 输出内容必须以中文进行。
- 必须确保摘要内容准确反映原文章的主旨和重点。
- 尊重原文的观点,不能进行歪曲或误导。
- 在摘要中明确区分事实与作者的意见或分析。
- 提示
- 不需要在回答中注明摘要(不需要使用冒号),只需要输出内容。
- 格式
- 你的回答格式应该如下:
- 这篇文章介绍了<这里是内容>
- ` },
- {
- role: "user", content: result.length > 6000 ?
- result.slice(0, 3000) + result.slice(-3000) :
- result.slice(0, 6000)
- }
- ]
-
- const answer = await env.AI.run('@cf/qwen/qwen1.5-14b-chat-awq', {
- messages,
- stream: false,
- });
- resp = answer.response
- await db.prepare("UPDATE blog_summary SET summary = ?1 WHERE id = ?2")
- .bind(resp, query).run();
- }
- let is_vec = await db.prepare(
- "SELECT `is_vec` FROM blog_summary WHERE id = ?1"
- ).bind(query).first("is_vec");
- if (is_vec == 0) {
- const response = await env.AI.run(
- "@cf/meta/m2m100-1.2b",
- {
- text: resp,
- source_lang: "chinese", // defaults to english
- target_lang: "english",
- }
- );
- const { data } = await env.AI.run(
- "@cf/baai/bge-base-en-v1.5",
- {
- text: response.translated_text,
- }
- );
- let embeddings = data[0];
- await env.mayx_index.upsert([{
- id: query,
- values: embeddings
- }]);
- await db.prepare("UPDATE blog_summary SET is_vec = 1 WHERE id = ?1")
- .bind(query).run();
- }
- return new Response(resp, {
- headers: commonHeader
- });
- }
- } else if (url.pathname.startsWith("/is_uploaded")) {
- const orig_sha = decodeURIComponent(url.searchParams.get('sign'));
- let result = await db.prepare(
- "SELECT content FROM blog_summary WHERE id = ?1"
- ).bind(query).first("content");
- if (!result) {
- return new Response("no", {
- headers: commonHeader
- });
- }
- let result_sha = await sha(result);
- if (result_sha != orig_sha) {
- return new Response("no", {
- headers: commonHeader
- });
- } else {
- return new Response("yes", {
- headers: commonHeader
- });
- }
- } else if (url.pathname.startsWith("/upload_blog")) {
- if (request.method == "POST") {
- const data = await request.text();
- let result = await db.prepare(
+ await db.prepare("INSERT INTO blog_summary(id, content) VALUES (?1, ?2)")
+ .bind(query, data).run();
+ result = await db.prepare(
"SELECT content FROM blog_summary WHERE id = ?1"
).bind(query).first("content");
- if (!result) {
- await db.prepare("INSERT INTO blog_summary(id, content) VALUES (?1, ?2)")
- .bind(query, data).run();
- result = await db.prepare(
- "SELECT content FROM blog_summary WHERE id = ?1"
- ).bind(query).first("content");
- }
- if (result != data) {
- await db.prepare("UPDATE blog_summary SET content = ?1, summary = NULL, is_vec = 0 WHERE id = ?2")
- .bind(data, query).run();
- }
- return new Response("OK", {
- headers: commonHeader
- });
- } else {
- return new Response("need post", {
- headers: commonHeader
- });
}
- } else if (url.pathname.startsWith("/count_click")) {
- let id_md5 = await md5(query);
- let count = await counter_db.prepare("SELECT `counter` FROM `counter` WHERE `url` = ?1")
- .bind(id_md5).first("counter");
- if (url.pathname.startsWith("/count_click_add")) {
- if (!count) {
- await counter_db.prepare("INSERT INTO `counter` (`url`, `counter`) VALUES (?1, 1)")
- .bind(id_md5).run();
- count = 1;
- } else {
- count += 1;
- await counter_db.prepare("UPDATE `counter` SET `counter` = ?1 WHERE `url` = ?2")
- .bind(count, id_md5).run();
- }
+ if (result != data) {
+ await db.prepare("UPDATE blog_summary SET content = ?1, summary = NULL, is_vec = 0 WHERE id = ?2")
+ .bind(data, query).run();
}
- if (!count) {
- count = 0;
- }
- return new Response(count, {
+ return new Response("OK", {
headers: commonHeader
});
- } else if (url.pathname.startsWith("/suggest")) {
- let resp = [];
- let update_time = url.searchParams.get('update');
- if (update_time) {
- let result = await env.mayx_index.getByIds([
- query
- ]);
- if (result.length) {
- let cache = await db.prepare("SELECT `id`, `suggest`, `suggest_update` FROM `blog_summary` WHERE `id` = ?1")
- .bind(query).first();
- if (!cache.id) {
- return Response.json(resp, {
- headers: commonHeader
- });
- }
- if (update_time != cache.suggest_update) {
- resp = await env.mayx_index.query(result[0].values, { topK: 6 });
- resp = resp.matches;
- resp.splice(0, 1);
- await db.prepare("UPDATE `blog_summary` SET `suggest_update` = ?1, `suggest` = ?2 WHERE `id` = ?3")
- .bind(update_time, JSON.stringify(resp), query).run();
- commonHeader["x-suggest-cache"] = "miss"
- } else {
- resp = JSON.parse(cache.suggest);
- commonHeader["x-suggest-cache"] = "hit"
- }
- }
- resp = resp.map(respObj => {
- respObj.id = encodeURI(respObj.id);
- return respObj;
- });
- }
- return Response.json(resp, {
- headers: commonHeader
- });
- } else if (url.pathname.startsWith("/***")) {
- let resp = await db.prepare("SELECT `id`, `summary` FROM `blog_summary` WHERE `suggest_update` IS NOT NULL").run();
- const resultObject = resp.results.reduce((acc, item) => {
- acc[item.id] = item.summary; // 将每个项的 id 作为键,summary 作为值
- return acc;
- }, {}); // 初始值为空对象
- return Response.json(resultObject);
} else {
- return Response.redirect("https://mabbs.github.io", 302)
+ return new Response("need post", {
+ headers: commonHeader
+ });
}
+ } else if (url.pathname.startsWith("/count_click")) {
+ let id_md5 = await md5(query);
+ let count = await counter_db.prepare("SELECT `counter` FROM `counter` WHERE `url` = ?1")
+ .bind(id_md5).first("counter");
+ if (url.pathname.startsWith("/count_click_add")) {
+ if (!count) {
+ await counter_db.prepare("INSERT INTO `counter` (`url`, `counter`) VALUES (?1, 1)")
+ .bind(id_md5).run();
+ count = 1;
+ } else {
+ count += 1;
+ await counter_db.prepare("UPDATE `counter` SET `counter` = ?1 WHERE `url` = ?2")
+ .bind(count, id_md5).run();
+ }
+ }
+ if (!count) {
+ count = 0;
+ }
+ return new Response(count, {
+ headers: commonHeader
+ });
+ } else if (url.pathname.startsWith("/suggest")) {
+ let resp = [];
+ let update_time = url.searchParams.get('update');
+ if (update_time) {
+ let result = await env.mayx_index.getByIds([
+ query
+ ]);
+ if (result.length) {
+ let cache = await db.prepare("SELECT `id`, `suggest`, `suggest_update` FROM `blog_summary` WHERE `id` = ?1")
+ .bind(query).first();
+ if (!cache.id) {
+ return Response.json(resp, {
+ headers: commonHeader
+ });
+ }
+ if (update_time != cache.suggest_update) {
+ resp = await env.mayx_index.query(result[0].values, { topK: 6 });
+ resp = resp.matches;
+ resp.splice(0, 1);
+ await db.prepare("UPDATE `blog_summary` SET `suggest_update` = ?1, `suggest` = ?2 WHERE `id` = ?3")
+ .bind(update_time, JSON.stringify(resp), query).run();
+ commonHeader["x-suggest-cache"] = "miss"
+ } else {
+ resp = JSON.parse(cache.suggest);
+ commonHeader["x-suggest-cache"] = "hit"
+ }
+ }
+ resp = resp.map(respObj => {
+ respObj.id = encodeURI(respObj.id);
+ return respObj;
+ });
+ }
+ return Response.json(resp, {
+ headers: commonHeader
+ });
+ } else {
+ return Response.redirect("https://mabbs.github.io", 302)
}
- }
\ No newline at end of file
+ }
+}
\ No newline at end of file
diff --git a/_tools/envs_post-receive b/_tools/envs_post-receive
index c9465eb..6212158 100644
--- a/_tools/envs_post-receive
+++ b/_tools/envs_post-receive
@@ -5,7 +5,7 @@ git --work-tree=/home/mayx/blog --git-dir=/home/mayx/blog.git checkout -f
cd blog
mkdir Mabbs
curl -L -o Mabbs/README.md https://github.com/Mabbs/Mabbs/raw/main/README.md
-bundle2.7 exec jekyll build -d ../public_html
+bundle exec jekyll build -d ../public_html
tar czvf MayxBlog.tgz --exclude-vcs ../public_html/
mv MayxBlog.tgz ../public_html/
cd ../public_html/
From 2ab69826847ed2b8403fc4c1085cd4f0759ab371 Mon Sep 17 00:00:00 2001
From: mayx
Date: Wed, 11 Feb 2026 09:54:52 +0000
Subject: [PATCH 21/29] Update 3 files
- /assets/css/style.scss
- /_data/other_repo_list.csv
- /_data/ai-cache.json
---
_data/ai-cache.json | 3 ++-
_data/other_repo_list.csv | 41 +++++++++-------------------------
assets/css/style.scss | 46 +++++++++++++++++++++++++--------------
3 files changed, 42 insertions(+), 48 deletions(-)
diff --git a/_data/ai-cache.json b/_data/ai-cache.json
index bf652e1..edd8577 100644
--- a/_data/ai-cache.json
+++ b/_data/ai-cache.json
@@ -173,5 +173,6 @@
"/2025/10/12/recover.html": "这篇文章讲述了作者通过GitHub的Fork特性找回一个被删除的Brainfuck可视化演示仓库的经历。由于原仓库和作者主页都已消失,作者推测GitHub在Fork时会共享对象库,只要有任意一个Fork仓库存在,GitHub就会保留所有对象,从而可以通过找到一个Fork仓库的最新提交Hash值来还原目标仓库。作者通过Linux内核仓库的Fork进行验证,随后在互联网档案馆上找到目标仓库的Fork以及其Hash值,最终通过Git命令将本地仓库的HEAD指针指向目标提交,成功恢复了该仓库的代码,并将其部署到自己的GitHub Pages上。最后,作者发现Software Heritage组织会保存所有代码,因此在遇到类似情况时可以直接通过该平台进行查找。",
"/2025/11/01/mirrors.html": "这篇文章讲述了作者为了提高博客的可靠性,探索利用被滥用的Git平台进行博客镜像的想法和实践。作者发现一些Git实例存在大量空仓库和异常用户,怀疑是SEO公司滥用,因此决定利用这些平台进行博客镜像备份,以应对平台倒闭或数据丢失的风险。作者选择Gitea和Forgejo平台作为目标,编写脚本自动注册账号并导入博客仓库,实现了自动化镜像分发。作者也意识到此类平台的稳定性存在不确定性,并思考了“量”和“质”两种方式确保博客永恒性的优劣,最终认为建立一个活跃的、自动执行维护操作的网络可能更有效。文章最后展示了作者创建的Git镜像列表,并表达了对博客永恒性的思考。",
"/2025/12/01/linux.html": "这篇文章介绍了在浏览器中运行Linux的各种方法,从最初的纯JS虚拟机JSLinux,到后来的WASM虚拟机如v86、WebVM、WebCM,再到容器化方案container2wasm,以及直接将Linux内核编译为WASM的方案。作者详细对比了这些方案的优缺点,包括性能、兼容性、功能和开发难度。文章还提到了模仿Linux环境的WebContainers和JupyterLite,并最终认为虚拟机方案更靠谱,但对WASM的未来充满期待。作者最后表示,博客上添加类似功能的计划还在考虑中,目前主要分享了各种方法的探索过程。",
- "/2026/01/01/summary.html": "这篇文章介绍了作者对2025年的年终总结,主要表达了对自身状态的担忧和对未来的不确定感。作者认为自己在记忆和思考能力方面有所下滑,稳定性较低,且未能抓住资产保值的机会。同时,文章也记录了AI技术的飞速发展,以及自己博客内容与时代脱节的现象。尽管对未来感到迷茫,作者仍然抱有一丝希望,期望在2026年做出正确的选择,避免陷入危险。"
+ "/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命名空间来实现链接等功能,但这种方法会产生“不纯粹”的警告。文章最后总结,技术可能会消失,但总有其他技术可以解决问题,并强调了适应浏览器厂商决策的重要性。"
}
\ No newline at end of file
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index abf9c5f..f33e294 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -14,7 +14,6 @@ https://git.minetest.land/Mayx/blog
https://gitea.stormyhome.net/mayx/blog
http://47.120.60.153:10880/mayx/blog
http://61.139.16.27:26684/mayx/blog
-http://116.62.245.34:3000/mayx/blog
http://1.6.141.109:3000/mayx/blog
http://52.28.156.42/mayx/blog
http://164.92.160.200:3000/mayx/blog
@@ -36,7 +35,6 @@ 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-test.zcy.dev/mayx/blog
-https://git.nothamor.com/mayx/blog
https://git.zeroplay.io/mayx/blog
https://git.successkaoyan.com/mayx/blog
http://139.129.25.251:3000/mayx/blog
@@ -66,7 +64,6 @@ http://8.134.61.107:3000/mayx/blog
http://47.107.88.161:3000/mayx/blog
https://git.votava.org/mayx/blog
https://gitea.madf12.com/mayx/blog
-http://8.134.104.234:3000/mayx/blog
https://gitea.carmon.co.kr/mayx/blog
http://142.171.47.170:3000/mayx/blog
http://111.231.146.230:8418/mayx/blog
@@ -75,7 +72,6 @@ https://git.pwaapp.cc/mayx/blog
http://119.28.73.80:5000/mayx/blog
http://194.60.231.252:3000/mayx/blog
https://git.sleepingforest.co.uk/mayx/blog
-https://git.brb.homeip.net/mayx/blog
https://an360.top/mayx/blog
https://gitea.chenxu2233.com/mayx/blog
http://106.15.78.64:3000/mayx/blog
@@ -83,7 +79,6 @@ http://hoenking.cn:3000/mayx/blog
https://gitea.anessen.xyz/mayx/blog
https://git.cjcrace.io/mayx/blog
https://git.wisder.net/mayx/blog
-http://8.138.187.97:3000/mayx/blog
https://git2.ujin.tech/mayx/blog
http://111.119.244.185:3000/mayx/blog
http://110.41.179.36:13000/mayx/blog
@@ -92,11 +87,8 @@ https://git.tomlab.dev/mayx/blog
http://182.92.109.202:8070/mayx/blog
http://94.130.182.154:3000/mayx/blog
https://git.unicom.studio/mayx/blog
-http://43.138.173.153:8804/mayx/blog
http://frktedu.ru:3000/mayx/blog
https://git.lokalix.de/mayx/blog
-http://8.141.14.13:3000/mayx/blog
-http://139.196.201.231:3000/mayx/blog
https://git.influxfin.com/mayx/blog
https://git.programar.io/mayx/blog
http://219.157.255.213:25311/mayx/blog
@@ -104,13 +96,10 @@ https://git.melvincarvalho.com/mayx/blog
https://gitea.aerwen.net/mayx/blog
https://git.vekus.ru/mayx/blog
https://gitea.svc.obaa.cloud/mayx/blog
-http://8.134.64.84:3000/mayx/blog
https://gitea.blubeacon.com/mayx/blog
http://116.204.75.78:6180/mayx/blog
-https://git.ods-company.ru/mayx/blog
http://109.228.48.121:8000/mayx/blog
https://bk-house.synology.me:3081/mayx/blog
-http://123.57.95.66:9000/mayx/blog
https://git.sparrowcomm.com/mayx/blog
https://git.hubhoo.com/mayx/blog
https://git.ultra.pub/mayx/blog
@@ -119,7 +108,6 @@ https://saga.iao.ru:3043/mayx/blog
https://git.sayndone.ru/mayx/blog
https://gitea.hintsight.com/mayx/blog
https://anzsco.co.nz/mayx/blog
-https://git.valami.giize.com/mayx/blog
https://git.simbarbet.com/mayx/blog
https://git.saintdoggie.org/mayx/blog
http://blackobelisk.xyz:3000/mayx/blog
@@ -129,19 +117,14 @@ https://git.tech.troyrc.com/mayx/blog
http://git.zkyspace.top/mayx/blog
http://149.88.87.128:3000/mayx/blog
http://124.70.167.140:3000/mayx/blog
-http://8.137.38.60:8201/mayx/blog
-http://112.74.106.216:3000/mayx/blog
http://77.223.118.106:8081/mayx/blog
https://git.the-kn.com/mayx/blog
-https://gitea.net50.ne.jp/mayx/blog
https://git.ism-dev.net/mayx/blog
http://sinzero.xyz:3000/mayx/blog
https://gitea.b54.co/mayx/blog
-https://git.matevi.sh/mayx/blog
http://213.35.118.215:60001/mayx/blog
https://git.jasonpittman.com/mayx/blog
https://gitea.shirom.me/mayx/blog
-http://1.95.221.174:3000/mayx/blog
https://git.wangxinlei.cn/mayx/blog
http://101.200.74.121:3000/mayx/blog
http://123.56.193.182:3000/mayx/blog
@@ -155,12 +138,10 @@ http://116.236.50.103:8789/mayx/blog
https://git.paulll.cc/mayx/blog
https://gitea.reimann.ee/mayx/blog
http://109.74.197.189/mayx/blog
-https://git.nussi.net/mayx/blog
http://94.224.160.69:7990/mayx/blog
https://git.hxps.ru/mayx/blog
https://gitea.ekjeong.synology.me/mayx/blog
https://git.d4m13n.dev/mayx/blog
-https://git.4lcap.com/mayx/blog
https://git.stit.tech/mayx/blog
https://www.9miao.fun:6839/mayx/blog
https://git.autotion.net/mayx/blog
@@ -178,7 +159,6 @@ https://git.kimcblog.com/mayx/blog
https://git.minaev.su/mayx/blog
https://git.0fs.ru/mayx/blog
https://git.bremauer.cc/mayx/blog
-http://119.3.29.177:3000/mayx/blog
http://47.110.224.240:13000/mayx/blog
http://194.67.86.160:3100/mayx/blog
http://47.101.58.33:3000/mayx/blog
@@ -190,7 +170,6 @@ http://152.69.204.151:3000/mayx/blog
http://207.180.229.193:3001/mayx/blog
https://g2.m8il.in/mayx/blog
http://34.81.52.16/mayx/blog
-http://120.78.74.94:3000/mayx/blog
https://git.genowisdom.cn/mayx/blog
http://120.26.116.243:3000/mayx/blog
http://123.57.16.111:3000/mayx/blog
@@ -312,13 +291,11 @@ https://git.micahmoore.io/mayx/blog
https://schokigeschmack.de/mayx/blog
https://git.anatid.net/mayx/blog
https://git.lekai.info/mayx/blog
-https://git.avclick.ru/mayx/blog
http://135.235.225.198:3000/mayx/blog
https://git.sick.earth/mayx/blog
https://git.prayujt.com/mayx/blog
https://git.galaxylabs.ca/mayx/blog
https://gitlab.n8n-store.xyz/mayx/blog
-https://gitea.katiethe.dev/mayx/blog
http://159.203.33.179:3000/mayx/blog
http://117.72.114.197:3000/mayx/blog
https://git.ashcloud.com/mayx/blog
@@ -415,7 +392,6 @@ http://117.72.15.187:3000/mayx/blog
http://81.70.30.91:3000/mayx/blog
https://gitea.kisechan.space/mayx/blog
http://140.238.9.133:3007/mayx/blog
-http://8.138.100.115:3000/mayx/blog
https://git.mwapp.com.br/mayx/blog
http://yidaima.cn:6008/mayx/blog
http://185.126.237.57:3000/mayx/blog
@@ -433,11 +409,9 @@ 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://120.27.19.58:30000/mayx/blog
-https://gitea.suchodupin.com/mayx/blog
http://117.72.219.18:6000/mayx/blog
http://35.194.179.90:3000/mayx/blog
http://188.245.173.247:3080/mayx/blog
-http://8.153.14.94:61308/mayx/blog
http://66.179.208.56:3001/mayx/blog
http://59.110.63.79:13000/mayx/blog
http://59.110.63.80:3000/mayx/blog
@@ -459,7 +433,6 @@ http://120.211.66.170:8418/mayx/blog
http://187.189.244.23:3000/mayx/blog
http://58.176.21.43:9004/mayx/blog
https://gitea.vilcap.com/mayx/blog
-http://8.137.94.229:3000/mayx/blog
http://121.196.245.62/mayx/blog
http://47.102.209.69:53000/mayx/blog
http://116.205.97.109:3000/mayx/blog
@@ -481,7 +454,6 @@ 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://39.104.61.219:3000/mayx/blog
http://www.scserverddns.top:13000/mayx/blog
http://156.255.1.229:3000/mayx/blog
https://git.ndpcloud.ru/mayx/blog
@@ -512,7 +484,6 @@ http://8.129.11.230:7002/mayx/blog
http://115.190.107.87:3000/mayx/blog
https://git.hast.one/mayx/blog
http://106.12.50.144:8081/mayx/blog
-http://43.192.90.133/mayx/blog
http://120.77.94.227:9999/mayx/blog
https://code.wxk8.com/mayx/blog
http://www.befitsoft.com/mayx/blog
@@ -553,7 +524,6 @@ http://8.148.31.14:3000/mayx/blog
http://55x.top:9300/mayx/blog
https://gitea.lelespace.top/mayx/blog
https://git.lmbrs.org/mayx/blog
-https://fj.sinesation.com/mayx/blog
http://47.94.246.1:3000/mayx/blog
http://103.87.67.60:3100/mayx/blog
https://docker-registry-lszz.uj.com.tw/mayx/blog
@@ -574,5 +544,14 @@ 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
-https://git.veran.link/mayx/blog
http://104.254.131.244:3000/mayx/blog
+https://gitea.alacloud.de/mayx/blog
+https://git.tobiasweise.dev/mayx/blog
+http://176.124.216.7/mayx/blog
+https://publica-gitea.a.cnpgc.embrapa.br/mayx/blog
+https://code.cif.su/mayx/blog
+http://47.99.119.173:13000/mayx/blog
+http://47.97.225.73:3000/mayx/blog
+http://git.topsailiot.com/mayx/blog
+https://git.monogps.com/mayx/blog
+https://gitea.brmm.ovh/mayx/blog
diff --git a/assets/css/style.scss b/assets/css/style.scss
index e88c321..879154e 100644
--- a/assets/css/style.scss
+++ b/assets/css/style.scss
@@ -34,33 +34,33 @@ a:hover {
.post-content h1 {
text-indent: -8px;
- margin:20px 0 10px;
+ margin: 20px 0 10px;
border-bottom: 1px solid #e5e5e5;
}
.post-content h2 {
text-indent: -6px;
- margin:20px 0 10px;
+ margin: 20px 0 10px;
border-bottom: 1px solid #e5e5e5;
}
.post-content h3 {
- margin:20px 0 10px;
+ margin: 20px 0 10px;
text-indent: -5px;
}
.post-content h4 {
- margin:20px 0 10px;
+ margin: 20px 0 10px;
text-indent: -4px;
}
.post-content h5 {
- margin:20px 0 10px;
+ margin: 20px 0 10px;
text-indent: -3px;
}
.post-content h6 {
- margin:20px 0 10px;
+ margin: 20px 0 10px;
text-indent: -2px;
}
@@ -121,42 +121,48 @@ div.highlight button:hover {
font-size: 14px;
line-height: 1.4;
}
+
.footnotes p {
margin: 0;
text-indent: 0;
}
-.wrapper{
+.wrapper {
width: 90%;
}
-header{
+
+header {
width: 25%;
}
-footer{
+
+footer {
width: 25%;
}
-section{
+
+section {
width: 65%;
}
-@media print, screen and (max-width: 960px) {
+
+@media print,
+screen and (max-width: 960px) {
.wrapper {
width: auto;
}
-
+
header {
width: auto;
}
-
+
footer {
width: auto;
}
-
+
section {
width: auto;
}
}
-code.highlighter-rouge{
+code.highlighter-rouge {
padding: .1em .2em;
margin: 0;
font-size: 90%;
@@ -171,9 +177,17 @@ code.highlighter-rouge{
border: 1px solid #ddd;
padding: 8px 12px;
border-radius: 4px;
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
max-width: 300px;
z-index: 1000;
font-size: 14px;
line-height: 1.4;
+}
+
+td.h-entry {
+ cursor: pointer;
+}
+
+td.h-entry:hover {
+ background: #f9f9f9;
}
\ No newline at end of file
From 00aec9bad0ed7071ab06c4eb5ac85bc699bb5049 Mon Sep 17 00:00:00 2001
From: mayx
Date: Wed, 25 Feb 2026 07:29:29 +0000
Subject: [PATCH 22/29] Update 5 files
- /_data/other_repo_list.csv
- /_data/links.csv
- /_data/proxylist.yml
- /assets/css/feed.css
- /_layouts/default.html
---
_data/links.csv | 1 +
_data/other_repo_list.csv | 32 ++-----
_data/proxylist.yml | 1 +
_layouts/default.html | 2 +-
assets/css/feed.css | 178 ++++++++++++++++++--------------------
5 files changed, 94 insertions(+), 120 deletions(-)
diff --git a/_data/links.csv b/_data/links.csv
index 0a5643c..49c5f6c 100644
--- a/_data/links.csv
+++ b/_data/links.csv
@@ -21,3 +21,4 @@ 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,,
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index f33e294..44381a2 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -10,19 +10,18 @@ https://git.pixie.town/mayx/mayx
https://cgit.tilde.town/~mayx/blog
https://gitlab.haskell.org/mayx/mayx
https://repo2.serv00.com/git/pub/Mayx/mayx/
+https://www.gitlink.org.cn/mayx/blog
https://git.minetest.land/Mayx/blog
https://gitea.stormyhome.net/mayx/blog
http://47.120.60.153:10880/mayx/blog
http://61.139.16.27:26684/mayx/blog
http://1.6.141.109:3000/mayx/blog
http://52.28.156.42/mayx/blog
-http://164.92.160.200:3000/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
https://git.empirica.pro/mayx/blog
-https://git.emanuelemiani.it/mayx/blog
https://git.dehemi.com/mayx/blog
http://101.66.229.132:61088/mayx/blog
https://git.bp-web.app/mayx/blog
@@ -34,12 +33,10 @@ 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-test.zcy.dev/mayx/blog
https://git.zeroplay.io/mayx/blog
https://git.successkaoyan.com/mayx/blog
http://139.129.25.251:3000/mayx/blog
http://45.33.87.87/mayx/blog
-https://git.rankenste.in/mayx/blog
http://168.126.28.36:3000/mayx/blog
http://120.79.27.232:3000/mayx/blog
http://wangbeibei.xyz:6002/mayx/blog
@@ -49,7 +46,6 @@ http://112.219.147.186:7000/mayx/blog
https://git.rootfinlay.co.uk/mayx/blog
https://repo.beithing.com/mayx/blog
https://git.yi-guanjia.com/mayx/blog
-https://git.repo.in.net/mayx/blog
https://gitea.belanjaparts.com/mayx/blog
http://185.208.225.190:3000/mayx/blog
https://git.sudo-fhir.au/mayx/blog
@@ -62,15 +58,11 @@ http://103.231.8.120/mayx/blog
https://gitea.jasonstolle.com/mayx/blog
http://8.134.61.107:3000/mayx/blog
http://47.107.88.161:3000/mayx/blog
-https://git.votava.org/mayx/blog
-https://gitea.madf12.com/mayx/blog
-https://gitea.carmon.co.kr/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
http://119.28.73.80:5000/mayx/blog
-http://194.60.231.252:3000/mayx/blog
https://git.sleepingforest.co.uk/mayx/blog
https://an360.top/mayx/blog
https://gitea.chenxu2233.com/mayx/blog
@@ -85,7 +77,6 @@ http://110.41.179.36:13000/mayx/blog
https://git.moonwoou.com/mayx/blog
https://git.tomlab.dev/mayx/blog
http://182.92.109.202:8070/mayx/blog
-http://94.130.182.154:3000/mayx/blog
https://git.unicom.studio/mayx/blog
http://frktedu.ru:3000/mayx/blog
https://git.lokalix.de/mayx/blog
@@ -141,7 +132,6 @@ http://109.74.197.189/mayx/blog
http://94.224.160.69:7990/mayx/blog
https://git.hxps.ru/mayx/blog
https://gitea.ekjeong.synology.me/mayx/blog
-https://git.d4m13n.dev/mayx/blog
https://git.stit.tech/mayx/blog
https://www.9miao.fun:6839/mayx/blog
https://git.autotion.net/mayx/blog
@@ -164,7 +154,6 @@ http://194.67.86.160:3100/mayx/blog
http://47.101.58.33:3000/mayx/blog
https://gitea.synapsetec.cn/mayx/blog
http://gitea.yunshanghub.com:8081/mayx/blog
-https://repo.c-software.id/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
@@ -197,8 +186,6 @@ http://116.63.173.179:8001/mayx/blog
https://git.iop.plus/mayx/blog
http://47.114.82.162:3000/mayx/blog
http://114.116.79.196/mayx/blog
-https://gitea.cybs.io/mayx/blog
-https://gitea.fcliu.net/mayx/blog
http://git.yinas.cn/mayx/blog
http://git.chilidoginteractive.com:3000/mayx/blog
http://121.40.40.177:3000/mayx/blog
@@ -227,7 +214,6 @@ https://k0ki-dev.com/mayx/blog
http://110.42.45.89:2052/mayx/blog
https://git.furcom.org/mayx/blog
http://47.109.95.73:3000/mayx/blog
-http://8.133.240.249:3456/mayx/blog
http://34.102.70.200:3000/mayx/blog
http://175.178.219.170:3000/mayx/blog
https://code.miraclezhb.com/mayx/blog
@@ -257,7 +243,6 @@ https://git.baneynet.net/mayx/blog
https://git.gupaoedu.cn/mayx/blog
http://60.205.233.184:3010/mayx/blog
https://git.ricecakecat.com/mayx/blog
-https://gittea.biveki.ru/mayx/blog
https://git.7milch.com/mayx/blog
https://git.sitenevis.com/mayx/blog
https://git.nightime.org/mayx/blog
@@ -271,8 +256,6 @@ https://git.git-happens.de/mayx/blog
http://101.35.183.241/mayx/blog
https://gitea.quiztimes.nl/mayx/blog
http://106.14.189.125:3000/mayx/blog
-https://git.hundseth.com/mayx/blog
-https://travgit.guillorystack.com/mayx/blog
http://gitea.coderpath.com/mayx/blog
https://gitea.thanh0x.com/mayx/blog
http://175.198.180.19:3000/mayx/blog
@@ -282,9 +265,7 @@ https://git.hantify.ru/mayx/blog
http://43.136.169.169:3000/mayx/blog
http://121.196.213.68:3000/mayx/blog
https://git.vereint-digital.de/mayx/blog
-https://git.advarna.fr/mayx/blog
http://111.198.4.69:8092/mayx/blog
-https://git.lakaweb.com/mayx/blog
https://forge.coreymclark.com/mayx/blog
http://ems.iclematis.com:30000/mayx/blog
https://git.micahmoore.io/mayx/blog
@@ -311,12 +292,12 @@ http://sjhome.cloud:3000/mayx/blog
https://gitea.sciotech.cn/mayx/blog
http://8.148.220.5:8089/mayx/blog
http://8.140.250.85:3000/mayx/blog
+https://git.emanuelemiani.it/mayx/blog
http://8.134.11.35:3000/mayx/blog
https://git.ctx.dev/mayx/blog
https://nas.szwyll.com:3000/mayx/blog
https://git.koppa.pro/mayx/blog
http://202.65.194.19:3000/mayx/blog
-http://8.148.234.146:3001/mayx/blog
http://www.bzturbo.com.br/mayx/blog
https://git.maiasoft.jp/mayx/blog
https://gitea.xala.dev/mayx/blog
@@ -338,7 +319,6 @@ http://139.129.21.166:3000/mayx/blog
http://111.231.240.168:9082/mayx/blog
https://git.afonsosoares.com/mayx/blog
http://209.141.47.52:3000/mayx/blog
-https://git.apfern.com/mayx/blog
http://dapainas.asia:5990/mayx/blog
http://60.204.158.188:3000/mayx/blog
https://zqz5.com/mayx/blog
@@ -404,12 +384,11 @@ http://down.luanhailiang.cn:9000/mayx/blog
http://39.96.195.72:10082/mayx/blog
https://gitea.klopfenstein.org/mayx/blog
http://8.148.24.160:3000/mayx/blog
-http://221.219.181.35:30000/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://120.27.19.58:30000/mayx/blog
-http://117.72.219.18:6000/mayx/blog
http://35.194.179.90:3000/mayx/blog
http://188.245.173.247:3080/mayx/blog
http://66.179.208.56:3001/mayx/blog
@@ -434,7 +413,6 @@ http://187.189.244.23:3000/mayx/blog
http://58.176.21.43:9004/mayx/blog
https://gitea.vilcap.com/mayx/blog
http://121.196.245.62/mayx/blog
-http://47.102.209.69:53000/mayx/blog
http://116.205.97.109:3000/mayx/blog
https://gitea.ysme.top/mayx/blog
http://8.140.242.230:3000/mayx/blog
@@ -486,7 +464,6 @@ https://git.hast.one/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://www.befitsoft.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
@@ -502,7 +479,6 @@ http://120.27.238.24:3000/mayx/blog
https://code.diekabuths.dynu.net/mayx/blog
http://69.62.64.52:3333/mayx/blog
https://git.flymiracle.com/mayx/blog
-https://git.scene.to/mayx/blog
https://git.auwiesen2.de/mayx/blog
http://naughtycat.biz:3333/mayx/blog
https://git.p1.bitstorm.co.nz/mayx/blog
@@ -555,3 +531,5 @@ http://47.97.225.73:3000/mayx/blog
http://git.topsailiot.com/mayx/blog
https://git.monogps.com/mayx/blog
https://gitea.brmm.ovh/mayx/blog
+https://git.cynic.moe/mayx/blog
+https://git.muellers-software.org/mayx/blog
diff --git a/_data/proxylist.yml b/_data/proxylist.yml
index ea3dddf..4c6905b 100644
--- a/_data/proxylist.yml
+++ b/_data/proxylist.yml
@@ -18,6 +18,7 @@ mirrors:
- https://mabbs.kinsta.page/
- https://mayx.codeberg.page/
- https://mayx.pages.lain.la/
+- https://mayx.pages.hast.one/
- https://mayx.4everland.app/
- https://mayx.readthedocs.io/
- https://mayx.sourceforge.io/
diff --git a/_layouts/default.html b/_layouts/default.html
index 2e13ed9..610ef4d 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -97,7 +97,7 @@ layout: xslt_container
{% include live2d.html %}
diff --git a/assets/css/feed.css b/assets/css/feed.css
index a81b03e..3264312 100644
--- a/assets/css/feed.css
+++ b/assets/css/feed.css
@@ -2,130 +2,124 @@
@namespace content "http://purl.org/rss/1.0/modules/content/";
@namespace dc "http://purl.org/dc/elements/1.1/";
+:root {
+ --bg-color: #f4f5f7;
+ --card-bg: #ffffff;
+ --text-main: #222;
+ --text-muted: #555;
+ --text-light: #888;
+ --max-width: 780px;
+}
+
+/* 深色模式适配 */
+@media (prefers-color-scheme: dark) {
+ :root {
+ --bg-color: #1a1a1c;
+ --card-bg: #2c2c2e;
+ --text-main: #e5e5e7;
+ --text-muted: #a1a1a6;
+ --text-light: #707074;
+ }
+}
+
body,
rss,
atom|feed {
- font-family: -apple-system, BlinkMacSystemFont,
- "Segoe UI", Roboto,
- "Noto Sans SC", "PingFang SC",
- "Microsoft YaHei", Arial, sans-serif;
- background: #f4f5f7;
- color: #222;
- margin: 0;
- padding: 2em 1em;
- /* 左右内边距 1em,竖屏不贴边 */
- font-size: 14px;
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
+ background: var(--bg-color);
+ color: var(--text-main);
+ margin: 0 auto; /* 合并 margin */
+ padding: 2rem 1rem;
+ font-size: 16px; /* 稍微调大基础字号提升阅读感 */
line-height: 1.6;
-
- max-width: 780px;
- /* 最大宽度,桌面端居中 */
- margin-left: auto;
- margin-right: auto;
+ max-width: var(--max-width);
}
-channel>title,
-atom|feed>atom|title {
+/* 标题样式优化 */
+channel > title,
+atom|feed > atom|title {
display: block;
- font-size: 1.7em;
- font-weight: 700;
- margin: 0 0 1.2em 0;
+ font-size: 2rem;
+ font-weight: 800;
text-align: center;
- letter-spacing: -0.01em;
+ margin: 0 0 0.5rem 0;
+ letter-spacing: -0.02em;
}
+/* 列表卡片 */
item,
atom|entry {
display: block;
- background: #ffffff;
- padding: 1.1em 1.2em;
- margin-bottom: 1.1em;
- border-radius: 14px;
- box-shadow:
- 0 8px 24px rgba(0, 0, 0, 0.04),
- 0 2px 6px rgba(0, 0, 0, 0.03);
+ background: var(--card-bg);
+ padding: 1.5rem;
+ margin-bottom: 1.25rem;
+ border-radius: 16px;
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
+ transition: transform 0.2s ease;
}
-item>title,
-atom|entry>atom|title {
+item:hover,
+atom|entry:hover {
+ transform: translateY(-2px); /* 轻微悬停效果 */
+}
+
+item > title,
+atom|entry > atom|title {
display: block;
- font-size: 1.15em;
+ font-size: 1.25rem;
font-weight: 600;
- margin-bottom: 0.45em;
- color: #111;
- letter-spacing: -0.01em;
+ margin-bottom: 0.5rem;
+ color: var(--text-main);
}
-item>description,
-atom|entry>atom|summary {
- display: block;
- color: #555;
- line-height: 1.65;
- max-height: 16.5em;
+/* 多行省略号优化 */
+item > description,
+atom|entry > atom|summary {
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 4; /* 最多显示4行,自动加省略号 */
overflow: hidden;
- position: relative;
+ color: var(--text-muted);
+ font-size: 0.95rem;
+ line-height: 1.6;
}
-item>description::after,
-atom|entry>atom|summary::after {
- content: "…";
- position: absolute;
- right: 0.3em;
- bottom: 0;
- padding-left: 1.5em;
- background: linear-gradient(to right,
- rgba(255, 255, 255, 0),
- #ffffff 70%);
- font-weight: 600;
+/* 元数据(日期) */
+item > pubDate,
+atom|entry > atom|updated {
+ display: block;
+ color: var(--text-light);
+ font-size: 0.85rem;
+ margin-top: 0.75rem;
}
-link,
-guid,
-pubDate,
-author,
-category,
-comments,
-source,
-enclosure,
-content|encoded,
-dc|creator,
-lastBuildDate,
-atom|id,
-atom|link,
-atom|updated,
-atom|published,
-atom|author,
-atom|category,
-atom|rights,
-atom|content,
-language,
-generator {
+/* 隐藏不需要的元素 */
+link, guid, author, category, comments, source, enclosure,
+content|encoded, dc|creator, lastBuildDate,
+atom|id, atom|link, atom|updated, atom|published, atom|author,
+atom|category, atom|rights, atom|content,
+language, generator {
display: none;
}
-channel>description,
-atom|feed>atom|subtitle {
+/* 副标题与说明文字 */
+channel > description,
+atom|feed > atom|subtitle {
display: block;
- margin: 0.4em 0 2em 0;
- /* 与条目明显拉开 */
text-align: center;
- color: #666;
- font-size: 0.95em;
+ color: var(--text-muted);
+ font-size: 1rem;
+ margin-bottom: 2rem;
}
-channel>title,
-atom|feed>atom|title {
- margin-bottom: 0.4em;
- /* 原来较紧,这里放松 */
-}
-
-atom|feed>atom|subtitle::after,
-channel>description::after {
+channel > description::after,
+atom|feed > atom|subtitle::after {
content: "这是一个订阅源(Feed)。复制当前URL到任何支持 Atom/RSS 的阅读器,即可订阅本博客的最新文章。\A以下展示了此订阅源包含的最新文章:";
display: block;
- text-align: center;
- font-size: 0.95em;
- color: #666;
- margin: 1em 0 2em 0;
- line-height: 1.5;
white-space: pre-wrap;
+ font-size: 0.875rem;
+ color: var(--text-light);
+ margin-top: 1rem;
+ padding: 1rem;
+ border-top: 1px solid rgba(128, 128, 128, 0.2);
}
\ No newline at end of file
From 6630ba964bf74000e896a37696f163f524aab7cf Mon Sep 17 00:00:00 2001
From: mayx
Date: Thu, 26 Feb 2026 14:54:24 +0000
Subject: [PATCH 23/29] Update 3 files
- /_data/other_repo_list.csv
- /_data/proxylist.yml
- /assets/css/feed.css
---
_data/other_repo_list.csv | 10 ----
_data/proxylist.yml | 1 -
assets/css/feed.css | 107 +++++++++++++++++++++++++-------------
3 files changed, 71 insertions(+), 47 deletions(-)
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 44381a2..1c8879c 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -99,7 +99,6 @@ https://saga.iao.ru:3043/mayx/blog
https://git.sayndone.ru/mayx/blog
https://gitea.hintsight.com/mayx/blog
https://anzsco.co.nz/mayx/blog
-https://git.simbarbet.com/mayx/blog
https://git.saintdoggie.org/mayx/blog
http://blackobelisk.xyz:3000/mayx/blog
https://git.dushes.keenetic.pro/mayx/blog
@@ -130,7 +129,6 @@ https://git.paulll.cc/mayx/blog
https://gitea.reimann.ee/mayx/blog
http://109.74.197.189/mayx/blog
http://94.224.160.69:7990/mayx/blog
-https://git.hxps.ru/mayx/blog
https://gitea.ekjeong.synology.me/mayx/blog
https://git.stit.tech/mayx/blog
https://www.9miao.fun:6839/mayx/blog
@@ -164,7 +162,6 @@ http://120.26.116.243:3000/mayx/blog
http://123.57.16.111:3000/mayx/blog
http://115.159.107.117:3000/mayx/blog
http://116.62.115.84:3000/mayx/blog
-https://Cagit.Cacode.net/mayx/blog
http://wingsing.net:3000/mayx/blog
http://hgngit.ipdz.me/mayx/blog
http://185.163.116.39:49153/mayx/blog
@@ -222,13 +219,11 @@ http://47.112.118.149:10082/mayx/blog
https://gitea.jobiglo.com/mayx/blog
http://begild.top:8418/mayx/blog
http://58.221.13.198:30010/mayx/blog
-https://git.tbaer.de/mayx/blog
https://git.d-popov.com/mayx/blog
https://git.liliyamol.cn/mayx/blog
http://8.138.90.28:3000/mayx/blog
https://gitea.theaken.com/mayx/blog
https://git.ja-schwarz.de/mayx/blog
-https://git.xemo-net.de/mayx/blog
https://git.23cm.cn/mayx/blog
https://gitea.oio.cat/mayx/blog
http://59.110.17.86:3000/mayx/blog
@@ -259,7 +254,6 @@ http://106.14.189.125:3000/mayx/blog
http://gitea.coderpath.com/mayx/blog
https://gitea.thanh0x.com/mayx/blog
http://175.198.180.19:3000/mayx/blog
-https://gitea.albanmary.com/mayx/blog
http://ngtools.cn:53000/mayx/blog
https://git.hantify.ru/mayx/blog
http://43.136.169.169:3000/mayx/blog
@@ -298,7 +292,6 @@ https://git.ctx.dev/mayx/blog
https://nas.szwyll.com:3000/mayx/blog
https://git.koppa.pro/mayx/blog
http://202.65.194.19:3000/mayx/blog
-http://www.bzturbo.com.br/mayx/blog
https://git.maiasoft.jp/mayx/blog
https://gitea.xala.dev/mayx/blog
http://101.201.34.43:3000/mayx/blog
@@ -312,7 +305,6 @@ http://47.108.217.75:3000/mayx/blog
https://git.jakubzabski.pl/mayx/blog
https://www.git.omezaldama.xyz/mayx/blog
https://vila.go.ro/mayx/blog
-https://git.olyntec.com/mayx/blog
http://8.134.218.17:8013/mayx/blog
http://124.223.89.168:8080/mayx/blog
http://139.129.21.166:3000/mayx/blog
@@ -370,7 +362,6 @@ http://8.141.91.86:3000/mayx/blog
http://8.138.187.132:3000/mayx/blog
http://117.72.15.187:3000/mayx/blog
http://81.70.30.91:3000/mayx/blog
-https://gitea.kisechan.space/mayx/blog
http://140.238.9.133:3007/mayx/blog
https://git.mwapp.com.br/mayx/blog
http://yidaima.cn:6008/mayx/blog
@@ -511,7 +502,6 @@ 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
-https://git.darkmattergame.net/mayx/blog
http://101.37.69.204:3000/mayx/blog
http://jacksonhampton.com:3000/mayx/blog
https://git.jaronnie.com/mayx/blog
diff --git a/_data/proxylist.yml b/_data/proxylist.yml
index 4c6905b..51e946b 100644
--- a/_data/proxylist.yml
+++ b/_data/proxylist.yml
@@ -63,4 +63,3 @@ others:
- https://mayx.home.blog/
- https://unmayx.medium.com/
- https://mayx.cnblogs.com/
-- https://mayx.xlog.app/
\ No newline at end of file
diff --git a/assets/css/feed.css b/assets/css/feed.css
index 3264312..74ee594 100644
--- a/assets/css/feed.css
+++ b/assets/css/feed.css
@@ -1,6 +1,6 @@
-@namespace atom "http://www.w3.org/2005/Atom";
-@namespace content "http://purl.org/rss/1.0/modules/content/";
-@namespace dc "http://purl.org/dc/elements/1.1/";
+@namespace atom url("http://www.w3.org/2005/Atom");
+@namespace content url("http://purl.org/rss/1.0/modules/content/");
+@namespace dc url("http://purl.org/dc/elements/1.1/");
:root {
--bg-color: #f4f5f7;
@@ -11,7 +11,6 @@
--max-width: 780px;
}
-/* 深色模式适配 */
@media (prefers-color-scheme: dark) {
:root {
--bg-color: #1a1a1c;
@@ -28,25 +27,23 @@ atom|feed {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
background: var(--bg-color);
color: var(--text-main);
- margin: 0 auto; /* 合并 margin */
+ margin: 0px auto;
padding: 2rem 1rem;
- font-size: 16px; /* 稍微调大基础字号提升阅读感 */
+ font-size: 16px;
line-height: 1.6;
max-width: var(--max-width);
}
-/* 标题样式优化 */
-channel > title,
-atom|feed > atom|title {
+channel>title,
+atom|feed>atom|title {
display: block;
font-size: 2rem;
font-weight: 800;
text-align: center;
- margin: 0 0 0.5rem 0;
+ margin: 0px 0px 0.5rem;
letter-spacing: -0.02em;
}
-/* 列表卡片 */
item,
atom|entry {
display: block;
@@ -54,17 +51,17 @@ atom|entry {
padding: 1.5rem;
margin-bottom: 1.25rem;
border-radius: 16px;
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
- transition: transform 0.2s ease;
+ box-shadow: rgba(0, 0, 0, 0.05) 0px 4px 20px;
+ transition: transform 0.2s;
}
item:hover,
atom|entry:hover {
- transform: translateY(-2px); /* 轻微悬停效果 */
+ transform: translateY(-2px);
}
-item > title,
-atom|entry > atom|title {
+item>title,
+atom|entry>atom|title {
display: block;
font-size: 1.25rem;
font-weight: 600;
@@ -72,39 +69,49 @@ atom|entry > atom|title {
color: var(--text-main);
}
-/* 多行省略号优化 */
-item > description,
-atom|entry > atom|summary {
+item>description,
+atom|entry>atom|summary {
display: -webkit-box;
-webkit-box-orient: vertical;
- -webkit-line-clamp: 4; /* 最多显示4行,自动加省略号 */
+ -webkit-line-clamp: 4;
overflow: hidden;
color: var(--text-muted);
font-size: 0.95rem;
line-height: 1.6;
}
-/* 元数据(日期) */
-item > pubDate,
-atom|entry > atom|updated {
+item>pubDate,
+atom|entry>atom|updated {
display: block;
color: var(--text-light);
font-size: 0.85rem;
margin-top: 0.75rem;
}
-/* 隐藏不需要的元素 */
-link, guid, author, category, comments, source, enclosure,
-content|encoded, dc|creator, lastBuildDate,
-atom|id, atom|link, atom|updated, atom|published, atom|author,
-atom|category, atom|rights, atom|content,
-language, generator {
+link,
+guid,
+author,
+category,
+comments,
+source,
+enclosure,
+content|encoded,
+dc|creator,
+atom|id,
+atom|link,
+atom|updated,
+atom|published,
+atom|author,
+atom|category,
+atom|rights,
+atom|content,
+language,
+generator {
display: none;
}
-/* 副标题与说明文字 */
-channel > description,
-atom|feed > atom|subtitle {
+channel>description,
+atom|feed>atom|subtitle {
display: block;
text-align: center;
color: var(--text-muted);
@@ -112,14 +119,42 @@ atom|feed > atom|subtitle {
margin-bottom: 2rem;
}
-channel > description::after,
-atom|feed > atom|subtitle::after {
- content: "这是一个订阅源(Feed)。复制当前URL到任何支持 Atom/RSS 的阅读器,即可订阅本博客的最新文章。\A以下展示了此订阅源包含的最新文章:";
+channel>description::after,
+atom|feed>atom|subtitle::after {
+ content: "这是一个订阅源(Feed)。复制当前URL到任何支持 Atom/RSS 的阅读器,即可订阅本博客的最新文章。\a 以下展示了此订阅源包含的最新文章:";
display: block;
white-space: pre-wrap;
font-size: 0.875rem;
color: var(--text-light);
margin-top: 1rem;
padding: 1rem;
- border-top: 1px solid rgba(128, 128, 128, 0.2);
+ border-top-width: 1px;
+ border-top-style: solid;
+ border-top-color: rgba(128, 128, 128, 0.2);
+}
+
+rss,
+channel,
+atom|feed {
+ display: flex;
+ flex-direction: column;
+}
+
+channel>lastBuildDate,
+atom|feed>atom|updated:not(atom|entry atom|updated) {
+ order: 999;
+ text-align: center;
+ margin-top: 3rem;
+ padding-top: 1.5rem;
+ border-top-width: 1px;
+ border-top-style: solid;
+ border-top-color: rgba(128, 128, 128, 0.2);
+ color: var(--text-light);
+ font-size: 0.85rem;
+ display: block !important;
+}
+
+channel>lastBuildDate::before,
+atom|feed>atom|updated:not(atom|entry atom|updated)::before {
+ content: "更新于 ";
}
\ No newline at end of file
From 23fff44d79768adfe49fb9f8454df6fb24d61982 Mon Sep 17 00:00:00 2001
From: mayx
Date: Sun, 1 Mar 2026 09:08:52 +0000
Subject: [PATCH 24/29] Update 3 files
- /_posts/2026-03-01-llm3.md
- /_data/other_repo_list.csv
- /_data/proxylist.yml
---
_data/other_repo_list.csv | 12 ------------
_data/proxylist.yml | 2 ++
_posts/2026-03-01-llm3.md | 35 +++++++++++++++++++++++++++++++++++
3 files changed, 37 insertions(+), 12 deletions(-)
create mode 100644 _posts/2026-03-01-llm3.md
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 1c8879c..9bb0211 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -10,7 +10,6 @@ https://git.pixie.town/mayx/mayx
https://cgit.tilde.town/~mayx/blog
https://gitlab.haskell.org/mayx/mayx
https://repo2.serv00.com/git/pub/Mayx/mayx/
-https://www.gitlink.org.cn/mayx/blog
https://git.minetest.land/Mayx/blog
https://gitea.stormyhome.net/mayx/blog
http://47.120.60.153:10880/mayx/blog
@@ -81,12 +80,10 @@ https://git.unicom.studio/mayx/blog
http://frktedu.ru:3000/mayx/blog
https://git.lokalix.de/mayx/blog
https://git.influxfin.com/mayx/blog
-https://git.programar.io/mayx/blog
http://219.157.255.213:25311/mayx/blog
https://git.melvincarvalho.com/mayx/blog
https://gitea.aerwen.net/mayx/blog
https://git.vekus.ru/mayx/blog
-https://gitea.svc.obaa.cloud/mayx/blog
https://gitea.blubeacon.com/mayx/blog
http://116.204.75.78:6180/mayx/blog
http://109.228.48.121:8000/mayx/blog
@@ -267,7 +264,6 @@ https://schokigeschmack.de/mayx/blog
https://git.anatid.net/mayx/blog
https://git.lekai.info/mayx/blog
http://135.235.225.198:3000/mayx/blog
-https://git.sick.earth/mayx/blog
https://git.prayujt.com/mayx/blog
https://git.galaxylabs.ca/mayx/blog
https://gitlab.n8n-store.xyz/mayx/blog
@@ -288,7 +284,6 @@ http://8.148.220.5:8089/mayx/blog
http://8.140.250.85:3000/mayx/blog
https://git.emanuelemiani.it/mayx/blog
http://8.134.11.35:3000/mayx/blog
-https://git.ctx.dev/mayx/blog
https://nas.szwyll.com:3000/mayx/blog
https://git.koppa.pro/mayx/blog
http://202.65.194.19:3000/mayx/blog
@@ -309,7 +304,6 @@ http://8.134.218.17:8013/mayx/blog
http://124.223.89.168:8080/mayx/blog
http://139.129.21.166:3000/mayx/blog
http://111.231.240.168:9082/mayx/blog
-https://git.afonsosoares.com/mayx/blog
http://209.141.47.52:3000/mayx/blog
http://dapainas.asia:5990/mayx/blog
http://60.204.158.188:3000/mayx/blog
@@ -435,10 +429,8 @@ http://47.112.137.193:3000/mayx/blog
https://gitea.malin.onl/mayx/blog
http://58.38.123.148:3176/mayx/blog
http://docker.clhero.fun:3000/mayx/blog
-http://42.193.251.215:3000/mayx/blog
https://bdgit.educoder.net/mayx/blog
http://e19510c831.iok.la/mayx/blog
-https://www.nxgit.xyz/mayx/blog
http://119.45.49.212:3000/mayx/blog
https://git.synapsenet.net/mayx/blog
https://gitea.kdlsvps.top/mayx/blog
@@ -497,7 +489,6 @@ https://docker-registry-lszz.uj.com.tw/mayx/blog
https://git.honulla.com/mayx/blog
https://www.arcbyte.dev/mayx/blog
http://45.144.30.78:8083/mayx/blog
-https://git.nihil.foo/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
@@ -514,12 +505,9 @@ http://104.254.131.244:3000/mayx/blog
https://gitea.alacloud.de/mayx/blog
https://git.tobiasweise.dev/mayx/blog
http://176.124.216.7/mayx/blog
-https://publica-gitea.a.cnpgc.embrapa.br/mayx/blog
https://code.cif.su/mayx/blog
http://47.99.119.173:13000/mayx/blog
http://47.97.225.73:3000/mayx/blog
http://git.topsailiot.com/mayx/blog
-https://git.monogps.com/mayx/blog
-https://gitea.brmm.ovh/mayx/blog
https://git.cynic.moe/mayx/blog
https://git.muellers-software.org/mayx/blog
diff --git a/_data/proxylist.yml b/_data/proxylist.yml
index 51e946b..2449ab1 100644
--- a/_data/proxylist.yml
+++ b/_data/proxylist.yml
@@ -27,6 +27,7 @@ mirrors:
- https://mayx.dappling.network/
- https://mayx-blog.statichost.eu/
- https://mabbs-blog.static.hf.space/
+- http://mayx.gitlink.net/
repos:
- https://github.com/Mabbs/mabbs.github.io
- https://gitlab.com/mayx/mayx.gitlab.io
@@ -50,6 +51,7 @@ repos:
- https://atomgit.com/mayx/blog
- https://sourceforge.net/projects/mayx/
- https://dev.azure.com/unmayx/_git/Mayx
+- https://www.gitlink.org.cn/mayx/mayx.gitlink.net
static:
- https://mayx.nekoweb.org/
- https://mayx.neocities.org/
diff --git a/_posts/2026-03-01-llm3.md b/_posts/2026-03-01-llm3.md
new file mode 100644
index 0000000..11f6620
--- /dev/null
+++ b/_posts/2026-03-01-llm3.md
@@ -0,0 +1,35 @@
+---
+layout: post
+title: 近期LLM的部署与应用经历(3)
+tags: [AI, LLM, 模型部署, 使用体验]
+---
+
+ 用更多的方式探索AI!
+
+# 起因
+ 在一年前,我[整了张RTX4090 48GiB魔改版](/2025/02/22/llm.html)用来跑DeepSeek-R1 70B的4bit量化模型,不过都已经过了这么长时间,这个模型也已经是过时的东西了……我之前在[Mac Studio M3 Ultra](/2025/05/07/mac-studio.html)上试了一下OpenAI在半年前出的gpt-oss-120b模型,感觉效果还挺不错,只不过因为M3 Ultra的GPU实际性能比不上正经高端的独显,所以它在上下文很长的情况下还是有点慢,因此我又整了张RTX4090 48GiB,想整个双路试试更快的GPT-OSS模型,总共96GiB的显存应该够跑这个模型了。
+
+# 在两张RTX4090 48G上运行GPT-OSS
+ 既然现在我手头有两张4090了,那继续用i5-8400处理器的主机似乎不太合适,主要是那个主板就一个PCIe插槽,想插两张显卡也做不到,那买个新的不知道买啥……不管怎么说既然用这么高级的显卡,至少得让它跑满。在两张显卡上跑模型似乎卡间的通信速度比较重要,那最起码得整个支持2个PCIe4.0 x16的板U套装才行,这种级别的没有消费级产品,只能考虑服务器或工作站了。不过我对服务器和工作站了解得并不多,所以就问了问AI哪个支持2个PCIe4.0 x16的平台最便宜,结果AI推荐了TRX40+[TR 3960X](https://www.amd.com/zh-cn/support/downloads/drivers.html/processors/ryzen-threadripper/ryzen-threadripper-3000-series/amd-ryzen-threadripper-3960x.html),于是就按照AI的说法整了一套。
+ 这套板U差不多4000CNY,价格倒是还行,如果买现役的估计主板都比显卡贵了。但后来我发现这个并不是最便宜的😂,搜了一下买寨版+[EPYC 7502](https://www.amd.com/zh-cn/support/downloads/drivers.html/processors/epyc/epyc-7002-series/amd-epyc-7502.html)还能再便宜1000CNY,而且通道数更多,插4张显卡都没问题……不过买都买了,就先用吧,看来AI的话不能随便信😥。
+ 之前我跑模型为了方便,基本上都用的是[Ollama](https://github.com/ollama/ollama),不过听说Ollama多卡运行的效率很低,而且多并发的效果不太好,所以这次换了新电脑之后我想试试[vLLM](https://github.com/vllm-project/vllm),据说一般生产级的AI都用的是这个框架。
+ 安装vLLM倒是比想象得简单很多,直接一句`pip install vllm`就可以了,其实并没有比Ollama复杂多少。我看了一下[OpenAI](https://developers.openai.com/cookbook/articles/gpt-oss/run-vllm/)和[vLLM](https://docs.vllm.ai/projects/recipes/en/latest/OpenAI/GPT-OSS.html)运行GPT-OSS的官方文档,发现启动也非常简单,一般来说直接执行`vllm serve openai/gpt-oss-120b`就可以。不过直接执行是对于单卡的,我用两张卡需要加个`--tensor-parallel-size 2`参数启用张量并行,不然会爆显存。另外考虑到这个模型本身占掉60多GiB的显存之后剩下30GiB还是看起来有点少,所以额外加了个`--kv-cache-dtype fp8`参数降低上下文对显存的占用,毕竟模型本身也就是4bit量化的,加了这个应该不会对它的能力有什么影响。除此之外AI还给我推荐了个`--enable-chunked-prefill`参数,说是也能避免爆显存的问题。
+ 一切准备好之后直接执行,程序就自动开始下载模型了,过了几个小时,终于下载完成,顺便一说启动的时候还显示推荐安装`torch_c_dlpack_ext`库,虽然不知道是干啥的,但也顺手安装了。启动完成之后我试了一下,效果非常好,不并发的情况下直接用能达到接近190Tps,可以说是相当快了,而且这个模型的水平也算是开源中的上游水平,应该算是又快又好吧……看来多来一张4090还是挺划算嘛。只不过这个东西基本上就我一个人用,所以也没什么能测一下并发的场景……虽然很快,但还是有点浪费性能吧。
+
+# 最近DeepSeek 1M上下文的使用体验
+ 前段时间DeepSeek又出了新的模型,最高可以支持1M长的上下文,而且听说模型规模变小了,所以速度也很快。可惜的是到目前为止还没有开放权重。当然就算开放权重了用2张4090估计也没有足够的显存分配给上下文,至于Mac Studio感觉在长上下文的情况下运行速度应该会很慢……
+ 不过我对这个1M上下文还是挺感兴趣,因为好久之前我写过一篇[关于LLM能力上限](/2025/04/22/ai-limit.html)的文章,在那篇文章中其实我遇到的问题基本上也就是由上下文不足导致的。那既然现在DeepSeek支持了1M的上下文,那我就应该试试之前因为局限性而妥协的一些东西了。
+ 这次我没有用摘要,而是直接把包含整个博客内容的[search.json](/search.json)文件上传到DeepSeek,然后向它问了问我的一些问题。试了一下效果非常不错,用摘要会省略的一些细节它基本上都可以展现出来,我试了试让它给我生成一份简历,它甚至在所有文章中找到了我的博客地址、GitHub和邮箱地址,之前用摘要显然是做不到这一点的,这个长上下文还是挺有用啊。
+ 另外我还试了试让它根据文章内容分析十六型人格,并且我自己去答了一遍那个测试,结果也是相同的,说明它真的是在几秒内就读完了我的所有文章而且也完全理解了,真的是非常厉害。
+ 只是拿AI分析我的文章也许只有我自己了😂,实际上根本没人对我感兴趣,也就只有我自己拿来给自己看……当然如果我的博客能比我活得长,不知道会不会有未来人会对我感兴趣呢……总之对于现在肯定是毫无意义了。
+ 除了这些之外,我又试了一下让DeepSeek重构我的[Mabbs](https://github.com/Mabbs/Mabbs.Project),这次生成效果看起来很不错了,虽然代码我没细看,不确定能不能运行,但至少没有偷懒只写一点点,一口气写了80KiB多的代码,这也是长上下文带来的好处吧。总之目前这个长上下文的DeepSeek也算是突破了之前我认为的上限,看来LLM真的是前景无限啊。
+ 另外我发现这次更新的DeepSeek居然了解我的博客,我问了一下它“你知道Mayx的博客是哪个博客吗?”,它居然知道,能说出域名,而且还知道我的博客是关于技术的😎,看来这次的训练样本中包含我的信息啊……所以我对这次的更新也挺有好感,毕竟我的知识如果能成为AI的一部分,也算是一种永恒吧。
+
+# 在8GiB内存的MacBook运行的新模型
+ 在3年前,我在[探索AI](/2023/04/05/ai.html)时,在我只有8GiB内存的[MacBook Pro](/2023/02/03/mbp.html)上运行了非常早期的LLM——Alpaca-7B,那时候7B的LLM虽然能回答一些问题,但答非所问的情况也非常多。不过最近我发现了一个有意思的LLM,叫做[LFM2.5-1.2B-Thinking](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Thinking),它只用了12亿的参数就有思维链,而且水平据说还挺强。这么长时间过去之后我倒也想看看我的MacBook能运行多聪明的模型,所以就试着跑了一下它。
+ 运行它也很容易,一般用Ollama就可以,但是Ollama只有TUI,不能渲染Markdown,我也不太想在我的Mac上整WebUI之类的东西……那有什么好的选择吗?我去制作这个模型的公司官网看了一下,他们制作这个模型本就是为了在端侧运行,所以也专门制作了一个软件运行他们的模型,叫做[Apollo](https://www.liquid.ai/apollo),在手机和Mac上都可以用。我在我的Mac上安装试了一下,效果很好,首先速度非常快,8bit量化正常情况下可以达到60多Tps,即使是省电模式,也能达到20多Tps。另外加上思维链它的思考能力也还不错,虽然一些脑筋急转弯的题不算擅长,但是正常对话,回答问题之类的表现都很不错,相比于之前7B的模型表现好太多了。当然考虑到都已经过去3年了,能有这样的进步也很正常,不过12亿参数就能有这样的智能还是相当可以啊。
+ 这个模型之所以有这样的能力似乎是因为他们并不完全是Transformer架构,而是使用的一种叫做LFM2的混合架构,按照大家对他们公司(Liquid AI)以及这个架构名字的理解,可能会觉得这个模型基于液态神经网络,不过我让AI看了一下他们的代码似乎并不是,他们用的是一种类似于Mamba的架构,这种架构似乎就很擅长在小参数的模型下比Transformer模型表现的更好,所以说这种变化也是算法进步带来的。
+ 顺便一说这个Apollo除了运行他们自己的模型之外也能连接其他兼容OpenAI接口的模型,正好可以用来连接我的GPT-OSS,这样我就可以不需要下载一些浏览器套壳的重型应用来用我的模型了😝。
+
+# 感想
+ 自从ChatGPT之后,AI的发展真是越来越强了,而且能看出来目前甚至并不需要多新多好的硬件就能让一般人获得还不错的智能(当然训练也许还是要大量的硬件),这么看来AI软件的发展还是相当有潜力。目前来看既然优化软件就能做得越来越好,那也许在有限的硬件环境下可以期待无限的智能吧。
\ No newline at end of file
From c9dfb107330356e5945c8ee16eb409950ab83f21 Mon Sep 17 00:00:00 2001
From: mayx
Date: Wed, 4 Mar 2026 12:01:56 +0000
Subject: [PATCH 25/29] Update 3 files
- /_data/ai-cache.json
- /_data/proxylist.yml
- /_data/other_repo_list.csv
---
_data/ai-cache.json | 3 ++-
_data/other_repo_list.csv | 31 ++++++++++++++-----------------
_data/proxylist.yml | 1 -
3 files changed, 16 insertions(+), 19 deletions(-)
diff --git a/_data/ai-cache.json b/_data/ai-cache.json
index edd8577..dfe6c2d 100644
--- a/_data/ai-cache.json
+++ b/_data/ai-cache.json
@@ -174,5 +174,6 @@
"/2025/11/01/mirrors.html": "这篇文章讲述了作者为了提高博客的可靠性,探索利用被滥用的Git平台进行博客镜像的想法和实践。作者发现一些Git实例存在大量空仓库和异常用户,怀疑是SEO公司滥用,因此决定利用这些平台进行博客镜像备份,以应对平台倒闭或数据丢失的风险。作者选择Gitea和Forgejo平台作为目标,编写脚本自动注册账号并导入博客仓库,实现了自动化镜像分发。作者也意识到此类平台的稳定性存在不确定性,并思考了“量”和“质”两种方式确保博客永恒性的优劣,最终认为建立一个活跃的、自动执行维护操作的网络可能更有效。文章最后展示了作者创建的Git镜像列表,并表达了对博客永恒性的思考。",
"/2025/12/01/linux.html": "这篇文章介绍了在浏览器中运行Linux的各种方法,从最初的纯JS虚拟机JSLinux,到后来的WASM虚拟机如v86、WebVM、WebCM,再到容器化方案container2wasm,以及直接将Linux内核编译为WASM的方案。作者详细对比了这些方案的优缺点,包括性能、兼容性、功能和开发难度。文章还提到了模仿Linux环境的WebContainers和JupyterLite,并最终认为虚拟机方案更靠谱,但对WASM的未来充满期待。作者最后表示,博客上添加类似功能的计划还在考虑中,目前主要分享了各种方法的探索过程。",
"/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/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的发展令人惊叹,软件优化使其在有限硬件环境下也能运行。"
}
\ No newline at end of file
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 9bb0211..e154323 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -6,7 +6,6 @@ https://gitlab.lain.la/mayx/mayx.pages.lain.la
https://tvoygit.ru/Mayx/mayx
https://git.envs.net/Mayx/mayx
https://tildegit.org/Mayx/mayx
-https://git.pixie.town/mayx/mayx
https://cgit.tilde.town/~mayx/blog
https://gitlab.haskell.org/mayx/mayx
https://repo2.serv00.com/git/pub/Mayx/mayx/
@@ -78,13 +77,11 @@ https://git.tomlab.dev/mayx/blog
http://182.92.109.202:8070/mayx/blog
https://git.unicom.studio/mayx/blog
http://frktedu.ru:3000/mayx/blog
-https://git.lokalix.de/mayx/blog
https://git.influxfin.com/mayx/blog
http://219.157.255.213:25311/mayx/blog
https://git.melvincarvalho.com/mayx/blog
https://gitea.aerwen.net/mayx/blog
https://git.vekus.ru/mayx/blog
-https://gitea.blubeacon.com/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
@@ -92,7 +89,6 @@ https://git.sparrowcomm.com/mayx/blog
https://git.hubhoo.com/mayx/blog
https://git.ultra.pub/mayx/blog
http://27.124.12.222:3000/mayx/blog
-https://saga.iao.ru:3043/mayx/blog
https://git.sayndone.ru/mayx/blog
https://gitea.hintsight.com/mayx/blog
https://anzsco.co.nz/mayx/blog
@@ -134,7 +130,6 @@ http://octifor.synology.me:53000/mayx/blog
https://git.daoyoucloud.com/mayx/blog
https://git.entryrise.com/mayx/blog
https://code.bitahub.com/mayx/blog
-https://git.daneric.dev/mayx/blog
http://malingshu.site:6010/mayx/blog
https://repo.gusdya.net/mayx/blog
https://gitea.tmartens.dev/mayx/blog
@@ -166,7 +161,6 @@ 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
-https://git.poggerer.xyz/mayx/blog
https://git.wisptales.org/mayx/blog
http://git.chaojing-film.com:3000/mayx/blog
https://git.nusaerp.com/mayx/blog
@@ -178,7 +172,6 @@ http://121.36.37.70:15501/mayx/blog
http://187.216.152.151:9999/mayx/blog
http://116.63.173.179:8001/mayx/blog
https://git.iop.plus/mayx/blog
-http://47.114.82.162:3000/mayx/blog
http://114.116.79.196/mayx/blog
http://git.yinas.cn/mayx/blog
http://git.chilidoginteractive.com:3000/mayx/blog
@@ -198,7 +191,6 @@ https://omegat.dmu-medical.de/mayx/blog
http://52.23.128.62:3000/mayx/blog
http://85.214.41.219:49153/mayx/blog
http://6068688.xyz:3000/mayx/blog
-https://git.881221.xyz/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
@@ -290,7 +282,6 @@ http://202.65.194.19:3000/mayx/blog
https://git.maiasoft.jp/mayx/blog
https://gitea.xala.dev/mayx/blog
http://101.201.34.43:3000/mayx/blog
-https://git.ixu.me/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
@@ -298,7 +289,6 @@ https://vw-git.senecasense.com/mayx/blog
http://git.uhfdemo.com/mayx/blog
http://47.108.217.75:3000/mayx/blog
https://git.jakubzabski.pl/mayx/blog
-https://www.git.omezaldama.xyz/mayx/blog
https://vila.go.ro/mayx/blog
http://8.134.218.17:8013/mayx/blog
http://124.223.89.168:8080/mayx/blog
@@ -308,7 +298,6 @@ http://209.141.47.52:3000/mayx/blog
http://dapainas.asia:5990/mayx/blog
http://60.204.158.188:3000/mayx/blog
https://zqz5.com/mayx/blog
-https://git.3dizart.ru/mayx/blog
http://119.3.252.2:3000/mayx/blog
http://60.204.156.211:3000/mayx/blog
https://git.yukaige.com/mayx/blog
@@ -318,7 +307,6 @@ 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
-https://git.alhsk.top/mayx/blog
http://8.138.4.170:8980/mayx/blog
http://210.211.116.85:3000/mayx/blog
http://osztromok.com:3164/mayx/blog
@@ -367,7 +355,6 @@ http://43.248.97.109:3000/mayx/blog
http://113.207.86.104:3080/mayx/blog
http://down.luanhailiang.cn:9000/mayx/blog
http://39.96.195.72:10082/mayx/blog
-https://gitea.klopfenstein.org/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
@@ -403,7 +390,6 @@ https://gitea.ysme.top/mayx/blog
http://8.140.242.230:3000/mayx/blog
http://8.138.142.17:3000/mayx/blog
http://47.95.31.56:20080/mayx/blog
-http://123.56.231.200:3000/mayx/blog
http://113.46.142.74:3000/mayx/blog
http://www.koelndom.cn:13030/mayx/blog
http://209.127.59.74:3000/mayx/blog
@@ -450,7 +436,6 @@ 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.christophhagen.de/mayx/blog
http://rito.synology.me:3000/mayx/blog
http://www.dothing.com:6999/mayx/blog
http://8.217.32.95:3000/mayx/blog
@@ -504,10 +489,22 @@ 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
-http://176.124.216.7/mayx/blog
https://code.cif.su/mayx/blog
http://47.99.119.173:13000/mayx/blog
http://47.97.225.73:3000/mayx/blog
-http://git.topsailiot.com/mayx/blog
https://git.cynic.moe/mayx/blog
https://git.muellers-software.org/mayx/blog
+http://47.98.168.177:3000/mayx/blog
+http://8.130.128.130:3000/mayx/blog
+https://repos.fbpx.io/mayx/blog
+https://git.vladimirkutkovoy.ru/mayx/blog
+https://git.alexavr.ru/mayx/blog
+https://git.cavemanon.xyz/mayx/blog
+http://116.204.12.56:3000/mayx/blog
+http://120.24.203.75:3000/mayx/blog
+http://www.danyuanblog.com:3000/mayx/blog
+http://svn.rivastudio.cn/mayx/blog
+https://gitea.lokach.ru/mayx/blog
+https://kamtk.ru:4000/mayx/blog
+https://git.weingardt.dev/mayx/blog
+https://git.refinementservices.com/mayx/blog
diff --git a/_data/proxylist.yml b/_data/proxylist.yml
index 2449ab1..396efc7 100644
--- a/_data/proxylist.yml
+++ b/_data/proxylist.yml
@@ -14,7 +14,6 @@ mirrors:
- https://mayx.serv00.net/
- https://mayx.vercel.app/
- https://mayx.netlify.app/
-- https://mayx.pixie.homes/
- https://mabbs.kinsta.page/
- https://mayx.codeberg.page/
- https://mayx.pages.lain.la/
From 5fd8d2fe0fd5cfe3ba3cebc9182233f7fb4478ab Mon Sep 17 00:00:00 2001
From: mayx
Date: Sun, 8 Mar 2026 10:54:41 +0000
Subject: [PATCH 26/29] Update 2 files
- /archives.md
- /_data/other_repo_list.csv
---
_data/other_repo_list.csv | 4 ----
archives.md | 23 ++++++++---------------
2 files changed, 8 insertions(+), 19 deletions(-)
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index e154323..783511e 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -63,7 +63,6 @@ https://git.pwaapp.cc/mayx/blog
http://119.28.73.80:5000/mayx/blog
https://git.sleepingforest.co.uk/mayx/blog
https://an360.top/mayx/blog
-https://gitea.chenxu2233.com/mayx/blog
http://106.15.78.64:3000/mayx/blog
http://hoenking.cn:3000/mayx/blog
https://gitea.anessen.xyz/mayx/blog
@@ -211,7 +210,6 @@ http://58.221.13.198:30010/mayx/blog
https://git.d-popov.com/mayx/blog
https://git.liliyamol.cn/mayx/blog
http://8.138.90.28:3000/mayx/blog
-https://gitea.theaken.com/mayx/blog
https://git.ja-schwarz.de/mayx/blog
https://git.23cm.cn/mayx/blog
https://gitea.oio.cat/mayx/blog
@@ -289,7 +287,6 @@ https://vw-git.senecasense.com/mayx/blog
http://git.uhfdemo.com/mayx/blog
http://47.108.217.75:3000/mayx/blog
https://git.jakubzabski.pl/mayx/blog
-https://vila.go.ro/mayx/blog
http://8.134.218.17:8013/mayx/blog
http://124.223.89.168:8080/mayx/blog
http://139.129.21.166:3000/mayx/blog
@@ -440,7 +437,6 @@ http://rito.synology.me:3000/mayx/blog
http://www.dothing.com:6999/mayx/blog
http://8.217.32.95:3000/mayx/blog
https://git.temporaryname.org/mayx/blog
-https://git.loli.surf/mayx/blog
https://Repo.gusdya.net/mayx/blog
https://git.m.ctf.arrobe.fr/mayx/blog
http://120.27.238.24:3000/mayx/blog
diff --git a/archives.md b/archives.md
index 647633b..cfe07ce 100644
--- a/archives.md
+++ b/archives.md
@@ -5,23 +5,16 @@ title: Archives
# Archives
-* * *
+---
-{% for post in site.posts %}
-{% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %}
-{% capture next_year %}{{ post.previous.date | date: "%Y" }}{% endcapture %}
-{% if forloop.first %}
+{% assign posts_by_year = site.posts | group_by_exp: "post", "post.date | date: '%Y'" %}
-## {{ this_year }}
+{% for year in posts_by_year %}
-{% endif %}
+## {{ year.name }} (共 {{ year.items | size }} 篇)
-- {{ post.date | date: "%Y/%m/%d" }} - [{{ post.title }}{% if post.layout == "encrypt" %} [加密] {% endif %}]({{ post.url }})
+{% for post in year.items %}
+- {{ post.date | date: "%Y/%m/%d" }} - [{{ post.title }}{% if post.layout == "encrypt" %} [加密]{% endif %}]({{ post.url }})
+{% endfor %}
-{% if forloop.last %}
-{% else %}
-{% if this_year != next_year %}
-
-## {{next_year}}
-
-{% endif %} {% endif %} {% endfor %}
+{% endfor %}
\ No newline at end of file
From 0a7608b3f02207617f5246d960388462ff6a1229 Mon Sep 17 00:00:00 2001
From: mayx
Date: Thu, 12 Mar 2026 16:17:24 +0000
Subject: [PATCH 27/29] Update 4 files
- /_data/other_repo_list.csv
- /_data/proxylist.yml
- /index.html
- /_layouts/post.html
---
_data/other_repo_list.csv | 108 +++++++++++++++++++++++++++++++-------
_data/proxylist.yml | 1 +
_layouts/post.html | 2 +-
index.html | 2 +-
4 files changed, 93 insertions(+), 20 deletions(-)
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 783511e..384df8d 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -3,16 +3,17 @@ http://gdatura24gtdy23lxd7ht3xzx6mi7mdlkabpvuefhrjn4t5jduviw5ad.onion/Mayx/mayx
http://git.dkforestseeaaq2dqz2uflmlsybvnq2irzn4ygyvu53oazyorednviid.onion/mayx/blog
http://giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q.b32.i2p/mayx/blog
https://gitlab.lain.la/mayx/mayx.pages.lain.la
+https://tildeforge.dev/mayx/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://cgit.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://git.minetest.land/Mayx/blog
https://gitea.stormyhome.net/mayx/blog
http://47.120.60.153:10880/mayx/blog
-http://61.139.16.27:26684/mayx/blog
http://1.6.141.109:3000/mayx/blog
http://52.28.156.42/mayx/blog
https://git.tux.pizza/mayx/blog
@@ -71,10 +72,7 @@ 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.moonwoou.com/mayx/blog
https://git.tomlab.dev/mayx/blog
-http://182.92.109.202:8070/mayx/blog
-https://git.unicom.studio/mayx/blog
http://frktedu.ru:3000/mayx/blog
https://git.influxfin.com/mayx/blog
http://219.157.255.213:25311/mayx/blog
@@ -112,7 +110,6 @@ http://101.200.74.121:3000/mayx/blog
http://123.56.193.182:3000/mayx/blog
http://60.204.131.99:3000/mayx/blog
http://femail.email:8418/mayx/blog
-http://47.93.56.66:8080/mayx/blog
http://167.172.7.198:8081/mayx/blog
https://gitea.meetgu.ru/mayx/blog
https://git.patrich.se/mayx/blog
@@ -146,7 +143,6 @@ 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
-https://g2.m8il.in/mayx/blog
http://34.81.52.16/mayx/blog
https://git.genowisdom.cn/mayx/blog
http://120.26.116.243:3000/mayx/blog
@@ -217,24 +213,19 @@ http://59.110.17.86:3000/mayx/blog
https://git.karma-riuk.com/mayx/blog
https://git.saidomar.fr/mayx/blog
http://gitea.fcunb.cn:10083/mayx/blog
-http://47.107.152.87:3000/mayx/blog
https://git.sduonline.cn/mayx/blog
https://git.7o9o.net/mayx/blog
https://dev.init.zone/mayx/blog
-https://git.baneynet.net/mayx/blog
https://git.gupaoedu.cn/mayx/blog
http://60.205.233.184:3010/mayx/blog
-https://git.ricecakecat.com/mayx/blog
https://git.7milch.com/mayx/blog
https://git.sitenevis.com/mayx/blog
https://git.nightime.org/mayx/blog
https://dreamplacesai.de/mayx/blog
-https://git.cool2645.com/mayx/blog
http://185.87.111.46:3000/mayx/blog
http://suncheng.asia:14200/mayx/blog
http://1.94.13.224:9080/mayx/blog
https://auric-org.org/mayx/blog
-https://git.git-happens.de/mayx/blog
http://101.35.183.241/mayx/blog
https://gitea.quiztimes.nl/mayx/blog
http://106.14.189.125:3000/mayx/blog
@@ -267,7 +258,6 @@ http://23.94.57.60:3000/mayx/blog
https://watch.mommys.plumbing/mayx/blog
https://devkona.net/mayx/blog
https://gitea.avixc-nas.myds.me/mayx/blog
-https://gitea.chaopi.dev/mayx/blog
http://sjhome.cloud:3000/mayx/blog
https://gitea.sciotech.cn/mayx/blog
http://8.148.220.5:8089/mayx/blog
@@ -285,7 +275,6 @@ 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
-http://47.108.217.75:3000/mayx/blog
https://git.jakubzabski.pl/mayx/blog
http://8.134.218.17:8013/mayx/blog
http://124.223.89.168:8080/mayx/blog
@@ -323,7 +312,6 @@ http://123.249.119.122:3000/mayx/blog
http://183.6.120.101:30000/mayx/blog
http://134.122.173.191:3000/mayx/blog
http://8.138.81.5:3000/mayx/blog
-https://xgit.tsuimg.top/mayx/blog
http://123.60.156.158:13000/mayx/blog
http://57.129.94.190:3000/mayx/blog
https://gitea.micro-stack.org/mayx/blog
@@ -383,7 +371,6 @@ http://58.176.21.43:9004/mayx/blog
https://gitea.vilcap.com/mayx/blog
http://121.196.245.62/mayx/blog
http://116.205.97.109:3000/mayx/blog
-https://gitea.ysme.top/mayx/blog
http://8.140.242.230:3000/mayx/blog
http://8.138.142.17:3000/mayx/blog
http://47.95.31.56:20080/mayx/blog
@@ -447,7 +434,6 @@ https://git.auwiesen2.de/mayx/blog
http://naughtycat.biz:3333/mayx/blog
https://git.p1.bitstorm.co.nz/mayx/blog
https://www.yalecheung.top:1024/mayx/blog
-http://39.105.67.143:3000/mayx/blog
https://gitea.manekenbrand.com/mayx/blog
https://gitea.eabor.xyz/mayx/blog
http://106.14.138.181:3000/mayx/blog
@@ -467,7 +453,6 @@ https://git.lmbrs.org/mayx/blog
http://47.94.246.1:3000/mayx/blog
http://103.87.67.60:3100/mayx/blog
https://docker-registry-lszz.uj.com.tw/mayx/blog
-https://git.honulla.com/mayx/blog
https://www.arcbyte.dev/mayx/blog
http://45.144.30.78:8083/mayx/blog
https://scm.bcorex.e3labs.net/mayx/blog
@@ -504,3 +489,90 @@ https://gitea.lokach.ru/mayx/blog
https://kamtk.ru:4000/mayx/blog
https://git.weingardt.dev/mayx/blog
https://git.refinementservices.com/mayx/blog
+http://57.180.83.114:3001/mayx/blog
+http://192.238.205.92:3000/mayx/blog
+https://git.smart-tool.jp/mayx/blog
+http://39.98.126.115:8080/mayx/blog
+https://gitea.ziyuanstore.com/mayx/blog
+http://git.atomlust.com/mayx/blog
+https://auroral.net/mayx/blog
+https://git.zhuzihan.com/mayx/blog
+http://47.76.55.15:21108/mayx/blog
+http://47.94.55.54:3000/mayx/blog
+https://git.tietke.com/mayx/blog
+http://92.51.46.31/mayx/blog
+https://git.archieri.fr/mayx/blog
+http://sunme.top:3000/mayx/blog
+http://8.152.223.61:3000/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
+https://git.tihilv.ddns.net/mayx/blog
+http://47.110.148.47:3000/mayx/blog
+http://123.60.146.54:3000/mayx/blog
+https://gitea.jleibl.net/mayx/blog
+http://218.232.111.112:8300/mayx/blog
+http://8.140.248.67:3000/mayx/blog
+https://git.scinalytics.com/mayx/blog
+https://irgit.irinfotech.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.megumin.asia/mayx/blog
+https://git.chmzho.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
+https://vgit.codepipe.digital/mayx/blog
+http://8.130.165.88:33000/mayx/blog
+http://120.224.118.234:20007/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://211.63.236.6:50003/mayx/blog
+http://39.106.146.44:3000/mayx/blog
+http://47.100.212.83:3000/mayx/blog
+https://git2.ne-it.net/mayx/blog
+https://gitea.hoba.dedyn.io/mayx/blog
+http://8.130.97.84:3000/mayx/blog
+https://home.rubini.me:9998/mayx/blog
+http://62.173.140.174:10480/mayx/blog
+https://gitea.ecosystem.carrier.com/mayx/blog
+http://crontab.club:30015/mayx/blog
+http://labai.polinema.ac.id:3000/mayx/blog
+https://git.wegoo.ltd/mayx/blog
+http://114.203.209.83:3000/mayx/blog
+https://git.egormuratov.ru/mayx/blog
+http://47.100.111.106:3000/mayx/blog
+http://119.28.99.32:3000/mayx/blog
+http://47.103.78.70:3000/mayx/blog
+https://0xa2.com/mayx/blog
+http://47.100.208.160:51300/mayx/blog
+http://113.44.218.8:3000/mayx/blog
+https://git.ascension.wtf/mayx/blog
+http://47.109.137.67:9091/mayx/blog
+http://www.expcman.cyou:3000/mayx/blog
+https://gitea.sellycloud.io/mayx/blog
+https://gitea.syn-assist.fr/mayx/blog
+http://telman.me/mayx/blog
+http://cherrypeng.com/mayx/blog
+https://git.cenoq.com/mayx/blog
+https://git.cubetiqs.com/mayx/blog
+https://gitbrowser.bodanius.com/mayx/blog
+http://47.103.48.2:3002/mayx/blog
+https://gitoria.ru/mayx/blog
+http://120.24.175.146:3000/mayx/blog
+http://139.196.211.140: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
+http://47.113.103.172:3000/mayx/blog
+https://git.gotrobotics.org/mayx/blog
+http://154.118.230.207:3000/mayx/blog
+https://qingqiu.online/mayx/blog
+http://119.3.186.224:3000/mayx/blog
+https://git.medis.com.vn/mayx/blog
+http://194.5.152.156:3000/mayx/blog
diff --git a/_data/proxylist.yml b/_data/proxylist.yml
index 396efc7..22421a0 100644
--- a/_data/proxylist.yml
+++ b/_data/proxylist.yml
@@ -27,6 +27,7 @@ mirrors:
- https://mayx-blog.statichost.eu/
- https://mabbs-blog.static.hf.space/
- http://mayx.gitlink.net/
+- https://mayx.pixie.homes/
repos:
- https://github.com/Mabbs/mabbs.github.io
- https://gitlab.com/mayx/mayx.gitlab.io
diff --git a/_layouts/post.html b/_layouts/post.html
index 54ae900..e3046cf 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -83,7 +83,7 @@ layout: default
{% if page.layout == "encrypt" %} {{content}} {% else %} {% capture a_post_content %}{% include anchor_headings.html html=content beforeHeading=true anchorBody="" %}{% endcapture %}{{ a_post_content | replace: '
', '
' }} {% endif %}
{% if page.tags %}
-tags: {% for tag in page.tags %}{{ tag }}{% unless forloop.last %} - {% endunless %}{% endfor %} 查看原始文件
+tags: {% for tag in page.tags %}{{ tag }}{% unless forloop.last %} - {% endunless %}{% endfor %} 查看原始文件
{% endif %}
{% if page.layout != "encrypt" %}
推荐文章
diff --git a/index.html b/index.html
index 35942de..a845f12 100644
--- a/index.html
+++ b/index.html
@@ -24,7 +24,7 @@ image: https://screenshot.mayx.eu.org/
{% if post.tags %}
{% for tag in post.tags %}
- #{{ tag }}
+ #{{ tag }}
{% endfor %}
{% endif %}
From cf76264bb0af47b1fb2e5efb48b1773639fb7252 Mon Sep 17 00:00:00 2001
From: mayx
Date: Fri, 13 Mar 2026 17:15:05 +0000
Subject: [PATCH 28/29] Update 2 files
- /_data/other_repo_list.csv
- /_data/proxylist.yml
---
_data/other_repo_list.csv | 71 ++++++++++++++++++++++++++++++++-------
_data/proxylist.yml | 2 ++
2 files changed, 61 insertions(+), 12 deletions(-)
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 384df8d..432ce46 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -3,11 +3,11 @@ http://gdatura24gtdy23lxd7ht3xzx6mi7mdlkabpvuefhrjn4t5jduviw5ad.onion/Mayx/mayx
http://git.dkforestseeaaq2dqz2uflmlsybvnq2irzn4ygyvu53oazyorednviid.onion/mayx/blog
http://giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q.b32.i2p/mayx/blog
https://gitlab.lain.la/mayx/mayx.pages.lain.la
-https://tildeforge.dev/mayx/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
@@ -20,8 +20,6 @@ https://git.tux.pizza/mayx/blog
https://code.dsconce.space/mayx/blog
https://git.anibilag.ru/mayx/blog
https://git.lolpro11.me/mayx/blog
-https://git.empirica.pro/mayx/blog
-https://git.dehemi.com/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
@@ -48,7 +46,6 @@ 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
-https://git.flywithu.com/mayx/blog
http://116.204.34.35:12000/mayx/blog
https://git.echaeplay.com/mayx/blog
https://git.bethelean.kr/mayx/blog
@@ -179,7 +176,6 @@ http://2.59.132.109:3001/mayx/blog
http://newslabx.csie.ntu.edu.tw:3000/mayx/blog
http://81.71.148.57:8080/mayx/blog
https://git.lmskaran.com/mayx/blog
-http://sdgit.zfmgr.top/mayx/blog
http://154.86.0.30:3000/mayx/blog
http://139.224.196.148:3000/mayx/blog
https://omegat.dmu-medical.de/mayx/blog
@@ -197,7 +193,6 @@ https://git.furcom.org/mayx/blog
http://47.109.95.73:3000/mayx/blog
http://34.102.70.200:3000/mayx/blog
http://175.178.219.170:3000/mayx/blog
-https://code.miraclezhb.com/mayx/blog
http://blueroses.top:8888/mayx/blog
http://47.112.118.149:10082/mayx/blog
https://gitea.jobiglo.com/mayx/blog
@@ -220,7 +215,6 @@ https://git.gupaoedu.cn/mayx/blog
http://60.205.233.184:3010/mayx/blog
https://git.7milch.com/mayx/blog
https://git.sitenevis.com/mayx/blog
-https://git.nightime.org/mayx/blog
https://dreamplacesai.de/mayx/blog
http://185.87.111.46:3000/mayx/blog
http://suncheng.asia:14200/mayx/blog
@@ -230,7 +224,6 @@ http://101.35.183.241/mayx/blog
https://gitea.quiztimes.nl/mayx/blog
http://106.14.189.125:3000/mayx/blog
http://gitea.coderpath.com/mayx/blog
-https://gitea.thanh0x.com/mayx/blog
http://175.198.180.19:3000/mayx/blog
http://ngtools.cn:53000/mayx/blog
https://git.hantify.ru/mayx/blog
@@ -483,11 +476,9 @@ https://git.alexavr.ru/mayx/blog
https://git.cavemanon.xyz/mayx/blog
http://116.204.12.56:3000/mayx/blog
http://120.24.203.75:3000/mayx/blog
-http://www.danyuanblog.com:3000/mayx/blog
http://svn.rivastudio.cn/mayx/blog
https://gitea.lokach.ru/mayx/blog
https://kamtk.ru:4000/mayx/blog
-https://git.weingardt.dev/mayx/blog
https://git.refinementservices.com/mayx/blog
http://57.180.83.114:3001/mayx/blog
http://192.238.205.92:3000/mayx/blog
@@ -519,7 +510,6 @@ http://118.178.172.49:3000/mayx/blog
http://59.19.179.48:3300/mayx/blog
https://git.kooera.com/mayx/blog
https://gitea.megumin.asia/mayx/blog
-https://git.chmzho.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
@@ -551,7 +541,6 @@ http://47.103.78.70:3000/mayx/blog
https://0xa2.com/mayx/blog
http://47.100.208.160:51300/mayx/blog
http://113.44.218.8:3000/mayx/blog
-https://git.ascension.wtf/mayx/blog
http://47.109.137.67:9091/mayx/blog
http://www.expcman.cyou:3000/mayx/blog
https://gitea.sellycloud.io/mayx/blog
@@ -576,3 +565,61 @@ https://qingqiu.online/mayx/blog
http://119.3.186.224:3000/mayx/blog
https://git.medis.com.vn/mayx/blog
http://194.5.152.156:3000/mayx/blog
+http://112.124.59.113:3000/mayx/blog
+https://git.or2-3.com/mayx/blog
+http://8.137.54.164:13333/mayx/blog
+http://8.138.139.89:3000/mayx/blog
+http://59.110.47.157:3000/mayx/blog
+http://8.155.172.147:3001/mayx/blog
+https://git.erfmann.dev/mayx/blog
+https://testfixturehub.com/mayx/blog
+https://git.paraboletancza.org/mayx/blog
+http://lessonsource.tech:3000/mayx/blog
+https://git.davisdre.com/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.ocpp.com.tw/mayx/blog
+https://sw4rm.dev/mayx/blog
+https://code.rausch.tech/mayx/blog
+https://git.flowlogix.com/mayx/blog
+https://www.sweetvillage.ru/mayx/blog
+https://git.weavefun.com:5443/mayx/blog
+https://git.zg23.ru/mayx/blog
+https://git.vajdak.cz/mayx/blog
+https://git.braindead-labs.de/mayx/blog
+https://git.rocket-talk.ru/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
+https://git.cdev.su/mayx/blog
+http://8.131.93.145:54082/mayx/blog
+https://repo.2gtraining.in/mayx/blog
+http://111.9.31.174:10007/mayx/blog
+https://git.ilili.me/mayx/blog
+https://forgejo.bridgetownrb.com/mayx/blog
+http://213.171.25.1:3000/mayx/blog
+http://8.140.242.243:8080/mayx/blog
+https://kdr7.ru/mayx/blog
+https://www.git.d0h.ru/mayx/blog
+https://git.t1337.ru/mayx/blog
+https://git.dodzin-kg2.keenetic.pro/mayx/blog
+http://43.156.250.29:3000/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://183.82.250.60:3001/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://git.gede.at/mayx/blog
+https://git.li0nhunter.com/mayx/blog
+https://www.gethnow.pro/mayx/blog
+https://gitea.yimoyuyan.cn/mayx/blog
+https://git.yanfeng.uk/mayx/blog
+http://123.57.248.179:3690/mayx/blog
+https://git.apextoaster.com/mayx/blog
diff --git a/_data/proxylist.yml b/_data/proxylist.yml
index 22421a0..fa634a1 100644
--- a/_data/proxylist.yml
+++ b/_data/proxylist.yml
@@ -16,6 +16,7 @@ mirrors:
- https://mayx.netlify.app/
- https://mabbs.kinsta.page/
- https://mayx.codeberg.page/
+- https://mayx.tildepages.org/
- https://mayx.pages.lain.la/
- https://mayx.pages.hast.one/
- https://mayx.4everland.app/
@@ -41,6 +42,7 @@ repos:
- https://git.sr.ht/~mayx/mayx
- https://git.launchpad.net/mayx
- https://gin.g-node.org/mayx/blog
+- https://tildeforge.dev/mayx/blog
- https://git.disroot.org/mayx/mayx
- https://bitbucket.org/unmayx/mayx
- https://sourcecraft.dev/mayx/mayx
From e516a5d08ce50bb551fab71e8e894562afa87e8a Mon Sep 17 00:00:00 2001
From: mayx
Date: Sat, 14 Mar 2026 20:05:09 +0000
Subject: [PATCH 29/29] Update 4 files
- /index.html
- /_layouts/post.html
- /_layouts/xslt_container.html
- /_data/other_repo_list.csv
---
_data/other_repo_list.csv | 2 --
_layouts/post.html | 2 +-
_layouts/xslt_container.html | 1 -
index.html | 2 +-
4 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv
index 432ce46..3485646 100644
--- a/_data/other_repo_list.csv
+++ b/_data/other_repo_list.csv
@@ -414,7 +414,6 @@ http://36.213.200.127:23000/mayx/blog
http://8.155.58.218:9000/mayx/blog
http://fanlibo.i234.me:8418/mayx/blog
http://rito.synology.me:3000/mayx/blog
-http://www.dothing.com:6999/mayx/blog
http://8.217.32.95:3000/mayx/blog
https://git.temporaryname.org/mayx/blog
https://Repo.gusdya.net/mayx/blog
@@ -484,7 +483,6 @@ http://57.180.83.114:3001/mayx/blog
http://192.238.205.92:3000/mayx/blog
https://git.smart-tool.jp/mayx/blog
http://39.98.126.115:8080/mayx/blog
-https://gitea.ziyuanstore.com/mayx/blog
http://git.atomlust.com/mayx/blog
https://auroral.net/mayx/blog
https://git.zhuzihan.com/mayx/blog
diff --git a/_layouts/post.html b/_layouts/post.html
index e3046cf..6a8b11d 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -83,7 +83,7 @@ layout: default
{% if page.layout == "encrypt" %} {{content}} {% else %} {% capture a_post_content %}{% include anchor_headings.html html=content beforeHeading=true anchorBody="" %}{% endcapture %}{{ a_post_content | replace: '
', '
' }} {% endif %}
{% if page.tags %}
-tags: {% for tag in page.tags %}{{ tag }}{% unless forloop.last %} - {% endunless %}{% endfor %} 查看原始文件
+tags: {% for tag in page.tags %}{{ tag }}{% unless forloop.last %} - {% endunless %}{% endfor %} 查看原始文件
{% endif %}
{% if page.layout != "encrypt" %}
推荐文章
diff --git a/_layouts/xslt_container.html b/_layouts/xslt_container.html
index 44fcff2..7d957d5 100644
--- a/_layouts/xslt_container.html
+++ b/_layouts/xslt_container.html
@@ -2,7 +2,6 @@
diff --git a/index.html b/index.html
index a845f12..c049f76 100644
--- a/index.html
+++ b/index.html
@@ -24,7 +24,7 @@ image: https://screenshot.mayx.eu.org/
{% if post.tags %}
{% for tag in post.tags %}
- #{{ tag }}
+ #{{ tag }}
{% endfor %}
{% endif %}