建议先安装 VS Code 插件 Code Runner,可用快捷键 Ctrl + Alt + N 快速运行当前文件。
本项目用于提取并对比 Zig 官方文档中的示例代码(.zig)。
当前已提取版本:
docs_examples/0.15.2(297)docs_examples/0.15.2_zh(297,中文注释版)docs_examples/0.14.1(297)docs_examples/0.13.0(283)
cd Hellozig如果你机器里还没有 zig 命令,请先安装 Zig。
python3 "tools/提取Demo为本地Zig文件.py" --fetch \
--url https://ziglang.org/documentation/0.15.2/ \
--url https://ziglang.org/documentation/0.14.1/ \
--url https://ziglang.org/documentation/0.13.0/脚本会自动生成:
docs_examples/<version>/:该版本全部.zig示例docs_examples/<version>.documentation.html:官网页面缓存docs_examples/<version>/MANIFEST.md:该版本文件清单- 示例文件默认按文档顺序编号命名:
001_xxx.zig、002_xxx.zig...
zig run docs_examples/0.15.2/001_hello.zig注意:部分示例是“故意报错”的,运行失败属于正常现象。
目录:docs_examples/0.15.2_zh
用途:基于 0.15.2 自动生成中文注释版本(保留同样的编号文件名)。
生成命令:
python3 tools/中文化0152注释.py目录:easy_labs/
easy_labs/request.zig:简单 HTTP GET 请求easy_labs/b64.zig:Base64 编码/解码
示例:
zig run easy_labs/request.zig
zig run easy_labs/request.zig -- http://example.com
zig run easy_labs/b64.zig -- encode "hello world"
zig run easy_labs/b64.zig -- decode "aGVsbG8gd29ybGQ="python3 tools/compare_demo_codeblock.py --versions 0.13.0 0.14.1 0.15.2 --classify输出:
- 终端分类清单:完全相同 / 有差异 / 部分版本缺失
脚本:tools/compare_demo_codeblock.py
能力清单:
- 按文件名检查“是否存在于各版本”(FOUND/MISSING)
- 按文件名输出相邻版本逐行 diff(
--diff) - 按关键词/正则搜索示例文件(
--contains/--regex) - 输出候选文件列表(
--list) - 多版本文件一致性分类(
--classify):- 完全相同(Identical In All Versions)
- 存在差异(Different Across Versions)
- 部分版本缺失(Missing In Some Versions)
python3 tools/compare_demo_codeblock.py --file hello.zig --diff
python3 tools/compare_demo_codeblock.py --file test_for.zig --diffpython3 tools/compare_demo_codeblock.py --contains "for (" --list --max-files 20
python3 tools/compare_demo_codeblock.py --contains "std.io" --list --max-files 20再挑文件名做逐行 diff:
python3 tools/compare_demo_codeblock.py --file <某个文件名>.zig --diff对选定版本的全部 demo 做分类:
python3 tools/compare_demo_codeblock.py --versions 0.13.0 0.14.1 0.15.2 --classify也可以只对某类文件做分类(例如包含 for ():
python3 tools/compare_demo_codeblock.py --versions 0.13.0 0.14.1 0.15.2 --contains "for (" --classify- 问:Zig 官方会不会改示例文件名?
- 答:会。可先用
MANIFEST.md看顺序映射,再用compare_demo_codeblock.py对比。 - 问:同名文件会不会语法变化?
- 答:会。用
compare_demo_codeblock.py --file xxx.zig --diff看逐行变化。