Skip to content

NOBB2333/Hello-Zig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zig 官网 Demo(多版本)

建议先安装 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。

1) 重新抓取示例(支持多版本 URL)

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.zig002_xxx.zig ...

2) 运行某个示例

zig run docs_examples/0.15.2/001_hello.zig

注意:部分示例是“故意报错”的,运行失败属于正常现象。

2.1) 中文注释版(0.15.2_zh)

目录:docs_examples/0.15.2_zh

用途:基于 0.15.2 自动生成中文注释版本(保留同样的编号文件名)。

生成命令:

python3 tools/中文化0152注释.py

easy_labs(你自己的小脚本)

目录: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="

3) 版本总览对比(新增/删除/改名/同名改动)

python3 tools/compare_demo_codeblock.py --versions 0.13.0 0.14.1 0.15.2 --classify

输出:

  • 终端分类清单:完全相同 / 有差异 / 部分版本缺失

4) 精准对比某个代码块(你当前最关心)

脚本:tools/compare_demo_codeblock.py

能力清单:

  1. 按文件名检查“是否存在于各版本”(FOUND/MISSING)
  2. 按文件名输出相邻版本逐行 diff(--diff
  3. 按关键词/正则搜索示例文件(--contains / --regex
  4. 输出候选文件列表(--list
  5. 多版本文件一致性分类(--classify):
    • 完全相同(Identical In All Versions)
    • 存在差异(Different Across Versions)
    • 部分版本缺失(Missing In Some Versions)

4.1 直接按文件名对比(存在性 + 逐行变化)

python3 tools/compare_demo_codeblock.py --file hello.zig --diff
python3 tools/compare_demo_codeblock.py --file test_for.zig --diff

4.2 先按关键词找候选,再对比

python3 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

4.3 多版本“相同/不同/缺失”分类清单

对选定版本的全部 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 看逐行变化。

About

一个可以批量拉取z官网项目实例的脚本以及实例运行库。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors