From 925623f3c9120a52ea5187f71d06948b4a54c69f Mon Sep 17 00:00:00 2001 From: WingChunWong Date: Fri, 20 Feb 2026 23:51:22 +0800 Subject: [PATCH 1/9] update --- .github/workflows/generate-rss.yml | 41 ---- .github/workflows/pages-deploy.yml | 61 +++++ .gitignore | 24 ++ Gemfile | 23 ++ Gemfile.lock | 170 ++++++++++++++ README.md | 71 ++++-- _config.yml | 151 +++++++++++++ _data/contact.yml | 30 +++ _data/share.yml | 14 ++ _includes/metadata-hook.html | 2 + _tabs/about.md | 31 +++ {post => _weekly}/100.md | 0 {post => _weekly}/101.md | 0 {post => _weekly}/102.md | 0 {post => _weekly}/103.md | 0 {post => _weekly}/96.md | 0 {post => _weekly}/97.md | 0 {post => _weekly}/98.md | 0 {post => _weekly}/99.md | 0 asset/html/100.html | 100 -------- asset/html/101.html | 115 ---------- asset/html/102.html | 98 -------- asset/html/103.html | 99 -------- asset/html/96.html | 98 -------- asset/html/97.html | 100 -------- asset/html/98.html | 113 --------- asset/html/99.html | 104 --------- assets/feed.xml | 56 +++++ index.html | 28 +++ rss.xml | 72 +----- scripts/generate_rss.py | 352 ----------------------------- 31 files changed, 656 insertions(+), 1297 deletions(-) delete mode 100644 .github/workflows/generate-rss.yml create mode 100644 .github/workflows/pages-deploy.yml create mode 100644 .gitignore create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 _config.yml create mode 100644 _data/contact.yml create mode 100644 _data/share.yml create mode 100644 _includes/metadata-hook.html create mode 100644 _tabs/about.md rename {post => _weekly}/100.md (100%) rename {post => _weekly}/101.md (100%) rename {post => _weekly}/102.md (100%) rename {post => _weekly}/103.md (100%) rename {post => _weekly}/96.md (100%) rename {post => _weekly}/97.md (100%) rename {post => _weekly}/98.md (100%) rename {post => _weekly}/99.md (100%) delete mode 100644 asset/html/100.html delete mode 100644 asset/html/101.html delete mode 100644 asset/html/102.html delete mode 100644 asset/html/103.html delete mode 100644 asset/html/96.html delete mode 100644 asset/html/97.html delete mode 100644 asset/html/98.html delete mode 100644 asset/html/99.html create mode 100644 assets/feed.xml create mode 100644 index.html delete mode 100644 scripts/generate_rss.py diff --git a/.github/workflows/generate-rss.yml b/.github/workflows/generate-rss.yml deleted file mode 100644 index b6ce8c8..0000000 --- a/.github/workflows/generate-rss.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Generate HTML & RSS from MD Files - -# 触发条件:push 到 main 分支,MD 文件变更时触发 -on: - push: - branches: [main] - -jobs: - build: - runs-on: ubuntu-latest - steps: - # 1. 拉取仓库代码 - - name: Checkout repository - uses: actions/checkout@v4 - - # 2. 设置 Python 环境 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.10" - - # 3. 手动安装依赖 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install markdown pygments # pygments 用于代码块高亮 - - # 4. 运行脚本生成HTML和RSS - - name: Generate HTML and RSS files - run: | - python scripts/generate_rss.py - - # 5. 提交并推送生成的文件(包含HTML和RSS) - - name: Commit and push generated files - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: "chore: auto-generate HTML files and rss.xml" - file_pattern: "asset/html/*.html rss.xml" # 提交HTML目录和RSS文件 - branch: main - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/pages-deploy.yml b/.github/workflows/pages-deploy.yml new file mode 100644 index 0000000..a03318e --- /dev/null +++ b/.github/workflows/pages-deploy.yml @@ -0,0 +1,61 @@ +name: "Build and Deploy Jekyll Site" + +on: + push: + branches: ["main", "master"] + paths-ignore: + - "README.md" + + # 允许手动触发 + workflow_dispatch: + +# GitHub Pages 部署权限 +permissions: + contents: read + pages: write + id-token: write + +# 同一时间只允许一个部署 +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # 获取完整 Git 历史(用于最后修改时间等) + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.3" + bundler-cache: true # 自动执行 bundle install 并缓存 + + - name: Setup Pages + id: pages + uses: actions/configure-pages@v4 + + - name: Build with Jekyll + run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" + env: + JEKYLL_ENV: production + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: "_site" + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b1c82a7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Jekyll 构建输出 +_site/ +.jekyll-cache/ +.jekyll-metadata + +# Ruby +.bundle/ +vendor/ + +# Node 模块 +node_modules/ + +# 操作系统文件 +.DS_Store +Thumbs.db + +# IDE +.vscode/ +.idea/ +*.swp +*.swo + +# 环境文件 +.env diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..7d24e87 --- /dev/null +++ b/Gemfile @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "jekyll-theme-chirpy", "~> 7.3" + +# Jekyll 插件 +group :jekyll_plugins do + gem "jekyll-seo-tag", "~> 2.8" # SEO meta 标签 + gem "jekyll-sitemap", "~> 1.4" # Sitemap 生成 + gem "jekyll-paginate", "~> 1.1" # 分页支持 +end + +# Windows 和 JRuby 平台兼容 +platforms :windows, :jruby do + gem "tzinfo", ">= 1", "< 3" + gem "tzinfo-data" +end + +gem 'wdm', '>= 0.1.0', :platforms => [:windows] + +# http_parser.rb 在 JRuby 上需限制版本 +gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..bb59c51 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,170 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.8) + public_suffix (>= 2.0.2, < 8.0) + base64 (0.3.0) + bigdecimal (4.0.1) + colorator (1.1.0) + concurrent-ruby (1.3.6) + csv (3.3.5) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.17.3-x64-mingw-ucrt) + ffi (1.17.3-x86_64-linux-gnu) + forwardable-extended (2.6.0) + google-protobuf (4.33.5-x64-mingw-ucrt) + bigdecimal + rake (>= 13) + google-protobuf (4.33.5-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + http_parser.rb (0.8.1) + i18n (1.14.8) + concurrent-ruby (~> 1.0) + jekyll (4.4.1) + addressable (~> 2.4) + base64 (~> 0.2) + colorator (~> 1.0) + csv (~> 3.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + json (~> 2.6) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (~> 0.3, >= 0.3.6) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-archives (2.3.0) + jekyll (>= 3.6, < 5.0) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-paginate (1.1.0) + jekyll-sass-converter (3.1.0) + sass-embedded (~> 1.75) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-theme-chirpy (7.4.1) + jekyll (~> 4.3) + jekyll-archives (~> 2.2) + jekyll-include-cache (~> 0.2) + jekyll-paginate (~> 1.1) + jekyll-seo-tag (~> 2.8) + jekyll-sitemap (~> 1.4) + jekyll-watch (2.2.1) + listen (~> 3.0) + json (2.18.1) + kramdown (2.5.2) + rexml (>= 3.4.4) + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.10.0) + logger + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) + mercenary (0.4.0) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (7.0.2) + rake (13.3.1) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) + ffi (~> 1.0) + rexml (3.4.4) + rouge (4.7.0) + safe_yaml (1.0.5) + sass-embedded (1.97.3-x64-mingw-ucrt) + google-protobuf (~> 4.31) + sass-embedded (1.97.3-x86_64-linux-gnu) + google-protobuf (~> 4.31) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + tzinfo-data (1.2025.3) + tzinfo (>= 1.0.0) + unicode-display_width (2.6.0) + wdm (0.2.0) + webrick (1.9.2) + +PLATFORMS + x64-mingw-ucrt + x86_64-linux + +DEPENDENCIES + http_parser.rb (~> 0.6.0) + jekyll-feed (~> 0.17) + jekyll-paginate (~> 1.1) + jekyll-seo-tag (~> 2.8) + jekyll-sitemap (~> 1.4) + jekyll-theme-chirpy (~> 7.3) + tzinfo (>= 1, < 3) + tzinfo-data + wdm (~> 0.2) + +CHECKSUMS + addressable (2.8.8) sha256=7c13b8f9536cf6364c03b9d417c19986019e28f7c00ac8132da4eb0fe393b057 + base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b + bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7 + colorator (1.1.0) sha256=e2f85daf57af47d740db2a32191d1bdfb0f6503a0dfbc8327d0c9154d5ddfc38 + concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab + csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f + em-websocket (0.5.3) sha256=f56a92bde4e6cb879256d58ee31f124181f68f8887bd14d53d5d9a292758c6a8 + eventmachine (1.2.7) sha256=994016e42aa041477ba9cff45cbe50de2047f25dd418eba003e84f0d16560972 + ffi (1.17.3-x64-mingw-ucrt) sha256=5f1d7d067a9a1058ad183dba25b05557cd51c85fc1768c49338eabc1cf242d7c + ffi (1.17.3-x86_64-linux-gnu) sha256=3746b01f677aae7b16dc1acb7cb3cc17b3e35bdae7676a3f568153fb0e2c887f + forwardable-extended (2.6.0) sha256=1bec948c469bbddfadeb3bd90eb8c85f6e627a412a3e852acfd7eaedbac3ec97 + google-protobuf (4.33.5-x64-mingw-ucrt) sha256=2286e8fd91dff6a161c45b66ad2a1a46e9a5eefb2496c68636b31d6e80eb5820 + google-protobuf (4.33.5-x86_64-linux-gnu) sha256=a782adf86bfba207740b49d7bb9ccdc25c4fb8f800fe222af62bce951149338a + http_parser.rb (0.8.1) sha256=9ae8df145b39aa5398b2f90090d651c67bd8e2ebfe4507c966579f641e11097a + i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5 + jekyll (4.4.1) sha256=4c1144d857a5b2b80d45b8cf5138289579a9f8136aadfa6dd684b31fe2bc18c1 + jekyll-archives (2.3.0) sha256=2dbd8ce22212fbace81fe2c9aa4152a6e21c748bcc626f135af5acfd813375f6 + jekyll-feed (0.17.0) sha256=689aab16c877949bb9e7a5c436de6278318a51ecb974792232fd94d8b3acfcc3 + jekyll-include-cache (0.2.1) sha256=c7d4b9e551732a27442cb2ce853ba36a2f69c66603694b8c1184c99ab1a1a205 + jekyll-paginate (1.1.0) sha256=880aadf4b02529a93541d508c5cbb744f014cbfc071d0263a31f25ec9066eb64 + jekyll-sass-converter (3.1.0) sha256=83925d84f1d134410c11d0c6643b0093e82e3a3cf127e90757a85294a3862443 + jekyll-seo-tag (2.8.0) sha256=3f2ed1916d56f14ebfa38e24acde9b7c946df70cb183af2cb5f0598f21ae6818 + jekyll-sitemap (1.4.0) sha256=0de08c5debc185ea5a8f980e1025c7cd3f8e0c35c8b6ef592f15c46235cf4218 + jekyll-theme-chirpy (7.4.1) sha256=21376c0707cc21c1ed088fd4a55b64ebc263351fbe5cbe8edc107ac2b0a404c4 + jekyll-watch (2.2.1) sha256=bc44ed43f5e0a552836245a54dbff3ea7421ecc2856707e8a1ee203a8387a7e1 + json (2.18.1) sha256=fe112755501b8d0466b5ada6cf50c8c3f41e897fa128ac5d263ec09eedc9f986 + kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 + liquid (4.0.4) sha256=4fcfebb1a045e47918388dbb7a0925e7c3893e58d2bd6c3b3c73ec17a2d8fdb3 + listen (3.10.0) sha256=c6e182db62143aeccc2e1960033bebe7445309c7272061979bb098d03760c9d2 + logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + mercenary (0.4.0) sha256=b25a1e4a59adca88665e08e24acf0af30da5b5d859f7d8f38fba52c28f405138 + pathutil (0.16.2) sha256=e43b74365631cab4f6d5e4228f812927efc9cb2c71e62976edcb252ee948d589 + public_suffix (7.0.2) sha256=9114090c8e4e7135c1fd0e7acfea33afaab38101884320c65aaa0ffb8e26a857 + rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c + rb-fsevent (0.11.2) sha256=43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe + rb-inotify (0.11.1) sha256=a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e + rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 + rouge (4.7.0) sha256=dba5896715c0325c362e895460a6d350803dbf6427454f49a47500f3193ea739 + safe_yaml (1.0.5) sha256=a6ac2d64b7eb027bdeeca1851fe7e7af0d668e133e8a88066a0c6f7087d9f848 + sass-embedded (1.97.3-x64-mingw-ucrt) sha256=72994dcfacc0559789a3624c78c5fa66962379bb8d8c0d6dea85906c5b6e66ee + sass-embedded (1.97.3-x86_64-linux-gnu) sha256=173a4d0dbe2fffdf7482bd3e82fb597dfc658c18d1e8fd746aa7d5077ed4e850 + terminal-table (3.0.2) sha256=f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91 + tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b + tzinfo-data (1.2025.3) sha256=b546e2f1e5e5c40a0c619aafb24e30d3d6a128c2f689278f721b7286dd499562 + unicode-display_width (2.6.0) sha256=12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a + wdm (0.2.0) sha256=c46d9dcb6d375199ca07465bc67669ee8f041aeaa55dd7dafe6de4dd97b27647 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 + +BUNDLED WITH + 4.0.6 diff --git a/README.md b/README.md index 2e700fe..f098f82 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

- LangExtract Logo + IT咖啡馆

@@ -8,17 +8,62 @@ GitHub一周热点汇总,每周分享热门项目,B站、YouTube发布视频版本,搜:IT咖啡馆 -- 第102期:[4000行代码的openclaw能用吗](post/103.md) -- 第102期:[全球爆火的AI助理真的那么好用吗?](post/102.md) -- 第101期:[IT咖啡馆的Github一周热点上线了](post/101.md) -- 第100期:[火爆的AI编程代理](post/100.md) -- 第99期:[提升Claude code效率10倍的工具?](post/99.md) -- 第98期:[AI文档检索框架](post/98.md) -- 第97期:[自动操作手机的智能助手](post/97.md) -- 第96期:[FLUX发布了新一代,但似乎没那么惊艳了](post/96.md) +> 🏗️ 本站基于 [Jekyll](https://jekyllrb.com/) + [Chirpy](https://github.com/cotes2020/jekyll-theme-chirpy) 主题构建,通过 GitHub Actions 自动部署。 -## RSS订阅文档 -使用RSS 订阅软件可以快速知道本周github热点项目 +### 往期内容 -订阅地址为 -[https://itcoffee66.github.io/githubweekly/rss.xml](https://itcoffee66.github.io/githubweekly/rss.xml) +- 第103期:[4000行代码的openclaw能用吗](post/103.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/103.html) +- 第102期:[全球爆火的AI助理真的那么好用吗?](post/102.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/102.html) +- 第101期:[IT咖啡馆的Github一周热点上线了](post/101.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/101.html) +- 第100期:[火爆的AI编程代理](post/100.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/100.html) +- 第99期:[提升Claude code效率10倍的工具?](post/99.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/99.html) +- 第98期:[AI文档检索框架](post/98.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/98.html) +- 第97期:[自动操作手机的智能助手](post/97.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/97.html) +- 第96期:[FLUX发布了新一代,但似乎没那么惊艳了](post/96.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/96.html) + +## RSS 订阅 + +使用 RSS 订阅软件可以快速知道本周 GitHub 热点项目 + +订阅地址:[https://itcoffee66.github.io/githubweekly/rss.xml](https://itcoffee66.github.io/githubweekly/rss.xml) + +## 项目结构 + +``` +├── _weekly/ # Jekyll 集合源文件(保留原始文件名:96.md, 97.md, ...) +├── _config.yml # Jekyll 站点配置 +├── _tabs/ # Chirpy 主题导航页(关于、归档、分类、标签) +├── _data/ # 站点数据文件(联系方式、分享按钮等) +├── asset/ # 静态资源(图片、Logo 等) +├── post/ # 原始 Markdown 源文件(供 GitHub 浏览) +├── scripts/ # 旧版 Python 脚本(已停用) +├── Gemfile # Ruby 依赖声明 +└── .github/workflows/ + └── pages-deploy.yml # GitHub Actions 自动部署工作流 +``` + +## 本地开发 + +```bash +# 安装依赖 +bundle install + +# 启动本地服务器 +bundle exec jekyll serve + +# 访问 http://127.0.0.1:4000/githubweekly/ +``` + +## 新增文章 + +在 `_weekly/` 目录下创建新文件,文件名即期号,如 `104.md`: + +```yaml +--- +title: "GitHub一周热点第NNN期" +date: "YYYY-MM-DD" +description: "本期摘要" +--- + +正文内容... +``` diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..c472037 --- /dev/null +++ b/_config.yml @@ -0,0 +1,151 @@ +# --------------------------------------------------------------------------- +# 站点基本配置 - Jekyll & Chirpy 主题 +# --------------------------------------------------------------------------- + +# 导入 Chirpy 主题 +theme: jekyll-theme-chirpy + +# 网页语言(对应 _data/locales/ 下的翻译文件) +# http://www.lingoes.net/en/translator/langcode.htm +lang: zh-CN + +# 时区设置 https://zones.arilyn.cc +timezone: Asia/Shanghai + +# --------------------------------------------------------------------------- +# jekyll-seo-tag 设置 +# https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md +# --------------------------------------------------------------------------- + +title: Github Weekly # 站点标题 +tagline: "IT咖啡馆的GitHub每周热点" # 副标题/标语 +description: >- # SEO 描述 & Atom Feed 描述 + 每周分享GitHub热门开源项目,涵盖AI、开发工具、框架等领域。 + B站、YouTube同步发布视频版本,搜:IT咖啡馆 + +# 站点 URL(不以 / 结尾) +url: "https://itcoffee66.github.io" + +# 项目站点的 baseurl(以 / 开头,不以 / 结尾) +baseurl: "/githubweekly" + +github: + username: itcoffee66 + +social: + name: IT咖啡馆 + links: + - https://github.com/itcoffee66 + - https://space.bilibili.com/ # 替换为实际 B 站主页 + +# --------------------------------------------------------------------------- +# 站点外观与功能 +# --------------------------------------------------------------------------- + +# 站点图标(侧边栏头像) +avatar: "/asset/it-coffee-circle.png" + +# 文章目录(TOC)全局开关 +toc: true + +# 评论系统(暂不开启,后续可配置 giscus 等) +comments: + provider: # [disqus | utterances | giscus] + +# --------------------------------------------------------------------------- +# 自托管静态资源 +# --------------------------------------------------------------------------- +# assets: +# self_host: +# enabled: false + +# PWA 配置 +pwa: + enabled: false + +# 分页:每页显示文章数 +paginate: 10 + +# --------------------------------------------------------------------------- +# 订阅源配置 +# 使用仓库根目录的 rss.xml 静态文件,不由 Jekyll 生成 +# --------------------------------------------------------------------------- + +# --------------------------------------------------------------------------- +# 集合、永久链接与默认值 +# --------------------------------------------------------------------------- + +# 使用 Jekyll Collection 而非 _posts,以保留原始文件名(96.md, 97.md, ...) +# _weekly/ 目录中的 md 文件会被输出为 /asset/html/96.html 等 +collections: + weekly: + output: true + sort_by: date + permalink: /asset/html/:name.html + tabs: + output: true + sort_by: order + +defaults: + - scope: + path: "" + type: weekly + values: + layout: post + comments: true + toc: true + - scope: + path: _drafts + values: + comments: false + - scope: + path: "" + type: tabs + values: + layout: page + permalink: /:title/ + +# --------------------------------------------------------------------------- +# Sass & HTML 压缩 +# --------------------------------------------------------------------------- +sass: + style: compressed + +compress_html: + clippings: all + comments: all + endings: all + profile: false + blanklines: false + ignore: + envs: [development] + +# --------------------------------------------------------------------------- +# 排除文件(不参与 Jekyll 构建) +# --------------------------------------------------------------------------- +exclude: + - "*.gem" + - "*.gemspec" + - scripts/ + - post/ # 原始 Markdown 源文件(保留供 GitHub 浏览) + - asset/html/ # 旧的 Python 脚本生成的 HTML(由 Jekyll 重新生成) + # - rss.xml # 保留根目录 rss.xml 作为静态文件输出 + - node_modules/ + - vendor/ + - Gemfile.lock + - LICENSE + - "*.config.js" + +# --------------------------------------------------------------------------- +# Kramdown Markdown 处理器 +# --------------------------------------------------------------------------- +kramdown: + footnote_backlink: "↩︎" + syntax_highlighter: rouge + syntax_highlighter_opts: + css_class: highlight + span: + line_numbers: false + block: + line_numbers: true + start_line: 1 diff --git a/_data/contact.yml b/_data/contact.yml new file mode 100644 index 0000000..a47d1de --- /dev/null +++ b/_data/contact.yml @@ -0,0 +1,30 @@ +# ------------------------- +# 联系方式配置 +# 侧边栏底部显示的社交链接图标 +# ------------------------- + +- type: github + icon: "fab fa-github" + url: "https://github.com/itcoffee66" + +- type: bilibili + icon: "fab fa-bilibili" + url: "https://space.bilibili.com/65564239" # 请替换为实际 B 站主页 + +- type: youtube + icon: "fab fa-youtube" + url: "https://www.youtube.com/@it-coffee" + +# - type: twitter +# icon: "fab fa-x-twitter" +# url: "" + +# - type: email +# icon: "fas fa-envelope" +# noblank: true +# url: "mailto:your-email@example.com" + +- type: rss + icon: "fas fa-rss" + noblank: true + url: "/feed.xml" diff --git a/_data/share.yml b/_data/share.yml new file mode 100644 index 0000000..6f63d90 --- /dev/null +++ b/_data/share.yml @@ -0,0 +1,14 @@ +# ------------------------- +# 文章分享按钮配置 +# ------------------------- + +platforms: + - type: Twitter + icon: "fab fa-x-twitter" + link: "https://twitter.com/intent/tweet?text=TITLE&url=URL" + - type: Facebook + icon: "fab fa-facebook-square" + link: "https://www.facebook.com/sharer/sharer.php?title=TITLE&u=URL" + - type: Telegram + icon: "fab fa-telegram" + link: "https://t.me/share/url?url=URL&text=TITLE" diff --git a/_includes/metadata-hook.html b/_includes/metadata-hook.html new file mode 100644 index 0000000..574939f --- /dev/null +++ b/_includes/metadata-hook.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/_tabs/about.md b/_tabs/about.md new file mode 100644 index 0000000..ab9f2b7 --- /dev/null +++ b/_tabs/about.md @@ -0,0 +1,31 @@ +--- +layout: page +icon: fas fa-info-circle +order: 4 +--- + +# IT咖啡馆 + +GitHub一周热点汇总,每周分享热门项目。 + +B站、YouTube同步发布视频版本,搜:**IT咖啡馆** + +## 关于本站 + +本站每周更新 GitHub 热点开源项目推荐,涵盖: + +- AI / 大模型相关工具与框架 +- 开发者效率提升工具 +- 新兴技术与趋势分享 +- 实用开源项目推荐 + +## 联系方式 + +- GitHub: [itcoffee66](https://github.com/itcoffee66) +- 仓库: [githubweekly](https://github.com/itcoffee66/githubweekly) + +## RSS 订阅 + +使用 RSS 订阅软件可以快速知道本周 GitHub 热点项目 + +订阅地址:[rss.xml]({{ '/rss.xml' | relative_url }}) diff --git a/post/100.md b/_weekly/100.md similarity index 100% rename from post/100.md rename to _weekly/100.md diff --git a/post/101.md b/_weekly/101.md similarity index 100% rename from post/101.md rename to _weekly/101.md diff --git a/post/102.md b/_weekly/102.md similarity index 100% rename from post/102.md rename to _weekly/102.md diff --git a/post/103.md b/_weekly/103.md similarity index 100% rename from post/103.md rename to _weekly/103.md diff --git a/post/96.md b/_weekly/96.md similarity index 100% rename from post/96.md rename to _weekly/96.md diff --git a/post/97.md b/_weekly/97.md similarity index 100% rename from post/97.md rename to _weekly/97.md diff --git a/post/98.md b/_weekly/98.md similarity index 100% rename from post/98.md rename to _weekly/98.md diff --git a/post/99.md b/_weekly/99.md similarity index 100% rename from post/99.md rename to _weekly/99.md diff --git a/asset/html/100.html b/asset/html/100.html deleted file mode 100644 index 307c709..0000000 --- a/asset/html/100.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - GitHub一周热点第100期 - - - - - - -

GitHub一周热点第100期

-
发布时间:2026-01-03
-

本期视频链接

-

GitHub 一周热点第100期(2025/12/29 - 2026/1/3),本期内容包括开源的 AI 编程代理、AI 开发技能框架、自动操作电脑agent、深度研究agent、icloud下载工具和微信公众号文章导出工具。
-最后还有 2 份资料分享。
-不知不觉我的栏目已经做到了100期,自己给自己撒个花,但是最近也一直在迷茫,未来应该怎么把栏目做得越来越好呢,希望大家可以给我多提宝贵建议。那不多说,进入正式内容。
-如果觉得内容不错,别忘了点赞关注支持一下。

-

1 opencode

- -
-

2 Superpowers

- -

Superpowers 是一个AI 编程代理的括展工作流系统,可以给给 Claude Code / Codex / OpenCode 等智能编程助手 提供一套完整的软件工程实时技能库和工作流程。
-我们都知道在大项目里,AI经常表现不稳定,那Superpowers就强行给它植入一套“资深工程师”的工作流,让AI按规矩办事。
-这个工具主要是为 Claude Code 设计的插件,在Claude code里可以直接通过marketplace来安装。如果是codex或者opencode需要手动安装,但是现在是AI时代了,你也只需要告诉codex获取并按指令安装就行了,还是很方便的。
-安装好就可以看到它的指令,brainstorm,write-plan,excute-plan。
-比如输入了需求,他就会自动出发brainstorm技能,像一位经验丰富的架构师,先通过多轮问答与我们对齐需求。然后生成一份尽量详细的开发基准文档,最后再开始实现代码。
-实际上这当中就是实现了很多个agent skill,我上一期内容中也提到了,skill现在是一个非常火的概念。其实作为skill学习的话,这个项目也非常很值得去查看。

-
-

3 TARS

- -

TARS 是字节跳动开源的一个多模态 AI Agent Stack,其实这里包含2个开源项目,一个是Agent TARS实现基本的能力,它将 GUI Agent 和 Vision 的强大功能带入你的终端、计算机、浏览器和产品中,提供命令行和网页的用户界面。
-另一个是UI-TARS Desktop,是一个由 UI-TARS 和 Seed-1.5-VL/1.6 系列模型驱动的原生 GUI agent,用 视觉语言模型 (VLM) 实现对电脑界面(GUI)的理解与交互 —— 也就是说,你可以通过自然语言命令(中文/英文)让 AI 模拟鼠标/键盘操作,在桌面应用、浏览器等环境中完成任务。
-这类工具应该是26年各大厂商的一个重点发力方向,随着技术的逐渐成熟,人们越来越希望AI可以真的实现自主操作电脑完成任务,产品方面比如说之前的豆包电脑、豆包手机等,但是目前来说主要的问题,还是在于操作的速度、准确性和稳定性。

-
-

4 MiroThinker

- -

MiroThinker 是一个 开源的深度研究代理(open-source search agent model),由 MiroMindAI 维护,目标是构建一个能进行工具增强推理 + 复杂现实世界信息检索的 AI 模型,使其在类似 Deep Research(深度研究)任务中表现出更强的能力。
-MiroThinker1.5中 提出了“深度交互 Scaling”的概念——不再卷参数,而是让智能体在环境中"试错 + 反思",完美模拟人类处理复杂问题的方式。
-官方给出的信息是这种方式非常有效,随着模型与环境交互的深度和频率不断增加,其在多个基准测试中的性能均呈现出可预测的提升,在多个 benchmark 上刷新开源代理表现记录。235B 规模跑出全球第一梯队表现,30B 版本以 1/20 的推理成本对标万亿参数模型。
-而且它说成功预测 Polymarket 题目、A 股涨停板及 GTA 6 发布趋势。
-这个大A都能预测的话,那我还是真的干点兴趣,我要试试后面能不能预测准我的持仓股。

-
-

5 icloud_photos_downloader

- -

iCloud Photos Downloader 是一个由社区维护的跨平台命令行工具,用来把你 iCloud 照片库里的全部照片和视频下载到本地(支持 Linux、Windows、macOS、甚至 NAS 设备)。它不是通过 iCloud Drive 同步,而是直接通过 Apple 的云接口获取文件,因此更适合做 备份、迁移或定期同步任务。
-支持多种操作模式,包括Copy、sync、move,还可以提供自动去重和 断点检查的能力,还是比较实用的。
-项目本身用 Python 编写,使用上可以在release页面下载安装包,也可以通过像pip、docker、Homebrew等方法来安装和使用。
-使用时候,要先在 iPhone/iPad 上打开 “访问 iCloud 数据在 Web 上”(Access iCloud Data on the Web) 设置。
-还要关闭 高级数据保护(Advanced Data Protection),否则可能导致访问被拒绝

-
-

6 wechat-article-exporter

- -

WeChat-Article-Exporter 是一个专注于导出 微信公众号文章 的开源工具,它把公众号文章抓取下来并转换为 Markdown、HTML 或 PDF 格式,适合用来做归档、备份、离线阅读、笔记整理等用途。
-这个项目本身不是用微信官方 API(因为官方没有公开的提取文章 API),而是通过解析文章在浏览器端的数据(来提取内容。
-使用的时候需要先扫码登录一个公众号,然后就可以通过搜索来添加公众号,再自动抓取文章内容、标题、作者、正文、图片等,并根据所选格式输出到本地文件,然后可以考虑在通过AI或者其他手段来发掘更多价值。整体做的还是挺完整的,看起来不错。
-最简单的可以直接在线使用,但是因为要登录公众号,所以肯定会感觉不太放心,也可以自己本地部署,通过docker或者是通过源码都可以,都比较容易。

-
-

one more thing

-

最后还是分享2个资料,第一份是《2025抖音科技内容生态报告》,相信大家都有感觉这一年从年初的deepseek,到后来的manus,gemini3,科技浪潮以前所未有的速度和规模席卷而来,我们又一次站在了历史的临界点。可惜报告里值得一看的科技视频里没有我,还是需要努力呀。
-第二个是《开发者技术及生态发展 2030》,infoq的一份报告,现在的开发者在AI的浪潮中有着各种不同的心态,有的是担忧会被取代,有的觉得未来以来当乘风而上,反正无论心态如何,都可以了解下技术生态的发展情况。
-有需要的可以告诉我,以上就是本周的全部内容,那我们下次再见。

-

100期分享内容:
-我用夸克网盘给你分享了「一周热点100期」,链接:https://pan.quark.cn/s/32a4e4b816fe

- - \ No newline at end of file diff --git a/asset/html/101.html b/asset/html/101.html deleted file mode 100644 index 111e0db..0000000 --- a/asset/html/101.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - GitHub一周热点第101期 - - - - - - -

GitHub一周热点第101期

-
发布时间:2026-01-24
-

视频

-

本期视频链接

-

GitHub 一周热点第101期(2025/1/18 - 2026/1/24),本期内容包括Github一周热点的开源仓库,开源版cowork,数据工程实战课程,浏览器MCP,专业设计的agent skill和无代码galgame引擎。
-最后还有 2 份资料分享。
-如果觉得内容不错,别忘了点赞关注支持一下。

-

1 Githubweekly

- -

朋友这个项目绝对是值得你点个star的项目,因为这个是IT咖啡馆自己的。之前很多朋友一直想要文字版的每一期的内容,我也一直在考虑以什么样的形式来分享会更好。当然,肯定不是因为我很懒所以一直没做。
-最后我决定还是搞一个Github仓库吧,以后每一期的文字的内容我会发布到这个仓库里,目前往期的内容还没有全部都加进去,我会逐步都放进去。前几天也在搞一搞AI的工作流来做这个事,但是都还是不特别稳定,总会有一些小内容错误,后面我再逐渐改进吧。
-放到Github还有个好处,如果有想提建议或者想投稿项目的话,可以直接提Issue。
-后续我再考虑下要不要再搞个静态页或这个其他内容,总之先开个头吧。

-
-

2 Eigent

- -

最近cowork一经发布就获得很多关注,它让 Claude 变成一个能操作你电脑文件的 AI Agent,热度一高开源就马上有很多跟上的,在Github上有不少自称是开源cowork的,这里热度比较高的有3个,eigent、openwork、AionUI。这当中eigent的star最多,我们就介绍下它。
-Eigent 自称是全球首个 多智能体工作流 桌面应用程序,帮助您构建、管理和部署定制化的 AI 工作团队,将最复杂的工作流程转化为自动化任务。
-图片
-它基于 CAMEL-AI 多智能体框架 构建,通过并行调度多个专责 agent 协同工作来完成跨步骤任务。目前看能做的工作还是那些,比如做研究、自动定行程、操作本地文件等等。
-它直接内置了几个智能体,包括:
-- 开发智能体:编写和执行代码,运行终端命令。
-- 搜索智能体:搜索网络并提取内容。
-- 文档智能体:创建和管理文档。
-- 多模态智能体:处理图像和音频。
-目前它提供了可自托管部署的版本和云版本,还有一个企业版,应该是为了后续变现的准备。
-模型方面你可以使用在线API,也可以使用本地的模型。
-图片
-现在整体来看eigent做了不少内容,但是也还是不够完善,这可能也是它开源的一个原因吧。感兴趣的可以自己去试试。

-
-

3 data-engineering-zoomcamp

- -

Data Engineering Zoomcamp 是由 DataTalks 社区维护的开源数据工程训练营课程仓库,它是一个完整的 学习项目 + 在线课程材料集合,内容覆盖从基础工具到生产级数据管道设计的全流程教程、代码示例与实践任务。旨在帮助你掌握构建真实世界数据工程系统所需的核心技能。
-图片
-想要学习课程的话,需要你有一些基本编程经验,最好是Python 编程经验,还需要熟悉 SQL。
-课程是9周,一共是6个大模块和一个final project,每个模块都有很多的视频,看起来不错。比较适合那些想进入数据工程领域的初学者。
-图片
-在数据工程方面我也不是太专业,有专业的朋友可以聊聊这个课程的实际质量如何。

-
-

4 chrome-devtools-mcp

- -

Chrome-DevTools-MCP 是一个开源的 MCP server,最近好像风头在agent skill,大家似乎要忘了MCP,所以我们选一个MCP。它专门为支持 MCP 的 AI 编程助手(例如 Claude、Cursor、Copilot、Gemini CLI、Cline 等)提供 对真实 Chrome 浏览器实例的访问与控制能力。它让这些智能体不仅能生成代码,还能 启动 Chrome、导航页面、调试、抓取性能数据、分析网络/控制台信息,从而实现更可靠的自动化、调试和性能优化。

-

使用的话就是在你的工具里去配置MCP,这里有各种版本配置说明,配置好后就可以输入命令来使用了。
-在使用Chrome-DevTools-MCP 的时候相较于playwright mcp,它可以很方便的保留登录信息,这在很多调试场景和AI自动化场景中会方便很多。另外Chrome-DevTools-MCP支持的功能也比较全。
-整体来说Chrome-DevTools-MCP绝对是一个非常实用的MCP server,这个工具比较适合前端开发者和性能工程师、代码自动化与测试自动化,以及CICD。

-

5 ui-ux-pro-max-skill

- -

看完了一个MCP,那我们再来看一个非常不错的agent skill。
-UI-UX Pro Max Skill 是一个 面向 AI 编程助手(AI Skill) 的开源设计智能库,核心目的是让像 Claude Code、Cursor、Windsurf、Copilot、OpenCode 等助手 生成的界面 更专业、更符合 UI/UX 实践标准,不再只是简单“写点样式堆在一起”。这个 Skill 本质上是一个 结构化的设计知识库 + 设计系统生成引擎,在 AI 接到 UI/UX 相关任务的时候自动注入背景知识与规范,帮助输出高质量、跨平台的界面设计与代码建议。
-图片
-安装的话,你可以根据自己喜欢的工具来选择,用自带的CLI工具或者是手动安装。
-使用的话可以直接说开发什么内容,比如我让它开发宠物食品的landingpage,然后它会根据信息去自己推理,然后搜索自己的方案信息,选择合适的设计方案,最终给出一个完整系统风格设计。可以看下我实际体验的例子的效果。
-图片
-它包含了很多内容,像67 个UI样式,96 种颜色方案、56 种字体搭配、100条行业特定推理规则等内容。
-提示一下,使用时如果你安装的skill比较多,担心冲突,可以指定使用这个技能来完成任务。
-如果你困扰AI写的UI,AI味太浓,那这个确实可以帮到你。同时对于像我这样对设计不是太懂的人,这其中内容也很值得去了解的,可以帮助更好的理解vibe coding。

-
-

6 VoidNovelEngine

- -

VoidNovel Engine 是一款专为现代视觉小说和叙事游戏开发者打造的开源引擎,那可以用它来做什么呢,就比如开发galgame。
-图片
-它采用了创新性的无代码开发范式,使用流程图式的节点编辑,无需再去死磕晦涩抽象的脚本语言,而是用直观的拖拽、连接节点来构建完整的游戏逻辑、分支对话和演出流程,让开发过程如同绘制思维导图一般自然流畅。
-除了设计的思路和Galgame的创作逻辑非常契合,它还提供大量开箱即用的专用节点(如对话、选项、转场、角色控制等)。
-图片
-可以直接从release下载打包好的二进制版本,使用的方法项目也提供了比较详细的文档,现在AI在生成素材上也方便了许多,感觉可以让galgame的开发更容易上手。
-你也知道我不是特别特别喜好galgame,那就由各位爱好者自己去深入研究吧。

-
-

one more thing

-

最后还是分享2个资料,第一份是《“情绪疗愈”消费市场趋势盘点》,现代人的情绪问题是一个非常值得关注的方向,很多人都有隐性的情绪问题,我之前也有视频聊过情绪问题和AI结合的思考,这个报告是从市场的角度来分析情绪疗愈。

-

第二个是《AI智能体圣经》,CB insight发布,随着AI agent市场的不断升温,企业需要有自己正确的策略,报告分析超过500家以上的AI agent初创公司,给出了2026的趋势分析和洞察。
-有需要的可以告诉我,以上就是本周的全部内容,那我们下次再见。

-

101期分享内容:
-我用夸克网盘给你分享了「一周热点101期」,链接:https://pan.quark.cn/s/015fd96302ba

- - \ No newline at end of file diff --git a/asset/html/102.html b/asset/html/102.html deleted file mode 100644 index 8523620..0000000 --- a/asset/html/102.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - GitHub一周热点第102期 - - - - - - -

GitHub一周热点第102期

-
发布时间:2026-01-31
-

视频

-

本期视频链接

-

GitHub 一周热点第102期(2025/1/25 - 2025/1/31),本期内容包括爆火的个人AI助理,React 生成视频,kimi最新开源模型,新型 RAG和提取非结构化文本的库。
-最后还有 2 份资料分享。
-这期稍微做一个调整,把项目数量从6个改回5个,因为有时候AI的热点太多,强行区分工具和AI我觉得也不是特别好。
-如果觉得内容不错,别忘了点赞关注支持一下。

-

1. OpenClaw

- -

2. Remotion

- -

3. Kimi K2.5

- -

另外它还发布了kimi code,现在真是每家都要出一个自己的Claude code,我也特意开了一个中档的订阅,准备去好好试用一下效果,要是不错再来和大家分享。
-agent
-还有就是这次kimi出了一个agent集群能力,我还没具体使用,看起挺有意思。
-目前网上的测试来看K2.5的成本大概在gpt的1/5,所以成本这一块还是非常有吸引力的,毕竟现在各种工具那真是一个费token。

-
-

4. PageIndex

- -
-

5. LangExtract

- -
-

One More Thing

-

最后还是分享2个资料,第一份是《爆款AI漫剧教学手册》,看着可能是北航的教授弄的,内容还行属于是新手科普向的,不算太有深度,但是理解也不会太难,对AIGC不太了解的可以当科普去了解一下相关内容。
-第二个是《2025年上海市“AI+制造”发展白皮书》,我也忘了从哪看到这个报告,北上广深4个一线城市,上海一直是中国的第一都市,在AI浪潮中会有什么样发展,其实我很好奇,后面这个顺序会不会再有变化。
-有需要的可以告诉我,以上就是本周的全部内容,那我们下次再见。

- - \ No newline at end of file diff --git a/asset/html/103.html b/asset/html/103.html deleted file mode 100644 index 9442568..0000000 --- a/asset/html/103.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - GitHub一周热点第103期 - - - - - - -

GitHub一周热点第103期

-
发布时间:2026-02-07
-

视频

-

本期视频链接

-

GitHub 一周热点第103期(2025/2/1 - 2026/2/7),本期内容包括超轻量的clawdbot、编程智能体的记忆工具、聊天记录分析工具、视觉agent框架和键盘、鼠标统计工具。
-最后还有 2 份资料分享。

-

1. NanoBot

- -

NanoBot是香港大学数据科学实验室开源的一个超级轻量的个人AI助理,NanoBot的灵感就是来自于OpenClaw。最近OpenClaw可以说是火出天际,所有人都在不停的说OpenClaw,但是它那足足 43 万行的代码量给劝退很多感兴趣的人。
-而NanoBot仅用 4000 行代码,就复刻了 OpenClaw 的核心功能,相比 OpenClaw,它实实在在是超轻量。
-架构上来说,它参考了OpenClaw,从聊天工具接入,然后到底层的执行。最核心的能力其实有3个,自然语言驱动的任务执行、记忆模块(持久化上下文)和插件化动作 / 工具调用。
-agent
-目前支持接入Telegram、WhatsApp 和飞书等。
-agent
-模型也支持API和本地的,所以如果觉得成本太高,可以考虑本地。

-

现在很多朋友对OpenClaw、NanoBot有很多负面的评价,我想说几句,OpenClaw能火本质是它符合人们对于AI未来形态的预期,很多人觉得它不实用,很多事用Claude Code可以干的更好,但是要知道Claude Code对大多数人来说是很难的,不能用幸存者偏差来看待问题,当然这些工具现在都还不成熟,但是方向是非常值得期待的。

-
-

2. Beads

- -

Beads是专为 编程智能体设计的 外部记忆工具。

-

如果你平时用 AI 写一些复杂点的项目,很容易很容易遇到上下文超出,然后就忘了前面做什么,一些编程智能体的处理方法是用markdown来记录,有什么要做,已经做了什么。

-

Beads用具备依赖感知的图结构取代传统杂乱无章的 Markdown 任务清单,提供显式依赖管理、执行任务溯源、会话状态持久化、多智能体任务隔离分配与语义化审计追踪能力。
-agent
-安装的话就通过项目给的一键安装脚本或者是npm命令,会全局安装bd命令,不会放到具体项目。

-

然后你需要进入到项目,执行bd init,它会自动去做初始化配置,如果配置时候遇到问题可以bd doctor,查看说明去解决一下。最后把Use 'bd' for task tracking写入到AGENTS.md里。

-

在进入编程工具的时候,agent会识别到,使用bd去规划和管理开发任务。
-agent
-它本质上是一个基于 Git 的任务管理系统,它会把任务拆解得很细,存成 JSON 格式放在你的仓库里,这样 AI 就能随时知道我现在干到哪一步了、下一步该干啥,哪怕任务跨了好几天也不会断片。

-
-

3. ChatLab

- -

ChatLab 是一个免费、开源、本地化的,专注于分析聊天记录的应用。通过 AI Agent 和灵活的 SQL 引擎,你可以自由地拆解、查询甚至重构你的社交数据。
-agent
-在电脑或者手机上,我觉得蕴含个人信息量最大的就是聊天记录了,它可是能让闺蜜瞬间翻脸,快死的人也能一秒就活。所以查询、分析聊天记录,我觉得很多人都会很好奇,而且这还是完全在本地的,也就不会有隐私泄露。

-

ChatLab支持多种聊天软件格式导入,并在后台转换成统一的标准化结构,聊天数据被存入本地 SQLite 数据库,还内置了AI Agent,集成 10+ Function Calling 工具,支持动态调度,深度挖掘聊天记录中的更多有趣。还能做多维数据可视化,趋势分析、统计、过滤等操作,还能得到什么年度榜单之类的,挺有意思的。
-agent
-对于聊天记录的问题,ChatLab是不包括数据导出的,所以需要自己去导出数据,文档中说明了支持的类型,可以参考对应的工具去做,当然如果导出不太好,那是导出工具的问题。反正大家可以自己去玩玩吧。

-
-

4. Vision-Agents

- -

Vision Agents 是由 Stream(GetStream) 开源的一套 面向实时视频/语音感知的 AI agent框架,它不像普通视觉模型那样只输出推理结果,而是提供一整套构建 可观察视频、可听音频、可对话交互的智能体 的模块和 SDK。

-

使用的场景上可以使用它构建如实时视频助理、运动教练、监控分析、会议辅助智能体等,比如像官方给出的高尔夫教练,可以监测动作,给出指导建议。还有像快递包裹被盗监测,可以检测人脸、追踪包裹,并在包裹被盗时发出警报。不过在国内好像偷快递的很少见。

-

这个框架的重点在于让开发者能用 自己选择的模型来快速搭建低延迟的视觉/语音智能体,而无需为底层数据流处理和多模态协作重新造轮子。
-agent
-其实从思路上来说主要就是把原来分散的音、视频处理部分合理的整合,在开发使用的时候,除了准备大模型的API key,还需要准备stream的key,但是好处是有免费额度,另外几个例子它也都准备对应源代码来做参考。

-
-

5. KeyStats

- -

我们每天走路的时候会用微信运动之类的记录步数,那我们坐在电脑前工作时候可以记录点什么呢?

-

KeyStats 是一款轻量级的 macOS/Windows 原生菜单栏应用,它能够实时统计用户每日的键盘敲击次数、鼠标点击次数、鼠标移动距离和滚动距离,并将核心数据直接显示在菜单栏,让你随时掌握自己的使用情况。

-

安装的话Mac用户,可以通过brew,先执行第一行去订阅一下tap,然后在brew install 安装,windows用户去release里直接下载安装包。

-

它除了统计按键和点击的次数,还可以查看趋势,还可以按应用来分类查看统计,但是应用内就不会区分了,如果你所有的工作都在浏览器进行,那就全是浏览器了。还有有史以来的分析报告,另外它的数据也是在本地的。

-

所以我也在想如果是玩射击游戏的,是不是就wasd特别多,如果玩lol、DOTA2就是qwer特别多。

-
-

One More Thing

-

最后还是分享2个资料,第一份是《2026年AI玩具市场发展与用户洞察报告》,AI在玩具市场的融合一直是产业落地非常不错的一个方向,现在儿童玩具中很多都已经开始集成AI功能,之前在各种AI大会上也都看到了很多AI玩具的产品。其实报告还少了一个部分内容,就是成人玩具,而且这个市场盈利其实非常好。

-

第二份是《2025年人工智能趋势:AI智能体跨越鸿沟》,报告来自摩根士丹利和openai,生成式AI是历史上采用速度最快的通用技术,报告从多个维度去探讨了AI的发展和影响,比如宏观经济、公共市场、还有行业研究,最后也对2026做了一些预测。

-

有需要的可以告诉我,以上就是本周的全部内容,那我们下次再见。

-

103期分享内容:
-我用夸克网盘给你分享了「一周热点103期」,链接:https://pan.quark.cn/s/1e140c1b627a

- - \ No newline at end of file diff --git a/asset/html/96.html b/asset/html/96.html deleted file mode 100644 index a860239..0000000 --- a/asset/html/96.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - GitHub一周热点第96期 - - - - - - -

GitHub一周热点第96期

-
发布时间:2025-12-06
-

视频

-

本期视频链接

-

GitHub 一周热点第96期(2025/11/30 - 12/6),本期内容包括最新AI绘图模型、腾讯的视频生成模型、AI的个性化动态记忆、开源版的MAC Launchpad、笔记和知识库系统,还有Nginx可视化管理工具。
-最后还有 2 份资料分享。
-如果觉得内容不错,别忘了点赞关注支持一下。

-

1 Flux2

- -

作为 FLUX 系列的第二代产品,FLUX.2 此次推出 4 款基础模型 + 1 个 VAE 模型,这当中也是开源和闭源组合的形式,flux pro 和 flex 是闭源 , 而大家关注最多的是dev的开源开源版本。它是一个基于 FLUX.2 base模型的 32B 开源权重版本,Black Forest的原版模型比较大,我是跑不起来,如果家里有H100之类的可以试试,一般的要玩玩量化版本。
-上手话可以直接用comfyui,比较方便,我是直接用comfyui的fp8版本模型,也有33G,其实硬件门槛还是很高的,而且要注意如果商用的话需要获得授权,这里它的协议是特有的。
-FLUX.2这次的提升主要在三个关键维度:多图参考支持、4兆超高分辨率编辑和复杂文本渲染能力。你可以理解成是flux1+flux context的组合加升级。
-能处理最多10张参考图像,实现角色、产品和风格的高度一致性,一致性准确率超过95%。原生支持4兆像素(4MP)的图像生成与编辑,能清晰呈现织物纹理、金属反光等精细细节。
-但是这一次升级也能感到AI世界格局的变化,虽然这一次flux2很强,但flux1发布时的惊艳已经无法继续了,现在世界的目光都在nano Banana 身上,也能感到当小团队和大公司竞争时候的一种无奈吧。所以你更看flux,还是nano Banana 呢?

-
-

2 HunyuanVideo

- -

HunyuanVideo 是一个腾讯开源的视频生成基础模型框架,在这个框架之下之前也是发布过多款模型,最近HunyuanVideo1.5的发布,它是是一款视频生成模型,仅需 8.3B 参数实现了顶级画质,显著降低了使用门槛。它可在消费级 GPU 上流畅运行,让每一位开发者和创作者都能轻松上手,大概需要14GB显存可以完成视频生成,相对比较来说一般wan2.2大概需要20G以上,确实要更友好一些。
-如果想自己试玩的话,也可以直接使用comfyui,里面有配置好的工作流,可以下载模型来使用。
-HunyuanVideo-1.5同时支持文本驱动和图像引导两种生成模式,且共享统一架构避免了传统多模型切换的兼容性问题。这也衍生出了一些扩展玩法,像先用T2V生成场景,再截取关键帧作为I2V输入,实现多镜头叙事。
-HunyuanVideo1.5也发布了对应的技术报告,里面有介绍使用的关键技术,像SSTA稀疏注意力机制等,感兴趣的可以自己下来仔细研究一下。我觉得它和wan并能说谁比谁绝对好,希望可以共同进步吧。

-
-

3 Cognee

- -

Cognee 是一个开源工具和平台,可将您的原始数据转换为持久且动态的 AI 智能体记忆。它将向量搜索与图数据库相结合,构建出模块化、可扩展的 ECL数据处理管道,ECL是提取、认知化和加载,并且希望可以替换掉RAG。
-对比Cognee和RAG。
-RAG向量搜索更多是语义匹配,在处理“关系 /上下文 /结构化知识 /逻辑 /引用 /历史”的时候就很难搞。Cognee增加了知识图谱和持久化记忆的能力,所以它不仅能帮你查「有没有这条信息」,还能帮你查「这个信息和另一个信息有什么关系」,甚至「在历史对话 + 文档 + 媒体里,哪个结果最可信/最相关」。
-Cognee目前有两种部署方式,一种是完全自托管,数据可以完全保留在本地。如果觉得自己动手能力不足,那也可以使用在线的云服务。
-使用上项目的一个slogan是Memory for AI Agents in 6 lines of code。所以最简单的上手就参考项目里这个sample,比较简单。
-另外查看项目的相关文档也能看出,是agent长期记忆 + 知识管理方面做的相对比较完善的一个,所以不管是希望考虑使用还是学习都可以研究一下。

-
-

4 LaunchNext

- -
-

5 NoteDiscovery

- -
-

6 nginx-proxy-manager

- -

one more thing

-

最后还是分享2个资料,第一份《美团的大模型Agent实践手册》,上周分享了字节在Agent方面的实践,这周就又看到了美团的,那就在顺便也分享给大家,大家也可以对比对比两个巨头的差异。
-第二个是《强化学习的数学基础》,本书旨在以数学化但又通俗易懂的方式介绍强化学习的基本概念、基础问题和经典算法。内容会涉及两部分,第一部分介绍基本工具,第二部分介绍算法。
-有需要的可以告诉我,以上就是本周的全部内容,那我们下次再见。

-

96期分享内容:
-我用夸克网盘给你分享了「一周热点96期」,链接:https://pan.quark.cn/s/ad818fc0f6e5

- - \ No newline at end of file diff --git a/asset/html/97.html b/asset/html/97.html deleted file mode 100644 index dda85f4..0000000 --- a/asset/html/97.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - GitHub一周热点第97期 - - - - - - -

GitHub一周热点第97期

-
发布时间:2025-12-13
-

视频

-

本期视频链接

-

GitHub 一周热点第97期(2025/12/7 - 12/13),本期内容包括自动操作手机的Agent、AI画架构图、AI编程的指导、看板工具、GO语言的游戏引擎和具身智能资料库。
-最后还有 2 份资料分享。
-如果觉得内容不错,别忘了点赞关注支持一下。

-

1 Open-AutoGLM

- -
-

2 next-ai-draw-io

- -
-

3 agents.md

- -
-

4 fizzy

- -
-

5 kaiju

- -
-

6 Embodied-AI-Guide

- -
-

one more thing

-

最后还是分享2个资料,第一份《从零开始构建智能体》,Hello-Agents 是 Datawhale 社区的系统性智能体学习教程,希望带你理解如何实现代码开发Agent的整个流程,构建起属于自己的多智能体应用。
-第二个是《中美机器人发展深度分析报告》,最近我正好在看一些关于具身智能机器人的内容,然后发现了这个报告,他是从投资的角度来解析机器人企业的商业逻辑,感兴趣的可以看一下。
-有需要的可以告诉我,以上就是本周的全部内容,那我们下次再见。

- - \ No newline at end of file diff --git a/asset/html/98.html b/asset/html/98.html deleted file mode 100644 index 1cda0be..0000000 --- a/asset/html/98.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - GitHub一周热点第98期 - - - - - - -

GitHub一周热点第98期

-
发布时间:2025-12-20
-

视频

-

本期视频链接

-

GitHub 一周热点第98期(2025/12/14 - 12/20),本期内容包括AI文档理解检索框架、微软最新的TTS框架、Claude Code 记忆插件、自动化备份工具、 jellyfin的桌面端和linux桌面环境。
-最后还有 2 份资料分享。

-

1 WeKnora

- -

可以本地部署完全掌控数据,本地部署的话可以克隆项目,然后一条命令启动全部服务,也可以根据需要启动不同功能组合。

-
# 克隆项目
-git clone https://github.com/Tencent/WeKnora.git
-cd WeKnora
-
-# 配置环境变量
-cp .env.example .env
-# 编辑.env文件设置必要的配置
-
-# 启动所有服务(包含Ollama)
-./scripts/start_all.sh
-# 或使用Make命令
-make start-all
-
- -

同时WeKnora 作为微信对话开放平台的核心技术框架,能通过微信对话开放平台零代码接入微信生态。

-

可以把它用在很多常见的企业场景,比如内部知识库 / 文档问答:将产品手册、规范文档、培训资料等变成可查询的智能语义库。 科研资料分析:对学术论文、多格式报告库做语义抽取与智能问答。 客服与支持自动化:自动理解用户问题,结合文档数据生成专业回答。
-整个框架采用模块化架构,融合多模态预处理、语义向量索引、智能召回与大模型生成推理,构建起高效、可控的文档问答流程。
-图片
-技术角度,主开发语言是Golang,前端采用Vue,支持Python扩展,开源协议 采用MIT协议,在商用方面也非常友好。

-
-

2 VibeVoice

- -
-

3 claude-mem

- -

4 zerobyte

- -

还需要注意的是,Zerobyte 目前还在 0.x,版本间可能有大改动,适合特别愿意折腾的玩家来尝试。

-
-

5 jellyfin-desktop

- -
-

6 cosmic-epoch

- -

Cosmic是一个下一代的linux桌面环境,可以在最新发布的Pop!_OS上体验到Cosmic, Pop!_OS是基于 Ubuntu 的 Linux 发行版,一开始其特色就是定制的 GNOME 桌面。
-你对linux的印象是不是还是黑屏的命令行操作,服务器端的linux为了性能大多不装GUI,但是桌面版的linux其实现在桌面都做得很漂亮的。
-Cosmic提供高性能、高效率和个性化功能,可满足各种使用场景的需求。这个项目不是一个完整桌面环境,而是 Cosmic Shell UI 的一些关键模块。项目中列出了COSMIC 桌面系统的组成部分。
-如果你对于Linux桌面组件感兴趣或者想学习UI 系统工程化,都值得一逛

-
-

One More Thing

-

最后还是分享2个资料,第一份《生成式人工智能零售业全景观察白皮书》,是德勤出的一个报告,也是调研了很多连锁零售企业,报告里也有一些企业在人工智能方面的实践分析。
-第二个是《人形机器人生态报告》,这个是上海财经大学数字经济研究院的一个报告,以具⾝智能在技术-产业-市场-应⽤等⻆度的⽣态化进展为基础,针对人形机器人方向的一个观察和研究。
-有需要的可以告诉我,以上就是本周的全部内容,那我们下次再见。

-

98期分享内容:
-我用夸克网盘给你分享了「一周热点98期」,链接:https://pan.quark.cn/s/d2108283bc40

- - \ No newline at end of file diff --git a/asset/html/99.html b/asset/html/99.html deleted file mode 100644 index 9ab55d6..0000000 --- a/asset/html/99.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - GitHub一周热点第99期 - - - - - - -

GitHub一周热点第99期

-
发布时间:2026-01-03
-

本期视频链接

-

GitHub 一周热点第99期(2025/12/29 - 2026/1/3),本期内容包括AI 编码代理的编排平台、Claude skill、agent生成UI、macOS 系统清理工具、终端文本编辑器和简历生成器。
-最后还有 2 份资料分享。
-朋友一转眼好久不见,上次更新视频还是去年的事情,最近mate收购manus,智谱快要赴港上市,全球AI一下突然更火热了,每个辛勤的创业者和投机者,都希望可以一夜暴富,你觉得2026会怎么样呢?那我们一块开启新的一年吧。
-如果觉得内容不错,别忘了点赞关注支持一下。

-

1 vibe-kanban

- -
-

2 skills

- -
-

3 A2UI

- -

4 Mole

- -
-

5 fresh

- -
-

6 rendercv

- -
pip install "rendercv[full]"
-
- -

如果你喜欢这种工程化的简历管理方式,那可以去尝试一下。

-
-

One More Thing

-

最后还是分享2个资料,第一份是google cloud最新发的《AI agent trends 2026》,最近mate收购manus,让无数人都看到了AI agent市场巨大的潜力,所以这份资料绝对是要来看一看了。
-第二个是《全球通用agent趋势洞察》,这个报告中深度分析了8款代表性的通用agent产品,分别是ChatGPT、Claude、manus、Genspark、Lindy、Flowith、Gumloop、Relay,结合数据来去做了分析。
-有需要的可以告诉我,以上就是本周的全部内容,那我们下次再见。

-

99期分享内容:
-我用夸克网盘给你分享了「一周热点99期」,链接:https://pan.quark.cn/s/d092e17f4058

- - \ No newline at end of file diff --git a/assets/feed.xml b/assets/feed.xml new file mode 100644 index 0000000..a93917b --- /dev/null +++ b/assets/feed.xml @@ -0,0 +1,56 @@ +--- +layout: compress +permalink: /feed.xml +# Atom Feed - default feed.xml output +# Reference: https://validator.w3.org/feed/docs/atom.html +--- + +{% capture source %} + + {{ "/" | absolute_url }} + {{ site.title }} + {{ site.description }} + {{ site.time | date_to_xmlschema }} + + {{ site.social.name }} + {{ "/" | absolute_url }} + + + + Jekyll + © {{ 'now' | date: '%Y' }} {{ site.social.name }} + {{ site.baseurl }}/assets/img/favicons/favicon.ico + {{ site.baseurl }}/asset/it-coffee-circle.png + +{% assign sorted_weekly = site.weekly | sort: 'date' | reverse %} +{% for post in sorted_weekly limit: 20 %} + {% assign post_absolute_url = post.url | absolute_url %} + + {{ post.title }} + + {{ post.date | date_to_xmlschema }} + {% if post.last_modified_at %} + {{ post.last_modified_at | date_to_xmlschema }} + {% else %} + {{ post.date | date_to_xmlschema }} + {% endif %} + {{ post_absolute_url }} + + + {{ post.author | default: site.social.name }} + + + {% if post.categories %} + {% for category in post.categories %} + + {% endfor %} + {% endif %} + + {{ post.description | default: post.excerpt | strip_html | truncate: 400 | xml_escape }} + + +{% endfor %} + +{% endcapture %} +{{ source | replace: '&', '&' }} diff --git a/index.html b/index.html new file mode 100644 index 0000000..ec97f43 --- /dev/null +++ b/index.html @@ -0,0 +1,28 @@ +--- +layout: default +# 自定义首页 - 列出 weekly 集合的文章 +--- + +
+ {% assign sorted_weekly = site.weekly | sort: 'date' %} + {% for post in sorted_weekly %} + + {% endfor %} +
\ No newline at end of file diff --git a/rss.xml b/rss.xml index 1c70542..c04fd63 100644 --- a/rss.xml +++ b/rss.xml @@ -1,73 +1,17 @@ - IT咖啡馆的github每周热点项目 + IT咖啡馆的GitHub每周热点项目 https://itcoffee66.github.io/githubweekly - github 每周热点项目 + 订阅地址已更新,请使用 https://itcoffee66.github.io/githubweekly/feed.xml zh-CN - Sat, 14 Feb 2026 15:16:51 GMT - - https://itcoffee66.github.io/githubweekly/asset/it-coffee-circle.png - IT咖啡馆的github每周热点项目 - https://itcoffee66.github.io/githubweekly - 144 - 144 - + Thu, 20 Feb 2026 00:00:00 GMT - GitHub一周热点第102期 - https://itcoffee66.github.io/githubweekly/asset/html/102.html - 个人AI助理OpenClaw、React生成视频Remotion、Kimi K2.5开源模型等 - Sat, 31 Jan 2026 00:00:00 GMT - https://itcoffee66.github.io/githubweekly/asset/html/102.html - - - GitHub一周热点第100期 - https://itcoffee66.github.io/githubweekly/asset/html/100.html - 开源AI编程代理OpenCode、AI开发技能框架Superpowers、字节电脑操作Agent等 - Sat, 03 Jan 2026 00:00:00 GMT - https://itcoffee66.github.io/githubweekly/asset/html/100.html - - - GitHub一周热点第103期 - https://itcoffee66.github.io/githubweekly/asset/html/103.html - 超轻量NanoBot、编程智能体记忆工具Beads、聊天分析ChatLab等 - Sat, 07 Feb 2026 00:00:00 GMT - https://itcoffee66.github.io/githubweekly/asset/html/103.html - - - GitHub一周热点第96期 - https://itcoffee66.github.io/githubweekly/asset/html/96.html - AI绘图模型Flux2、腾讯视频生成HunyuanVideo、AI动态记忆Cognee等开源项目推荐 - Sat, 06 Dec 2025 00:00:00 GMT - https://itcoffee66.github.io/githubweekly/asset/html/96.html - - - GitHub一周热点第98期 - https://itcoffee66.github.io/githubweekly/asset/html/98.html - 腾讯文档理解框架WeKnora、微软TTS框架VibeVoice、Claude记忆插件等 - Sat, 20 Dec 2025 00:00:00 GMT - https://itcoffee66.github.io/githubweekly/asset/html/98.html - - - GitHub一周热点第101期 - https://itcoffee66.github.io/githubweekly/asset/html/101.html - 开源版Cowork、数据工程实战课程、浏览器MCP、专业设计agent skill等 - Sat, 24 Jan 2026 00:00:00 GMT - https://itcoffee66.github.io/githubweekly/asset/html/101.html - - - GitHub一周热点第99期 - https://itcoffee66.github.io/githubweekly/asset/html/99.html - AI编码代理编排平台vibe-kanban、Claude skills、AI生成UI工具A2UI等 - Sat, 03 Jan 2026 00:00:00 GMT - https://itcoffee66.github.io/githubweekly/asset/html/99.html - - - GitHub一周热点第97期 - https://itcoffee66.github.io/githubweekly/asset/html/97.html - 手机智能助理Open-AutoGLM、AI画架构图工具、AI编码指导agents.md等 - Sat, 13 Dec 2025 00:00:00 GMT - https://itcoffee66.github.io/githubweekly/asset/html/97.html + RSS订阅地址已更新 + https://itcoffee66.github.io/githubweekly/feed.xml + 请将订阅地址更新为:https://itcoffee66.github.io/githubweekly/feed.xml + Thu, 20 Feb 2026 00:00:00 GMT + https://itcoffee66.github.io/githubweekly/feed.xml \ No newline at end of file diff --git a/scripts/generate_rss.py b/scripts/generate_rss.py deleted file mode 100644 index b3e2151..0000000 --- a/scripts/generate_rss.py +++ /dev/null @@ -1,352 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -"""Generate RSS feed and HTML files from markdown files in a GitHub repository. - -This script converts markdown files to HTML (saved to asset/html), -replaces relative image paths with absolute GitHub RAW URLs, -and generates a well-formatted RSS 2.0 XML file with links to HTML files. -""" - -import os -import re -import subprocess -import sys -from datetime import datetime -from xml.etree import ElementTree as ET -from xml.dom import minidom - -# Try to import markdown, install if missing -try: - import markdown -except ImportError: - subprocess.check_call( - [sys.executable, "-m", "pip", "install", "markdown"], - stdout=subprocess.DEVNULL, - stderr=subprocess.DEVNULL, - ) - import markdown - -# ----------------------------------------------------------------------------- -# Configuration Constants (All caps with underscores, grouped and documented) -# ----------------------------------------------------------------------------- -# RSS Feed Core Configuration -RSS_TITLE = "IT咖啡馆的github每周热点项目" -RSS_LINK = "https://itcoffee66.github.io/githubweekly" # Replace with your repo URL -RSS_DESCRIPTION = "github 每周热点项目" -RSS_LANGUAGE = "zh-CN" - -# File Path Configuration -MD_DIR = "post/" # Directory containing markdown files -HTML_OUTPUT_DIR = "asset/html" # 新增:HTML输出目录 -RSS_OUTPUT_FILE = "rss.xml" # Output RSS file name -RSS_ICON_PATH = "/asset/it-coffee-circle.png" # Icon path within repo - -# Markdown Conversion Configuration -MD_EXTENSIONS = [ - "extra", # Enable extra markdown features - "codehilite", # Syntax highlighting for code blocks - "sane_lists", # Improve list handling - "nl2br", # Convert newlines to
tags -] -MD_EXTENSION_CONFIGS = {"codehilite": {"linenums": False, "css_class": "code-block"}} - -# HTML Styling (for better RSS reader rendering and standalone HTML files) -HTML_STYLE = """ - -""" - - -# ----------------------------------------------------------------------------- -# Helper Functions -# ----------------------------------------------------------------------------- -def parse_md_metadata(md_content): - """解析Markdown文件开头的YAML元数据块 - - Args: - md_content: 完整的markdown内容字符串 - - Returns: - tuple: (metadata_dict, clean_content) - - metadata_dict: 包含title/date/description的字典,缺失则返回默认值 - - clean_content: 剥离元数据块后的纯正文内容 - """ - # 匹配开头的YAML元数据块(---开头和结尾) - meta_pattern = re.compile(r"^---\s*\n(.*?)\n---\s*\n", re.DOTALL) - match = meta_pattern.match(md_content) - - metadata = { - "title": "未命名文章", - "date": datetime.utcnow().strftime("%Y-%m-%d"), - "description": "", - } - clean_content = md_content - - if match: - # 提取元数据块内容并清理正文 - meta_content = match.group(1) - clean_content = md_content[match.end() :].strip() - - # 解析title - title_match = re.search(r'title:\s*["\'](.*?)["\']', meta_content) - if title_match: - metadata["title"] = title_match.group(1) - - # 解析date - date_match = re.search(r'date:\s*["\'](.*?)["\']', meta_content) - if date_match: - metadata["date"] = date_match.group(1) - - # 解析description - desc_match = re.search(r'description:\s*["\'](.*?)["\']', meta_content) - if desc_match: - metadata["description"] = desc_match.group(1) - - return metadata, clean_content - - -def convert_date_to_rfc822(date_str): - """将YYYY-MM-DD格式的日期转换为RSS要求的RFC 822格式(UTC) - - Args: - date_str: YYYY-MM-DD格式的日期字符串 - - Returns: - str: RFC 822格式的日期字符串,格式如 "Tue, 20 May 2024 00:00:00 GMT" - """ - try: - date_obj = datetime.strptime(date_str, "%Y-%m-%d") - # 设置为UTC时间的0点,并格式化为RFC 822 - return date_obj.strftime("%a, %d %b %Y 00:00:00 GMT") - except ValueError: - # 解析失败时返回当前UTC时间 - return datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S GMT") - - -def replace_md_image_paths(md_content, md_file_path): - """Replaces relative image paths in markdown with absolute GitHub RAW URLs. - - Matches markdown image syntax (![alt](path)) and converts relative paths - to absolute URLs pointing to GitHub's raw content delivery. - - Args: - md_content: Original markdown content (str). - md_file_path: Path to the markdown file (str) to resolve relative paths. - - Returns: - Modified markdown content with absolute image URLs (str). - """ - # Regex pattern to match markdown image syntax: ![alt](path) or ![alt](path "title") - image_pattern = re.compile(r'!\[(.*?)\]\((.*?)(?:\s+".*?")?\)') - - def _replace_image_match(match): - """Inner function to process each regex match (private by Google style).""" - alt_text = match.group(1) - img_path = match.group(2).strip() - - # Skip already absolute URLs - if img_path.startswith(("http://", "https://")): - return f"![{alt_text}]({img_path})" - - # Calculate absolute path of the image - md_dir = os.path.dirname(md_file_path) - abs_img_path = os.path.abspath(os.path.join(md_dir, img_path)) - repo_root = os.path.abspath("./") - rel_img_path = os.path.relpath(abs_img_path, repo_root) - - # Build GitHub RAW URL (encode spaces) - img_raw_link = f"{RSS_LINK}{abs_img_path.replace(' ', '%20')}" # 修复:使用相对仓库根目录的路径 - return f"![{alt_text}]({img_raw_link})" - - return image_pattern.sub(_replace_image_match, md_content) - - -def md_to_html(file_path): - """Converts a markdown file to HTML with proper image paths and styling. - - Args: - file_path: Path to the markdown file (str). - - Returns: - tuple: (full_html, standalone_html, metadata, html_file_name) - - full_html: 仅正文的HTML内容(用于RSS) - - standalone_html: 完整的独立HTML文件内容(带head/body) - - metadata: 解析出的元数据字典 - - html_file_name: 生成的HTML文件名 - """ - with open(file_path, "r", encoding="utf-8") as file_handle: - md_content = file_handle.read().strip() - - # 解析元数据并剥离元数据块 - metadata, clean_md_content = parse_md_metadata(md_content) - - # 替换图片路径(仅处理正文) - clean_md_content = replace_md_image_paths(clean_md_content, file_path) - - # 转换正文为HTML - html_content = markdown.markdown( - clean_md_content, - extensions=MD_EXTENSIONS, - extension_configs=MD_EXTENSION_CONFIGS, - ) - - # 用于RSS的HTML(仅正文+样式) - rss_html = f"
{HTML_STYLE}{html_content}
" - - # 生成独立的完整HTML文件内容(带head/body) - standalone_html = f""" - - - - {metadata['title']} - - {HTML_STYLE} - - -

{metadata['title']}

-
发布时间:{metadata['date']}
- {html_content} - -""" - - # 生成HTML文件名(替换md后缀为html,保留原文件名) - file_name = os.path.basename(file_path) - html_file_name = os.path.splitext(file_name)[0] + ".html" - - return rss_html, standalone_html, metadata, html_file_name - - -def save_html_file(standalone_html, html_file_name): - """保存生成的HTML文件到指定目录 - - Args: - standalone_html: 完整的HTML内容 - html_file_name: 要保存的HTML文件名 - """ - # 确保输出目录存在 - os.makedirs(HTML_OUTPUT_DIR, exist_ok=True) - - # 拼接完整的HTML文件路径 - html_file_path = os.path.join(HTML_OUTPUT_DIR, html_file_name) - - # 写入HTML文件 - with open(html_file_path, "w", encoding="utf-8") as f: - f.write(standalone_html) - - print(f"✅ 已生成HTML文件: {html_file_path}") - - -def _prettify_xml(element): - """Prettifies XML output with proper indentation (private helper). - - Args: - element: Root XML element (xml.etree.ElementTree.Element). - - Returns: - Formatted XML string (str) with UTF-8 encoding and proper indentation. - """ - rough_xml = ET.tostring(element, "utf-8") - parsed_xml = minidom.parseString(rough_xml) - pretty_xml = parsed_xml.toprettyxml(indent=" ") - - # Remove empty lines and redundant XML declaration - clean_lines = [ - line - for line in pretty_xml.split("\n") - if line.strip() and not line.startswith("\n' + "\n".join(clean_lines) - - -def generate_rss_and_html(): - """Main function to generate HTML files and RSS feed XML file. - - Creates RSS 2.0 structure, populates with markdown content, - generates HTML files, and writes the final files to disk. - """ - # Create RSS root and channel elements - rss_root = ET.Element("rss", version="2.0") - channel = ET.SubElement(rss_root, "channel") - - # Add core channel metadata - ET.SubElement(channel, "title").text = RSS_TITLE - ET.SubElement(channel, "link").text = RSS_LINK - ET.SubElement(channel, "description").text = RSS_DESCRIPTION - ET.SubElement(channel, "language").text = RSS_LANGUAGE - ET.SubElement(channel, "pubDate").text = datetime.utcnow().strftime( - "%a, %d %b %Y %H:%M:%S GMT" - ) - - # Add RSS icon if file exists - if os.path.exists(RSS_ICON_PATH.lstrip("/")): # Fix path check (remove leading /) - icon_link = ( - f"{RSS_LINK}/{RSS_ICON_PATH.lstrip('/').replace(' ', '%20')}" - ) - image = ET.SubElement(channel, "image") - ET.SubElement(image, "url").text = icon_link - ET.SubElement(image, "title").text = RSS_TITLE - ET.SubElement(image, "link").text = RSS_LINK - ET.SubElement(image, "width").text = "144" - ET.SubElement(image, "height").text = "144" - - # Process all markdown files in the target directory - for root_dir, _, files in os.walk(MD_DIR): - for file_name in files: - if file_name.endswith(".md") and not file_name.startswith("."): - file_path = os.path.join(root_dir, file_name) - - # 转换markdown到HTML并获取元数据 - rss_html_content, standalone_html, metadata, html_file_name = md_to_html(file_path) - - # 保存HTML文件到asset/html目录 - save_html_file(standalone_html, html_file_name) - - # 使用元数据中的日期(转换为RFC 822格式) - pub_date = convert_date_to_rfc822(metadata["date"]) - - # 使用元数据中的标题 - item_title = metadata["title"] - - item_link = f"{RSS_LINK}/{HTML_OUTPUT_DIR}/{html_file_name.replace(' ', '%20')}" - - # Create RSS item - item = ET.SubElement(channel, "item") - ET.SubElement(item, "title").text = item_title - ET.SubElement(item, "link").text = item_link - - # 优先使用元数据中的description,没有则用正文摘要 - item_description = ( - metadata["description"] - if metadata["description"] - else rss_html_content[:200] + "..." - ) - desc_elem = ET.SubElement(item, "description") - desc_elem.text = item_description if metadata["description"] else rss_html_content - ET.SubElement(item, "pubDate").text = pub_date - ET.SubElement(item, "guid").text = item_link # Unique identifier (使用HTML链接) - - # Generate and write prettified XML - final_xml = _prettify_xml(rss_root) - with open(RSS_OUTPUT_FILE, "w", encoding="utf-8") as file_handle: - file_handle.write(final_xml) - - print(f"✅ 已生成RSS文件: {RSS_OUTPUT_FILE}") - - -# ----------------------------------------------------------------------------- -# Main Execution -# ----------------------------------------------------------------------------- -if __name__ == "__main__": - generate_rss_and_html() From 007724af298628f148470355b4d644875a3be1be Mon Sep 17 00:00:00 2001 From: WingChunWong Date: Fri, 20 Feb 2026 23:52:35 +0800 Subject: [PATCH 2/9] update --- Gemfile.lock | 170 --------------------------------------------------- 1 file changed, 170 deletions(-) delete mode 100644 Gemfile.lock diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index bb59c51..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,170 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - addressable (2.8.8) - public_suffix (>= 2.0.2, < 8.0) - base64 (0.3.0) - bigdecimal (4.0.1) - colorator (1.1.0) - concurrent-ruby (1.3.6) - csv (3.3.5) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - eventmachine (1.2.7) - ffi (1.17.3-x64-mingw-ucrt) - ffi (1.17.3-x86_64-linux-gnu) - forwardable-extended (2.6.0) - google-protobuf (4.33.5-x64-mingw-ucrt) - bigdecimal - rake (>= 13) - google-protobuf (4.33.5-x86_64-linux-gnu) - bigdecimal - rake (>= 13) - http_parser.rb (0.8.1) - i18n (1.14.8) - concurrent-ruby (~> 1.0) - jekyll (4.4.1) - addressable (~> 2.4) - base64 (~> 0.2) - colorator (~> 1.0) - csv (~> 3.0) - em-websocket (~> 0.5) - i18n (~> 1.0) - jekyll-sass-converter (>= 2.0, < 4.0) - jekyll-watch (~> 2.0) - json (~> 2.6) - kramdown (~> 2.3, >= 2.3.1) - kramdown-parser-gfm (~> 1.0) - liquid (~> 4.0) - mercenary (~> 0.3, >= 0.3.6) - pathutil (~> 0.9) - rouge (>= 3.0, < 5.0) - safe_yaml (~> 1.0) - terminal-table (>= 1.8, < 4.0) - webrick (~> 1.7) - jekyll-archives (2.3.0) - jekyll (>= 3.6, < 5.0) - jekyll-feed (0.17.0) - jekyll (>= 3.7, < 5.0) - jekyll-include-cache (0.2.1) - jekyll (>= 3.7, < 5.0) - jekyll-paginate (1.1.0) - jekyll-sass-converter (3.1.0) - sass-embedded (~> 1.75) - jekyll-seo-tag (2.8.0) - jekyll (>= 3.8, < 5.0) - jekyll-sitemap (1.4.0) - jekyll (>= 3.7, < 5.0) - jekyll-theme-chirpy (7.4.1) - jekyll (~> 4.3) - jekyll-archives (~> 2.2) - jekyll-include-cache (~> 0.2) - jekyll-paginate (~> 1.1) - jekyll-seo-tag (~> 2.8) - jekyll-sitemap (~> 1.4) - jekyll-watch (2.2.1) - listen (~> 3.0) - json (2.18.1) - kramdown (2.5.2) - rexml (>= 3.4.4) - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - liquid (4.0.4) - listen (3.10.0) - logger - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - logger (1.7.0) - mercenary (0.4.0) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - public_suffix (7.0.2) - rake (13.3.1) - rb-fsevent (0.11.2) - rb-inotify (0.11.1) - ffi (~> 1.0) - rexml (3.4.4) - rouge (4.7.0) - safe_yaml (1.0.5) - sass-embedded (1.97.3-x64-mingw-ucrt) - google-protobuf (~> 4.31) - sass-embedded (1.97.3-x86_64-linux-gnu) - google-protobuf (~> 4.31) - terminal-table (3.0.2) - unicode-display_width (>= 1.1.1, < 3) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) - tzinfo (>= 1.0.0) - unicode-display_width (2.6.0) - wdm (0.2.0) - webrick (1.9.2) - -PLATFORMS - x64-mingw-ucrt - x86_64-linux - -DEPENDENCIES - http_parser.rb (~> 0.6.0) - jekyll-feed (~> 0.17) - jekyll-paginate (~> 1.1) - jekyll-seo-tag (~> 2.8) - jekyll-sitemap (~> 1.4) - jekyll-theme-chirpy (~> 7.3) - tzinfo (>= 1, < 3) - tzinfo-data - wdm (~> 0.2) - -CHECKSUMS - addressable (2.8.8) sha256=7c13b8f9536cf6364c03b9d417c19986019e28f7c00ac8132da4eb0fe393b057 - base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b - bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7 - colorator (1.1.0) sha256=e2f85daf57af47d740db2a32191d1bdfb0f6503a0dfbc8327d0c9154d5ddfc38 - concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab - csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f - em-websocket (0.5.3) sha256=f56a92bde4e6cb879256d58ee31f124181f68f8887bd14d53d5d9a292758c6a8 - eventmachine (1.2.7) sha256=994016e42aa041477ba9cff45cbe50de2047f25dd418eba003e84f0d16560972 - ffi (1.17.3-x64-mingw-ucrt) sha256=5f1d7d067a9a1058ad183dba25b05557cd51c85fc1768c49338eabc1cf242d7c - ffi (1.17.3-x86_64-linux-gnu) sha256=3746b01f677aae7b16dc1acb7cb3cc17b3e35bdae7676a3f568153fb0e2c887f - forwardable-extended (2.6.0) sha256=1bec948c469bbddfadeb3bd90eb8c85f6e627a412a3e852acfd7eaedbac3ec97 - google-protobuf (4.33.5-x64-mingw-ucrt) sha256=2286e8fd91dff6a161c45b66ad2a1a46e9a5eefb2496c68636b31d6e80eb5820 - google-protobuf (4.33.5-x86_64-linux-gnu) sha256=a782adf86bfba207740b49d7bb9ccdc25c4fb8f800fe222af62bce951149338a - http_parser.rb (0.8.1) sha256=9ae8df145b39aa5398b2f90090d651c67bd8e2ebfe4507c966579f641e11097a - i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5 - jekyll (4.4.1) sha256=4c1144d857a5b2b80d45b8cf5138289579a9f8136aadfa6dd684b31fe2bc18c1 - jekyll-archives (2.3.0) sha256=2dbd8ce22212fbace81fe2c9aa4152a6e21c748bcc626f135af5acfd813375f6 - jekyll-feed (0.17.0) sha256=689aab16c877949bb9e7a5c436de6278318a51ecb974792232fd94d8b3acfcc3 - jekyll-include-cache (0.2.1) sha256=c7d4b9e551732a27442cb2ce853ba36a2f69c66603694b8c1184c99ab1a1a205 - jekyll-paginate (1.1.0) sha256=880aadf4b02529a93541d508c5cbb744f014cbfc071d0263a31f25ec9066eb64 - jekyll-sass-converter (3.1.0) sha256=83925d84f1d134410c11d0c6643b0093e82e3a3cf127e90757a85294a3862443 - jekyll-seo-tag (2.8.0) sha256=3f2ed1916d56f14ebfa38e24acde9b7c946df70cb183af2cb5f0598f21ae6818 - jekyll-sitemap (1.4.0) sha256=0de08c5debc185ea5a8f980e1025c7cd3f8e0c35c8b6ef592f15c46235cf4218 - jekyll-theme-chirpy (7.4.1) sha256=21376c0707cc21c1ed088fd4a55b64ebc263351fbe5cbe8edc107ac2b0a404c4 - jekyll-watch (2.2.1) sha256=bc44ed43f5e0a552836245a54dbff3ea7421ecc2856707e8a1ee203a8387a7e1 - json (2.18.1) sha256=fe112755501b8d0466b5ada6cf50c8c3f41e897fa128ac5d263ec09eedc9f986 - kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa - kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 - liquid (4.0.4) sha256=4fcfebb1a045e47918388dbb7a0925e7c3893e58d2bd6c3b3c73ec17a2d8fdb3 - listen (3.10.0) sha256=c6e182db62143aeccc2e1960033bebe7445309c7272061979bb098d03760c9d2 - logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 - mercenary (0.4.0) sha256=b25a1e4a59adca88665e08e24acf0af30da5b5d859f7d8f38fba52c28f405138 - pathutil (0.16.2) sha256=e43b74365631cab4f6d5e4228f812927efc9cb2c71e62976edcb252ee948d589 - public_suffix (7.0.2) sha256=9114090c8e4e7135c1fd0e7acfea33afaab38101884320c65aaa0ffb8e26a857 - rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c - rb-fsevent (0.11.2) sha256=43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe - rb-inotify (0.11.1) sha256=a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e - rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 - rouge (4.7.0) sha256=dba5896715c0325c362e895460a6d350803dbf6427454f49a47500f3193ea739 - safe_yaml (1.0.5) sha256=a6ac2d64b7eb027bdeeca1851fe7e7af0d668e133e8a88066a0c6f7087d9f848 - sass-embedded (1.97.3-x64-mingw-ucrt) sha256=72994dcfacc0559789a3624c78c5fa66962379bb8d8c0d6dea85906c5b6e66ee - sass-embedded (1.97.3-x86_64-linux-gnu) sha256=173a4d0dbe2fffdf7482bd3e82fb597dfc658c18d1e8fd746aa7d5077ed4e850 - terminal-table (3.0.2) sha256=f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91 - tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b - tzinfo-data (1.2025.3) sha256=b546e2f1e5e5c40a0c619aafb24e30d3d6a128c2f689278f721b7286dd499562 - unicode-display_width (2.6.0) sha256=12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a - wdm (0.2.0) sha256=c46d9dcb6d375199ca07465bc67669ee8f041aeaa55dd7dafe6de4dd97b27647 - webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 - -BUNDLED WITH - 4.0.6 From 2b5efe6509ee6a13cb04ff84b394d27565a8a4c6 Mon Sep 17 00:00:00 2001 From: WingChunWong Date: Fri, 20 Feb 2026 23:54:14 +0800 Subject: [PATCH 3/9] 1 --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index b1c82a7..3bc4ce4 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ _site/ # Ruby .bundle/ vendor/ +Gemfile.lock # Node 模块 node_modules/ From b6146195c6df1ae7e5bed46f1b4329180c6f44a4 Mon Sep 17 00:00:00 2001 From: WingChunWong Date: Sat, 21 Feb 2026 00:06:06 +0800 Subject: [PATCH 4/9] update --- CONTRIBUTING.md | 39 +++++++++++++++++++++++++++++++++ README.md | 57 ++++++++----------------------------------------- _config.yml | 2 +- _tabs/about.md | 2 +- 4 files changed, 50 insertions(+), 50 deletions(-) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..f9f6e37 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,39 @@ +## 项目结构 + +``` +├── _weekly/ # Jekyll 集合源文件(保留原始文件名:96.md, 97.md, ...) +├── _config.yml # Jekyll 站点配置 +├── _tabs/ # Chirpy 主题导航页(目前仅保留 about) +├── _data/ # 站点数据文件(联系方式、分享按钮等) +├── asset/ # 静态资源(图片、Logo 等) +├── post/ # 原始 Markdown 源文件(供 GitHub 浏览) +├── Gemfile # Ruby 依赖声明 +└── .github/workflows/ + └── pages-deploy.yml # GitHub Actions 自动部署工作流 +``` + +## 本地开发 + +```bash +# 安装依赖 +bundle install + +# 启动本地服务器 +bundle exec jekyll serve + +# 访问 http://127.0.0.1:4000/githubweekly/ +``` + +## 新增文章 + +在 `_weekly/` 目录下创建新文件,文件名即期号,如 `104.md`: + +```yaml +--- +title: "GitHub一周热点第NNN期" +date: "YYYY-MM-DD" +description: "本期摘要" +--- + +正文内容... +``` diff --git a/README.md b/README.md index f098f82..8c6a2a8 100644 --- a/README.md +++ b/README.md @@ -12,58 +12,19 @@ GitHub一周热点汇总,每周分享热门项目,B站、YouTube发布视频 ### 往期内容 -- 第103期:[4000行代码的openclaw能用吗](post/103.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/103.html) -- 第102期:[全球爆火的AI助理真的那么好用吗?](post/102.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/102.html) -- 第101期:[IT咖啡馆的Github一周热点上线了](post/101.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/101.html) -- 第100期:[火爆的AI编程代理](post/100.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/100.html) -- 第99期:[提升Claude code效率10倍的工具?](post/99.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/99.html) -- 第98期:[AI文档检索框架](post/98.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/98.html) -- 第97期:[自动操作手机的智能助手](post/97.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/97.html) -- 第96期:[FLUX发布了新一代,但似乎没那么惊艳了](post/96.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/asset/html/96.html) +- 第103期:[4000行代码的openclaw能用吗](post/103.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/103.html) +- 第102期:[全球爆火的AI助理真的那么好用吗?](post/102.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/102.html) +- 第101期:[IT咖啡馆的Github一周热点上线了](post/101.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/101.html) +- 第100期:[火爆的AI编程代理](post/100.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/100.html) +- 第99期:[提升Claude code效率10倍的工具?](post/99.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/99.html) +- 第98期:[AI文档检索框架](post/98.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/98.html) +- 第97期:[自动操作手机的智能助手](post/97.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/97.html) +- 第96期:[FLUX发布了新一代,但似乎没那么惊艳了](post/96.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/96.html) ## RSS 订阅 使用 RSS 订阅软件可以快速知道本周 GitHub 热点项目 -订阅地址:[https://itcoffee66.github.io/githubweekly/rss.xml](https://itcoffee66.github.io/githubweekly/rss.xml) +订阅地址:[https://itcoffee66.github.io/githubweekly/feed.xml](https://itcoffee66.github.io/githubweekly/feed.xml) -## 项目结构 -``` -├── _weekly/ # Jekyll 集合源文件(保留原始文件名:96.md, 97.md, ...) -├── _config.yml # Jekyll 站点配置 -├── _tabs/ # Chirpy 主题导航页(关于、归档、分类、标签) -├── _data/ # 站点数据文件(联系方式、分享按钮等) -├── asset/ # 静态资源(图片、Logo 等) -├── post/ # 原始 Markdown 源文件(供 GitHub 浏览) -├── scripts/ # 旧版 Python 脚本(已停用) -├── Gemfile # Ruby 依赖声明 -└── .github/workflows/ - └── pages-deploy.yml # GitHub Actions 自动部署工作流 -``` - -## 本地开发 - -```bash -# 安装依赖 -bundle install - -# 启动本地服务器 -bundle exec jekyll serve - -# 访问 http://127.0.0.1:4000/githubweekly/ -``` - -## 新增文章 - -在 `_weekly/` 目录下创建新文件,文件名即期号,如 `104.md`: - -```yaml ---- -title: "GitHub一周热点第NNN期" -date: "YYYY-MM-DD" -description: "本期摘要" ---- - -正文内容... -``` diff --git a/_config.yml b/_config.yml index c472037..7fd96a7 100644 --- a/_config.yml +++ b/_config.yml @@ -81,7 +81,7 @@ collections: weekly: output: true sort_by: date - permalink: /asset/html/:name.html + permalink: /:name.html tabs: output: true sort_by: order diff --git a/_tabs/about.md b/_tabs/about.md index ab9f2b7..fbcf7d9 100644 --- a/_tabs/about.md +++ b/_tabs/about.md @@ -28,4 +28,4 @@ B站、YouTube同步发布视频版本,搜:**IT咖啡馆** 使用 RSS 订阅软件可以快速知道本周 GitHub 热点项目 -订阅地址:[rss.xml]({{ '/rss.xml' | relative_url }}) +订阅地址:[feed.xml]({{ '/feed.xml' | relative_url }}) From 244e095febe7bcc2ed2a1c8b750518052a2f4c5f Mon Sep 17 00:00:00 2001 From: WingChunWong Date: Sat, 21 Feb 2026 00:09:29 +0800 Subject: [PATCH 5/9] update --- _layouts/post.html | 165 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 _layouts/post.html diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..c43059b --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,165 @@ +--- +layout: default +panel_includes: +- toc +tail_includes: +- related-posts +- post-nav +script_includes: +- comment +--- + +{% include lang.html %} + +{% include toc-status.html %} + +
+
+

{{ page.title }}

+ {% if page.description %} +

{{ page.description }}

+ {% endif %} + + +
+ + {% if enable_toc %} + + + + + +
+
{{- page.title -}}
+ +
+
+
+ {% endif %} + +
+ {{ content }} +
+ +
+ + {% if page.categories.size > 0 %} + + {% endif %} + + + {% if page.tags.size > 0 %} + + {% endif %} + +
+
+ ARR (All Rights Reserved) +
+ + {% include post-sharing.html lang=lang %} +
+ +
+ +
\ No newline at end of file From cf3fb234bcd65480b362f48bf4db36e7f3299ebd Mon Sep 17 00:00:00 2001 From: Wong Wing Chun Date: Sat, 21 Feb 2026 00:29:34 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 8c6a2a8..703ab2e 100644 --- a/README.md +++ b/README.md @@ -12,14 +12,14 @@ GitHub一周热点汇总,每周分享热门项目,B站、YouTube发布视频 ### 往期内容 -- 第103期:[4000行代码的openclaw能用吗](post/103.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/103.html) -- 第102期:[全球爆火的AI助理真的那么好用吗?](post/102.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/102.html) -- 第101期:[IT咖啡馆的Github一周热点上线了](post/101.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/101.html) -- 第100期:[火爆的AI编程代理](post/100.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/100.html) -- 第99期:[提升Claude code效率10倍的工具?](post/99.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/99.html) -- 第98期:[AI文档检索框架](post/98.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/98.html) -- 第97期:[自动操作手机的智能助手](post/97.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/97.html) -- 第96期:[FLUX发布了新一代,但似乎没那么惊艳了](post/96.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/96.html) +- 第103期:[4000行代码的openclaw能用吗](_weekly/103.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/103.html) +- 第102期:[全球爆火的AI助理真的那么好用吗?](_weekly/102.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/102.html) +- 第101期:[IT咖啡馆的Github一周热点上线了](_weekly/101.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/101.html) +- 第100期:[火爆的AI编程代理](_weekly/100.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/100.html) +- 第99期:[提升Claude code效率10倍的工具?](_weeklu/99.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/99.html) +- 第98期:[AI文档检索框架](_weekly/98.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/98.html) +- 第97期:[自动操作手机的智能助手](_weekly/97.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/97.html) +- 第96期:[FLUX发布了新一代,但似乎没那么惊艳了](_weekly/96.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/96.html) ## RSS 订阅 From c781faf301d331ea0d8595da0db985864b748150 Mon Sep 17 00:00:00 2001 From: Wong Wing Chun Date: Sat, 21 Feb 2026 00:30:31 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 703ab2e..54faebc 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,6 @@ GitHub一周热点汇总,每周分享热门项目,B站、YouTube发布视频版本,搜:IT咖啡馆 -> 🏗️ 本站基于 [Jekyll](https://jekyllrb.com/) + [Chirpy](https://github.com/cotes2020/jekyll-theme-chirpy) 主题构建,通过 GitHub Actions 自动部署。 - ### 往期内容 - 第103期:[4000行代码的openclaw能用吗](_weekly/103.md) | [在线阅读](https://itcoffee66.github.io/githubweekly/103.html) From 3a64f295aba07572ddbf3b833e28c8a9376a2d26 Mon Sep 17 00:00:00 2001 From: WingChunWong Date: Sat, 21 Feb 2026 19:39:42 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E2=9C=A8=20feat(homepage):=20=E4=B8=BA?= =?UTF-8?q?=E4=B8=BB=E9=A1=B5=E6=96=87=E7=AB=A0=E5=88=97=E8=A1=A8=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=8E=92=E5=BA=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index ec97f43..3396f40 100644 --- a/index.html +++ b/index.html @@ -3,10 +3,23 @@ # 自定义首页 - 列出 weekly 集合的文章 --- + +
+ 排序: +
+ + + + + +
+
+
{% assign sorted_weekly = site.weekly | sort: 'date' %} {% for post in sorted_weekly %} -
\ No newline at end of file + + + \ No newline at end of file From c1868b0a3da677eca8c8ffc76459ebd1f6df6216 Mon Sep 17 00:00:00 2001 From: WingChunWong Date: Sat, 21 Feb 2026 19:40:15 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=F0=9F=93=A6=20build(favicons):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=BD=91=E7=AB=99=E5=9B=BE=E6=A0=87=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/img/favicons/apple-touch-icon.png | Bin 0 -> 16417 bytes assets/img/favicons/favicon-96x96.png | Bin 0 -> 9360 bytes assets/img/favicons/favicon.ico | Bin 0 -> 15086 bytes assets/img/favicons/favicon.svg | 3 +++ .../img/favicons/web-app-manifest-192x192.png | Bin 0 -> 23592 bytes .../img/favicons/web-app-manifest-512x512.png | Bin 0 -> 106179 bytes 6 files changed, 3 insertions(+) create mode 100644 assets/img/favicons/apple-touch-icon.png create mode 100644 assets/img/favicons/favicon-96x96.png create mode 100644 assets/img/favicons/favicon.ico create mode 100644 assets/img/favicons/favicon.svg create mode 100644 assets/img/favicons/web-app-manifest-192x192.png create mode 100644 assets/img/favicons/web-app-manifest-512x512.png diff --git a/assets/img/favicons/apple-touch-icon.png b/assets/img/favicons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2ec2e28ceeffc89e2213af77dc59d2354208ba36 GIT binary patch literal 16417 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 KMNUMnLSTZXLo7G| literal 0 HcmV?d00001 diff --git a/assets/img/favicons/favicon.ico b/assets/img/favicons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..349f1b8359849ae7a617c3b18883b676a9097471 GIT binary patch literal 15086 zcmcIr30&02_5TsAc*G+{qas(*q)D14HHWtdYP_#_U^Lb{f}mE71{DN;+@f+VpdyzV zkAx`VnI^`fji$|~Hn&Mz|Nn~7Dto~0axBZS`}%#eySOaZlGgovhWY*GH}l?i-n@A; z^WGpyE>b6H$Pfv+xAguqk~B<`ByVr)dml;q7s~n|=kIGeOHw>4Jcl}HA}vSa@`w3z z&!nf_(2nVS-SbpXE#A$X#50%S8=kY>6||b$JWNdO(FQIzq%dIm0m%%^ zTBMIrwi_wfJ)P#EPg6JzR?vJd6W>q=^|jmv=?2Qeklfni_rLl+AcdX+&U}_B_}|0x zp1~P3Qu3!xPV*?BPHt&5ira$5ed}1|F>R-5bg-g(GIfJ26Tr`i^aJGkJ1L8P(LplJ ztIO17a2hQE%^#UI#v-11HLv*dOWZQ(70BrCpkEG|1xb+K&!tAP+?md8dyERg22>+MghGNKcI?VxFlhid$M&6rG0j$J(N( zTeXEzb;gsCWIPc;H6MnP@x!n>LqX^_NblZ|{kuT+gCV1f;A!A-vB%QUXV{6Yz-(f@ zkz{(Lz4mlL;o5L6epcO?_?)^kaX;0aj-}e77^*!LMYV-83EU@v`$Raf@1UB3Ffx3w zoeb}9qw3>Z$#6X6EU~!+FYw+ecmqRwd|Uc1uq(&}8o@1nw=biQc8+N{myln7E?x)R z#JKAO?r4GCSO|FoxA8=H15&*OcPMagr)q&cgsP9dOI1g=P{ol=b8NIdGH5Nv!i2dN zVk>hd=W(<4eO+7i>Ek31;67J>Hi7ExaTf{PwY8_@FO4VV9AI8keIop2Qml7n{jWW- z{kf_SwuV$654m4`EJWb0IZX_=ZUdjFR-w^aN@`FhIJ3~bys`U>(0g> z26l7(nbF>nL++KNLPsN&G?Nq=zN zzGgHmwy7A{erU_KqMz}oqaTz?p3P`H#DdC08?IIyTu=J^b)?H%GrlEOjES*9ws9?e zACOK@LT8MF(`i#n-yddKMgIC5`n+{ik+=3zTYNmy=pFQ-X25QG(y<<7pNI7SuwCuy ztz+B&<{h{v>+^%ny4+yBE-$F<{R6N8OlQuhWt~30wo(5tJjQvt*kgY!Y6N-M7yUEnuR`xLSvdmx);69?uU1Qee1e*2P z0c)M*=axm?87uaT+ih*|{yqAz-}e5n^78DUm!Ky(z;4v#tRY=?U_Io%qNDtAp2j=<|ZtLC3EHJ27rx2KIn*-TqY*oT1@Z2W#3C;5GAp z8#@0so@?5&tB&p4d*?k2Y|2c1-r6GAlzI#9AYf+f0i-<;aH}%=?dRL0)7p2&3b`9G z4y!P44*>sPTC3ZUa+0M-st&JTUU6{UO<*VJ3F&fy+bVP5Cf$M6|IqAPI=Cgen)F5E zk>WKeZw8UdXokG*O0PXuj$+u=*Q5C{B>XR8pPNgaci?ylQ!$^GNoeK zFC8hC?_KngM)B4qB+{fUBu(m@NDDF@>)F2pe-6@Bq`Pc??7wyNS$}ZtTG;V=3+@Lx z&hpkCSWV?wZ&UgHRixR!yors}C;Ru+q%Y0{Zj&Z$kp*|k0@5V=lR9bMKia~9wT#cr zcaUnZS62H)P(3dp@wwCDooe zU)$=plzU>WV(gH;3HTScRHwZ%ZSLARuq{|SZMXw@ZbIIWIpoc_%l56Hvc1bmlezSs zHf5o=TCs3?nPTzRjksA?QXubS#yyYJd*+aO_Zy^2ob^Fl{Q3ON*adzk_ty6GfT0)G zO{M+ZWF5EZiVb&J<}xbFSW24o-;qYK7|Bk@h0JZZ=K}j1U#fS_`Wq6dcFove&(HDM zdPZpwV~|d39KW~sUXc^H1?!L19@^uE%=bd(j5~8FurC328}4R0E_B5z^E>+F$$d46 zGykkkoNiVnOm5S^1-S=VvEPOMM6`$3@w@gw;0^n^DRhN#LsuT)W|_0R8MmE|3teG( zTXcoxjTE4cn?6ppa~iNux#q~v@g4dTi9YcBy$bw?9ly8rj&n;F?SZ$=<@?#LJkW8A zuCTnVx{?O$jN7W?8V4O$@0v~O#F?btIfGOQQ`aG>RPj?t6+7w8w)pcmtikUA|7W}g zAa8T7JJRBHs%-zN$}*mxLf#e~FJs&->WaON&oQZY12@Y&5x93w2liGw%e2=OdmXpa6}Bm`hw9yPet=z(fxVJt z{s8w>QUSLrZW81^kyJ6`rnSYFzx7F>K8zV@rSNBBF9aQGvbMBEBl3npH`2{-jErJzo<$W3YPH%)1s{VR-{L>q;Z;*GUyUzOXI6wr`O6 zJm|fd&x~A#=WmgY+P=4z&$?=yxblmdkG6bixGmqHE~UHYJW-~2>wU~mlSRjQ?VN7{ z?k`k(=I&4@&G{A6D&0M)2XJ4v$Q-y6rkIs+lmE{m@7GBgJppN4xjN3L@l4Vh1}?|i zdz>-b>YzW{@Lr95U0++7ecu0k-H=~@WVkx|lEFOfih|0ky;9-dUz0R{LV5Ch zAI56`jh{6;r=76qILmypMjbzChC1r?>B<RVLh^m$3WbMkb^+iabme=3Wd+KXwIM*3~E;P$1`2%jHRvfraNo^9oQ71RrQ zq5{?fj`ap*kQet$_-d^myBAi++OTupz0hz~lE}reZA1%+@Nf|LluaQS`sLQDzaPI_0Lu>vi=v55+A#le3EfWO(*>?Cfu7yT1ADv+a zyYfe#pX!(ix9@NF>CbJ{p+19vzeE|~L#l|;_4h+ZOm&79*BP8bLx7!QYSFE>k*O>C zz%i-s`JB)7dK6Yo>2b1ZbGIUcN2~1|KB!~IuTjOYT^VmuM*EKB&jNdd&-cpkF{BJ1 zWiH(@!s$Ib{8c>|6DLVQt`6*)yt3?3uNwWp{?$2Mu_thM`-I0~$IHdsjPl#V-%3MA z{YDuv`c`T9Xj1MN$=EyK<0BW~DPTMDA<%J z--`0Bul6pD7`0j%KDw%O$0#Zd8(}UD8~Xd!+O|{7&V2xs!P@A!;hf%nytL0 zTp2kgi*?+F8}c^a-#+Z{t&Kx)JHWZ0M=A}44g5QJRd-ZpTI0a;2K3m+SdaA~)pIXB z)>7Tl@R2Xx4;ygwz#=(HZ zao`wxAFzF!Vn3-(-;;e^FZhv}7G%zM3OH^R)t-&CZ{N{pUi*0c2Co{VI;6AUzZ~)# z>?|#=%Wb%=l|~I@pVivB>MY%k)Z_gVc!pq1zDBa#GfAfs;5x&4VBKeJ0KN_UY}Ji3 zcrUTl=eE$tkOBMXiH`98U)LR&Lf$M-%(s2ObOq11kyj(JE_34bkjwbnUarggt^WlM zBH4wop``{%^5tCTW$exQWui`;$B=Fu=e^DNBS~hj5=n}bq=raY>f$R&MijexNs`{| zVs^!9ciS9Et_hNKhlmpXEJ=Sxo^r>M_eP#VWcJdF+~|uupQt3VR+78`f{dIST{!op zl1{e;rpvBTBA0u)STGJ0IrxekWsZ3#t_K?SxfjY@nLbi)r2G;|?hU>vF$uE3gU&LZ z&t1)3eS!0H*M>fk$bahH;7#bqZ7<_E+(M9aq>JH`wvlwMJOT~ACA}LU2gt?C7|C)f z@zoLXm=e0e`Q>_x9Bp#7^Z`q%Mee+L^+xhT`fu-PJq;V>oleg|Pu}FU6ZvW6*O32} zll7U)_}iOYm)n5#&;Rk>K&H;1ISe$9V}70Ibr*5?(XegLyJeDx_bwX9iJ!R)bw)#n zH;cOIbd1|F4QKZmjbL%-3HwEN@MXJviG6}%-|KKc2g3jzmmi^G+`Y-l`UMpvce{Dy zNUu#fpZ9$xy>5k9y1AHXFfC`|?t(wx5lN-tu-Bg={a)A*yL}SW-omq>pc9>r8&G>H z=8f7@(J{D-@_t>R{HgK7h|9(gcYIv+L0Do&-q}~Y6{d~o!$qqs+V=l2?{xA5=3?-k z3E82(WsfHMdOERZ-PyQTkT&36!xbb0csJnwiwXBg8gOsNggYcA+ABVdrXKIUL<7!XG`WsKnPv0rn)Q#_12^}ET1#;oC>i6Ca z#odQG+}miVJiH-_?^7^M=PEn4hH9kE#@#2A?V1A(>vq|OcLi8~iR z;_gB{-&^3eqBdi|o);;adD^VauAyy{e81yc_-Q5!7qmS zmPX@XmlU39uTh*m+4w4WAKucV;$ZM*@U21onEPvusfie- zUX!(AIO_r8SHDJVBtxTER0H3u*%q_BshHYiJ@n-Jw%`r=@4ugsg3`I9rTD#NZa2HED>|rY=NUU=}gMJ#*{9`+_=g);|z)i)m^HB*`s_JOqD^ zm+x)+elYGA>_JSbLBs$BUyh?8_Qx?aTO0~8KedPtTjEceU9)d#5@*d-@0|W`b^KIc z$GONn!T$@4!G*TYblk2yYt_eyCz-9Xw#4o@=GYjU_D7#>vbM#Jrr&{&_dEDVKf514 zRru-b<k}>@jmp|UoGMZNpr$9J7>;Dd{SeLHyPQt3O`>x{Cr0p$6e62taq`v6X)-? zm!5?TuJAd#5n?fQe(Ix|2_r7md^+bd!}Xx670=$ySo(Nb+M+4y2VOOQmPU`h&FqW3fT( zO>lR-`^oCSUPU!kgU%Z2U;5aP_CkT>?pveX75hHPh2ye_^_)k{M5BzEB*T~dH2i}l zswh95Dq`%imUuG{oEtZS|4|!VJii88_&M)myA~KcA3arl1F;1Ye8e{&Ev$T^rFD^D zQ{fBFMAE5ZCat;~KjCp@q~DR!$g#Dh;bV4?{6drYZjmjyFc0PhyZdURysi5W$UyFS ztfC+I9_w++aJ|QA<3u5o#)_5)8F55a%*1K%Lzlx3y-O?m^-)LoY=Yms8a~B>JMzfB zEv`G@!#vR6Ci@TWpE&zte}-=>9xbTs->pD1Sb`onuokbnZDSt8_Ijq@O!@ z?uLI#3;*#6W$5q$Eyg)5eOv+h#muXjOtJ5>jRW$@&F6y!39m2kqecpUq&#*Dcprr? zva&R6WYJF{FT1re=AE(Un1VTX%_AAUHnFd6p=Xc-_K0J-9^|yj@_!6X_IxhTv4N_{ zv0p*fCioJ;cZA_y=AC+Ytt1fIhOEfF)+o9-Kz4czH}q zcZ_`!e80UPHqr>+>-YDz4`0H%)@;1dhJ6X36Dw$Ozd_rPU5oF07GPfx?}@QSLSI7$ zDyaXfS=WDY9c#Pr=WTnRsX|xn7Z_PBF6NlJJ%B$pkX4 z=uIUXy+|^88C|x)&oRRHvgGb7J0wXO<0VNW+$Cun4iVcVZ%HSQak(vTLo#-{az*DF zQ?lICRp;#vH;Fg9O?;U*`zhFo?2Y8CpTawzy7K?dVC`ClK8NB=x0Mq=qyJ0!8`lBJ zraz1+&hhh@qFxEKg8Zui~AMd-c6kA&TY6Y2ADtEB1PHO6W&wZ+aEYqvv*mg zCWG58G-1zLiF+tjxDR1c#Z9@Zj-519$N*~)qw=s&m+cgGh))rJ7GTA-^$aUTCcd^D&h|K2EE%V z+MZTlMG6n*j@~jVQ`R-KpKMNZB59; MuQPgVtIuu!10h*V!T \ No newline at end of file diff --git a/assets/img/favicons/web-app-manifest-192x192.png b/assets/img/favicons/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..0abd6a939fca2221536fe69433e6e4950b46f605 GIT binary patch literal 23592 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 z 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 literal 0 HcmV?d00001 diff --git a/assets/img/favicons/web-app-manifest-512x512.png b/assets/img/favicons/web-app-manifest-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..dde1f5672c01a6b52cd22ae34e9ca756e171a62b GIT binary patch literal 106179 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 DBS=e{ literal 0 HcmV?d00001