dsh-ppt 0.1.0 → 0.2.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 +6 -0
- package/README.en.md +3 -1
- package/README.md +3 -1
- package/cordis.patch.yml +2 -0
- package/lib/config.d.ts +2 -0
- package/lib/config.js +7 -0
- package/lib/index.js +2 -2
- package/lib/types.d.ts +4 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
package/README.en.md
CHANGED
|
@@ -95,9 +95,11 @@ No required configuration. Optional:
|
|
|
95
95
|
config:
|
|
96
96
|
outputDir: E:\decks # optional; defaults to the session working directory
|
|
97
97
|
maxSlides: 40 # optional; default 60 (3–120)
|
|
98
|
+
defaultTheme: data # optional; used when ppt_create has no theme
|
|
99
|
+
defaultLang: en # optional; used when ppt_create has no lang (zh/en/bilingual)
|
|
98
100
|
```
|
|
99
101
|
|
|
100
|
-
The `DSH_PPT_OUTPUT_DIR` env var can also set the default output directory; the `ppt_create` `outputDir`
|
|
102
|
+
The `DSH_PPT_OUTPUT_DIR` env var can also set the default output directory; the `ppt_create` `outputDir`/`theme`/`lang` arguments have the highest priority.
|
|
101
103
|
|
|
102
104
|
## Bilingual support
|
|
103
105
|
|
package/README.md
CHANGED
|
@@ -99,9 +99,11 @@ node <skill-dir>/scripts/build-deck.mjs \
|
|
|
99
99
|
config:
|
|
100
100
|
outputDir: E:\decks # 可选;默认会话工作目录
|
|
101
101
|
maxSlides: 40 # 可选;默认 60(3–120)
|
|
102
|
+
defaultTheme: data # 可选;ppt_create 未指定 theme 时使用
|
|
103
|
+
defaultLang: zh # 可选;ppt_create 未指定 lang 时使用(zh/en/bilingual)
|
|
102
104
|
```
|
|
103
105
|
|
|
104
|
-
也可用环境变量 `DSH_PPT_OUTPUT_DIR` 指定默认输出目录;`ppt_create` 的 `outputDir` 参数优先级最高。
|
|
106
|
+
也可用环境变量 `DSH_PPT_OUTPUT_DIR` 指定默认输出目录;`ppt_create` 的 `outputDir`/`theme`/`lang` 参数优先级最高。
|
|
105
107
|
|
|
106
108
|
## 中英双语
|
|
107
109
|
|
package/cordis.patch.yml
CHANGED
package/lib/config.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export declare const DEFAULT_MAX_SLIDES = 60;
|
|
|
4
4
|
export interface ResolvedPptConfig {
|
|
5
5
|
outputDir: string;
|
|
6
6
|
maxSlides: number;
|
|
7
|
+
defaultTheme: string;
|
|
8
|
+
defaultLang: string;
|
|
7
9
|
}
|
|
8
10
|
/** 解析并校验插件行配置。本插件无必填项,空配置永远可用。 */
|
|
9
11
|
export declare function resolvePptConfig(config: PptConfig | undefined | null): ResolvedPptConfig;
|
package/lib/config.js
CHANGED
|
@@ -5,9 +5,16 @@ export function resolvePptConfig(config) {
|
|
|
5
5
|
const raw = config ?? {};
|
|
6
6
|
const outputDir = (typeof raw.outputDir === 'string' ? raw.outputDir : '').trim()
|
|
7
7
|
|| (process.env[PPT_OUTPUT_DIR_ENV] ?? '').trim();
|
|
8
|
+
const defaultTheme = (typeof raw.defaultTheme === 'string' ? raw.defaultTheme : '').trim();
|
|
9
|
+
const defaultLang = (typeof raw.defaultLang === 'string' ? raw.defaultLang : '').trim();
|
|
10
|
+
if (defaultLang !== '' && defaultLang !== 'zh' && defaultLang !== 'en' && defaultLang !== 'bilingual') {
|
|
11
|
+
throw new Error('defaultLang 只支持 zh / en / bilingual。');
|
|
12
|
+
}
|
|
8
13
|
return {
|
|
9
14
|
outputDir,
|
|
10
15
|
maxSlides: clampInt(raw.maxSlides, DEFAULT_MAX_SLIDES, 3, 120),
|
|
16
|
+
defaultTheme,
|
|
17
|
+
defaultLang,
|
|
11
18
|
};
|
|
12
19
|
}
|
|
13
20
|
export function clampInt(value, fallback, min, max) {
|
package/lib/index.js
CHANGED
|
@@ -181,8 +181,8 @@ export function apply(ctx, config = {}) {
|
|
|
181
181
|
title: args.title.trim(),
|
|
182
182
|
content: typeof args.content === 'string' ? args.content : '',
|
|
183
183
|
slides: hasSlides ? args.slides : undefined,
|
|
184
|
-
theme: typeof args.theme === 'string' && args.theme.trim() !== '' ? args.theme.trim() : undefined,
|
|
185
|
-
lang: typeof args.lang === 'string' && args.lang.trim() !== '' ? args.lang.trim() : undefined,
|
|
184
|
+
theme: typeof args.theme === 'string' && args.theme.trim() !== '' ? args.theme.trim() : (resolved.defaultTheme || undefined),
|
|
185
|
+
lang: typeof args.lang === 'string' && args.lang.trim() !== '' ? args.lang.trim() : (resolved.defaultLang || undefined),
|
|
186
186
|
outputDir: typeof args.outputDir === 'string' && args.outputDir.trim() !== '' ? args.outputDir.trim() : (resolved.outputDir || undefined),
|
|
187
187
|
fileName: typeof args.fileName === 'string' && args.fileName.trim() !== '' ? args.fileName.trim() : undefined,
|
|
188
188
|
maxSlides: resolved.maxSlides,
|
package/lib/types.d.ts
CHANGED
|
@@ -15,6 +15,10 @@ export interface PptConfig {
|
|
|
15
15
|
outputDir?: string;
|
|
16
16
|
/** 单次生成幻灯片上限,默认 60(3–120)。 */
|
|
17
17
|
maxSlides?: number;
|
|
18
|
+
/** 默认视觉主题 id,调用 ppt_create 时可用 theme 覆盖。 */
|
|
19
|
+
defaultTheme?: string;
|
|
20
|
+
/** 默认播放器界面语言,调用 ppt_create 时可用 lang 覆盖。 */
|
|
21
|
+
defaultLang?: string;
|
|
18
22
|
}
|
|
19
23
|
export interface PptCreateArgs {
|
|
20
24
|
title: string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-ppt",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "DSH 演示文稿技能 + 工具插件:一句话或一篇 Markdown 文档 → 完整演示文稿(独立 HTML 网页放映 + 可编辑 PPTX 导出),内置 5
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "DSH 演示文稿技能 + 工具插件:一句话或一篇 Markdown 文档 → 完整演示文稿(独立 HTML 网页放映 + 可编辑 PPTX 导出),内置 5 套视觉主题,可配置默认主题/语言,中英双语,SKILL.md 双格式跨 harness。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|