Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
4104572
Add Plugin: html2video-for-mcode
Wzdhehe Sep 17, 2026
9684d4b
Add Plugin: html2video-for-mcode
Wzdhehe Sep 17, 2026
756ffb6
fix: place plugin files under plugins/Wzdhehe/ (previous commit wrote…
Wzdhehe Sep 17, 2026
11bd0c7
chore: restore repo-root file to upstream content (my earlier commit …
Wzdhehe Sep 17, 2026
96f0458
chore: restore repo-root file to upstream content (my earlier commit …
Wzdhehe Sep 17, 2026
701a14a
chore: restore repo-root file to upstream content (my earlier commit …
Wzdhehe Sep 17, 2026
737ee96
v1.0.1: 领域与合规(受监管题材)——免责声明/数字口径/涨跌色 + 整片级领域自查
Wzdhehe Sep 17, 2026
f015a8b
v1.1.0: 评审修复(路径收监/覆盖拒绝/ASR 端点白名单/抓图 SSRF 收紧)+ 72 例 node:test 可执行测试
Wzdhehe Sep 18, 2026
0f9dd3c
ci: 为 html2video-for-mcode 加 scoped smoke workflow(装 ffmpeg+playwrigh…
Wzdhehe Sep 18, 2026
4fa74ea
ci: 修正 workflow 路径(上一条前缀重复, 落到 .github/workflows/.github/workflows/)
Wzdhehe Sep 18, 2026
e8b98ce
feat: 放映页(preview-page)可先放映一遍再渲染; init-project --upgrade-css; 修 fx-sp…
Wzdhehe Sep 18, 2026
acdfefd
ci: smoke workflow 覆盖新增 2 个测试文件(共 7 个)
Wzdhehe Sep 18, 2026
7455181
refine: 放映页只做放映(去计时器/进度条/跟读高亮) + 响应式布局; 口播 UI 按数据自动开关
Wzdhehe Sep 18, 2026
7ee2cb4
docs: 文档与功能对齐(11 脚本+3 模块、99 例测试、放宽后的层规则、Gate 4 口径、合规/图表/no-fx 覆盖)
Wzdhehe Sep 18, 2026
62816b1
docs: 英文 README 的示例需求补英文对译
Wzdhehe Sep 18, 2026
97ad020
feat: fetch-official-images --url(内置浏览器取图有落盘入口)+ 内置浏览器纪律写进配图/调研 SOP
Wzdhehe Sep 18, 2026
4701daa
fix: --url 下载查重前置 + 0 字节/绕圈护栏(含文档)
Wzdhehe Sep 18, 2026
eec9f0d
feat: 图表工具箱 v2 + 数据可视化纪律(轴线/字幕安全区/数值列)
Wzdhehe Sep 18, 2026
472ebdf
ci: smoke 清单加 chart-kit
Wzdhehe Sep 18, 2026
52278f2
feat: 表格工具箱 + 可读性硬指标(正文号/行高 72)
Wzdhehe Sep 18, 2026
4089ba5
ci: smoke 清单加 table-kit
Wzdhehe Sep 18, 2026
8648e40
docs: 模块数修正(11 CLI + 5 内部模块)
Wzdhehe Sep 18, 2026
b66404d
html2video-for-mcode 1.2.0: CSS 工具箱受管块(rev 原地替换 + --check-css), 修 .ma…
Wzdhehe Sep 18, 2026
b4fc434
CI: smoke 清单加 css-kit.test.mjs
Wzdhehe Sep 18, 2026
6e2fcae
html2video-for-mcode 1.3.0: SSRF mapped-IPv6 拦截、竖版放映页、still 复截警告、受管块 …
Wzdhehe Sep 18, 2026
0fe6a11
html2video-for-mcode 1.3.1: 调研行补内置浏览器/无头浏览器归属, 工具开放纪律不变
Wzdhehe Sep 18, 2026
3f1a0c2
html2video-for-mcode 1.3.2: 开工对齐新增'数据与图表'必问项
Wzdhehe Sep 18, 2026
17385f3
html2video-for-mcode 1.3.3: Gate 1 呈现格式补'表格与动效'必填列
Wzdhehe Sep 18, 2026
105f797
html2video-for-mcode 1.3.4: 配图 SOP 路径 D(公告与报道截图, 主流门户合格)
Wzdhehe Sep 18, 2026
619f860
html2video-for-mcode 1.3.5: 开工对齐必须问并等答(附实测反例为禁例)
Wzdhehe Sep 18, 2026
d49b876
html2video-for-mcode 1.3.6: 素材边界加问负面事件的公告/新闻截图
Wzdhehe Sep 18, 2026
33f6a1e
html2video-for-mcode 1.3.7: 开工对齐 11 项重排 + Gate 3 选素材与补充素材
Wzdhehe Sep 18, 2026
fcf3630
feat(preview): manual level stepping, double-buffered frame swap, bil…
Wzdhehe Sep 18, 2026
733d7a8
fix(security): contain output paths, validate every network request, …
Wzdhehe Sep 18, 2026
349b14b
feat(video): cover image, non-black first frame, slide transitions, s…
Wzdhehe Sep 18, 2026
114b628
fix(html2video): one managed tokens region + stale-CSS blocking, thir…
Wzdhehe Sep 18, 2026
9ab1dfb
html2video-for-mcode 1.7.1: framesCover 清单校验 + 宿主 CI 兼容(ASR 用例带因跳过) +…
Wzdhehe Sep 18, 2026
b945b51
ci: 补推 1.7.0 就该上的 smoke workflow 修正(shell glob/permissions/SHA pin ——…
Wzdhehe Sep 18, 2026
3a2f188
html2video-for-mcode 1.7.2: --json 布尔读取修复(末位静默退化) + canary 用例补 playwr…
Wzdhehe Sep 18, 2026
d482a84
html2video-for-mcode 1.7.3: 五处收监用例在无链接平台空过 → 带因跳过(其中一处补 junction 回退真跑…
Wzdhehe Sep 19, 2026
50987c1
html2video-for-mcode 1.7.4: capture 补 width/height 整数闸门(playwright 之前…
Wzdhehe Sep 19, 2026
154eb79
html2video-for-mcode 1.7.5: 第三份 review 四条全修 —— safeRel 祖先链接回退收紧(实弹复现过…
Wzdhehe Sep 19, 2026
b18546a
html2video-for-mcode 1.7.6: 九轮 review 收尾 —— grab-frames 叶子收监(同类最后一处)+…
Wzdhehe Sep 19, 2026
a9841af
html2video-for-mcode 1.7.6: 九轮 review 收尾 —— grab-frames 叶子收监(同类最后一处)+…
Wzdhehe Sep 19, 2026
5200b5b
html2video-for-mcode 1.7.6: 九轮 review 收尾 —— grab-frames 叶子收监(同类最后一处)+…
Wzdhehe Sep 19, 2026
e2ae2a4
html2video-for-mcode 1.7.7: 十轮审计 —— asr 转码临时文件移入 os.tmpdir()(1.7.6 的"…
Wzdhehe Sep 19, 2026
9b62df6
html2video-for-mcode 1.7.8: 十一轮审计 —— 写点穷举清点收敛(58 站点无可利用残留) + 修正 1.7.7…
Wzdhehe Sep 19, 2026
51b127f
html2video-for-mcode 1.7.9: docs-only —— 更正 1.7.8 条目的类目算术(类间重叠), 结论不变
Wzdhehe Sep 19, 2026
e845cbd
html2video-for-mcode 1.8.0: 十三轮 review —— 第二仓库不再作为安装渠道(homepage→宿主目录/…
Wzdhehe Sep 19, 2026
443ca01
html2video-for-mcode 1.8.1: docs-only —— SKILL.md 安装段收口到宿主插件(第 13 轮评审…
Wzdhehe Sep 19, 2026
ec8addd
asr: default to mmx speech transcribe (mmx-cli >= 1.0.26); keep --pro…
Wzdhehe Sep 20, 2026
e63c277
review fixes (1.9.1): align plugin-root READMEs, harden Windows cmd q…
Wzdhehe Sep 20, 2026
4c9926e
review fixes (1.9.2): scrub env at the single spawn source, make ENVK…
Wzdhehe Sep 20, 2026
6c360d6
normalize text files to LF and add .gitattributes (1.9.3)
Wzdhehe Sep 21, 2026
9ad80b9
smoke workflow: add windows-latest job (choco ffmpeg + chromium), ali…
Wzdhehe Sep 21, 2026
4689e6f
Merge branch 'main' into add-plugin-html2video-for-mcode
Wzdhehe Sep 22, 2026
01635db
fix(subtitles): last-clause keyframe collision made subtitles fade gr…
Wzdhehe Sep 22, 2026
884dd32
fix(subtitles): restore the finish()-hides contract and keep the cove…
Wzdhehe Sep 22, 2026
b6d19f1
docs: hard mcode-first environment rule; per-environment voice verifi…
Wzdhehe Sep 22, 2026
ce71287
check-slides: flag percentage-height bars sitting bare in a flex colu…
Wzdhehe Sep 22, 2026
c0fa6fd
layout: safe-center scaffold + capture geometry self-check against ov…
Wzdhehe Sep 22, 2026
ccc68e2
fix entry-guard silent no-op via symlinked paths; width-aware subtitl…
Wzdhehe Sep 23, 2026
abd0f7d
fix subtitle line-width geometry (scaled, clamped) and close the 18-c…
Wzdhehe Sep 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions .github/workflows/html2video-for-mcode-smoke.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# html2video-for-mcode · scoped smoke CI
# 官方主 CI(ci.yml)只跑 validate + node --test(无 ffmpeg/playwright, 渲染冒烟会 skip)。
# 本 workflow 按 CONTRIBUTING/ci.yml 注释给出的"单插件 scoped workflow"模式,
# 装齐依赖后真实执行全部测试 —— 这是 PR #41 评审要求的可执行测试证据。
# 触发条件: 仅本插件目录(.github/workflows/ 本文件除外)或本文件自身变更。
#
# 第三轮 review 修正(2026-09-18, 1.7.1 才真正推上来 —— 1.7.0 时这份修正只改了本地没推送,
# PR 分支上一直是旧枚举版, 漏跑 cover-transition / review-round2 / review-round3 / subtitles-invalidate):
# ① 测试文件不再逐个枚举, 改用 shell glob `tests/*.test.mjs` —— 枚举写法每加一个测试文件就要
# 手工记得改这里, 历史上已经漏过 css-kit / tokens-fx / chart-kit / table-kit 与上述四个文件。
# ② 补 permissions: contents: read(与本仓库其余 scoped workflow 一致, 只读仓库)。
# ③ actions 按仓库主 ci.yml 的同一批版本做**完整 SHA pin**(附版本注释), 不用浮动 tag;
# SHA 由 gh api repos/<owner>/<repo>/commits/<tag> 解析得到, 40 位整(主 ci.yml 的 checkout
# 那行多了一位字符, 那是宿主仓库自己的笔误, 不去动它 —— 见 PR comment)。
#
# 第四轮 CHANGES_REQUESTED 修正(2026-09-21): 评审要求 exact-head 证据覆盖 **Windows** ——
# 新增 windows-latest 作业(同一条命令, 依赖换成 choco ffmpeg + chromium)。两个作业的命令与
# 依赖组合已先在技能镜像仓的 CI 上双平台跑绿(248 pass / 0 fail / 0 skip, 两个平台各一次),
# Node 版本也从 22 提到 24 与那份证过的配置对齐(此 workflow 此前因审批门从未真正执行过)。
# ffmpeg 一律走系统包(PATH 发现): 测试会把脚本放进临时项目目录当 cwd 跑, node_modules 发现
# 依赖 cwd/上两层锚点, 在插件这种深层布局里够不到仓库根的 node_modules。
name: html2video-for-mcode smoke

on:
pull_request:
paths:
- 'plugins/Wzdhehe/html2video-for-mcode/**'
- '.github/workflows/html2video-for-mcode-smoke.yml'
push:
branches: [main]
paths:
- 'plugins/Wzdhehe/html2video-for-mcode/**'
- '.github/workflows/html2video-for-mcode-smoke.yml'
workflow_dispatch:

permissions:
contents: read

jobs:
smoke-linux:
name: smoke (ubuntu-latest · ffmpeg + chromium)
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Set up Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24

- name: Install ffmpeg
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends ffmpeg

- name: Install playwright (no package.json / lockfile changes)
run: |
npm install --no-save --no-package-lock playwright
npx playwright install --with-deps chromium

# 一条命令跑完 tests/ 下的**全部** *.test.mjs(安全 / 策略 / 模板 / 受管块 / 渲染冒烟)。
# glob 交给 shell 展开: 以后新增测试文件自动进 CI, 不需要改这里(旧枚举写法漏过 8 个文件)。
# 单测超时 300s: 渲染冒烟里的 capture / build-video 在 CI 上要几十秒。
- name: All tests (security · policy · templates · css blocks · render smoke)
run: |
node --test --test-timeout=300000 \
plugins/Wzdhehe/html2video-for-mcode/skills/html2video-for-mcode/tests/*.test.mjs

smoke-windows:
name: smoke (windows-latest · ffmpeg + chromium)
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Set up Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24

# choco 的 ffmpeg 包含 ffmpeg.exe 与 ffprobe.exe, 落在 PATH 上
- name: Install ffmpeg
shell: bash
run: choco install ffmpeg -y --no-progress

- name: Install playwright (no package.json / lockfile changes)
shell: bash
run: |
npm install --no-save --no-package-lock playwright
npx playwright install chromium

- name: All tests (security · policy · templates · css blocks · render smoke)
shell: bash
run: |
node --test --test-timeout=300000 \
plugins/Wzdhehe/html2video-for-mcode/skills/html2video-for-mcode/tests/*.test.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "html2video-for-mcode",
"version": "1.9.10",
"description": "Turn a topic, outline, or script into a narrated MP4: HTML slides with staged entrance animations, TTS voiceover, ffmpeg assembly, and ASR verification.",
"skills": [
"./skills/html2video-for-mcode/SKILL.md"
]
}
10 changes: 10 additions & 0 deletions plugins/Wzdhehe/html2video-for-mcode/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Force LF for this plugin's text files. Added in 1.9.3: nine files carried CRLF
# (authored on Windows), which made `git diff --check` report trailing-whitespace
# errors on the PR under default whitespace rules. Same convention as
# plugins/antianqi/mcode-island/.gitattributes.
# Override at clone time: `git config core.autocrlf input`.
* text=auto eol=lf
*.md text eol=lf
*.mjs text eol=lf
*.json text eol=lf
LICENSE text eol=lf
Loading