ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Learn X in Y minutes 文档仓库全指南:以“代码即文档“方式速览编程语言的内容模型与贡献流程

Learn X in Y minutes 文档仓库全指南:以“代码即文档“方式速览编程语言的内容模型与贡献流程 文档教程【免费下载链接】learnxinyminutes-docsCode documentation written as code! How novel and totally my idea!项目地址https://gitcode.com/gh_mirrors/le/learnxinyminutes-docs点击查看免费下载Learn X in Y minutes是一个以代码即文档为核心理念的开源速览教程仓库它把编程语言的教学内容写成可直接运行、带详细注释的代码让读者边读代码边学习语言特性。本文将以仓库根目录的 README.md 为骨架结合 CONTRIBUTING.md 的格式规范、python.md 的完整范本以及 lint/ 下的自动化检查脚本完整拆解这套内容模型的运作方式让你既能读懂仓库里任何一篇教程也能按照规范提交自己的语言速览文章或翻译。项目定位一段话看懂代码即文档README 开篇用一句话定义了整个仓库的使命Whirlwind tours of (several, hopefully many someday) popular and ought-to-be-more-popular programming languages, presented as valid, commented code and explained as they go.翻译过来就是用旋风式导览介绍流行以及本该更流行的编程语言内容呈现形式是合法可运行的、带注释的代码并在讲解过程中逐步解释。这正是该仓库与普通语言教程最本质的区别——每一篇文档首先是一段能跑起来的程序其次才是一篇教学文章。项目自述 Code documentation written as code!把文档写成代码本身也印证了这一设计哲学读者看到的不是关于代码的文字而是被注释浸透的代码。仓库布局数百篇速览文档的组织方式从仓库根目录的 [environment 文件清单] 可以看出整个仓库的结构非常扁平且规整英文原版文档直接存放在仓库根目录按语言文件名命名例如 python.md、go.md、rust.md、c.md以及算法/数据结构类主题如 dynamic-programming.md翻译版本按 ISO 语言代码存放在对应目录下例如de/德语、es/西班牙语、fr/法语、ja/日语、ko/韩语、ru/俄语、zh-cn/简体中文、zh-tw/繁体中文等数十个语言目录每个目录内的文件名与英文原版一一对应如 zh-cn/python.md根目录还有用于质量保障的 lint/ 工具目录、贡献规范 CONTRIBUTING.md 以及许可证文件 LICENSE.txt。这样的组织方式让读者可以按语言目录快速定位母语版本也让贡献者能够照着英文原版做翻译而不必关心文档结构。文档格式规范frontmatter 与正文骨架README 强调复制已有文件的格式即可非常简单而这份格式的细节在 CONTRIBUTING.md 中得到了完整定义每篇 Markdown 文档顶部可以包含一段称为frontmatter的 YAML 元数据网站生成器会读取它来渲染页面。frontmatter 字段说明根据 CONTRIBUTING.md 的 Header configuration 一节字段定义如下字段是否必填类型与取值说明name英文语言文章必填字符串编程语言的可读名称如Pythoncontributors英文语言文章必填由[作者, URL]组成的列表用于署名URL 可选category可选language/tool/Algorithms Data Structures文章分类省略时默认为languagefilename可选字符串本文代码下载时的文件名会被抓取、拼接并供下载translators翻译文章需包含由[译者, URL]组成的列表翻译署名URL 可选非英文文章会继承英文原版的 frontmatter 值但允许覆盖。一个真实的 frontmatter 示例以 python.md 第 1–15 行为例这就是一份完全合规的头部配置--- name: Python contributors: - [Louie Dinh, http://pythonpracticeprojects.com] - [Steven Basart, http://github.com/xksteven] - [Andre Polykanine, https://github.com/Oire] ... filename: learnpython.py ---注意contributors的每一项都是[作者名, URL]形式的列表URL 可以省略但作者名必须是字符串——这条约束在仓库的校验脚本里被严格检查见下文质量保障一节。正文结构约定正文部分没有强制的章节模板但仓库内所有文档都遵循同一套教学法用代码讲语法用注释讲语义。以 python.md 为例全文 1125 行几乎全部是带# 结果注释的 Python 代码从原始数据类型与运算符第 29 行起一路推进到高级特性第 1019 行起每个主题用##级注释行如## 1. Primitive Datatypes and Operators做分节读者可以直接把整份文件当作一个.py脚本运行边跑边学。实战范本拆解python.md 的七段式教学法python.md 是仓库中最具代表性的范本之一它的结构完整呈现了代码即文档的展开方式Primitive Datatypes and Operators第 29 行起从数字、 - * /运算讲起逐一演示整除//、取模%、幂运算**、布尔值与比较运算符并点出is与的区别等 Python 特性Variables and Collections第 168 行起变量赋值、列表append/pop/remove/insert、切片li[1:3]、不可变元组、字典的get/setdefault/update、集合的交并差与对称差运算Control Flow and Iterables第 390 行起if/elif/else、Python 3.10 引入的match/case模式匹配、for/while循环、try/except/finally异常处理、with上下文管理、迭代器与StopIterationFunctions第 574 行起def定义、关键字参数、*args/**kwargs、闭包与nonlocal、lambda 匿名函数、map/filter、列表/集合/字典推导式Modules第 704 行起import的各种写法、dir()内省、以及本地同名模块会遮蔽内置模块的路径优先级说明Classes第 741 行起类属性、__init__特殊方法、类方法/静态方法/property随后在第 837 行与第 934 行分别展开单继承与多继承super()、__mro__方法解析顺序、显式调用各祖先__init__的剥洋葱写法Advanced第 1019 行起yield生成器与惰性求值、生成器推导式、装饰器及functools.wraps保留函数元信息。每一节都保持代码 行内注释结果# ... 极少量文字的比例真正做到了 README 所说的as they go边讲边跑。如果你想写一篇新语言的速览文档直接照抄这份文件的排版与节奏就是最稳妥的起点。贡献指南从一个小 typo 到全新文章README 的 Contributing 一节明确了贡献的开放边界所有形式的贡献都欢迎从最小的拼写错误到一篇全新文章同时欢迎所有语言的翻译以及任何语言的原创文章。具体流程与规范如下Issue/PR 标签约定为了让社区成员快速筛选自己关心的内容README 要求在 issue 和 pull request 的标题前加上[language/lang-code]标签。例如[python/en]表示英文 Python 相关[python/zh-cn]表示简体中文 Python 相关。拆分大型改动如果一次贡献包含多个独立的大改动例如同时翻译两种不同语言README 建议为每个改动单独发起一个 PR这样审阅者可以更有效地逐一审查。创建新文章的基本步骤从仓库中挑一篇已有文件复制其排版格式frontmatter 注释代码体新建同名文档文件写好内容务必填写contributors字段确保贡献者正确署名README 原话Remember to fill in the contributors fields so you get credited properly!提交 pull request通过审查后即会被收录上线。署名规范CONTRIBUTING.md 还补充了一条署名判断标准contributors 享有同等的署名权而第一位 contributor 通常就是整篇文章的作者。因此在决定是否把自己加进 contributors 列表时应判断自己的改动是否构成实质性贡献而非仅仅因为改动了一两行就署名。质量保障仓库内置的自动化检查仓库的 lint/ 目录提供了两套自动化校验脚本把 README 强调的简单格式落实成了可执行的检查项frontmatter.pyYAML 头部结构校验lint/frontmatter.py 是一个 Python 脚本对单文件或整个目录的*.md递归执行三类检查frontmatter 提取用正则^(---\s*\n.*?\n)---\n从 Markdown 开头抽取 YAML 头部第 10–17 行YAML 语法 lint通过yamllint校验 YAML 语法并针对本仓库场景放宽了逗号、缩进、行长等常规规则第 20–39 行键值与类型校验只允许name、where_x_eq_name、category、filename、contributors、translators六个键第 80–87 行且contributors/translators必须是列表、列表项必须是[字符串, 可选字符串]结构、长度只能是 1 或 2第 42–69 行——这正好印证了 CONTRIBUTING.md 中 frontmatter 字段规范的可执行版本。encoding.sh文件编码与 BOM 检查lint/encoding.sh 用file -b --mime-encoding检测每个 Markdown 文件的编码要求必须是utf-8或us-ascii且不允许存在 UTF-8 BOM 头第 8–20 行。这与 CONTRIBUTING.md 的 Use UTF-8 风格约定一一对应保证了多语言文档在各类渲染环境下的兼容性。风格约定可扫描、可运行、少废话CONTRIBUTING.md 的 Style Guidelines 一节给出了四条核心写作原则这也是所有文档排版一致性的来源代码块行宽控制在 80 字符以内避免渲染溢出其余潜在格式问题由 markdownlint 自动识别示例优先于叙述能用代码示例说明的就不要用文字解释摒弃赘余目标读者是有一定经验的程序员避免解释与语言本身无关的基础概念保持文章简洁、可快速扫读全程使用 UTF-8编码。语法高亮则由 Pygments 负责站点生成器会依据语言自动着色。本地构建与预览如果你想在本地预览这些文档渲染后的网站效果CONTRIBUTING.md 的 Building the site locally 一节给出了完整步骤以 macOS 为例其他平台同理安装 PythonmacOS 可用 Homebrewbrew install python克隆网站工程与本文档仓库并把本仓库嵌套克隆到网站的source/docs/目录下git clone https://github.com/adambard/learnxinyminutes-site git clone https://github.com/YOUR-USERNAME/learnxinyminutes-docs ./learnxinyminutes-site/source/docs/安装依赖并启动本地服务cd learnxinyminutes-site pip install -r requirements.txt python build.py cd build python -m http.server在浏览器打开http://localhost:8000/即可预览。可以看到实际站点是由网站工程读取本仓库的 Markdown含 frontmatter生成 HTML 的——这也解释了为什么 frontmatter 的每个字段都会被严格校验它们直接决定页面标题、分类、署名和代码下载功能。许可与版权模型README 的 License 一节定义了整个仓库的知识产权规则这一点对贡献者尤其重要每篇文档默认采用 Creative Commons Attribution-ShareAlike 3.0 UnportedCC BY-SA 3.0许可发布贡献者保留其作品的版权并且可以随时要求移除自己的内容贡献者上传文档即表示同意以上述 CC BY-SA 3.0 许可发布README 本身不受上述条款约束Basically, this README — you can use as you wish即本文档仓库自述部分可按需自由使用。结语从读代码到写代码即文档Learn X in Y minutes 的内容模型可以概括为一句话一篇文档 一段可运行的注释代码 一份严格的 frontmatter 元数据 一套可自动校验的格式约定。读懂 README.md 能让你理解项目的定位与贡献精神读透 CONTRIBUTING.md 与 python.md 能让你掌握从字段到排版的全部细节而 lint/ 目录则展示了这些规范是如何被脚本化、可执行化的。无论你是想学习一门新语言、为已有文章修正一个拼写错误还是贡献一篇全新语言的速览教程这套代码即文档的工作流都值得直接上手一试。赞分享文档教程【免费下载链接】learnxinyminutes-docsCode documentation written as code! How novel and totally my idea!项目地址https://gitcode.com/gh_mirrors/le/learnxinyminutes-docs点击查看免费下载相关推荐Learn X in Y Minutes 项目文档Learn X in Y Minutes 项目文档 1. 项目目录结构及介绍 learnxinyminutes docs 项目是一个开源文档项目旨在为各种编程文档教程深入探索Learn X in Y Minutes的技术栈与语言覆盖深入探索Learn X in Y Minutes的技术栈与语言覆盖 Learn X in Y Minutes项目以其独特的代码即文档理念为开发者提供了快速上手文档教程3 分钟在本地跑通 Open-LLM-VTuber能听能说的 AI 虚拟主播3 分钟在本地跑通 Open LLM VTuber能听能说的 AI 虚拟主播 你手上正忙又想找 AI 聊两句但懒得敲字Open LLM VTuber 就文档教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表