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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.0
4
+
5
+ - 新增 `defaultTheme` / `defaultLang` 配置,作为 `ppt_create` 未显式传参时的默认值。
6
+ - 配置校验:`defaultLang` 仅接受 `zh` / `en` / `bilingual`。
7
+ - 更新测试覆盖与双语文档。
8
+
3
9
  ## 0.1.0
4
10
 
5
11
  - 首发:`dsh-ppt` 技能 + 工具插件。
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` argument has the highest priority.
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
@@ -10,6 +10,8 @@
10
10
  # config:
11
11
  # outputDir: E:\decks # 可选:默认写入会话工作目录
12
12
  # maxSlides: 40 # 可选:单次生成幻灯片上限,默认 60
13
+ # defaultTheme: data # 可选:默认视觉主题
14
+ # defaultLang: zh # 可选:默认界面语言 zh/en/bilingual
13
15
  #
14
16
  - insert:
15
17
  - id: dsh-ppt
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.1.0",
4
- "description": "DSH 演示文稿技能 + 工具插件:一句话或一篇 Markdown 文档 → 完整演示文稿(独立 HTML 网页放映 + 可编辑 PPTX 导出),内置 5 套视觉主题,中英双语,SKILL.md 双格式跨 harness。",
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",