md-to-mowen 1.2.0 → 1.3.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.
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "md-to-mowen",
3
+ "version": "1.2.1",
4
+ "description": "将 Markdown(GFM)转换为墨问笔记的 CLI 工具,支持一键发布、智能编辑、图片处理、表格渲染等功能",
5
+ "skills": [
6
+ {
7
+ "name": "mowen",
8
+ "description": "默问 (Mowen) 文章发布/编辑技能 - 完整发布流程(HTML+CSS 高清表格渲染、质量检查、自动配图)",
9
+ "trigger": {
10
+ "keywords": ["墨问", "mowen", "发布笔记", "发布文章", "markdown 发布", "mowen publish"],
11
+ "commands": ["publish", "to-markdown", "privacy", "config"]
12
+ },
13
+ "instructions": "使用 md-to-mowen CLI 工具将 Markdown 文件发布到墨问平台。\n\n## 快速开始\n\n1. 配置 API Key: `md-to-mowen config`\n2. 发布笔记: `md-to-mowen publish -i article.md`\n3. 添加标签: `md-to-mowen publish -i article.md --tags \"tech,ai\"`\n\n## 功能特性\n\n- **一键发布** — 单文件或整个目录批量发布\n- **智能编辑** — 自动追踪文件与笔记映射,再次发布自动进入编辑模式\n- **图片处理** — 本地图片/远程 URL 自动上传到墨问 OSS\n- **表格渲染** — Markdown 表格自动渲染为高清 PNG 图片\n- **隐私控制** — 独立命令设置笔记公开/私密状态\n\n## 命令\n\n- `publish` — 发布笔记\n- `privacy` — 设置隐私状态\n- `to-markdown` — NoteAtom 转 Markdown\n- `config` — 配置 API Key"
14
+ }
15
+ ],
16
+ "commands": [
17
+ {
18
+ "name": "publish",
19
+ "description": "发布 Markdown 文件到墨问笔记",
20
+ "binary": "md-to-mowen",
21
+ "args": ["publish", "-i", "${input}"]
22
+ },
23
+ {
24
+ "name": "privacy",
25
+ "description": "设置笔记隐私状态",
26
+ "binary": "md-to-mowen",
27
+ "args": ["privacy", "--note-id", "${noteId}", "--visibility", "${visibility}"]
28
+ },
29
+ {
30
+ "name": "to-markdown",
31
+ "description": "将 NoteAtom JSON 转换为 Markdown",
32
+ "binary": "md-to-mowen",
33
+ "args": ["to-markdown", "-i", "${input}", "-o", "${output}"]
34
+ },
35
+ {
36
+ "name": "config",
37
+ "description": "配置墨问 API Key",
38
+ "binary": "md-to-mowen",
39
+ "args": ["config"]
40
+ }
41
+ ],
42
+ "author": "tecson",
43
+ "license": "MIT",
44
+ "homepage": "https://github.com/tecson/md-to-mowen#readme",
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "git+https://github.com/tecson/md-to-mowen.git"
48
+ }
49
+ }
package/README.md ADDED
@@ -0,0 +1,167 @@
1
+ # md-to-mowen
2
+
3
+ [![npm version](https://img.shields.io/npm/v/md-to-mowen.svg)](https://www.npmjs.com/package/md-to-mowen)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ 将 Markdown(GFM)一键发布为墨问笔记的 CLI 工具。
7
+
8
+ ![image-20260514130051810](./images/readme_header.png)
9
+
10
+ ## 功能特性
11
+
12
+ - **一键发布** — 单文件或整个目录批量发布
13
+ - **智能编辑** — 自动追踪文件与笔记映射,再次发布自动进入编辑模式
14
+ - **图片处理** — 本地图片/远程 URL 自动上传到墨问 OSS
15
+ - **表格渲染** — Markdown 表格自动渲染为高清 PNG 图片
16
+ - **双向转换** — 支持 NoteAtom JSON 导出为 Markdown
17
+ - **隐私控制** — 独立命令设置笔记公开/私密状态
18
+ - **配置持久化** — 保存常用选项,无需每次重复输入
19
+
20
+ ## 快速开始
21
+
22
+ ### 安装
23
+
24
+ ```bash
25
+ npm install -g md-to-mowen
26
+ ```
27
+
28
+ ### 配置 API Key
29
+
30
+ ```bash
31
+ md-to-mowen config
32
+ ```
33
+
34
+ 按提示在微信小程序「墨问」中获取 API Key:个人主页 → 开发者 → 我的 API Key
35
+
36
+ ### 发布笔记
37
+
38
+ ```bash
39
+ # 发布单个文件
40
+ md-to-mowen publish -i article.md
41
+
42
+ # 发布整个目录(递归扫描子目录)
43
+ md-to-mowen publish -i ./posts
44
+
45
+ # 添加标签
46
+ md-to-mowen publish -i article.md --tags "tech,ai"
47
+
48
+ # 自动发布(非草稿)
49
+ md-to-mowen publish -i article.md --auto-publish
50
+ ```
51
+
52
+ 发布成功后会显示笔记 ID 和访问地址。再次发布同一文件会自动更新已有笔记。
53
+
54
+ ## CLI 命令
55
+
56
+ ### `publish` — 发布笔记
57
+
58
+ ```bash
59
+ md-to-mowen publish -i <path> [options]
60
+ ```
61
+
62
+ | 选项 | 说明 |
63
+ | ---------------------------- | -------------------------------------- |
64
+ | `-i, --input <path>` | Markdown 文件路径或目录(必填) |
65
+ | `--note-id <id>` | 编辑已有笔记(全量替换内容) |
66
+ | `--tags <tags>` | 标签,逗号分隔(如 `tech,ai`) |
67
+ | `--auto-publish` | 自动发布,非草稿状态 |
68
+ | `--dry-run` | 走完流水线但不调用 API |
69
+ | `--cache-dir <dir>` | 保存流水线产物用于调试 |
70
+ | `--code-block-style <style>` | 代码块样式:`paragraph` 或 `codeblock` |
71
+ | `--no-recursive` | 批量发布时不递归扫描子目录 |
72
+
73
+ ### `privacy` — 设置隐私状态
74
+
75
+ ```bash
76
+ # 通过笔记 ID
77
+ md-to-mowen privacy --note-id <id> --visibility public|private
78
+
79
+ # 通过文件路径(需要元数据支持)
80
+ md-to-mowen privacy -i article.md --visibility public
81
+ ```
82
+
83
+ ### `to-markdown` — NoteAtom 转 Markdown
84
+
85
+ ```bash
86
+ md-to-mowen to-markdown -i note.json -o output.md
87
+ ```
88
+
89
+ ### `config` — 配置 API Key
90
+
91
+ ```bash
92
+ md-to-mowen config
93
+ ```
94
+
95
+ ## 配置文件
96
+
97
+ 在 Markdown 文件同目录下创建 `.md-to-mowen.json` 保存常用选项:
98
+
99
+ ```json
100
+ {
101
+ "defaultTags": "tech,programming",
102
+ "autoPublish": false,
103
+ "cacheDir": "./.cache",
104
+ "codeBlockStyle": "paragraph"
105
+ }
106
+ ```
107
+
108
+ CLI 参数优先级高于配置文件。
109
+
110
+ ## Markdown 支持
111
+
112
+ | 语法 | 输出 |
113
+ | ------------------------------ | --------------------------- |
114
+ | 标题 H1-H6 | 粗体段落(层级丢失) |
115
+ | 有序/无序列表 | 带前缀的段落 |
116
+ | 引用块 | 墨问引用块 |
117
+ | **粗体** / _斜体_ / ~~删除线~~ | 对应标记 |
118
+ | `行内代码` | 代码标记 |
119
+ | [链接](url) | 链接标记 |
120
+ | 图片 | 上传后插入 |
121
+ | 代码块 | 每行带代码标记 / 渲染为图片 |
122
+ | 表格 | 渲染为 PNG 图片 |
123
+
124
+ ## 项目结构
125
+
126
+ ```
127
+ md-to-mowen/
128
+ ├── src/
129
+ │ ├── cli/ # CLI 入口
130
+ │ ├── commands/ # 命令实现
131
+ │ ├── pipeline/ # Markdown → HAST → MAST
132
+ │ ├── mast/ # 中间 AST 类型与序列化
133
+ │ ├── noteatom/ # NoteAtom 类型和双向转换
134
+ │ ├── mowen/ # API 客户端和上传
135
+ │ ├── publish/ # 发布流水线编排
136
+ │ └── shared/ # 工具函数
137
+ ├── tests/ # 单元测试
138
+ └── docs/ # 架构文档
139
+ ```
140
+
141
+ ## 开发
142
+
143
+ ```bash
144
+ # 安装依赖
145
+ npm install
146
+
147
+ # 运行测试
148
+ npm test
149
+
150
+ # 类型检查
151
+ npm run check
152
+
153
+ # 构建
154
+ npm run build
155
+
156
+ # 本地链接
157
+ npm link
158
+ ```
159
+
160
+ ## 相关链接
161
+
162
+ - [墨问开放 API 文档](https://mowen.apifox.cn/)
163
+ - [架构设计文档](docs/CONCEPT.md)
164
+
165
+ ## License
166
+
167
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "md-to-mowen",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "将 Markdown(GFM)转换为墨问笔记的 CLI 工具",
5
5
  "type": "module",
6
6
  "bin": {
@@ -8,7 +8,8 @@
8
8
  },
9
9
  "files": [
10
10
  "dist",
11
- "!dist/out"
11
+ "!dist/out",
12
+ ".claude-plugin"
12
13
  ],
13
14
  "exports": {
14
15
  ".": "./dist/publish/index.js",