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/)
yulu -1. [owenyoung](https://owenyoung.com) 沉浸式翻译作者
owen -1. [https://www.pseudoyu.com/](https://www.pseudoyu.com/) -1. [艾逗笔](https://idoubi.cc/) -1. [Justin](https://justinyan.me)枫言枫语播客主播
Justion -1. [Paul Graham](https://paulgraham.com/articles.html) 《黑客与画家》作者,YC创始人
Paul Graham -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的
Nicholas Carlini -1. [Oliver Nguyen](https://olivernguyen.io/w) 一个用Go语言和Javascript进行开发的开发者,从HN上看到博主的[这篇文章](https://olivernguyen.io/w/namespace.error/)
Oliver Nguyen -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.
Roel Hollander -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)
wunderwuzzi -1. [Scott Chacon](https://blog.gitbutler.com/) the founder of github
Scott Chacon -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)
Sharon Brizinov -1. [Daniel Stenberg](https://daniel.haxx.se/blog/2025/07/13/how-i-do-it/) the author of [curl](https://curl.se/)
Daniel Stenberg -1. '良渚文化村村民'独立开发者-[图拉鼎](https://imtx.me/)
图拉鼎 -1. [Randy](https://lutaonan.com/)-[《代码之外》](https://bento.me/beyondcode)播客主播,[程序员如何vide coding](https://www.youtube.com/watch?v=by3qe66xjPs)的视频拍的比较简单有趣,给人在AI快速发展的当下仍然能静下来玩电脑
Randy -1. [Derek Sivers](https://sive.rs/about)一个和90后父辈差不多年纪的,有自己的生活哲学,喜欢创作,远离让自己成瘾的事情的人
Derek Sivers -1. [geekplux](https://geekplux.com/posts) 代码之外主播
geekplux -1. [勾股](https://jiongks.name/) [weex](https://weexapp.com/zh)重要开发者
勾股 -1. [Limboy](https://bytetalk.fm/) 图拉鼎在博客中介绍的一个采访了很多开发者的播客制作者 -1. [Linghao Zhang](https://linghao.io/posts) 生活在湾区的Google程序员,从limboy的播客中认识的
Linghao Zhang -1. [Shu Ding](https://shud.in/thoughts) 在Vercel工作的程序员与设计师,也是limboy采访过的工程师
Shu Ding -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仓库的核心开发
Ola Hungerford -1. [汪二 (Haozes)](https://blog.yaoyaojumprope.com/) 独立开发者,Apple Watch平台上开发了乐摇摇APP,统计跳绳的个数,既能当程序员,又能赚钱,还有个好身体,汪二的工作太有意义啦
Haozes \ No newline at end of file +## 乐于分享的,独立思考的博客集合,一个博客后面就是一个有趣的人 +![showcase.webp](showcase.webp) +- [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",