@lexiaowen/md2wechat-new 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +814 -0
- package/LICENSE +236 -0
- package/README.md +279 -0
- package/package.json +34 -0
- package/scripts/install.js +173 -0
- package/scripts/run.js +26 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,814 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.1.0] - 2026-05-13
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- Fixed npm installer release downloads to use the current GitHub repository `LeXiaoWen/md2wechat-new`.
|
|
14
|
+
- Reset the fork release version to `0.1.0`.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- **Brand Profile(品牌档案)**: 新增 `brand init` 和 `brand show` 命令,支持在 `~/.config/md2wechat-new/brand.md` 存储品牌档案
|
|
18
|
+
- `brand init`:幂等初始化,创建带注释的 Markdown 模板文件;目录不存在时自动创建
|
|
19
|
+
- `brand show`:以 JSON envelope 返回当前品牌档案原始文本(`data.content`)和文件路径(`data.path`)
|
|
20
|
+
- 支持 `BRAND_INITIALIZED` / `BRAND_SHOWN` / `BRAND_NOT_FOUND` / `BRAND_READ_FAILED` 四个状态码
|
|
21
|
+
- Brand Profile 由 Agent 读取原始文本,CLI 完全不解析此文件(工具职责分离)
|
|
22
|
+
- **格式选择 Markdown 而非 YAML**:LLM 理解自然语言优于结构化字段;Markdown 可写反例、具体示例,信息密度更高
|
|
23
|
+
- **Markdown Expression Diagnosis(排版诊断层)**: `skills/md2wechat/SKILL.md` 新增三步诊断框架
|
|
24
|
+
- Step 1 意图识别:目标读者、conversion goal、memorability anchor
|
|
25
|
+
- Step 2 内容映射:四目标框架(attention / readability / memorability / conversion)
|
|
26
|
+
- Step 3 模块选择:结合 Brand Profile limits 和 layout.opening 从 43 个模块选择最优组合
|
|
27
|
+
- **Brand Profile 协议**: `SKILL.md` 新增完整 Agent 读取协议
|
|
28
|
+
- 优先级链:CLI flag → brand.md → config.yaml → Layout Policy 推荐 → 硬编码默认
|
|
29
|
+
- 降级规则:文件不存在/字段缺失时各字段的回退行为
|
|
30
|
+
- Sanity Caps:max_modules(43) / max_cta(2) / max_quotes(10) / max_hero(1),超出自动截断并 warn
|
|
31
|
+
- style_ref:支持指向单个 .md 文件或目录(遍历目录下所有文件)
|
|
32
|
+
- 3 问引导流程:BRAND_NOT_FOUND 时 Agent 主动引导用户配置品牌档案
|
|
33
|
+
- **`docs/AGENT-GUIDE.md`**: AI Agent 操作手册,12 大章节 685 行,覆盖
|
|
34
|
+
- 能力发现(5 条 discovery 命令)
|
|
35
|
+
- Brand Profile 操作(check / init / 读取 / 降级)
|
|
36
|
+
- Markdown 排版诊断(三步法 + 四目标框架)
|
|
37
|
+
- 文章转换、发布流程、高级排版模块操作
|
|
38
|
+
- 异常处理与降级(4 种常见故障场景)
|
|
39
|
+
- 决策优先级链、完整场景示例(5 个)、快速参考表
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- `skills/md2wechat/SKILL.md`:追加两大章节(Markdown Expression Diagnosis + Brand Profile 协议),从 199 行扩展至 ~400 行
|
|
43
|
+
- `platforms/openclaw/md2wechat/SKILL.md`:与 Claude Code 版本完全同步(同步新增章节,199 → ~400 行)
|
|
44
|
+
- `docs/CONFIG.md`:新增 Brand Profile 完整章节(Schema / 字段说明表 / 降级行为 / 配置对比表)
|
|
45
|
+
|
|
46
|
+
### Technical Details
|
|
47
|
+
- **New Files**: `cmd/md2wechat-new/brand.go`, `cmd/md2wechat-new/brand_test.go`, `docs/AGENT-GUIDE.md`, `docs/BRAND-PROFILE.md`
|
|
48
|
+
- **Modified Files**: `cmd/md2wechat-new/main.go`, `docs/CONFIG.md`, `skills/md2wechat/SKILL.md`, `platforms/openclaw/md2wechat/SKILL.md`, `docs/AGENT-GUIDE.md`
|
|
49
|
+
- **New code constants**: `BRAND_INITIALIZED`, `BRAND_INIT_FAILED`, `BRAND_SHOWN`, `BRAND_NOT_FOUND`, `BRAND_READ_FAILED`
|
|
50
|
+
- **Tests**: 8 contract tests in `brand_test.go`(init×4 + show×4),全部通过 `t.Setenv(HOME)` + `t.TempDir()` 隔离
|
|
51
|
+
|
|
52
|
+
### Migration Guide
|
|
53
|
+
无需迁移。Brand Profile 为可选配置,Agent 专用,不影响任何现有 CLI 工作流。
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
- **License**: Upgraded from MIT to Source Available License (BUSL 1.1 base + custom Additional Use Grant)
|
|
57
|
+
- Personal use, learning, evaluation, non-profit, and contributions remain free without authorization
|
|
58
|
+
- Commercial use (SaaS, client delivery, rebranding, white-labeling, AI training data) requires a written commercial license
|
|
59
|
+
- Change Date: 2030-01-01 — project automatically relicenses to Apache 2.0 on that date
|
|
60
|
+
- Historical versions released under MIT are unaffected; this license applies to all new versions from this commit onward
|
|
61
|
+
- Contact for commercial licensing: skrphper@gmail.com / https://jieni.ai / https://x.com/seekjourney
|
|
62
|
+
|
|
63
|
+
## [2.1.0] - 2026-04-27
|
|
64
|
+
|
|
65
|
+
### Added
|
|
66
|
+
- **`md2wechat layout` command tree**: 4 new CLI subcommands for AI-agent-friendly discovery of 43 advanced WeChat layout modules (:::block syntax)
|
|
67
|
+
- `layout list [--category] [--serves] [--content-type] [--industry] [--tag] --json` — filtered module discovery
|
|
68
|
+
- `layout show <name> --json` — full spec with fields, when_to_use, example, metadata
|
|
69
|
+
- `layout render <name> --var KEY=VALUE --json` — generate :::block syntax from structured inputs
|
|
70
|
+
- `layout validate [--file | --stdin] --json` — validate :::block usage, unknown modules warn not error
|
|
71
|
+
- **43 built-in layout modules** across 7 categories (opening, judgment, infographic, evidence, brand, conversion, sprint4)
|
|
72
|
+
- **4-level module override**: builtin → ~/.config/md2wechat-new/layout/ → ./layout/ → $MD2WECHAT_LAYOUT_DIR
|
|
73
|
+
- **`internal/layoutcatalog` package**: schema, loader, renderer, validator with 20+ unit tests
|
|
74
|
+
- **Integration test fixtures**: 3 article shapes (opinion-piece, data-report, mixed-with-unknown)
|
|
75
|
+
- **E2E test suite**: gated by MD2WECHAT_E2E=1, validates each module's example against /api/convert
|
|
76
|
+
- **`docs/LAYOUT.md`**: 保姆级高级排版模块教程,覆盖全部 43 个模块的字段说明、使用场景、示例和常见错误
|
|
77
|
+
- **`--intensity authentic` for `humanize`**: new standalone intensity level that bypasses the 24-pattern AI-trace detection pipeline and instead applies six-dimension writing-quality rules (用词 / 句式 / 语气 / 内容表达 / 结构 / 整体原则). The goal is writing that reads like a skilled human, not merely text with AI markers removed. Aliases: `authentic` / `natural` / `真实` / `自然`.
|
|
78
|
+
- **`docs/HUMANIZE.md`**: 保姆级 humanize 命令教程,覆盖四种强度选择逻辑、`--show-changes` 输出格式、Agent/JSON 用法、管道输入、与 `write` 集成,以及 `authentic` vs `aggressive` 的本质区别
|
|
79
|
+
|
|
80
|
+
### Fixed
|
|
81
|
+
- **9 YAML module field doc errors** (`sprint4` category): corrected JSON key names in YAML field documentation so Agents no longer generate wrong keys at render time
|
|
82
|
+
- `quote-card`: `quote`/`content` → `text`
|
|
83
|
+
- `tweet`: `content`→`text`, `author`→`name`, `date`→`timestamp`
|
|
84
|
+
- `definition`: added `term`/`def`/`termLabel` fields, anti_pattern clarifies `def` not `definition`
|
|
85
|
+
- `stat-row`, `question`, `resource-list`, `comparison-table`, `changelog`: replaced misleading pipe-format rows with correct JSON object field docs
|
|
86
|
+
|
|
87
|
+
### Changed
|
|
88
|
+
- **README.md**: restructured from 1941 → 388 lines as a commercial landing page. Removed 3 Mermaid diagrams, 5 repeated install sections, 200-line AI quality scoring system, and ModelScope flowchart. New structure: Hero → API unlock banner → comparison table → quickstart → command table → 高级排版模块 → Agent discovery → AI vs API table → Coding Agent platforms → FAQ → community → Star History.
|
|
89
|
+
- **SKILL.md (both Claude Code and OpenClaw)**: added API-mode-only blockquote for layout modules; removed `https://www.md2wechat.cn` URL from public skill files (security); added gentle AI→API nudge rule; added `authentic` intensity example and four-level intensity reference table for `humanize`
|
|
90
|
+
- **`docs/DISCOVERY.md`**: added `prompts show authentic --kind humanizer` example
|
|
91
|
+
- **AGENTS.md / .github/copilot-instructions.md**: added layout API-only constraint notes (internal dev docs, URL retained)
|
|
92
|
+
- **Docs version references**: bumped `v2.0.7` → `v2.1.0` across `QUICKSTART.md`, `USAGE.md`, `FAQ.md`, `INSTALL.md`
|
|
93
|
+
|
|
94
|
+
### Technical Details
|
|
95
|
+
- **New Package**: `internal/layoutcatalog` (schema.go, loader.go, renderer.go, validator.go)
|
|
96
|
+
- **New Files**: `internal/assets/builtin/layout/**/*.yaml` (43 module definitions), `docs/LAYOUT.md`, `docs/HUMANIZE.md`
|
|
97
|
+
- **New Prompt**: `internal/assets/builtin/prompts/humanizer/authentic.yaml` — standalone template rendered with only `{{CONTENT}}`, bypassing `base.yaml`
|
|
98
|
+
- **New Commands**: `cmd/md2wechat-new/layout.go`, `cmd/md2wechat-new/layout_test.go`, `cmd/md2wechat-new/layout_e2e_test.go`
|
|
99
|
+
- **New Test Data**: `internal/layoutcatalog/testdata/integration/`
|
|
100
|
+
- **Error Codes**: LAYOUT_MODULE_NOT_FOUND, LAYOUT_INVALID_FILTER, LAYOUT_MISSING_REQUIRED_FIELD, LAYOUT_INVALID_FIELD_VALUE, LAYOUT_VALIDATE_HAS_ERRORS, LAYOUT_VALIDATED
|
|
101
|
+
|
|
102
|
+
### Migration Guide
|
|
103
|
+
No migration required. Layout commands are purely additive. Existing workflows and config files are unchanged.
|
|
104
|
+
|
|
105
|
+
## [2.0.7] - 2026-03-30
|
|
106
|
+
|
|
107
|
+
### Added
|
|
108
|
+
- Added `volcengine` / `volc` as a built-in image provider for Volcengine Ark, with support for `doubao-seedream-5-0-260128` and `doubao-seedream-5-0-lite-260128`.
|
|
109
|
+
- Added provider-level `supported_models` discovery to `providers list --json`, `providers show --json`, and `capabilities --json`, so agents and scripts can inspect image model catalogs before choosing `--model`.
|
|
110
|
+
|
|
111
|
+
### Changed
|
|
112
|
+
- Switched `config init` and the bundled example config to a `volcengine` image setup by default, including the Ark base URL, default Seedream model, and `2K` size tier.
|
|
113
|
+
- Made image defaults provider-aware, so Volcengine now falls back to `2K` when `api.image_size` is omitted instead of inheriting an OpenAI-shaped square size.
|
|
114
|
+
- Consolidated image-provider model metadata into the shared provider registry and re-audited high-signal docs and both skill entry points to keep provider, model, and discovery guidance aligned.
|
|
115
|
+
- Removed the `skills/md2wechat/references/` directory and folded the remaining guidance back into the main `SKILL.md` entry point.
|
|
116
|
+
|
|
117
|
+
### Fixed
|
|
118
|
+
- Fixed Volcengine `ModelNotOpen` guidance to point users to the Doubao model activation path instead of a vague Ark-console hint.
|
|
119
|
+
- Fixed JSON-mode CLI tests to stream captured stdout/stderr safely, preventing large discovery payloads from deadlocking the test process.
|
|
120
|
+
|
|
121
|
+
## [2.0.6] - 2026-03-28
|
|
122
|
+
|
|
123
|
+
### Added
|
|
124
|
+
- Added an npm distribution package at `@LeXiaoWen/md2wechat-new` so users can install the CLI through `npm install -g` without compiling Go locally.
|
|
125
|
+
- Added `scripts/install.js` and `scripts/run.js` as a thin npm wrapper layer that downloads the version-matched GitHub Release binary and verifies `checksums.txt`.
|
|
126
|
+
- Added `--cover-media-id` for `convert --draft` and `inspect --draft`, so article drafts can reuse an existing WeChat permanent cover asset without re-uploading a local file.
|
|
127
|
+
|
|
128
|
+
### Changed
|
|
129
|
+
- Updated the release workflow so npm packaging is smoked against the same release artifact on Linux and Windows before publish, then published to npm only after the GitHub Release assets are live.
|
|
130
|
+
- Extended local and CI quality gates to validate npm package contents and keep `package.json`, `VERSION`, and marketplace metadata aligned.
|
|
131
|
+
- Updated install documentation to include the npm path while keeping Homebrew, fixed-version installers, and Go install as first-class alternatives.
|
|
132
|
+
- Tightened both skill entry points so `小绿书` / `图文笔记` / `newspic` requests route to `create_image_post` instead of being treated as standard article drafts.
|
|
133
|
+
- Narrowed the npm support contract to the actual published release matrix: macOS `amd64/arm64`, Linux `amd64/arm64`, and Windows `amd64`.
|
|
134
|
+
|
|
135
|
+
### Fixed
|
|
136
|
+
- Fixed Windows npm smoke and local-bundle installs by treating Windows drive-letter paths in `MD2WECHAT_RELEASE_BASE_URL` as local filesystem paths instead of unsupported URL schemes.
|
|
137
|
+
- Fixed agent-facing draft guidance so README, usage docs, and both `SKILL.md` entry points consistently describe `--cover` and `--cover-media-id` as the valid draft-cover contract.
|
|
138
|
+
- Closed documentation drift around image-provider setup by removing stale `GOOGLE_API_KEY` guidance and keeping Gemini/Google instructions aligned on `IMAGE_API_KEY`.
|
|
139
|
+
|
|
140
|
+
## [2.0.5] - 2026-03-26
|
|
141
|
+
|
|
142
|
+
### Added
|
|
143
|
+
- Added `inspect` as a release-grade confirmation command that resolves final article metadata, readiness, and publish risks before conversion or draft creation.
|
|
144
|
+
- Added `preview` as a lightweight standalone HTML preview flow that writes a local preview artifact without upload or draft side effects.
|
|
145
|
+
- Added a typed `internal/inspect` confirmation layer so metadata sources, readiness, and checks are computed once and reused by CLI and preview flows.
|
|
146
|
+
|
|
147
|
+
### Changed
|
|
148
|
+
- Updated `capabilities --json` to advertise `inspect` and `preview` as first-class commands.
|
|
149
|
+
- Kept the preview implementation Go-only with embedded template rendering instead of introducing a separate frontend stack or editable workbench.
|
|
150
|
+
- Clarified that API mode can produce exact preview HTML when conversion succeeds, while AI mode degrades honestly to a confirmation page instead of pretending to show final layout.
|
|
151
|
+
- Reframed installer next steps and the main README around a confirm-first flow: `inspect` -> `preview` -> `convert` / `--draft`.
|
|
152
|
+
|
|
153
|
+
### Fixed
|
|
154
|
+
- Closed documentation drift around release version anchors by updating install and high-signal entry-point docs to `2.0.5`.
|
|
155
|
+
- Closed agent drift by updating both skill entry points to describe the new confirm-first flow and AI preview degradation behavior consistently.
|
|
156
|
+
- Tightened `scripts/release-check.sh` so version anchors, marketplace metadata, confirm-first docs, and both skill entry points are verified together before release work is considered done.
|
|
157
|
+
- Fixed JSON-mode CLI behavior so `inspect --json`, `preview --json`, and related machine-readable commands no longer mix config banners into stdout.
|
|
158
|
+
- Fixed `convert --preview` to emit pure HTML on stdout instead of wrapped terminal markers, making redirect-to-file and agent use more reliable.
|
|
159
|
+
- Fixed WeChat draft error guidance so `45004` now points users and agents to digest/description limits instead of encouraging body-content guesswork.
|
|
160
|
+
- Re-audited README, USAGE, DISCOVERY, FAQ, and both skill entry points to keep metadata-vs-body semantics, preview behavior, and image replacement rules aligned.
|
|
161
|
+
|
|
162
|
+
## [2.0.4] - 2026-03-25
|
|
163
|
+
|
|
164
|
+
### Added
|
|
165
|
+
- **CLI flags for article metadata**: Added `--title`, `--author`, and `--digest` flags to `convert` command for explicit metadata override
|
|
166
|
+
- **Metadata validation**: Added length validation for title (32 chars), author (16 chars), and digest (128 chars) with clear error messages
|
|
167
|
+
- **Frontmatter stripping**: `convert` now properly strips frontmatter from markdown body before passing to converter, preventing metadata from appearing in generated HTML
|
|
168
|
+
- **ArticleDocument structure**: Introduced `ArticleDocument` to separate metadata extraction from body parsing, improving testability
|
|
169
|
+
|
|
170
|
+
### Changed
|
|
171
|
+
- **background_type default**: Changed default `background_type` from `default` to `none` for cleaner output
|
|
172
|
+
- **Metadata priority**: Clarified metadata resolution order: CLI flags → frontmatter → first markdown heading → fallback
|
|
173
|
+
- **Test coverage**: Added comprehensive tests for metadata override, frontmatter stripping, and validation
|
|
174
|
+
|
|
175
|
+
### Fixed
|
|
176
|
+
- Fixed metadata extraction to properly handle `digest`, `summary`, and `description` frontmatter fields with correct priority
|
|
177
|
+
- Fixed first-line title fallback logic to avoid treating non-heading body text as title
|
|
178
|
+
- Fixed outdated documentation about background_type default value
|
|
179
|
+
|
|
180
|
+
### Technical Details
|
|
181
|
+
- **New Files**: None (structure changes only)
|
|
182
|
+
- **Modified Files**:
|
|
183
|
+
- `cmd/md2wechat-new/convert.go` - Added CLI flags, validation, and document parsing
|
|
184
|
+
- `cmd/md2wechat-new/convert_test.go` - Added 4 new test cases
|
|
185
|
+
- `internal/converter/metadata.go` - Added `ArticleDocument` and `ParseArticleDocument`
|
|
186
|
+
- `internal/converter/converter.go` - Added `normalizeRequest` to handle metadata merging
|
|
187
|
+
- `internal/converter/ai.go` - Updated to use stripped body and resolved metadata
|
|
188
|
+
- `internal/config/config.go` - Changed default background_type to "none"
|
|
189
|
+
- Documentation updates across README, docs/, and SKILL.md files
|
|
190
|
+
|
|
191
|
+
### Migration Guide
|
|
192
|
+
No breaking changes. The new CLI flags are optional. If you relied on the previous `background_type: "default"` behavior, explicitly pass `--background-type default` or set it in your config file.
|
|
193
|
+
|
|
194
|
+
## [2.0.3] - 2026-03-21
|
|
195
|
+
|
|
196
|
+
### Added
|
|
197
|
+
- Added Homebrew-friendly multi-platform release archives for `darwin/linux` and `amd64/arm64`, so the project now publishes tarballs that formula-based installs can consume directly.
|
|
198
|
+
- Added automatic tap update support in the release workflow, including generated `Formula/md2wechat-new.rb` output and a release-time push path to `geekjourneyx/homebrew-tap`.
|
|
199
|
+
|
|
200
|
+
### Changed
|
|
201
|
+
- Upgraded the OpenClaw skill metadata to `metadata.clawdbot` with explicit `brew` and `go install` entries, and rewrote the skill body around discovery-first usage instead of installer instructions.
|
|
202
|
+
- Promoted `brew install lexiaowenn/tap/md2wechat-new` as a first-class installation path in user-facing docs while keeping the fixed-version release installer path for checksum-verified installs.
|
|
203
|
+
- Standardized version injection around `main.Version` so local builds, release builds, formula tests, and `version --json` verification all resolve the same symbol.
|
|
204
|
+
|
|
205
|
+
### Fixed
|
|
206
|
+
- Fixed Homebrew tap CI so it installs `lexiaowenn/tap/md2wechat-new` through the tap workflow managed by `setup-homebrew`, avoiding local formula rejection, remote mismatch handling, and post-job cleanup failures.
|
|
207
|
+
- Re-audited README, INSTALL, QUICKSTART, FAQ, OPENCLAW, plugin marketplace metadata, and both skill entry points to keep release references aligned at `2.0.3`.
|
|
208
|
+
|
|
209
|
+
## [2.0.2] - 2026-03-21
|
|
210
|
+
|
|
211
|
+
### Added
|
|
212
|
+
- Added a dedicated `install-openclaw.ps1` so Windows OpenClaw installation now has a fixed-version installer that provisions both the skill shell and the CLI instead of relying on the generic CLI-only PowerShell installer.
|
|
213
|
+
- Added more agent-friendly installer output for shell and PowerShell flows, including immediate next-step verification commands, PATH repair hints, and explicit `config init` / `capabilities` guidance.
|
|
214
|
+
|
|
215
|
+
### Changed
|
|
216
|
+
- Reworked both Coding Agent and OpenClaw paths so the skill layer is now knowledge-and-workflow only; both paths assume an already-installed `md2wechat` CLI on a formal user-level install path rather than wrapper-managed runtime bootstrapping.
|
|
217
|
+
- Standardized the recommended installation path around fixed-version installers and direct copy-paste commands for agents, without requiring `MD2WECHAT_RELEASE_BASE_URL` exports or recommending `go install` as an end-user path.
|
|
218
|
+
- Simplified OpenClaw installation so the shell installer provisions the skill shell to `~/.openclaw/skills/md2wechat/` and installs the CLI to the user-level executable path instead of an OpenClaw-private runtime directory.
|
|
219
|
+
- Refreshed README, FAQ, INSTALL, QUICKSTART, and OPENCLAW onboarding so “send this to your agent” scripts consistently export PATH before validating `md2wechat`, reducing first-run failures in fresh shells.
|
|
220
|
+
- Updated release automation and release checks to match the new OpenClaw contract: no OpenClaw wrapper script, new `install-openclaw.ps1`, and smoke verification against an installed CLI on the environment path.
|
|
221
|
+
|
|
222
|
+
### Removed
|
|
223
|
+
- Removed `skills/md2wechat/scripts/run.sh`; the coding-agent skill no longer acts as a runtime provisioner or wrapper and now documents direct `md2wechat` usage only.
|
|
224
|
+
- Removed `platforms/openclaw/md2wechat/scripts/run.sh`; the OpenClaw skill no longer ships a runtime wrapper and instead assumes the CLI has been installed by the fixed-version installer.
|
|
225
|
+
- Removed `platforms/openclaw/md2wechat/references/runtime.md`; OpenClaw runtime expectations were folded back into `platforms/openclaw/md2wechat/SKILL.md`.
|
|
226
|
+
|
|
227
|
+
### Fixed
|
|
228
|
+
- Removed coding-agent runtime auto-download during normal execution; the Coding Agent path now rejects missing or mismatched CLIs instead of fetching a remote binary from GitHub Releases at execution time.
|
|
229
|
+
- Fixed OpenClaw packaging drift on Windows by pointing skill install metadata to the dedicated OpenClaw PowerShell installer instead of the generic CLI installer.
|
|
230
|
+
- Fixed high-signal onboarding drift where README / FAQ / OPENCLAW scripts could validate `md2wechat` before repairing `PATH`, which caused avoidable failures in fresh shells.
|
|
231
|
+
- Tightened installer output and OpenClaw guidance so CLI paths, expected skill directory layout, and fixed-version installation flow are described consistently across docs and release metadata.
|
|
232
|
+
- Re-audited README, FAQ, INSTALL, QUICKSTART, OPENCLAW, both `SKILL.md` files, installer comments, and release metadata to keep version anchors aligned at `2.0.2`.
|
|
233
|
+
|
|
234
|
+
## [2.0.1] - 2026-03-20
|
|
235
|
+
|
|
236
|
+
### Fixed
|
|
237
|
+
- Fixed the release workflow so PowerShell installer smoke now runs on `windows-latest` instead of Ubuntu, and PowerShell version smoke parses CLI JSON output correctly.
|
|
238
|
+
- Fixed the release workflow binary smoke so release version injection is validated against the actual bundled artifact path.
|
|
239
|
+
- Tightened OpenClaw installation guidance to reflect current ClawHub behavior: `clawhub install md2wechat` installs the skill shell only and does not guarantee runtime provisioning.
|
|
240
|
+
- Added OpenClaw runtime version checks so the OpenClaw wrapper rejects mismatched runtimes instead of silently executing them.
|
|
241
|
+
- Added coding-agent runtime version checks so `skills/md2wechat/scripts/run.sh` only accepts PATH-discovered runtimes when the version matches the current skill version.
|
|
242
|
+
- Improved coding-agent runtime fallback behavior so GitHub Releases download failures no longer produce misleading missing-temp-file errors.
|
|
243
|
+
|
|
244
|
+
## [2.0.0] - 2026-03-20
|
|
245
|
+
|
|
246
|
+
### Added
|
|
247
|
+
- Added a typed publish pipeline with shared article, asset, and action models across `convert`, image generation, draft creation, and image-post flows.
|
|
248
|
+
- Added built-in prompt catalog and discovery commands: `capabilities`, `providers`, `themes`, and `prompts`.
|
|
249
|
+
- Added built-in image prompt presets with explicit use-case metadata, including cover, infographic, banner, ticket, sketchnote, Apple-keynote, and Victorian engraving variants.
|
|
250
|
+
- Added higher-level image generation commands `generate_cover` and `generate_infographic`, plus `generate_image --preset` support.
|
|
251
|
+
- Added per-command image model override via `--model` for image generation commands.
|
|
252
|
+
- Added dedicated onboarding and operator docs, including configuration, discovery, WeChat credential/IP whitelist, smoke verification, and image provider guides.
|
|
253
|
+
|
|
254
|
+
### Changed
|
|
255
|
+
- Reworked the CLI around a stable machine-readable contract with consistent `success/code/message/schema_version/status/data/error` JSON envelopes.
|
|
256
|
+
- Split skill packaging into a coding-agent path (`skills/md2wechat/`) and an OpenClaw path (`platforms/openclaw/md2wechat/`), with platform-specific installation and runtime guidance.
|
|
257
|
+
- Promoted built-in embedded assets for default themes, writer styles, and prompt resources so the CLI no longer depends on repo-relative files to function.
|
|
258
|
+
- Hardened release engineering with a single `VERSION` source, `release-check`, CI/release gates, checksum-verified assets, and installer smoke tests.
|
|
259
|
+
- Standardized discovery-first documentation so README, docs, and both skills point users and agents to CLI capabilities instead of hand-maintained lists.
|
|
260
|
+
- Updated default image provider models to match current provider guidance, including `gpt-image-1.5` for OpenAI and newer Gemini defaults.
|
|
261
|
+
|
|
262
|
+
### Fixed
|
|
263
|
+
- Fixed frontmatter title fallback so Markdown titles are resolved correctly when frontmatter omits `title`, including CRLF input handling.
|
|
264
|
+
- Fixed remote download and image handling boundaries, including stronger SSRF protection and consistent remote/local image resolution.
|
|
265
|
+
- Fixed `convert --json --output` so requested HTML artifacts are written before returning JSON success payloads.
|
|
266
|
+
- Fixed `create_image_post --from-markdown` so resolved local and remote image paths work correctly outside the article directory.
|
|
267
|
+
- Fixed version-pinned installer behavior so release installers no longer silently drift to newer assets.
|
|
268
|
+
- Fixed Gemini image sizing so aspect ratio and image size are forwarded to the official API config, and documented provider-specific size behavior such as ModelScope's `WIDTHxHEIGHT` requirement.
|
|
269
|
+
|
|
270
|
+
## [1.11.1] - 2026-03-19
|
|
271
|
+
|
|
272
|
+
### Changed
|
|
273
|
+
- Tightened the Markdown-to-WeChat pipeline around shared metadata parsing, image placeholder回填, and remote image download boundaries.
|
|
274
|
+
- Expanded command-level and module-level tests across `cmd/md2wechat-new`, `internal/converter`, `internal/draft`, `internal/humanizer`, `internal/wechat`, and `internal/writer`.
|
|
275
|
+
- Promoted checksum-verified, version-pinned release assets and installer scripts as the primary install path.
|
|
276
|
+
- Moved the OpenClaw installer to the same version-pinned release + checksum flow as the main CLI installer.
|
|
277
|
+
- Added build-once, smoke-same-artifact, release-same-artifact flow to the release workflow.
|
|
278
|
+
- Hardened installation and execution docs so fixed-version release assets are the primary install path.
|
|
279
|
+
- Added repository execution guidance in `docs/AGENTS.md` for development, validation, and release discipline.
|
|
280
|
+
|
|
281
|
+
## [1.11.0] - 2026-03-12
|
|
282
|
+
|
|
283
|
+
### Fixed
|
|
284
|
+
- **IsAIRequest 函数修复**: 修复了 `IsAIRequest` 始终返回 `false` 的 bug
|
|
285
|
+
- 原代码使用魔法数字 `14` 进行字符串切片比较,但前缀 `"AI_MODE_REQUEST:"` 实际长度为 16,导致比较永远不匹配
|
|
286
|
+
- `ExtractAIRequest` 同样因切片偏移错误 (`[14:]`) 会在结果中保留 `"T:"` 残留前缀
|
|
287
|
+
- 改用 `strings.HasPrefix` / `strings.TrimPrefix`,与 `generator.go` 中的现有模式保持一致
|
|
288
|
+
|
|
289
|
+
### Changed
|
|
290
|
+
- **aiModePrefix 常量**: 引入包级常量 `aiModePrefix = "AI_MODE_REQUEST:"` 消除魔法数字,所有引用统一使用该常量
|
|
291
|
+
|
|
292
|
+
### Technical Details
|
|
293
|
+
- **Modified Files**: `internal/converter/ai.go`
|
|
294
|
+
|
|
295
|
+
### Migration Guide
|
|
296
|
+
No migration required.
|
|
297
|
+
|
|
298
|
+
## [1.10.0] - 2025-02-10
|
|
299
|
+
|
|
300
|
+
### Added
|
|
301
|
+
- **Image Post (小绿书/Newspic)**: Create WeChat image-only posts with up to 20 images
|
|
302
|
+
- New `create_image_post` command for 小绿书 creation
|
|
303
|
+
- Support comma-separated image paths: `--images photo1.jpg,photo2.jpg`
|
|
304
|
+
- Extract images from Markdown files: `--from-markdown article.md`
|
|
305
|
+
- Comment settings: `--open-comment`, `--fans-only`
|
|
306
|
+
- Preview mode: `--dry-run` for testing without upload
|
|
307
|
+
- Stdin support for description content
|
|
308
|
+
- **WeChat API Documentation**: Updated `references/wechat-api.md` with complete draft/add API documentation
|
|
309
|
+
- Added `article_type` field (`news`/`newspic`)
|
|
310
|
+
- Added comment settings fields
|
|
311
|
+
- Added image_info structure for newspic
|
|
312
|
+
- Added cover cropping fields
|
|
313
|
+
- **v2 API Themes (38 total)**: Massive theme expansion with new series system
|
|
314
|
+
- **Minimal Series (8)**: minimal-gold, minimal-green, minimal-blue, minimal-orange, minimal-red, minimal-navy, minimal-gray, minimal-sky
|
|
315
|
+
- **Focus Series (8)**: focus-gold, focus-green, focus-blue, focus-orange, focus-red, focus-navy, focus-gray, focus-sky
|
|
316
|
+
- **Elegant Series (8)**: elegant-gold, elegant-green, elegant-blue, elegant-orange, elegant-red, elegant-navy, elegant-gray, elegant-sky
|
|
317
|
+
- **Bold Series (8)**: bold-gold, bold-green, bold-blue, bold-orange, bold-red, bold-navy, bold-gray, bold-sky
|
|
318
|
+
- Theme version tracking: v1.0 (6 basic) vs v2.0 (32 new)
|
|
319
|
+
- Theme preview gallery: https://md2wechat-new.app/theme-gallery
|
|
320
|
+
- **Background Type Control**: New `--background-type` parameter for API mode
|
|
321
|
+
- Options: `default` (default background), `grid` (grid texture), `none` (transparent)
|
|
322
|
+
- Configuration file support: `api.background_type`
|
|
323
|
+
- Environment variable: `DEFAULT_BACKGROUND_TYPE`
|
|
324
|
+
- **Google Gemini Image Provider**: Native Google SDK integration
|
|
325
|
+
- Official `google.golang.org/genai` SDK
|
|
326
|
+
- Direct API calls without third-party wrappers
|
|
327
|
+
- Supports official Gemini image models: gemini-3-pro-image-preview, gemini-2.0-flash-exp-image-generation
|
|
328
|
+
- Full aspect ratio support with official size mappings
|
|
329
|
+
- **OpenRouter Image Provider**: Multi-model provider access
|
|
330
|
+
- Support for various AI models through OpenRouter API
|
|
331
|
+
- OpenRouter format with image_size and aspect_ratio parameters
|
|
332
|
+
- Configuration: `image_provider: openrouter`
|
|
333
|
+
|
|
334
|
+
### Changed
|
|
335
|
+
- **Article Structure**: Extended with newspic support fields (backward compatible with `omitempty`)
|
|
336
|
+
- `article_type`: news (default) or newspic
|
|
337
|
+
- `need_open_comment`: comment settings
|
|
338
|
+
- `only_fans_can_comment`: fan-only comment settings
|
|
339
|
+
- `image_info`: image list for newspic
|
|
340
|
+
- **API Base URL Configuration**: New `md2wechat_base_url` parameter
|
|
341
|
+
- Support for v2 API endpoint: https://md2wechat-new.app (internal testing)
|
|
342
|
+
- Configuration file: `api.md2wechat_base_url`
|
|
343
|
+
- Environment variable: `MD2WECHAT_BASE_URL`
|
|
344
|
+
- **Theme File Structure**: Reorganized with version tracking
|
|
345
|
+
- v1.0 themes: 6 basic themes (default, bytedance, apple, sports, chinese, cyber)
|
|
346
|
+
- v2.0 themes: 32 new series themes (minimal/focus/elegant/bold series)
|
|
347
|
+
- New `themes/api.yaml`: Complete theme catalog for reference
|
|
348
|
+
|
|
349
|
+
### Technical Details
|
|
350
|
+
- **New Files**:
|
|
351
|
+
- `cmd/md2wechat-new/create_image_post.go` - CLI command implementation
|
|
352
|
+
- `internal/image/gemini.go` - Google Gemini provider with official SDK
|
|
353
|
+
- `internal/image/gemini_test.go` - Gemini provider tests
|
|
354
|
+
- `internal/image/openrouter.go` - OpenRouter provider implementation
|
|
355
|
+
- `internal/image/openrouter_test.go` - OpenRouter provider tests
|
|
356
|
+
- `themes/api.yaml` - Complete v2 theme catalog
|
|
357
|
+
- `themes/elegant-gold.yaml`, `themes/focus-green.yaml`, `themes/minimal-blue.yaml`, `themes/bold-red.yaml` - Series examples
|
|
358
|
+
- **Modified Files**:
|
|
359
|
+
- `internal/draft/service.go` - Added `CreateImagePost`, `GetImagePostPreview`, `extractImagesFromMarkdown`
|
|
360
|
+
- `internal/wechat/service.go` - Added `CreateNewspicDraft` for direct API call
|
|
361
|
+
- `cmd/md2wechat-new/main.go` - Registered `createImagePostCmd`
|
|
362
|
+
- `cmd/md2wechat-new/convert.go` - Added background_type flag, updated help text
|
|
363
|
+
- `internal/config/config.go` - Added DefaultBackgroundType, MD2WechatBaseURL fields
|
|
364
|
+
- `internal/converter/api.go` - Added BackgroundType to APIRequest, added base URL support
|
|
365
|
+
- `internal/converter/converter.go` - Added BackgroundType to ConvertRequest
|
|
366
|
+
- `internal/image/provider.go` - Added gemini, openrouter providers
|
|
367
|
+
- `skills/md2wechat/references/themes.md` - Updated with v2 themes and background type
|
|
368
|
+
- `themes/*.yaml` - Reorganized with version markers (v1.0 vs v2.0)
|
|
369
|
+
- `docs/CONFIG.md` - Added md2wechat_base_url, background_type documentation
|
|
370
|
+
- `docs/IMAGE_PROVISIONERS.md` - Added Gemini and OpenRouter provider guides
|
|
371
|
+
- `README.md` - Updated with v2 API themes, background type, upgraded API announcement
|
|
372
|
+
|
|
373
|
+
### Migration Guide
|
|
374
|
+
No migration required. All new features are additive:
|
|
375
|
+
- `create_image_post` is a new command
|
|
376
|
+
- New v2.0 themes are opt-in via `--theme` parameter
|
|
377
|
+
- `background_type` changed to default to "none" (was "default" in v2.0.3)
|
|
378
|
+
- Image providers are configurable, no breaking changes
|
|
379
|
+
|
|
380
|
+
### Technical Details
|
|
381
|
+
- **New Files**:
|
|
382
|
+
- `cmd/md2wechat-new/create_image_post.go` - CLI command implementation
|
|
383
|
+
- **Modified Files**:
|
|
384
|
+
- `internal/draft/service.go` - Added `CreateImagePost`, `GetImagePostPreview`, `extractImagesFromMarkdown`
|
|
385
|
+
- `internal/wechat/service.go` - Added `CreateNewspicDraft` for direct API call (SDK doesn't support newspic)
|
|
386
|
+
- `cmd/md2wechat-new/main.go` - Registered `createImagePostCmd`
|
|
387
|
+
- `skills/md2wechat/SKILL.md` - Added image post documentation
|
|
388
|
+
- `skills/md2wechat/references/wechat-api.md` - Complete draft API documentation
|
|
389
|
+
|
|
390
|
+
### Migration Guide
|
|
391
|
+
No migration required. The `create_image_post` command is a new feature and doesn't affect existing functionality.
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## [1.8.0] - 2025-02-05
|
|
396
|
+
|
|
397
|
+
### Added
|
|
398
|
+
- **OpenClaw Platform Support**: Full compatibility with OpenClaw AI Agent platform
|
|
399
|
+
- ClawHub installation: `clawhub install md2wechat`
|
|
400
|
+
- One-click install script: `scripts/install-openclaw.sh`
|
|
401
|
+
- OpenClaw configuration guide: `docs/OPENCLAW.md`
|
|
402
|
+
- SKILL.md metadata for OpenClaw compatibility
|
|
403
|
+
- **OpenClaw Badge**: Added to README.md header
|
|
404
|
+
|
|
405
|
+
### Changed
|
|
406
|
+
- **Directory Structure Simplification**:
|
|
407
|
+
- Renamed `skill/` to `skills/` (unified naming)
|
|
408
|
+
- Removed redundant `plugins/` directory
|
|
409
|
+
- Removed `plugin.json` (keeping only `marketplace.json`)
|
|
410
|
+
- Removed `manifest.json` (version hardcoded in `run.sh`)
|
|
411
|
+
- **Binary Provisioner Refactoring** (`run.sh`):
|
|
412
|
+
- Reduced from 375 lines to 154 lines (-59%)
|
|
413
|
+
- Changed cache directory from `~/.cache/claude/` to `~/.cache/md2wechat-new/`
|
|
414
|
+
- Simplified version management (plain text file instead of JSON)
|
|
415
|
+
- Removed invalid jsDelivr mirror (binaries are in GitHub Releases, not in repo)
|
|
416
|
+
- Improved error messages with cleaner formatting
|
|
417
|
+
- **Documentation Updates**:
|
|
418
|
+
- Updated README.md with OpenClaw support section
|
|
419
|
+
- Fixed project structure diagram
|
|
420
|
+
- Added OpenClaw vs Claude Code comparison table
|
|
421
|
+
|
|
422
|
+
### Removed
|
|
423
|
+
- `plugins/` directory (redundant copy of skills)
|
|
424
|
+
- `.claude-plugin/plugin.json` (replaced by marketplace.json)
|
|
425
|
+
- `skill/md2wechat-new/manifest.json` (version now in run.sh)
|
|
426
|
+
- `scripts/sync.sh` (no longer needed without plugins/)
|
|
427
|
+
|
|
428
|
+
### Technical Details
|
|
429
|
+
- **New Files**:
|
|
430
|
+
- `docs/OPENCLAW.md` - OpenClaw installation guide
|
|
431
|
+
- `scripts/install-openclaw.sh` - OpenClaw installer script
|
|
432
|
+
- **Modified Files**:
|
|
433
|
+
- `.claude-plugin/marketplace.json` - source changed to `"."`
|
|
434
|
+
- `skills/md2wechat/SKILL.md` - added `metadata.openclaw` for compatibility
|
|
435
|
+
- `skills/md2wechat/scripts/run.sh` - complete refactoring
|
|
436
|
+
|
|
437
|
+
### Migration Guide
|
|
438
|
+
No migration required for existing Claude Code users. The skill continues to work the same way.
|
|
439
|
+
|
|
440
|
+
For OpenClaw users:
|
|
441
|
+
1. Install via ClawHub: `clawhub install md2wechat`
|
|
442
|
+
2. Configure in `~/.openclaw/openclaw.json`
|
|
443
|
+
3. See `docs/OPENCLAW.md` for detailed instructions
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
|
|
447
|
+
## [1.7.0] - 2025-01-25
|
|
448
|
+
|
|
449
|
+
### Added
|
|
450
|
+
- **ModelScope Image Provider**: Native integration with Alibaba ModelScope image generation service
|
|
451
|
+
- Async API support with task-based polling mechanism (task_id + status check)
|
|
452
|
+
- Configurable polling interval (default 5s) and max polling time (default 120s)
|
|
453
|
+
- Model: `Tongyi-MAI/Z-Image-Turbo` with support for custom image sizes
|
|
454
|
+
- Free tier available for testing
|
|
455
|
+
- **Write Command Stdin Support**: Pipe input support for non-interactive usage
|
|
456
|
+
- `echo "content" | md2wechat write --style dan-koe`
|
|
457
|
+
- Heredoc support for multi-line content input
|
|
458
|
+
- **Image Size Parameter**: ModelScope provider supports separate `width` and `height` parameters
|
|
459
|
+
- Default size: 1024x1024
|
|
460
|
+
- Configurable via `IMAGE_SIZE` or `image_size` in config
|
|
461
|
+
- **Documentation Updates**:
|
|
462
|
+
- ModelScope configuration guide in README.md
|
|
463
|
+
- New FAQ entries for content size limit, ModelScope setup, and stdin usage
|
|
464
|
+
- Updated `docs/IMAGE_PROVISIONERS.md` with ModelScope documentation
|
|
465
|
+
|
|
466
|
+
### Changed
|
|
467
|
+
- `internal/image/provider.go`: Added ModelScope (`modelscope`, `ms`) provider to factory
|
|
468
|
+
- `internal/image/provider.go`: Updated error hints to include ModelScope in supported providers list
|
|
469
|
+
- `cmd/md2wechat-new/write.go`: Added `readStdin()` function for pipe/redirection detection
|
|
470
|
+
- `cmd/md2wechat-new/write.go`: Added `io` import for stdin reading functionality
|
|
471
|
+
- `internal/wechat/service.go`: Fixed `maskMediaID()` to handle empty strings safely
|
|
472
|
+
- `skills/md2wechat/SKILL.md`: Added stdin/heredoc usage examples
|
|
473
|
+
- `skills/md2wechat/references/writing-guide.md`: Added non-interactive input methods section
|
|
474
|
+
|
|
475
|
+
### Technical Details
|
|
476
|
+
- **New Files**:
|
|
477
|
+
- `internal/image/modelscope.go` - ModelScope provider implementation (372 lines)
|
|
478
|
+
- `ModelScopeProvider` struct with async polling support
|
|
479
|
+
- `parseSize()` function for WIDTHxHEIGHT format parsing
|
|
480
|
+
- `createTask()` for async job creation
|
|
481
|
+
- `pollTaskStatus()` for status polling with timeout
|
|
482
|
+
- `getTaskStatus()` for task status retrieval
|
|
483
|
+
- `handleErrorResponse()` for comprehensive error handling
|
|
484
|
+
- `internal/image/modelscope_test.go` - Unit tests (9 test cases, all passing)
|
|
485
|
+
|
|
486
|
+
### Configuration
|
|
487
|
+
```yaml
|
|
488
|
+
# ModelScope Configuration Example
|
|
489
|
+
api:
|
|
490
|
+
image_provider: modelscope
|
|
491
|
+
image_key: ms-your-token-here
|
|
492
|
+
image_base_url: https://api-inference.modelscope.cn
|
|
493
|
+
image_model: Tongyi-MAI/Z-Image-Turbo
|
|
494
|
+
image_size: 1024x1024
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
### Migration Guide
|
|
498
|
+
No migration required. ModelScope is a new optional image provider. To use it:
|
|
499
|
+
|
|
500
|
+
1. Get API Key from [modelscope.cn](https://modelscope.cn/my/myaccesstoken)
|
|
501
|
+
2. Set `IMAGE_PROVIDER=modelscope`
|
|
502
|
+
3. Set `IMAGE_API_KEY=ms-your-token-here`
|
|
503
|
+
4. Run: `md2wechat generate_image "A golden cat"`
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
## [1.6.0] - 2025-01-19
|
|
508
|
+
|
|
509
|
+
### Added
|
|
510
|
+
- **AI Writing Trace Removal (Humanizer)**: Remove AI-generated text patterns to make content sound more natural
|
|
511
|
+
- New `humanize` command for standalone AI trace removal
|
|
512
|
+
- Support for 24 AI writing pattern types based on humanizer-zh method
|
|
513
|
+
- Three intensity levels: `gentle`, `medium` (default), `aggressive`
|
|
514
|
+
- Quality scoring system with 5 dimensions (directness, rhythm, trust, authenticity, conciseness)
|
|
515
|
+
- Style priority principle: preserves writing style characteristics when combined with creator styles
|
|
516
|
+
- **Write + Humanize Integration**: Combine writing style generation with AI trace removal
|
|
517
|
+
- New `--humanize` flag for `write` command
|
|
518
|
+
- New `--humanize-intensity` flag to control processing intensity
|
|
519
|
+
- `--show-changes` flag to view modification details and quality scores
|
|
520
|
+
- `-o, --output` flag for `humanize` command to save results to file
|
|
521
|
+
- **Pattern Detection Categories**:
|
|
522
|
+
- Content patterns: overemphasis, promotional language, vague attribution
|
|
523
|
+
- Language patterns: AI vocabulary, negative parallelism, three-part formula
|
|
524
|
+
- Style patterns: dash overuse, bold abuse, emoji decoration
|
|
525
|
+
- Filler avoidance: padding phrases, over-qualification, generic conclusions
|
|
526
|
+
- Collaboration traces: conversational filler, knowledge cutoff disclaimers
|
|
527
|
+
- **Documentation**:
|
|
528
|
+
- New `references/humanizer.md` with complete AI trace removal guide
|
|
529
|
+
- Updated SKILL.md with humanizer natural language examples
|
|
530
|
+
- Updated manifest.json version to 1.6.0
|
|
531
|
+
|
|
532
|
+
### Changed
|
|
533
|
+
- `cmd/md2wechat-new/main.go`: Added `humanizeCmd` to root command registration
|
|
534
|
+
- `cmd/md2wechat-new/humanize.go`: Implemented complete humanize command with flags
|
|
535
|
+
- `cmd/md2wechat-new/write.go`: Added humanizer integration flags and output handling
|
|
536
|
+
|
|
537
|
+
### Technical Details
|
|
538
|
+
- **New Files**:
|
|
539
|
+
- `internal/humanizer/` - AI writing trace removal module
|
|
540
|
+
- `result.go` - Core data structures (HumanizeRequest, HumanizeResult, Score, Change)
|
|
541
|
+
- `prompt.go` - Humanizer-zh prompt builder with 24 pattern types
|
|
542
|
+
- `humanizer.go` - Core processing logic and response parsing
|
|
543
|
+
- `cmd/md2wechat-new/humanize.go` - Humanize command implementation
|
|
544
|
+
- `skills/md2wechat/references/humanizer.md` - Humanizer documentation
|
|
545
|
+
|
|
546
|
+
### Breaking Changes
|
|
547
|
+
- None
|
|
548
|
+
|
|
549
|
+
### Migration Guide
|
|
550
|
+
No migration required. The humanize command is a new feature and doesn't affect existing functionality.
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
554
|
+
## [1.5.0] - 2025-01-17
|
|
555
|
+
|
|
556
|
+
### Added
|
|
557
|
+
- **Writer Style Assistant**: AI-powered writing assistance with customizable creator styles
|
|
558
|
+
- New `write` command for assisted article generation
|
|
559
|
+
- Support for multiple input types: idea, fragment, outline, title
|
|
560
|
+
- Automatic cover prompt generation matching writing style
|
|
561
|
+
- **Dan Koe Style**: First built-in creator writing style
|
|
562
|
+
- Profound, sharp, grounded tone for personal growth and opinion pieces
|
|
563
|
+
- Complete writing framework with hooks, structures, and quote extraction
|
|
564
|
+
- Victorian Woodcut/Etching style cover generation
|
|
565
|
+
- **Custom Style System**: YAML-based style definitions in `writers/` directory
|
|
566
|
+
- Easy to add custom creator styles
|
|
567
|
+
- Configurable writing prompts and cover styles
|
|
568
|
+
- **Image Size Control**: New `--size` parameter for `generate_image` command
|
|
569
|
+
- Support for 16:9 ratio (2560x1440) for WeChat cover images
|
|
570
|
+
- Multiple preset sizes: 2048x2048, 1920x1920, 2560x1440, 1440x2560, etc.
|
|
571
|
+
- **Documentation**:
|
|
572
|
+
- New `writers/README.md` with custom style guide
|
|
573
|
+
- New `docs/WRITING_FAQ.md` for writing beginners
|
|
574
|
+
- New `references/writing-guide.md` with complete write command reference
|
|
575
|
+
- Updated `references/image-syntax.md` with size parameter documentation
|
|
576
|
+
- Enhanced README.md with write command workflows and diagrams
|
|
577
|
+
- Enhanced SKILL.md with writing assistance natural language examples
|
|
578
|
+
|
|
579
|
+
### Changed
|
|
580
|
+
- README: Added API service notice at top with md2wechat.cn contact information
|
|
581
|
+
- README: Updated author section with donation information and QR codes
|
|
582
|
+
- README: Added writer style comparison table and workflow diagrams
|
|
583
|
+
- SKILL.md: Improved LLM instruction following with explicit trigger conditions
|
|
584
|
+
- Sync script: Added `writing-guide.md` to file synchronization list
|
|
585
|
+
|
|
586
|
+
### Technical Details
|
|
587
|
+
- **New Files**:
|
|
588
|
+
- `internal/writer/` - Writer style assistant module
|
|
589
|
+
- `types.go` - Core data structures
|
|
590
|
+
- `style.go` - Style management system
|
|
591
|
+
- `generator.go` - Article generation logic
|
|
592
|
+
- `assistant.go` - High-level assistant API
|
|
593
|
+
- `cover_generator.go` - Cover prompt generation
|
|
594
|
+
- `cmd/md2wechat-new/write.go` - Write command implementation
|
|
595
|
+
- `writers/dan-koe.yaml` - Dan Koe style configuration
|
|
596
|
+
- `writers/README.md` - Custom style guide
|
|
597
|
+
- `docs/WRITING_FAQ.md` - Writing functionality FAQ
|
|
598
|
+
- `skills/md2wechat/references/writing-guide.md` - Writing command reference
|
|
599
|
+
|
|
600
|
+
### Breaking Changes
|
|
601
|
+
- None
|
|
602
|
+
|
|
603
|
+
### Migration Guide
|
|
604
|
+
No migration required. The write command is a new feature and doesn't affect existing functionality.
|
|
605
|
+
|
|
606
|
+
---
|
|
607
|
+
|
|
608
|
+
## [1.4.0] - 2025-01-14
|
|
609
|
+
|
|
610
|
+
### Added
|
|
611
|
+
- **Provider Pattern**: Extensible image generation service architecture
|
|
612
|
+
- **TuZi Integration**: Support for TuZi (tu-zi.com) image generation service
|
|
613
|
+
- Models: `doubao-seedream-4-5-251128` (default), `gemini-3-pro-image-preview`
|
|
614
|
+
- Sizes: 2048x2048 (default), 1920x1920, 2560x1440, 1440x2560, 3072x2048, 2048x3072, 3840x2160, 2160x3840
|
|
615
|
+
- **Natural Language Image Generation**: Generate images via conversational interface
|
|
616
|
+
- Method 1: Insert into article at specific position
|
|
617
|
+
- Method 2: Standalone image generation
|
|
618
|
+
- Method 3: Manual Markdown syntax ``
|
|
619
|
+
- **Configuration Fields**: `image_provider`, `image_api_base`, `image_model`, `image_size`
|
|
620
|
+
- **Documentation**: New `docs/IMAGE_PROVISIONERS.md` with complete provider configuration guide
|
|
621
|
+
- **Sync Script**: `scripts/sync.sh` to keep `skill/` and `plugins/` directories synchronized
|
|
622
|
+
- **Makefile Target**: `make sync` for easy directory synchronization
|
|
623
|
+
|
|
624
|
+
### Changed
|
|
625
|
+
- README: Enhanced platform-specific download instructions (Mac Intel vs Apple Silicon)
|
|
626
|
+
- README: Added AI image generation section with natural language examples
|
|
627
|
+
- `scripts/install.sh`: Added Linux ARM64 detection and support
|
|
628
|
+
- Default TuZi image size: `1024x1024` → `2048x2048` (TuZi requires minimum 3.7M pixels)
|
|
629
|
+
|
|
630
|
+
### Fixed
|
|
631
|
+
- URL download with query parameters: Fixed file name too long error when downloading generated images
|
|
632
|
+
- Platform detection in install script for ARM64 systems
|
|
633
|
+
- API base URL documentation: Updated to correct `https://api.tu-zi.com/v1`
|
|
634
|
+
|
|
635
|
+
### Technical Details
|
|
636
|
+
- **New Files**:
|
|
637
|
+
- `internal/image/provider.go` - Provider interface and factory
|
|
638
|
+
- `internal/image/openai.go` - OpenAI DALL-E provider
|
|
639
|
+
- `internal/image/tuzi.go` - TuZi image generation provider
|
|
640
|
+
- `docs/IMAGE_PROVISIONERS.md` - Provider configuration guide
|
|
641
|
+
- `scripts/sync.sh` - Directory synchronization script
|
|
642
|
+
|
|
643
|
+
---
|
|
644
|
+
|
|
645
|
+
## [1.3.1] - 2025-01-12
|
|
646
|
+
|
|
647
|
+
### Added
|
|
648
|
+
- Auto-download binary from GitHub releases on first run
|
|
649
|
+
- User-friendly error messages with actionable guidance
|
|
650
|
+
- System dependencies declaration in `manifest.json`
|
|
651
|
+
- XDG-compliant cache directory (`~/.cache/claude/`) for binary storage
|
|
652
|
+
- Fallback to local `bin/` directory for development/offline usage
|
|
653
|
+
- Automatic version checking and update prompt when binary is outdated
|
|
654
|
+
|
|
655
|
+
### Changed
|
|
656
|
+
- Binary naming format now uses hyphens (`md2wechat-linux-amd64`) to match GitHub releases
|
|
657
|
+
- Error messages now show human-readable platform names (e.g., "macOS (Apple Silicon)")
|
|
658
|
+
- Download progress displays concise status information
|
|
659
|
+
|
|
660
|
+
### Fixed
|
|
661
|
+
- Binary name mismatch between workflow and run.sh that caused download failures
|
|
662
|
+
|
|
663
|
+
---
|
|
664
|
+
|
|
665
|
+
## [1.3.0] - 2025-01-11
|
|
666
|
+
|
|
667
|
+
### Added
|
|
668
|
+
- Plugin Marketplace support with `.claude-plugin/marketplace.json`
|
|
669
|
+
- One-command Claude Code installation via `/plugin marketplace add`
|
|
670
|
+
- Prominent Claude Code installation section at top of README
|
|
671
|
+
- Claude Code badge for quick identification
|
|
672
|
+
- Detailed binary installation instructions with location guidance
|
|
673
|
+
- Installation steps for Windows, Mac, and Linux users
|
|
674
|
+
|
|
675
|
+
### Changed
|
|
676
|
+
- Updated docs/QUICKSTART.md with Claude Code section at the beginning
|
|
677
|
+
- Enhanced docs/USAGE.md with Claude Code integration guide
|
|
678
|
+
- Improved download table with installation locations
|
|
679
|
+
- Added collapsible installation steps for each platform
|
|
680
|
+
|
|
681
|
+
### Installation
|
|
682
|
+
```bash
|
|
683
|
+
# Claude Code users (simplest)
|
|
684
|
+
/plugin marketplace add LeXiaoWen/md2wechat-new
|
|
685
|
+
/plugin install md2wechat@lexiaowenn-md2wechat-new
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
---
|
|
689
|
+
|
|
690
|
+
## [1.2.0] - 2025-01-11
|
|
691
|
+
|
|
692
|
+
### Added
|
|
693
|
+
- Claude Code Skill support with `.claude-plugin/plugin.json`
|
|
694
|
+
- Claude Code Skill in `skills/md2wechat/` directory for distribution
|
|
695
|
+
- New API themes: `bytedance`, `apple`, `sports`, `chinese`, `cyber`
|
|
696
|
+
- Comprehensive troubleshooting guide in SKILL.md
|
|
697
|
+
- API theme selection section in README.md
|
|
698
|
+
- CHANGELOG.md with version history and upgrade guide
|
|
699
|
+
|
|
700
|
+
### Changed
|
|
701
|
+
- Updated themes.md with complete API and AI theme documentation
|
|
702
|
+
- Enhanced HTML guide with AI theme specific requirements
|
|
703
|
+
- Improved SKILL.md with detailed error handling and FAQ
|
|
704
|
+
- Updated command help text to reflect all available themes
|
|
705
|
+
- Enhanced FAQ.md with IP whitelist configuration guide
|
|
706
|
+
|
|
707
|
+
### Removed
|
|
708
|
+
- `leo` theme (deprecated)
|
|
709
|
+
|
|
710
|
+
---
|
|
711
|
+
|
|
712
|
+
## [1.1.0] - 2025-01-11
|
|
713
|
+
|
|
714
|
+
### Added
|
|
715
|
+
- YAML-based theme system for AI mode
|
|
716
|
+
- AI themes: `autumn-warm`, `spring-fresh`, `ocean-calm`
|
|
717
|
+
- Custom theme support with `custom.yaml`
|
|
718
|
+
- Theme configuration with color schemes and style info
|
|
719
|
+
- Reference documentation for themes, HTML guide, image syntax, and WeChat API
|
|
720
|
+
|
|
721
|
+
### Changed
|
|
722
|
+
- Refactored theme system to use YAML files instead of hardcoded prompts
|
|
723
|
+
- Updated SKILL.md with new AI theme workflow
|
|
724
|
+
- Enhanced themes.md with detailed style specifications
|
|
725
|
+
|
|
726
|
+
---
|
|
727
|
+
|
|
728
|
+
## [1.0.1] - 2025-01-11
|
|
729
|
+
|
|
730
|
+
### Fixed
|
|
731
|
+
- Mermaid diagrams rendering for GitHub documentation
|
|
732
|
+
|
|
733
|
+
---
|
|
734
|
+
|
|
735
|
+
## [1.0.0] - 2025-01-11
|
|
736
|
+
|
|
737
|
+
### Added
|
|
738
|
+
- Initial release of md2wechat
|
|
739
|
+
- API mode conversion using md2wechat.cn API
|
|
740
|
+
- AI mode conversion with Claude AI
|
|
741
|
+
- WeChat draft upload functionality
|
|
742
|
+
- Image upload to WeChat material library
|
|
743
|
+
- Configuration management with YAML support
|
|
744
|
+
- Command-line interface with cobra
|
|
745
|
+
- Multi-platform binary support (Windows, macOS, Linux)
|
|
746
|
+
- Comprehensive documentation (README, FAQ, USAGE)
|
|
747
|
+
- Test draft command for HTML validation
|
|
748
|
+
|
|
749
|
+
### Features
|
|
750
|
+
- Convert Markdown to WeChat Official Account formatted HTML
|
|
751
|
+
- Support for local images, online images, and AI-generated images
|
|
752
|
+
- Automatic image compression and optimization
|
|
753
|
+
- Draft creation with cover image support
|
|
754
|
+
- Environment variable and config file support
|
|
755
|
+
- Claude Code Skill integration
|
|
756
|
+
|
|
757
|
+
---
|
|
758
|
+
|
|
759
|
+
## Version History Summary
|
|
760
|
+
|
|
761
|
+
| Version | Date | Description |
|
|
762
|
+
|---------|------|-------------|
|
|
763
|
+
| [1.9.0] | 2025-02-06 | Image Post (小绿书/newspic) support |
|
|
764
|
+
| [1.8.0] | 2025-02-05 | OpenClaw support, directory simplification, run.sh refactoring |
|
|
765
|
+
| [1.7.0] | 2025-01-25 | ModelScope image provider, write command stdin support |
|
|
766
|
+
| [1.6.0] | 2025-01-19 | AI writing trace removal (Humanizer), write + humanize integration |
|
|
767
|
+
| [1.5.0] | 2025-01-17 | Writer style assistant, Dan Koe style, image size control |
|
|
768
|
+
| [1.4.0] | 2025-01-14 | TuZi image provider, natural language image generation |
|
|
769
|
+
| [1.3.1] | 2025-01-12 | Auto binary download, user-friendly errors, system dependencies |
|
|
770
|
+
| [1.3.0] | 2025-01-11 | Plugin Marketplace support, enhanced installation docs |
|
|
771
|
+
| [1.2.0] | 2025-01-11 | Claude Code plugin support, new API themes |
|
|
772
|
+
| [1.1.0] | 2025-01-11 | YAML theme system, AI themes (autumn-warm, spring-fresh, ocean-calm) |
|
|
773
|
+
| [1.0.1] | 2025-01-11 | Fixed Mermaid diagrams for GitHub rendering |
|
|
774
|
+
| [1.0.0] | 2025-01-11 | Initial release with full md2wechat functionality |
|
|
775
|
+
|
|
776
|
+
---
|
|
777
|
+
|
|
778
|
+
## Upgrade Guide
|
|
779
|
+
|
|
780
|
+
### From v1.1.0 to Unreleased
|
|
781
|
+
|
|
782
|
+
**New API Themes Available:**
|
|
783
|
+
```bash
|
|
784
|
+
# New themes available
|
|
785
|
+
md2wechat convert article.md --theme bytedance
|
|
786
|
+
md2wechat convert article.md --theme apple
|
|
787
|
+
md2wechat convert article.md --theme sports
|
|
788
|
+
md2wechat convert article.md --theme chinese
|
|
789
|
+
md2wechat convert article.md --theme cyber
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
**Claude Code Skill Integration:**
|
|
793
|
+
```bash
|
|
794
|
+
# Install as Claude Code Skill
|
|
795
|
+
cp -r skills/md2wechat ~/.claude/skills/
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
### From v1.0.0 to v1.1.0
|
|
799
|
+
|
|
800
|
+
**Theme System Migration:**
|
|
801
|
+
- Old theme names have been updated
|
|
802
|
+
- AI themes now use YAML configuration files
|
|
803
|
+
- Update your commands to use new theme names:
|
|
804
|
+
- `autumn-warm` instead of `elegant`
|
|
805
|
+
- `spring-fresh` instead of `minimal`
|
|
806
|
+
- `ocean-calm` instead of `tech`
|
|
807
|
+
|
|
808
|
+
---
|
|
809
|
+
|
|
810
|
+
## Links
|
|
811
|
+
|
|
812
|
+
- [GitHub Repository](https://github.com/LeXiaoWen/md2wechat-new)
|
|
813
|
+
- [Documentation](README.md)
|
|
814
|
+
- [Issues](https://github.com/LeXiaoWen/md2wechat-new/issues)
|