公司动态
Coding-Flashcards 组合牌组:合并6套闪卡并自动发布到 GitHub Releases 的 CI 流程
Coding-Flashcards 组合牌组合并6套闪卡并自动发布到 GitHub Releases 的 CI 流程【免费下载链接】Coding-FlashcardsOver 1000 flashcards to learn Rust, SQLite, Lua, C, Godot, or Wolfram Language from first principles. Written in markdown with script to convert them to Anki decks or PDF files.项目地址: https://gitcode.com/gh_mirrors/ru/Coding-FlashcardsCoding-Flashcards 是一个用 Markdown 编写、收录超过 1000 张编程闪卡的开源学习项目覆盖 Rust、SQLite、Lua、C、Godot 与 Wolfram Language 六门技术。它的亮点不只是丰富的内容更在于一整套自动化的闪卡 CI 流程每次代码提交都会自动把 6 套 Markdown 闪卡合并成一张组合牌组构建为 Anki 牌组.apkg与 PDF 文件并在打标签时自动发布到 GitHub Releases让任何人都能一键下载现成的复习材料。本文带你拆解这套合并闪卡 自动发布的完整流水线。6 套闪卡覆盖 6 门主流技术整个仓库按语言分目录组织每套闪卡都是独立维护的 Markdown 源文件采用统一的问答格式rust/cards.md — Rust 闪卡从所有权、生命周期到cargo常用命令sqlite/cards.md — SQLite 闪卡涵盖 SQL 语法与索引原理lua/cards.md — Lua 闪卡快速掌握脚本语法c/cards.md — C 语言闪卡指针与内存管理必备godot/cards.md — Godot 与 GDScript 闪卡wolfram-language/cards.md — Wolfram Language 闪卡每张卡片的标题是问题正文是答案用. . .分隔结构清晰、易于解析。这种内容与工具分离的设计正是后续自动构建与合并的基础。为什么需要组合牌组把 6 套卡片放进一个 Anki 牌组单套牌组适合专项学习但如果你想全面掌握全部 6 门技术就需要一张组合牌组。它的价值在于一次导入 Anki6 门语言混合复习避免重复切换每张卡片底部会标注它来自哪一套牌组例如灰色小字 Rust Flashcards复习时一目了然组合牌组与单语言牌组同步构建、同步发布无需手工拼接如何合并多套闪卡一条 make 命令搞定合并逻辑写在顶层 makefile 中核心是cards-combined.md规则。它把 6 个语言的cards.md串起来处理先写入牌组元信息name: Coding Flashcards让 Anki 识别为独立牌组用awk逐文件解析提取每套牌的name跳过文件头的 frontmatter重写图片路径把images/xxx.png改写成rust/images/xxx.png这种带目录前缀的路径保证合并后图片不错位在每张卡片的结尾追加一行浅灰色小字标注该卡片来自哪一套牌组同时输出 HTML 与 LaTeX 两种格式兼容 Anki 和 PDF 两种渲染之后执行make build-combined就会依次触发两个产物make build-combinedanki-panky把合并后的 Markdown 转成cards-combined.apkgAnki 牌组pandoc配合tectonic引擎生成cards-combined.pdf复习 PDF单语言目录则统一复用 common.mk 里的构建规则每个语言文件夹里的make build都能独立产出自己的.apkg、带牌组名的.apkg和 PDF代码零重复。CI 自动发布到 GitHub Releases 的完整流程合并与构建只是第一步真正的自动化在于.github/workflows/build-artifacts.yml这个 CI 工作流。它会在以下时机自动运行推送代码到main分支推送v*.*.*格式的标签触发发布提交 Pull Request 或手动触发流程核心步骤如下在 macOS 14 构建机上检出代码安装 Nix并通过 flake.nix 进入开发环境——里面已声明好anki-panky、pandoc、tectonic以及 Hasklug 字体保证构建环境完全可复现把 Hasklug 字体安装到系统字体目录确保 PDF 中代码块的等宽字体正常渲染用矩阵构建matrix并行执行cd 语言目录 make build同时构建 6 套牌组重命名产物如cards-rust.apkg、cards-rust.pdf上传为 workflow artifacts 供下载自动发布当触发条件是标签推送时通过action-gh-release把所有.apkg与 PDF 一次性附加到 GitHub Releases 页面并为此在权限中显式声明了contents: write这套 CI 流程的好处显而易见内容更新只需修改 Markdown 提交构建、合并、发布全自动完成用户永远能从 Releases 页面拿到最新版本无需自己折腾 Anki 导入格式。如何下载与使用这些闪卡使用方式非常傻瓜式直接下载进入项目的 Releases 页面每个版本都附带 6 套单语言牌组和 1 张组合牌组的.apkg与 PDF下载.apkg后双击即可导入 Anki 开始复习本地构建如果你想自己动手可以克隆仓库https://gitcode.com/gh_mirrors/ru/Coding-Flashcards安装 Nix 后执行nix develop进入开发环境再运行make build或make build-combined重建所有产物结语Coding-Flashcards 给闪卡项目树立了一个很好的范例用 Markdown 维护内容用 Makefile 定义构建用 Nix 锁定环境再用 CI 完成合并与自动发布。无论你是想直接下载 1000 张现成闪卡还是想借鉴这套文档即产品的自动化流程它都值得一试。✨【免费下载链接】Coding-FlashcardsOver 1000 flashcards to learn Rust, SQLite, Lua, C, Godot, or Wolfram Language from first principles. Written in markdown with script to convert them to Anki decks or PDF files.项目地址: https://gitcode.com/gh_mirrors/ru/Coding-Flashcards创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考