diff --git a/astro.config.mjs b/astro.config.mjs index 4d1554076..c4aa60654 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -37,6 +37,10 @@ export default defineConfig({ base: "/", trailingSlash: "always", output: "static", + redirects: { + "/donate": "/sponsors", + "/donate/": "/sponsors/" + }, integrations: [tailwind({ nesting: true, }), swup({ diff --git a/public/donate/alipay.svg b/public/sponsors/alipay.svg similarity index 100% rename from public/donate/alipay.svg rename to public/sponsors/alipay.svg diff --git a/public/donate/mjt.jpg b/public/sponsors/mjt.jpg similarity index 100% rename from public/donate/mjt.jpg rename to public/sponsors/mjt.jpg diff --git a/public/donate/wechat.svg b/public/sponsors/wechat.svg similarity index 100% rename from public/donate/wechat.svg rename to public/sponsors/wechat.svg diff --git a/scripts/convert_friends.py b/scripts/convert_friends.py new file mode 100644 index 000000000..c2bf07c5f --- /dev/null +++ b/scripts/convert_friends.py @@ -0,0 +1,74 @@ +import re +import json +import os + +def extract_friend_data(html_content): + """从HTML内容中提取友链数据""" + # 匹配友链卡片的正则表达式 + pattern = r']*class="friend-card">\s*' \ + r'
\s*' \ + r']*>\s*' \ + r'
([^<]+)
\s*' \ + r'
\s*' \ + r'
([^<]+)
' + + friends = [] + for match in re.finditer(pattern, html_content, re.DOTALL): + url, avatar, name, description = match.groups() + friend = { + "name": name.strip(), + "avatar": avatar.strip(), + "description": description.strip(), + "url": url.strip() + } + friends.append(friend) + return friends + +def read_friends_astro(): + """读取friends.astro文件内容""" + file_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), + 'src', 'pages', 'friends.astro') + with open(file_path, 'r', encoding='utf-8') as f: + return f.read() + +def read_existing_friends_json(): + """读取现有的friends.json文件内容""" + file_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), + 'src', 'data', 'friends.json') + try: + with open(file_path, 'r', encoding='utf-8') as f: + return json.load(f) + except (FileNotFoundError, json.JSONDecodeError): + return {"friends": []} + +def write_friends_json(friends_data): + """将友链数据写入friends.json文件""" + file_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), + 'src', 'data', 'friends.json') + with open(file_path, 'w', encoding='utf-8') as f: + json.dump(friends_data, f, ensure_ascii=False, indent=2) + +def main(): + # 读取friends.astro内容 + astro_content = read_friends_astro() + + # 提取友链数据 + new_friends = extract_friend_data(astro_content) + + # 读取现有的friends.json + existing_data = read_existing_friends_json() + + # 将新的友链数据添加到现有数据中 + # 使用URL作为唯一标识符,避免重复 + existing_urls = {friend["url"] for friend in existing_data["friends"]} + for friend in new_friends: + if friend["url"] not in existing_urls: + existing_data["friends"].append(friend) + existing_urls.add(friend["url"]) + + # 写入更新后的数据 + write_friends_json(existing_data) + print(f"成功提取并添加了 {len(new_friends)} 个友链数据") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/src/config.ts b/src/config.ts index 9a02769a6..73fd05c59 100644 --- a/src/config.ts +++ b/src/config.ts @@ -70,7 +70,7 @@ export const navBarConfig: NavBarConfig = { }, { name: "赞助", - url: "/donate/", // Internal links should not include the base path, as it is automatically added + url: "/sponsors/", // Internal links should not include the base path, as it is automatically added external: false, // Show an external link icon and will open in a new tab }, { diff --git a/src/data/friends.json b/src/data/friends.json new file mode 100644 index 000000000..8c34241ae --- /dev/null +++ b/src/data/friends.json @@ -0,0 +1,454 @@ +{ + "friends": [ + { + "name": "yCENzh's Blog", + "avatar": "https://fuwari.oh1.top/avatar.webp", + "description": "Ciallo~(∠・ω< )⌒☆", + "url": "https://fuwari.oh1.top/" + }, + { + "name": "Wer Blog", + "avatar": "https://blog.isyyo.com/favicon/logo.png", + "description": "The only way to do great is to love what you do", + "url": "https://blog.isyyo.com/" + }, + { + "name": "带我入坑网站的超级大坏比", + "avatar": "https://q2.qlogo.cn/headimg_dl?dst_uin=3347510139&spec=5", + "description": "Dmocken的免费推广位", + "url": "https://phira.dmocken.top" + }, + { + "name": "Dahi Blog", + "avatar": "https://oxs.dahi.icu/pic/avatar.png", + "description": "時光流轉,願你有一天能與重要的人重逢", + "url": "https://dahi.icu/" + }, + { + "name": "AlexMa's Blog", + "avatar": "https://blog-backend.alexma.top/api/v2/objects/avatar/112zjnt1f3c2cf3prp.webp", + "description": "Create things with love.", + "url": "https://blog.alexma.top" + }, + { + "name": "YoungLee的手帐", + "avatar": "https://younglee.cn/icon.svg", + "description": "写作恐惧症患者,需要咖啡续命的学者", + "url": "https://younglee.cn" + }, + { + "name": "Google搜索 site:rbq.* 找到的", + "avatar": "https://saltedfishes.com/favicon.ico", + "description": "「Tragedy is coming 'as I wish'......」", + "url": "https://saltedfishes.com" + }, + { + "name": "雾创岛", + "avatar": "https://www.tr0.cn/favicon.ico", + "description": "https://www.tr0.cn", + "url": "https://www.tr0.cn" + }, + { + "name": "Eunie的博客", + "avatar": "https://www.eunie.online/upload/tMZ6yUjk7rxhCqQ.png", + "description": "https://www.eunie.online/", + "url": "https://www.eunie.online/" + }, + { + "name": "奇妙页", + "avatar": "https://www.qmye.com/wp-content/uploads/favicon.ico", + "description": "探索AI创意与灵感的奇妙世界", + "url": "https://www.qmye.com" + }, + { + "name": "巳忆笔记", + "avatar": "https://tc.siyi171.xyz/PicGo/logo.png", + "description": "记住所有美好回忆", + "url": "https://siyi171.xyz/" + }, + { + "name": "Petric Blog", + "avatar": "https://www.petricw.com/photo.jpg", + "description": "代码如诗 / 逻辑为歌", + "url": "https://www.petricw.com" + }, + { + "name": "在***教了我很多的好朋友", + "avatar": "/favicon/ie-cx.png", + "description": "https://ie.cx", + "url": "https://ie.cx" + }, + { + "name": "RukaaX Blogs", + "avatar": "https://blogs.rukaax.top/wp-content/uploads/2025/07/cropped-1753627554-ICON.webp", + "description": "RukaaX-一名高中牲的博客", + "url": "https://blogs.rukaax.top/" + }, + { + "name": "AirTouch's Blog", + "avatar": "https://blog.airtouch.top/avatar.webp", + "description": "岩间琉璃云间月", + "url": "https://xsl.im" + }, + { + "name": "Falling42", + "avatar": "https://s2.loli.net/2025/05/17/Cbm7ogkBWAq3ST8.png", + "description": "Fate lies within the light cone.", + "url": "https://falling42.net/" + }, + { + "name": "青序栈", + "avatar": "https://qxzhan.cn/favicon.png", + "description": "青序成栈·向简而生", + "url": "https://qxzhan.cn/" + }, + { + "name": "夜轻Blog", + "avatar": "https://blog.yeqing.net/favicon.ico", + "description": "一个人", + "url": "https://blog.yeqing.net/" + }, + { + "name": "fishcpy的小破站", + "avatar": "https://www.fis.ink/img/logo.png", + "description": "非淡泊无以明志,非宁静无以致远", + "url": "https://blog.fis.ink" + }, + { + "name": "晓晴博客", + "avatar": "https://www.toubiec.cn/usr/themes/Joe/logo.ico", + "description": "https://www.toubiec.cn", + "url": "https://www.toubiec.cn" + }, + { + "name": "酷丁博客", + "avatar": "https://coldin.top/favicon.ico", + "description": "https://coldin.top", + "url": "https://coldin.top" + }, + { + "name": "Codfish Blog", + "avatar": "https://codfish.top/favicon/1.jpg", + "description": "🐟🐟🐟", + "url": "https://codfish.top" + }, + { + "name": "随思南游", + "avatar": "https://ssnur.com/tx.jpg", + "description": "生如夏欢之绚烂,死如秋叶之静", + "url": "https://ssnur.com/" + }, + { + "name": "Eilo's Blog", + "avatar": "https://www.eilo.uk/img/logo.png", + "description": "等等我记一下", + "url": "https://www.eilo.uk/" + }, + { + "name": "Shattered217のblog", + "avatar": "https://blog.shattered.top/wp-content/uploads/2023/06/cropped-android-chrome-512x512-1.png", + "description": "成分复杂", + "url": "https://blog.shattered.top/" + }, + { + "name": "wyf9's Blog", + "avatar": "https://wyf9.top/favicon/android-chrome-192x192.png", + "description": "什么都有的个人 blog?", + "url": "https://wyf9.top/" + }, + { + "name": "fulie blog", + "avatar": "https://q2.qlogo.cn/headimg_dl?dst_uin=3672492995&spec=5", + "description": "永不后悔", + "url": "https://pcb.im/" + }, + { + "name": "呐吼", + "avatar": "https://www.nahou.com/i/icon.webp", + "description": "不止于沉默", + "url": "https://www.nahou.com/" + }, + { + "name": "私人grgk", + "avatar": "https://q2.qlogo.cn/headimg_dl?dst_uin=1662352474&spec=5", + "description": "https://sub.grgk.me", + "url": "https://sub.grgk.me" + }, + { + "name": "Gunbrad的博客", + "avatar": "https://gunbrad.xyz/favicon/icon.jpg", + "description": "https://gunbrad.xyz", + "url": "https://gunbrad.xyz" + }, + { + "name": "幻空博客", + "avatar": "https://img.huankong.top/i/2022/11/29/6385ef8c7a675.ico", + "description": "https://blog.huankong.top", + "url": "https://blog.huankong.top" + }, + { + "name": "小白のBlog", + "avatar": "https://r2cfimg.showby.top/2024/09/19/66eb06a884fb9.jpg", + "description": "Ciallo~(∠・ω< )⌒☆", + "url": "https://www.showby.top/" + }, + { + "name": "曾经天天和我斗嘴并且抄我博客的😡", + "avatar": "https://obj.muyoung.com/logo/favicon.ico", + "description": "https://blog.muyoung.com", + "url": "https://blog.muyoung.com" + }, + { + "name": "非常酷的Kotlin Compose Web WASM 全Canvas网站", + "avatar": "/favicon/yurn.png", + "description": "https://nyayurin.github.io/Yutori-Docs/", + "url": "https://nyayurin.github.io/Yutori-Docs/" + }, + { + "name": "钨鸮的孤岛电台", + "avatar": "https://blog.2w2.top/img/avatar.webp", + "description": "钨在所有金属中排名第七,因此这是一只重磅鸮", + "url": "https://blog.2w2.top" + }, + { + "name": "奶昔论坛", + "avatar": "https://forum.naixi.net/favicon.ico", + "description": "https://forum.naixi.net/", + "url": "https://forum.naixi.net/" + }, + { + "name": "LINUX.DO", + "avatar": "https://linux.do/uploads/default/optimized/3X/7/d/7de31932a4fd533496cfe35979a4d9d995bb5c63_2_180x180.png", + "description": "https://linux.do", + "url": "https://linux.do" + }, + { + "name": "宝塔开心版", + "avatar": "https://www.bt.cn/favicon.ico", + "description": "https://bt.sb", + "url": "https://bt.sb" + }, + { + "name": "NodeSeek", + "avatar": "/favicon/nodeseek.png", + "description": "https://www.nodeseek.com", + "url": "https://www.nodeseek.com" + }, + { + "name": "粉白妙妙屋", + "avatar": "https://dlink.host/wx2.sinaimg.cn/large/007udx8Wly8i0h6etwni7g301j01lq3k.gif", + "description": "我见青山多妩媚", + "url": "https://383842.xyz" + }, + { + "name": "或许是一只龙的博客", + "avatar": "https://fastr2.497995.xyz/image.jpg", + "description": "写点小东西", + "url": "https://www.497995.xyz/" + }, + { + "name": "22", + "avatar": "/favicon/22.png", + "description": "https://space.bilibili.com/44681442", + "url": "https://space.bilibili.com/44681442" + }, + { + "name": "Stanley的技术博客", + "avatar": "https://main.lixvyao.com/favicon.png", + "description": "给时光以生命 给岁月以文明。", + "url": "https://www.lixvyao.com" + }, + { + "name": "Tavre Blog", + "avatar": "https://q1.qlogo.cn/g?b=qq&nk=2987304764&s=640", + "description": "Tavre的个人技术记录博客", + "url": "https://blog.tsd.my" + }, + { + "name": "鈴奈咲桜のブログ", + "avatar": "https://blog.sakura.ink/_astro/avatar.B8d6PP-N_2a0uDN.webp", + "description": "愛することを忘れないで", + "url": "https://blog.sakura.ink" + }, + { + "name": "yunsen2025的小窝", + "avatar": "https://img.alicdn.com/bao/uploaded/i4/O1CN01TWOpM42DSyY5nC0hM_!!0-mtopupload.jpg", + "description": "纯粹的计算机爱好者", + "url": "https://www.yunsen2025.top" + }, + { + "name": "百里博客", + "avatar": "https://q2.qlogo.cn/headimg_dl?dst_uin=3166269605&spec=5", + "description": "一个高中生的博客", + "url": "https://blog.my0811.cn" + }, + { + "name": "Zirkeln", + "avatar": "https://zrn.net/wp-content/uploads/2025/07/seia_avatar.jpg.webp", + "description": "欢迎来到我的个人网站!这里是我作为一名计算机科学爱好者和 ACG(动画、漫画、游戏)迷,分享我对计算机技术、动画、漫画小说和电子音乐(EDM)等多元兴趣的乐园。", + "url": "https://zrn.net" + }, + { + "name": "mxd's Planet", + "avatar": "https://res.mxdyeah.top/favicon.webp", + "description": "平平无奇的菜鸟,喜欢干点自己喜欢做的事情。在这里学习更多有关Linux、*BSD知识,加入我们的大家庭一起交流分享!欢迎在此列表的其他网站互换友链!", + "url": "https://www.mxdyeah.top/" + }, + { + "name": "森资源", + "avatar": "https://img.alicdn.com/bao/uploaded/i4/O1CN01TWOpM42DSyY5nC0hM_!!0-mtopupload.jpg", + "description": "牛逼的资源网站(没开站还)", + "url": "https://senziyuan.236668.xyz" + }, + { + "name": "小宇blog", + "avatar": "https://blog.skyxy.qzz.io/images/favicon.svg", + "description": "很烂的blog,不怎么更新", + "url": "https://blog.skyxy.qzz.io/" + }, + { + "name": "QC3284's Blog", + "avatar": "https://cdn4.xcqcoo.top/gh/QC3284/233@main/test_db_qc3284.png", + "description": "欢迎来到我的博客! 一名乐于探索新事物的爱好者-QC3284", + "url": "https://www.xcqcoo.top" + }, + { + "name": "zty012 blog (2y.nz)", + "avatar": "https://2y.nz/favicon.png", + "description": "一个初中生的blog", + "url": "https://2y.nz" + }, + { + "name": "Elysiam", + "avatar": "https://img.170529.xyz/2025/08/favicon-compress.avif", + "description": "个人的博客小站,分享下技术和生活。May you, the beauty of this world, always shine", + "url": "https://blog.170529.xyz" + }, + { + "name": "Gavin's Blog", + "avatar": "https://gavin-blog.pages.dev/assets/website/avatar.webp", + "description": "一个内容成分复杂的博客小站。", + "url": "https://gavin-blog.pages.dev" + }, + { + "name": "小张の小站", + "avatar": "https://img.xiaozhangya.xin/file/1753185126703_avatar.jpg", + "description": "🌟 随时一起探索新事物,让我们一起成长、一起分享,让这片小小的数字世界充满更多的光辉✨!", + "url": "https://hub.xiaozhangya.xin" + }, + { + "name": "星辰の笔记", + "avatar": "https://blog.strarry.top/avatar.jpg", + "description": "Code | Think | Share | Repeat", + "url": "https://blog.strarry.top/" + }, + { + "name": "Ad_closeNN の Blog", + "avatar": "https://adclosenn.top/assets/avatar.jpg", + "description": "Ad_closeNN 的小站,时不时会刷新一些野生东西 | ✨ 欢迎友链,祝大家天天开心! ✨", + "url": "https://adclosenn.top" + }, + { + "name": "MC_Kero blog", + "avatar": "https://pub-3f1fec3195b64bb4974955567a77da00.r2.dev/OIP.jpeg", + "description": "MC_Kero的博客", + "url": "https://blog.mckero.com" + }, + { + "name": "石墨烯积木的个人博客", + "avatar": "https://cdn.jsdelivr.net/gh/shimoxi123/img/img/6894b49f58cb8da5c80fd8e5.webp", + "description": "分享一些有趣的东西", + "url": "https://www.shimoxi.qzz.io/" + }, + { + "name": "Aliom的个人博客", + "avatar": "https://avatars.githubusercontent.com/u/182760295?v=4", + "description": "Aliom的线上小窝", + "url": "https://bailanwa.dpdns.org" + }, + { + "name": "THW's Blog", + "avatar": "https://img.dooki.cloud/i/2025/08/29/68b09e116c4b6.webp", + "description": "Live a good life meet slowly", + "url": "https://thw.lol/" + }, + { + "name": "尘の个人博客", + "avatar": "https://blog.mcxiaochen.top/favicon.ico", + "description": "一个高中生 UP 搭的博客 QwQ", + "url": "https://blog.mcxiaochen.top/" + }, + { + "name": "PARKSI's Blog", + "avatar": "https://blog.lparksi.com/images/icon.webp", + "description": "Redefine Yourself", + "url": "https://blog.lparksi.com/" + }, + { + "name": "Zero - Higanbana", + "avatar": "https://vtdd.vip/_astro/lx.U15Ju0Ce_1mLhMp.webp", + "description": "https://vtdd.vip/", + "url": "https://vtdd.vip/" + }, + { + "name": "硅基漫游指南", + "avatar": "https://blog.lparksi.com/images/icon.webp", + "description": "Face life with hope.", + "url": "https://blog.helong.online/" + }, + { + "name": "chuzouX Blog", + "avatar": "https://q2.qlogo.cn/headimg_dl?dst_uin=3451860760&spec=0", + "description": "欢迎大家光临本站,希望大家在这里可以找到自己想要的东西,祝大家玩的开心!!", + "url": "https://chuzoux.top" + }, + { + "name": "千年共振", + "avatar": "https://img.remit.ee/api/file/BQACAgUAAyEGAASHRsPbAAEBfBVovV-BBiGQfhx8x5AqxWQsf6Yh8QACEz4AAk_q6VViPZEKaaiLvDYE.jpg/", + "description": "安卓人写的苹果博客", + "url": "https://blog.01101.top" + }, + { + "name": "Mo的记事簿", + "avatar": "https://blog.xiowo.net/img/avatar.png", + "description": "万年鸽王,哈哈OvO", + "url": "https://blog.xiowo.net/" + }, + { + "name": "Elykia", + "avatar": "https://bu.dusays.com/2024/10/25/671b2438203a6.gif", + "description": "致以无暇之人", + "url": "https://blog.elykia.cn" + }, + { + "name": "CappuccinoZ's Blog", + "avatar": "https://kitakita.top/img/avatar2.png", + "description": "良机一直就在你眼前", + "url": "https://kitakita.top" + }, + { + "name": "iAmKevin Blog", + "avatar": "https://n1.img.111pan.cn/api/v4/slave/file/content/0/ZGF0YS91cGxvYWRzLzE0L2M3MWU3ZjJjLTJkOGUtNGRkNi04OGZhLTZkMGIyMWIzZmNkZF9ibG9nLnBuZw==/0/blog.png?sign=xWijnCd9J9SNtUadG_OjD_0TJyTk3ZR7GCBKH98VIQw%3D%3A1759574603", + "description": "自律和不自律,都会吃苦,不同的是,自律的苦会让人生越来越甜。", + "url": "https://imkn.top" + }, + { + "name": "XUIOO", + "avatar": "https://blog.xuioo.com/27c69590279fdc3be2cd7c901e3d07ad.jpg", + "description": "一叶障目,不见泰山;两耳塞豆,不闻雷霆。", + "url": "https://blog.xuioo.com" + }, + { + "name": "静谧小窝", + "avatar": "https://img.yaotustarlight.im/random/ProfilePicture", + "description": "星河低语,夜风轻拂", + "url": "https://yaotustarlight.im" + }, + { + "name": "夏夜流萤", + "avatar": "https://q2.qlogo.cn/headimg_dl?dst_uin=7618557&spec=0", + "description": "总有一场相遇,是互相喜欢的!", + "url": "https://blog.cuteleaf.cn" + } + ] +} \ No newline at end of file diff --git a/src/data/sponsors.json b/src/data/sponsors.json new file mode 100644 index 000000000..0aace0188 --- /dev/null +++ b/src/data/sponsors.json @@ -0,0 +1,52 @@ +{ + "sponsors": [ + { + "name": "明镜台", + "avatar": "/sponsors/mjt.jpg", + "date": "2025-08-02", + "amount": "100 ¥" + }, + { + "name": "夜轻", + "avatar": "https://blog.yeqing.net/favicon.ico", + "date": "2025-07-11", + "amount": "78 ¥" + }, + { + "name": "MingTone", + "avatar": "https://q.qlogo.cn/g?b=qq&nk=2244347713&s=160", + "date": "2025-07-21", + "amount": "50 ¥" + }, + { + "name": "酷丁同学", + "avatar": "https://coldin.top/src/avatar.webp", + "date": "2025-07-15", + "amount": "5 USDC" + }, + { + "name": "匿名用户", + "avatar": null, + "date": "2025-07-15", + "amount": "19.80¥" + }, + { + "name": "AlexMa233", + "avatar": "https://blog-backend.alexma.top/api/v2/objects/avatar/112zjnt1f3c2cf3prp.webp", + "date": "2025-07-27", + "amount": "5 B币" + }, + { + "name": "HEISEN黑森", + "avatar": "https://img.alicdn.com/bao/uploaded/i4/O1CN01TWOpM42DSyY5nC0hM_!!0-mtopupload.jpg", + "date": "2025-08-09", + "amount": "两个月充电" + }, + { + "name": "chuzouX", + "avatar": "https://q2.qlogo.cn/headimg_dl?dst_uin=3451860760&spec=0", + "date": "2025-09-07", + "amount": "10¥" + } + ] +} \ No newline at end of file diff --git a/src/pages/donate.astro b/src/pages/donate.astro deleted file mode 100644 index a1dd47d70..000000000 --- a/src/pages/donate.astro +++ /dev/null @@ -1,269 +0,0 @@ ---- -import MainGridLayout from "@layouts/MainGridLayout.astro"; -import { Icon } from "astro-icon/components"; ---- - - -
-
-
- -
-

赞助支持

-
- -
-

- 如果您觉得我的内容对您有帮助,欢迎通过以下方式支持我的创作。您的每一份支持都是我持续创作的动力! -

-

- 所有赞助将用于网站维护、服务器费用以及内容创作。 -

-
- -
- - - - - - - -
-
- -
- - -
-

其他支持方式

-
-
-
- - 分享推荐 -
-

- 将我的博客分享给更多朋友 -

-
- -
-
- - 留言互动 -
-

- 在文章下方留下您的想法 -

-
- -
-
- - 关注订阅 -
-

- 订阅RSS或关注社交媒体 -

-
-
-
-
-

- - 已赞助的小伙伴 -

-

- 如果您已赞助,并且想加入赞助名单,请自行提交PR 点击这里提交 -

-
- - - - - - - - - - -
-
- - - - - - diff --git a/src/pages/friends.astro b/src/pages/friends.astro index a88034726..e5050dfe8 100644 --- a/src/pages/friends.astro +++ b/src/pages/friends.astro @@ -1,6 +1,10 @@ --- import MainGridLayout from "@layouts/MainGridLayout.astro"; import { Icon } from "astro-icon/components"; +import type { FriendsData } from "@/types/data"; +import friendsData from "@/data/friends.json"; + +const { friends } = friendsData as FriendsData; --- @@ -12,541 +16,15 @@ import { Icon } from "astro-icon/components";

友链

- -
- -
yCENzh's Blog
-
-
Ciallo~(∠・ω< )⌒☆
-
- -
- -
Wer Blog
-
-
The only way to do great is to love what you do
-
- -
- -
带我入坑网站的超级大坏比
-
-
Dmocken的免费推广位
-
- -
- -
Dahi Blog
-
-
時光流轉,願你有一天能與重要的人重逢
-
- -
- -
AlexMa's Blog
-
-
Create things with love.
-
- -
- -
YoungLee的手帐
-
-
写作恐惧症患者,需要咖啡续命的学者
-
- -
- -
Google搜索 site:rbq.* 找到的
-
-
「Tragedy is coming 'as I wish'......」
-
- -
- -
雾创岛
-
-
https://www.tr0.cn
-
- -
- -
Eunie的博客
-
-
https://www.eunie.online/
-
- -
- -
奇妙页
-
-
探索AI创意与灵感的奇妙世界
-
- -
- -
巳忆笔记
-
-
记住所有美好回忆
-
- -
- -
Petric Blog
-
-
代码如诗 / 逻辑为歌
-
- -
- -
在***教了我很多的好朋友
-
-
https://ie.cx
-
- -
- -
RukaaX Blogs
-
-
RukaaX-一名高中牲的博客
-
- -
- -
AirTouch’s Blog
-
-
岩间琉璃云间月
-
- -
- -
Falling42
-
-
Fate lies within the light cone.
-
- -
- -
青序栈
-
-
青序成栈·向简而生
-
- -
- -
夜轻Blog
-
-
一个人
-
- -
- -
fishcpy的小破站
-
-
非淡泊无以明志,非宁静无以致远
-
- -
- -
晓晴博客
-
-
https://www.toubiec.cn
-
- -
- -
酷丁博客
-
-
https://coldin.top
-
- -
- -
Codfish Blog
-
-
🐟🐟🐟
-
- -
- -
随思南游
-
-
生如夏欢之绚烂,死如秋叶之静
-
- -
- -
Eilo's Blog
-
-
等等我记一下
-
- -
- -
Shattered217のblog
-
-
成分复杂
-
- -
- -
wyf9's Blog
-
-
什么都有的个人 blog?
-
- -
- -
fulie blog
-
-
永不后悔
-
- -
- -
呐吼
-
-
不止于沉默
-
- -
- -
私人grgk
-
-
https://sub.grgk.me
-
- -
- -
Gunbrad的博客
-
-
https://gunbrad.xyz
-
- -
- -
幻空博客
-
-
https://blog.huankong.top
-
- -
- -
小白のBlog
-
-
Ciallo~(∠・ω< )⌒☆
-
- -
- -
曾经天天和我斗嘴并且抄我博客的😡
-
-
https://blog.muyoung.com
-
- -
- -
非常酷的Kotlin Compose Web WASM 全Canvas网站
-
-
https://nyayurin.github.io/Yutori-Docs/
-
- -
- -
钨鸮的孤岛电台
-
-
钨在所有金属中排名第七,因此这是一只重磅鸮
-
- -
- -
奶昔论坛
-
-
https://forum.naixi.net/
-
- -
- -
LINUX.DO
-
-
https://linux.do
-
- -
- -
宝塔开心版
-
-
https://bt.sb
-
- -
- -
NodeSeek
-
-
https://www.nodeseek.com
-
- -
- -
粉白妙妙屋
-
-
我见青山多妩媚
-
- -
- -
或许是一只龙的博客
-
-
写点小东西
-
- -
- -
22
-
-
https://space.bilibili.com/44681442
-
- -
- -
Stanley的技术博客
-
-
给时光以生命 给岁月以文明。
-
- -
- -
Tavre Blog
-
-
Tavre的个人技术记录博客
-
- -
- -
鈴奈咲桜のブログ
-
-
愛することを忘れないで
-
- -
- -
yunsen2025的小窝
-
-
纯粹的计算机爱好者
-
- -
- -
百里博客
-
-
一个高中生的博客
-
- -
- -
Zirkeln
-
-
欢迎来到我的个人网站!这里是我作为一名计算机科学爱好者和 ACG(动画、漫画、游戏)迷,分享我对计算机技术、动画、漫画小说和电子音乐(EDM)等多元兴趣的乐园。
-
- -
- -
mxd's Planet
-
-
平平无奇的菜鸟,喜欢干点自己喜欢做的事情。在这里学习更多有关Linux、*BSD知识,加入我们的大家庭一起交流分享!欢迎在此列表的其他网站互换友链!
-
- -
- -
森资源
-
-
牛逼的资源网站(没开站还)
-
- -
- -
小宇blog
-
-
很烂的blog,不怎么更新
-
- -
- -
QC3284's Blog
-
-
欢迎来到我的博客! 一名乐于探索新事物的爱好者-QC3284
-
- -
- -
zty012 blog (2y.nz)
-
-
一个初中生的blog
-
- -
- -
Elysiam
-
-
个人的博客小站,分享下技术和生活。May you, the beauty of this world, always shine
-
- -
- -
Gavin's Blog
-
-
一个内容成分复杂的博客小站。
-
- -
- -
小张の小站
-
-
🌟 随时一起探索新事物,让我们一起成长、一起分享,让这片小小的数字世界充满更多的光辉✨!
-
- -
- -
星辰の笔记
-
-
Code | Think | Share | Repeat
-
- -
- -
Ad_closeNN の Blog
-
-
Ad_closeNN 的小站,时不时会刷新一些野生东西 | ✨ 欢迎友链,祝大家天天开心! ✨
-
- -
- -
MC_Kero blog
-
-
MC_Kero的博客
-
- -
- -
石墨烯积木的个人博客
-
-
分享一些有趣的东西
-
- -
- -
Aliom的个人博客
-
-
Aliom的线上小窝
-
- -
- -
THW's Blog
-
-
Live a good life meet slowly
-
- -
- -
尘の个人博客
-
-
一个高中生 UP 搭的博客 QwQ
-
- -
- -
PARKSI's Blog
-
-
Redefine Yourself
-
- -
- -
Zero - Higanbana
-
-
https://vtdd.vip/
-
-
- -
硅基漫游指南
-
-
Face life with hope.
-
- -
- -
chuzouX Blog
-
-
欢迎大家光临本站,希望大家在这里可以找到自己想要的东西,祝大家玩的开心!!
-
- -
- -
千年共振
-
-
安卓人写的苹果博客
-
- -
- -
Mo的记事簿
-
-
万年鸽王,哈哈OvO
-
-
- -
Elykia
-
-
致以无暇之人
-
- -
- -
JustPureH2O
-
-
穷方圆平直之情,尽规矩准绳之用
-
- -
-
DailyFunctions-生活常用工具
-
-
hi~
-
- -
- -
CappuccinoZ's Blog
-
-
良机一直就在你眼前
-
- -
- -
iAmKevin Blog
-
-
自律和不自律,都会吃苦,不同的是,自律的苦会让人生越来越甜。
-
- -
- -
XUIOO
-
-
一叶障目,不见泰山;两耳塞豆,不闻雷霆。
-
- -
- -
静谧小窝
-
-
星河低语,夜风轻拂
-
-
- -
夏夜流萤
-
-
总有一场相遇,是互相喜欢的!
-
+ {friends.map((friend) => ( + +
+ {`${friend.name}的头像`} +
{friend.name}
+
+
{friend.description}
+
+ ))}
diff --git a/src/pages/sponsors.astro b/src/pages/sponsors.astro new file mode 100644 index 000000000..50b36f17b --- /dev/null +++ b/src/pages/sponsors.astro @@ -0,0 +1,189 @@ +--- +import MainGridLayout from "@layouts/MainGridLayout.astro"; +import { Icon } from "astro-icon/components"; +import type { SponsorsData } from "@/types/data"; +import sponsorsData from "@/data/sponsors.json"; + +const { sponsors } = sponsorsData as SponsorsData; +--- + + +
+
+
+ +
+

赞助支持

+
+ +
+

+ 如果您觉得我的内容对您有帮助,欢迎通过以下方式支持我的创作。您的每一份支持都是我持续创作的动力! +

+

+ 所有赞助将用于网站维护、服务器费用以及内容创作。 +

+
+ +
+ + + + + + + +
+
+ +
+ + +
+

其他支持方式

+
+
+
+ + 分享推荐 +
+

+ 将我的博客分享给更多朋友 +

+
+ +
+
+ + 留言互动 +
+

+ 在文章下方留下您的想法 +

+
+ +
+
+ + 关注订阅 +
+

+ 订阅RSS或关注社交媒体 +

+
+
+
+
+

+ + 已赞助的小伙伴 +

+

+ 如果您已赞助,并且想加入赞助名单,请自行提交PR 点击这里提交 +

+
+ {sponsors.map((sponsor) => ( + + ))} +
+
+ +
+ + + + diff --git a/src/types/data.ts b/src/types/data.ts new file mode 100644 index 000000000..4f979e08d --- /dev/null +++ b/src/types/data.ts @@ -0,0 +1,21 @@ +export interface Sponsor { + name: string; + avatar: string | null; + date: string; + amount: string; +} + +export interface Friend { + name: string; + avatar: string; + description: string; + url: string; +} + +export interface SponsorsData { + sponsors: Sponsor[]; +} + +export interface FriendsData { + friends: Friend[]; +} \ No newline at end of file