
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
:
sitediff help diff
入门使用
创建配置:为网站创建配置
sitediff init http://mysite.example.com
默认生成名为 sitediff.yaml 的配置文件。
爬取网站:让 SiteDiff 爬取网站以发现页面
sitediff crawl
爬取结果将保存到 paths.txt 文件。
比较差异:在网站更改后检查变化
sitediff diff
查看HTML报告:启动内部Web服务器查看报告
sitediff serve
更新缓存:满意网站状态后更新缓存版本
sitediff store
比较两个网站
对比生产环境与开发环境网站:
sitediff init http://mysite.example.com http://localhost/mysite
若两个网站都可能变化,禁用缓存:
sitediff diff --cached=none
指定配置目录
默认 SiteDiff 将所有文件放在 sitediff 文件夹,可使用 --directory 标志指定其他目录:
bashsitediff init -C my_project_folder https://example.com sitediff diff -C my_project_folder sitediff serve -C my_project_folder
指定页面路径
运行 sitediff diff 时,可通过以下方式指定要检查的页面:
使用 --paths 选项:
bashsitediff diff --paths /home /about /contact
使用 --paths-file 选项指定路径文件:
bashsitediff diff --paths-file sitediff/failures.txt
调试规则
调试清理规则时,使用 --cached=all 选项避免重新获取内容,加快比较速度:
bashsitediff diff --cached=all
包含与排除URL
使用正则表达式包含或排除特定路径:
bash# 排除PDF文件 sitediff crawl --exclude='.*\.pdf'
导出报告
生成包含HTML报告的压缩tar文件:
bashsitediff diff --export sitediff diff -e
容器内运行
在容器或虚拟机内运行时,可使用 --before-url-report 和 --after-url-report 选项调整报告中的URL:
bashsitediff diff --after-url-report=http://vagrant:8080
SiteDiff 依赖 YAML 配置文件(通常为 sitediff.yaml),可通过 sitediff init 生成基础配置,然后手动修改。
before_url / after_url
指定要比较的两个网站URL,也可以是本地文件系统路径:
yamlbefore_url: http://example.com/subsite after_url: http://localhost:8080/subsite
selector
指定要比较的HTML部分,而非整个页面:
yamlselector: '#breadcrumb' # 仅比较ID为breadcrumb的元素
sanitization
用于规范化HTML的正则表达式规则列表:
yamlsanitization: # 移除Drupal表单构建ID - pattern: '<input type="hidden" name="form_build_id" value="form-[a-zA-Z0-9_-]+" *\/?>' selector: 'input' substitute: '<input type="hidden" name="form_build_id" value="__form_build_id__">'
ignore_whitespace
比较时忽略空白字符:
yamlignore_whitespace: true
命令行选项:-w 或 --ignore-whitespace
before / after
为比较的某一侧应用特定规则:
yamlbefore: sanitization: - pattern: '[1-2][0-9]{3}/[0-1][0-9]/[0-9]{2}' substitute: '__date__' after: sanitization: - pattern: '[A-Z][a-z]{2} [0-9]{1,2}(st|nd|rd|th) [1-2][0-9]{3}' substitute: '__date__'
includes
包含其他配置文件:
yamlincludes: - config/sanitize_domains.yaml - config/strip_css_js.yaml
dom_transform
对HTML结构应用转换的规则列表,支持以下类型:
remove:移除匹配选择器的元素
yamldom_transform: - type: remove selector: div#block-time # 移除时间块
strip:去除标签内容的前后空白
yamldom_transform: - type: strip selector: h1 # 去除h1标签内容的前后空白
unwrap:用子元素替换匹配的元素
yamldom_transform: - type: unwrap selector: article # 移除article标签,保留其内容
remove_class:从元素中移除指定类
yamldom_transform: - type: remove_class selector: div class: class-foo # 移除div元素的class-foo类
unwrap_root:用子元素替换整个根元素
report
配置报告显示信息:
yamlreport: title: "example.com更新报告" details: "本报告验证example.com的更新情况。" before_note: "旧网站" after_note: "新网站" before_url_report: http://example.com after_url_report: http://staging.example.com
命名区域(Named regions)
定义页面标记中的区域及比较顺序,适用于标记结构变化较大的场景:
yamlregions: - name: title selector: h1.title - name: author selector: .field-name-attribution - name: body selector: .field-name-body output: - title - author - body
Curl选项
配置底层curl库的选项:
yamlsettings: curl_opts: max_recv_speed_large: 10000 # 限制接收速度 ssl_verifypeer: false # 忽略SSL证书验证 timeout: 60 # 超时时间(秒) concurrency: 3 # 最大并发连接数 interval: 1000 # 请求间隔(毫秒) depth: 3 # 爬取深度
bash# 初始化配置 docker run -v $(pwd)/sitediff:/app/sitediff sitediff/sitediff init http://old.example.com http://new.example.com # 爬取网站路径 docker run -v $(pwd)/sitediff:/app/sitediff sitediff/sitediff crawl # 生成差异报告 docker run -v $(pwd)/sitediff:/app/sitediff sitediff/sitediff diff # 启动报告服务器(访问http://localhost:13080查看报告) docker run -v $(pwd)/sitediff:/app/sitediff -p 13080:13080 sitediff/sitediff serve
yamlversion: '3' services: sitediff: image: sitediff/sitediff volumes: - ./sitediff:/app/sitediff # 挂载配置和数据目录 ports: - "13080:13080" # 映射报告服务器端口 command: serve # 启动报告服务器
yamlsanitization: - name: remove_empty_p pattern: '<p/>' substitute: '' # 移除空的<p/>标签
yamlsanitization: - name: remove_space_before pattern: '\s*(\n)<' substitute: '\1<' # 移除标签前的空格 - name: remove_space_after pattern: '>(\n)\s*' substitute: '>\1' # 移除标签后的空格
yamlsanitization: - name: remove_empty_class pattern: ' class=""' substitute: '' # 移除空的class属性
将大型配置文件拆分为多个文件:
yamlincludes: - generic_rules.yaml # 通用规则 - update_specific_rules.yaml # 特定更新规则
#是注释符号您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务