diff --git a/README.md b/README.md
index 8dab55a..d22f45f 100644
--- a/README.md
+++ b/README.md
@@ -1,42 +1,3 @@
-# awesome-blogs
-- 收集高质量博客的仓库(如果收集到100个网站,我就为这些博客做一个导航站)
-- 排名不分先后,在于我看到的时间的前后
-
-1. [https://littlecheesecake.me/](https://littlecheesecake.me/) 新开了[博客的理财频道](https://littlecheesecake.me/money.sense/cn/posts/)
-1. [owenyoung](https://owenyoung.com) 沉浸式翻译作者
-1. [https://www.pseudoyu.com/](https://www.pseudoyu.com/)
-1. [艾逗笔](https://idoubi.cc/)
-1. [Justin](https://justinyan.me)枫言枫语播客主播
-1. [Paul Graham](https://paulgraham.com/articles.html) 《黑客与画家》作者,YC创始人
-1. [https://www.ntietz.com/blog/](https://www.ntietz.com/blog/) 在[HN阅读台](https://www.hackernewsreadingdesk.com) 中看到作者的[这篇博客](https://www.ntietz.com/blog/evolving-ergo-setup/),博客看上去很整洁,网站的响应速度很快,看网站的footer(© 2015-2024 Nicole Tietz-Sokolsaya),作者写博客快10年了
-1. [Nicholas Carlini](https://nicholas.carlini.com/writing) 是Google(Deep Mind)的Research Scientist,[这篇博客](https://nicholas.carlini.com/writing/2024/how-i-use-ai.html)讲了作者是怎么使用AI的
-1. [Oliver Nguyen](https://olivernguyen.io/w) 一个用Go语言和Javascript进行开发的开发者,从HN上看到博主的[这篇文章](https://olivernguyen.io/w/namespace.error/)
-1. [Perl Calendar](https://perladvent.org/) 一个Perl编程语言相关的文章类别网站,从HN上看到的是[这篇文章](https://perladvent.org/2024/2024-12-19.html)
-1. [Roel Hollander](https://roelsworld.eu/blog-music/) A philosophical, semiscientific, contemplative blog by Roel Hollander about Music, Sound, Arts, Sacred Geometry, Photography and much more.
-1. [Hawstein](https://hawstein.com/2023/07/12/five-years-of-an-indie-hacker/) 把indie hacker翻译成独立创作者的人
-1. [bernsteinbear](https://bernsteinbear.com/blog/)
-1. [Jacob Vosmaer](https://blog.jacobvosmaer.nl)
-1. [Sam Altman](https://blog.samaltman.com/)
-1. [David Crawshaw](https://crawshaw.io/blog)
-1. [Bernardo](https://sidhion.com/blog/)
-1. [云风](https://blog.codingnow.com) 原网易游戏核心成员,《大话西游》重要开发者
-1. [Julia Evans](https://jvns.ca/blog/) **Make hard things Easy**, known him by [PATH blog](https://jvns.ca/blog/2025/02/13/how-to-add-a-directory-to-your-path/)
-1. [balatro author](https://localthunk.com/blog)
-1. [wunderwuzzi](https://embracethered.com/blog/) the author [post](https://news.ycombinator.com/item?id=43616282) a [study paper about MCP](https://arxiv.org/abs/2503.23278)
-1. [Scott Chacon](https://blog.gitbutler.com/) the founder of github
-1. [Sharon Brizinov](https://sharonbrizinov.com/) a security researcher who write [how i made 64k from deleted files](https://medium.com/@sharon.brizinov/how-i-made-64k-from-deleted-files-a-bug-bounty-story-c5bd3a6f5f9b)
-1. [Daniel Stenberg](https://daniel.haxx.se/blog/2025/07/13/how-i-do-it/) the author of [curl](https://curl.se/)
-1. '良渚文化村村民'独立开发者-[图拉鼎](https://imtx.me/)
-1. [Randy](https://lutaonan.com/)-[《代码之外》](https://bento.me/beyondcode)播客主播,[程序员如何vide coding](https://www.youtube.com/watch?v=by3qe66xjPs)的视频拍的比较简单有趣,给人在AI快速发展的当下仍然能静下来玩电脑
-1. [Derek Sivers](https://sive.rs/about)一个和90后父辈差不多年纪的,有自己的生活哲学,喜欢创作,远离让自己成瘾的事情的人
-1. [geekplux](https://geekplux.com/posts) 代码之外主播
-1. [勾股](https://jiongks.name/) [weex](https://weexapp.com/zh)重要开发者
-1. [Limboy](https://bytetalk.fm/) 图拉鼎在博客中介绍的一个采访了很多开发者的播客制作者
-1. [Linghao Zhang](https://linghao.io/posts) 生活在湾区的Google程序员,从limboy的播客中认识的
-1. [Shu Ding](https://shud.in/thoughts) 在Vercel工作的程序员与设计师,也是limboy采访过的工程师
-1. [yihong](https://blog.yihong0618.me/) 一个生活在大连喜欢使用github的沈阳人、开发者
-1. [antfu](https://antfu.me/posts) [这篇文章](https://antfu.me/posts/about-yak-shaving-zh)写的超级好
-1. [Frost](https://frostming.com/) python开发者,和yetone都在BentoML工作
-1. [xuanwo](https://xuanwo.io/) yihong写在我崇拜的人里的人
-1. [Ola Hungerford](https://www.olahungerford.com/) MCP inspector仓库的核心开发
-1. [汪二 (Haozes)](https://blog.yaoyaojumprope.com/) 独立开发者,Apple Watch平台上开发了乐摇摇APP,统计跳绳的个数,既能当程序员,又能赚钱,还有个好身体,汪二的工作太有意义啦
\ No newline at end of file
+## 乐于分享的,独立思考的博客集合,一个博客后面就是一个有趣的人
+
+- [blogs.json](src/assets/blogs.json)
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 167b3e8..6ebbf46 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -22,7 +22,6 @@
"eslint": "^9.33.0",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
- "gh-pages": "^6.3.0",
"globals": "^16.3.0",
"typescript": "~5.8.3",
"typescript-eslint": "^8.39.1",
@@ -3583,23 +3582,6 @@
"node": ">=10"
}
},
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/async": {
- "version": "3.2.6",
- "resolved": "https://registry.npmmirror.com/async/-/async-3.2.6.tgz",
- "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -3758,23 +3740,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/commander": {
- "version": "13.1.0",
- "resolved": "https://registry.npmmirror.com/commander/-/commander-13.1.0.tgz",
- "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
@@ -3851,19 +3816,6 @@
"integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
"license": "MIT"
},
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/electron-to-chromium": {
"version": "1.5.218",
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.218.tgz",
@@ -3871,13 +3823,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/email-addresses": {
- "version": "5.0.0",
- "resolved": "https://registry.npmmirror.com/email-addresses/-/email-addresses-5.0.0.tgz",
- "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/enhanced-resolve": {
"version": "5.18.3",
"resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz",
@@ -4207,34 +4152,6 @@
"node": ">=16.0.0"
}
},
- "node_modules/filename-reserved-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmmirror.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
- "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/filenamify": {
- "version": "4.3.0",
- "resolved": "https://registry.npmmirror.com/filenamify/-/filenamify-4.3.0.tgz",
- "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "filename-reserved-regex": "^2.0.0",
- "strip-outer": "^1.0.1",
- "trim-repeated": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
@@ -4248,24 +4165,6 @@
"node": ">=8"
}
},
- "node_modules/find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
- }
- },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz",
@@ -4304,21 +4203,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/fs-extra": {
- "version": "11.3.1",
- "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.3.1.tgz",
- "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
@@ -4352,29 +4236,6 @@
"node": ">=6"
}
},
- "node_modules/gh-pages": {
- "version": "6.3.0",
- "resolved": "https://registry.npmmirror.com/gh-pages/-/gh-pages-6.3.0.tgz",
- "integrity": "sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "async": "^3.2.4",
- "commander": "^13.0.0",
- "email-addresses": "^5.0.0",
- "filenamify": "^4.3.0",
- "find-cache-dir": "^3.3.1",
- "fs-extra": "^11.1.1",
- "globby": "^11.1.0"
- },
- "bin": {
- "gh-pages": "bin/gh-pages.js",
- "gh-pages-clean": "bin/gh-pages-clean.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/glob-parent": {
"version": "6.0.2",
"resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz",
@@ -4401,27 +4262,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
@@ -4598,19 +4438,6 @@
"node": ">=6"
}
},
- "node_modules/jsonfile": {
- "version": "6.2.0",
- "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.2.0.tgz",
- "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
"node_modules/keyv": {
"version": "4.5.4",
"resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz",
@@ -4905,22 +4732,6 @@
"@jridgewell/sourcemap-codec": "^1.5.5"
}
},
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
@@ -5083,16 +4894,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
@@ -5126,16 +4927,6 @@
"node": ">=8"
}
},
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
@@ -5155,75 +4946,6 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-dir/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/postcss": {
"version": "8.5.6",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz",
@@ -5594,16 +5316,6 @@
"node": ">=8"
}
},
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
@@ -5626,29 +5338,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/strip-outer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmmirror.com/strip-outer/-/strip-outer-1.0.1.tgz",
- "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "escape-string-regexp": "^1.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/strip-outer/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8.0"
- }
- },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
@@ -5765,29 +5454,6 @@
"node": ">=8.0"
}
},
- "node_modules/trim-repeated": {
- "version": "1.0.0",
- "resolved": "https://registry.npmmirror.com/trim-repeated/-/trim-repeated-1.0.0.tgz",
- "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "escape-string-regexp": "^1.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/trim-repeated/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8.0"
- }
- },
"node_modules/ts-api-utils": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
@@ -5858,16 +5524,6 @@
"typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 10.0.0"
- }
- },
"node_modules/update-browserslist-db": {
"version": "1.1.3",
"resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
diff --git a/showcase.webp b/showcase.webp
new file mode 100644
index 0000000..c01668e
Binary files /dev/null and b/showcase.webp differ
diff --git a/src/App.tsx b/src/App.tsx
index 0f23529..5c9de5c 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,12 +1,12 @@
import { Card } from '@radix-ui/themes/dist/cjs/components/index.js'
import './App.css'
import blogsData from './assets/blogs.json'
-import avatar from './assets/avatar.png'
+import avatar from './assets/avatar.webp'
function resolveAvatar(path: string): string {
if (!path) return '';
- if (path === 'avatar.png') return avatar;
+ if (path === 'avatar.webp') return avatar;
return path;
}
diff --git a/src/assets/avatar.png b/src/assets/avatar.png
deleted file mode 100644
index 12c37d0..0000000
Binary files a/src/assets/avatar.png and /dev/null differ
diff --git a/src/assets/avatar.webp b/src/assets/avatar.webp
new file mode 100644
index 0000000..c64c48b
Binary files /dev/null and b/src/assets/avatar.webp differ
diff --git a/src/assets/blogs.json b/src/assets/blogs.json
index d22cf92..cb7be4a 100644
--- a/src/assets/blogs.json
+++ b/src/assets/blogs.json
@@ -15,13 +15,13 @@
"name": "pseudoyu",
"url": "https://www.pseudoyu.com/",
"describe": "pseudoyu",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "艾逗笔",
"url": "https://idoubi.cc/",
"describe": "艾逗笔",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "Justin",
@@ -39,7 +39,7 @@
"name": "ntietz",
"url": "https://www.ntietz.com/blog/",
"describe": "在HN阅读台中看到作者的这篇博客 https://www.ntietz.com/blog/evolving-ergo-setup/,博客看上去很整洁,网站的响应速度很快,看网站的footer(© 2015-2024 Nicole Tietz-Sokolsaya),作者写博客快10年了",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "Nicholas Carlini",
@@ -57,7 +57,7 @@
"name": "Perl Calendar",
"url": "https://perladvent.org/",
"describe": "一个Perl编程语言相关的文章类别网站,从HN上看到的是这篇文章 https://perladvent.org/2024/2024-12-19.html",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "Roel Hollander",
@@ -69,37 +69,37 @@
"name": "Hawstein",
"url": "https://hawstein.com/2023/07/12/five-years-of-an-indie-hacker/",
"describe": "把indie hacker翻译成独立创作者的人",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "bernsteinbear",
"url": "https://bernsteinbear.com/blog/",
"describe": "bernsteinbear",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "Jacob Vosmaer",
"url": "https://blog.jacobvosmaer.nl",
"describe": "Jacob Vosmaer",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "Sam Altman",
"url": "https://blog.samaltman.com/",
"describe": "Sam Altman",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "David Crawshaw",
"url": "https://crawshaw.io/blog",
"describe": "David Crawshaw",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "Bernardo",
"url": "https://sidhion.com/blog/",
"describe": "Bernardo",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "云风",
@@ -111,13 +111,13 @@
"name": "Julia Evans",
"url": "https://jvns.ca/blog/",
"describe": "Make hard things Easy, known him by PATH blog https://jvns.ca/blog/2025/02/13/how-to-add-a-directory-to-your-path/",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "balatro author",
"url": "https://localthunk.com/blog",
"describe": "balatro author",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "wunderwuzzi",
@@ -135,7 +135,7 @@
"name": "Sharon Brizinov",
"url": "https://sharonbrizinov.com/",
"describe": "a security researcher who write how i made 64k from deleted files https://medium.com/@sharon.brizinov/how-i-made-64k-from-deleted-files-a-bug-bounty-story-c5bd3a6f5f9b",
- "avatar": "https://sharonbrizinov.com/avatar.png"
+ "avatar": "https://sharonbrizinov.com/avatar.webp"
},
{
"name": "Daniel Stenberg",
@@ -177,7 +177,7 @@
"name": "Limboy",
"url": "https://bytetalk.fm/",
"describe": "图拉鼎在博客中介绍的一个采访了很多开发者的播客制作者",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "Linghao Zhang",
@@ -195,25 +195,25 @@
"name": "yihong",
"url": "https://blog.yihong0618.me/",
"describe": "一个生活在大连喜欢使用github的沈阳人、开发者",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "antfu",
"url": "https://antfu.me/posts",
"describe": "这篇文章 https://antfu.me/posts/about-yak-shaving-zh 写的超级好",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "Frost",
"url": "https://frostming.com/",
"describe": "python开发者,和yetone都在BentoML工作",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "xuanwo",
"url": "https://xuanwo.io/",
"describe": "yihong写在我崇拜的人里的人",
- "avatar": "avatar.png"
+ "avatar": "avatar.webp"
},
{
"name": "Ola Hungerford",