The Concise TypeScript Book 的获取渠道与多语言产物构建链路EPUB/PDF 下载与在线网站【免费下载链接】typescript-bookThe Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source.项目地址: https://gitcode.com/gh_mirrors/typ/typescript-book本篇指南以《The Concise TypeScript Book》第 4 章 Downloads and websitedownloads-and-website.md为核心系统讲解这本开源 TypeScript 书籍的两种获取方式——离线下载EPUB/PDF与在线阅读并深入开源仓库内部揭示这些多语言电子书产物是如何通过 pandoc、calibre 与校验脚本被构建和验证的。读完本文你将掌握本书所有发行渠道的完整清单、产物命名规则以及从源码到成品的完整工具链。章节定位一书多读离线与在线并重在 目录页 中本书的结构依次是 Support the Project、Translations、Downloads and website、Table of Contents可见下载与网站是全书引导性章节中的第 4 节承担着向读者交付内容的职责。该章正文虽短却明确了三条关键信息本书提供EPUB 格式的离线下载同时仓库中实际也产出 PDF提供在线版本供在线阅读所有内容免费且开源见 README.md 开篇声明。这一章节与 README 中 Downloads and website 一节相互呼应后者在仓库根目录的 README 中给出了同样的指引。仓库根目录下的downloads/目录、tools/下的构建脚本与website/目录正是这两行指引背后的工程实现。离线产物downloads 目录中的多语言电子书矩阵打开仓库根目录的 downloads 文件夹可以看到实际落盘的产物文件。每条产物遵循统一的命名规则typescript-book[语言区域后缀].格式其中语言区域后缀对应语言区域代码如zh_CN、ja_JP、ar无后缀的文件typescript-book.epub、typescript-book.pdf即英文原版。当前仓库中实际包含 18 种语言的 EPUB 与 PDF 产物语言区域产物前缀语言区域产物前缀英文默认typescript-book日语typescript-book-ja_JP简体中文typescript-book-zh_CN韩语typescript-book-ko_KR意大利语typescript-book-it_IT印尼语typescript-book-id_ID葡萄牙语巴西typescript-book-pt_BR德语typescript-book-de_DE瑞典语typescript-book-sv_SE波兰语typescript-book-pl_PL保加利亚语typescript-book-bg_BG土耳其语typescript-book-tr_TR西班牙语typescript-book-es_ES越南语typescript-book-vi_VN法语typescript-book-fr_FR俄语typescript-book-ru_RU捷克语typescript-book-cs_CZ阿拉伯语typescript-book-ar每种语言同时提供.epub与.pdf两种格式例如中文读者可直接获取downloads/typescript-book-zh_CN.epub与downloads/typescript-book-zh_CN.pdf。各语言的翻译入口与对应 README 文件位于仓库根目录如 README-zh_CN.md、README-ja_JP.md可据此核对各语言版本的维护状态。值得注意的是从产物清单看downloads/中暂无泰语th_TH的 EPUB/PDF但website/e2e/中存在 thai.spec.ts 端到端测试可以推断泰语目前主要面向在线网站提供离线产物矩阵与网站支持的语言范围存在差异。产物从哪来make-books.sh 的两段式构建链路downloads/中的文件并非手工维护而是由 tools/make-books.sh 全自动生成。该脚本的执行分两个阶段阶段一pandoc 生成 EPUB脚本首先校验三个外部依赖是否就绪pandocMarkdown 转 EPUB 的核心引擎epubcheckW3C 官方 EPUB 校验工具calibre 的 ebook-convert用于 EPUB 转 PDF 排版。随后脚本遍历 tools/book-artifacts.sh 中声明的产物矩阵。该文件用管道符分隔的四元组定义每条产物input_markdown_without_extension|output_file_without_extension|title|language例如英文原版与中文版的声明分别是README|typescript-book|The Concise TypeScript Book|en-US README-zh_CN|typescript-book-zh_CN|The Concise TypeScript Book|zh-CN即以仓库根目录的README.md或README-zh_CN.md为源文档输出到downloads/typescript-book.epub或typescript-book-zh_CN.epub并写入统一的元数据titleThe Concise TypeScript Book、authorSimone Poggiali、lang语言代码。pandoc 调用还附加了--standalone与自定义 Lua 过滤器 tools/epub-anchor-filter.lua用于处理锚点链接。阿拉伯语版本有特殊处理由于阿拉伯语是 RTL从右到左文字脚本为其追加--metadata dirrtl、--metadata page-progression-directionrtl、--csstools/rtl.css以及 RTL 专属过滤器 tools/epub-rtl-filter.lua保证 EPUB 阅读器的翻页方向与排版符合阿语阅读习惯。阶段二calibre 转换 PDFEPUB 生成后脚本调用ebook-convert将每个 EPUB 转换为 PDF。PDF 的排版字体由 calibre 按语言区域选择源码注释明确指出书内 CSS 不承担 PDF 排版职责默认使用Noto Serif / Noto Sans / Noto Sans Mono系列字体简体中文zh-CN切换到Noto Serif/Sans/Mono CJK SC日语、韩语ja-JP/ko-KR切换到Noto Serif/Sans/Mono CJK JP。这些字体文件都存放在 tools/fonts 目录中与脚本中的字体族名称一一对应。阿拉伯语 PDF 额外追加--extra-csstools/pdf-rtl.css处理 RTL 排版。一键执行入口tools/Makefile 提供了统一入口books: ./make-books.sh docker-books: docker build --tag $(DOCKER_IMAGE) --file Dockerfile . $(DOCKER_RUN) make -C tools books其中docker-books目标通过 tools/Dockerfile 构建包含 pandoc、epubcheck、calibre 的容器镜像再在容器内执行构建规避了本地环境依赖的差异。构建完成后脚本会提示 Books were created. Please commit!说明产物需要提交入库。质量保障verify-books.py 对产物的自动校验构建流程的最后一步调用 tools/verify-books.py 对全部产物做自动化验收。从 源码 可见其硬性阈值MIN_EPUB_BYTES 50 * 1024 # EPUB 至少 50KB MIN_PDF_BYTES 100 * 1024 # PDF 至少 100KB MIN_PDF_PAGES 2 # PDF 至少 2 页同时它还会检查 PDF 中是否残留旧版字体如 Georgia、Verdana、Times New Roman 等防止排版字体配置失效。Makefile 中的verify-books目标将其与产物矩阵绑定verify-books: python3 ./verify-books.py --downloads-dir ../downloads --artifacts-file ./book-artifacts.sh这意味着任何一次电子书构建都必须通过体积下限、页数下限与字体残留三道校验否则构建流程视为失败。对于想自行复现产物或扩展新语言版本的开发者这套声明产物矩阵 → 构建 → 校验的流水线可以直接复用。在线版本Starlight 驱动的多语言文档网站原章节提到的在线版本在仓库中对应 website 目录一个基于Astro Starlight构建的文档站点。核心配置见 website/astro.config.mjssite: https://gibbok.github.io, base: /typescript-book,站点启用了 Starlight 集成并从 website/src/config/locales.ts 读取默认语言与全部语言区域。站点的内容组织在 website/src/content/docs 下每个语言区域一个子目录如book/为英文原版zh-cn/、ja-jp/等为各翻译版本本篇文章所述的downloads-and-website.md正是该目录树中的一个章节文件。此外还有 llms.txt 生成器以及 多语言版本为搜索引擎与 LLM 提供结构化目录。在本地运行与预览网站仓库是只读的但你可以在本地 clone 后按以下方式体验在线版本cd website npm install # 安装依赖 npm run dev # 启动本地开发服务器 npm run build # 构建生产站点 npm run preview # 本地预览构建产物也可直接使用 tools/Makefile 提供的快捷目标website-preview: cd ../website npm run build npm run preview website-e2e: cd ../website npm run build npm run e2e端到端测试保障多语言页面website/e2e/ 目录为每种语言提供了 Playwright 端到端测试如 english.spec.ts、chinese.spec.ts、arabic.spec.ts 等覆盖各语言首页的可访问性这与 playwright.config.ts 配合构成站点发布的最后一道质量闸门。小结从阅读到复现的完整地图《The Concise TypeScript Book》的下载与网站章节虽短其背后的工程体系却相当完整读者视角离线版到 downloads 目录取用 EPUB/PDF18 种语言 × 2 种格式在线版由website/构建的多语言文档站承载开发者视角产物由 tools/make-books.sh 依据 tools/book-artifacts.sh 的矩阵声明自动生成经 tools/verify-books.py 校验后入库网站则由 Astro Starlight 构建并通过 Playwright 端到端测试保障各语言页面质量。如果你希望深入了解各语言版本的翻译进度与维护入口可查看根目录各语言 README如 README-zh_CN.md与 translations 目录中的语言配置如果你想继续学习书中各技术章节目录页 给出了完整的章节地图。【免费下载链接】typescript-bookThe Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source.项目地址: https://gitcode.com/gh_mirrors/typ/typescript-book创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?