dsh-ppt-studio 1.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.
Files changed (179) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +480 -0
  3. package/agent-presets/ppt/agent.cordis.yml +308 -0
  4. package/agent-presets/ppt/preset.yml +3 -0
  5. package/cordis.patch.yml +29 -0
  6. package/docs/00-/350/256/276/350/256/241/346/272/220.md +537 -0
  7. package/docs/01-/351/234/200/346/261/202/344/270/216/347/233/256/346/240/207.md +136 -0
  8. package/docs/02-/346/212/200/346/234/257/346/212/245/345/221/212.md +483 -0
  9. package/docs/03-/346/233/264/346/226/260/346/227/245/345/277/227.md +2898 -0
  10. package/docs/04-/350/267/257/347/272/277/345/233/276/344/270/216/351/207/214/347/250/213/347/242/221.md +113 -0
  11. package/docs/05-/350/277/255/344/273/243/346/265/201/347/250/213.md +210 -0
  12. package/docs/06-/350/257/204/345/256/241/344/270/216/346/265/213/350/257/225.md +296 -0
  13. package/docs/fidelity-report.md +225 -0
  14. package/examples/fx/fx-mini/deck.yaml +39 -0
  15. package/examples/fx/fx-mini/pages/01.yaml +6 -0
  16. package/examples/fx/fx-mini/pages/02.yaml +2 -0
  17. package/examples/fx/fx-mini/pages/03.yaml +6 -0
  18. package/examples/fx/fx-pro/deck.yaml +48 -0
  19. package/examples/fx/fx-pro/pages/01_cover.yaml +40 -0
  20. package/examples/fx/fx-pro/pages/02_arch.yaml +55 -0
  21. package/examples/fx/fx-pro/pages/03_table.yaml +20 -0
  22. package/examples/fx/fx-pro/pages/04_chart.yaml +40 -0
  23. package/examples/fx/fx-pro/pages/05_timeline.yaml +71 -0
  24. package/examples/fx/fx-pro/pages/06_longtext.yaml +13 -0
  25. package/examples/fx/fx-pro/pages/07_safearea.yaml +33 -0
  26. package/examples/fx/fx-pro/pages/08_contrast.yaml +22 -0
  27. package/examples/fx/fx-pro/pages/09_custgeom.yaml +32 -0
  28. package/examples/fx/fx-pro/pages/10_numbers.yaml +25 -0
  29. package/examples/fx/fx-pro/pages/11_section.yaml +20 -0
  30. package/examples/fx/fx-pro/pages/12_summary.yaml +57 -0
  31. package/examples/fx/fx-pro/preview/01_pages_01_cover.html +1 -0
  32. package/examples/fx/fx-pro/preview/02_pages_02_arch.html +3 -0
  33. package/examples/fx/fx-pro/preview/03_pages_03_table.html +1 -0
  34. package/examples/fx/fx-pro/preview/04_pages_04_chart.html +3 -0
  35. package/examples/fx/fx-pro/preview/05_pages_05_timeline.html +2 -0
  36. package/examples/fx/fx-pro/preview/06_pages_06_longtext.html +4 -0
  37. package/examples/fx/fx-pro/preview/07_pages_07_safearea.html +2 -0
  38. package/examples/fx/fx-pro/preview/08_pages_08_contrast.html +1 -0
  39. package/examples/fx/fx-pro/preview/09_pages_09_custgeom.html +1 -0
  40. package/examples/fx/fx-pro/preview/10_pages_10_numbers.html +1 -0
  41. package/examples/fx/fx-pro/preview/11_pages_11_section.html +1 -0
  42. package/examples/fx/fx-pro/preview/12_pages_12_summary.html +1 -0
  43. package/examples/fx/fx-pro/preview/deck.html +10 -0
  44. package/examples/fx/fx-pro/preview/layout.json +2325 -0
  45. package/examples/fx/fx-pro/preview/measured.json +814 -0
  46. package/examples/fx/fx-pro.pptx +0 -0
  47. package/examples/fx/ren-single/01.png +0 -0
  48. package/examples/fx/ren-spliced/01.png +0 -0
  49. package/examples/fx/ren-spliced/03.png +0 -0
  50. package/examples/fx/seed.pptx +0 -0
  51. package/examples/fx/single.pptx +0 -0
  52. package/examples/fx/spliced.pptx +0 -0
  53. package/examples/smoke/deck.yaml +26 -0
  54. package/examples/smoke/imported/deck.yaml +30 -0
  55. package/examples/smoke/imported/import-styles.json +126 -0
  56. package/examples/smoke/imported/pages/slide_01.yaml +31 -0
  57. package/examples/smoke/imported/pages/slide_02.yaml +38 -0
  58. package/examples/smoke/imported/pages/slide_03.yaml +55 -0
  59. package/examples/smoke/imported/preview-rt/01_pages_slide_01.html +1 -0
  60. package/examples/smoke/imported/preview-rt/02_pages_slide_02.html +1 -0
  61. package/examples/smoke/imported/preview-rt/03_pages_slide_03.html +1 -0
  62. package/examples/smoke/imported/preview-rt/deck.html +1 -0
  63. package/examples/smoke/imported/preview-rt/layout.json +434 -0
  64. package/examples/smoke/imported/reference/previews/01.png +0 -0
  65. package/examples/smoke/imported/reference/previews/02.png +0 -0
  66. package/examples/smoke/imported/reference/previews/03.png +0 -0
  67. package/examples/smoke/imported/source.pptx +0 -0
  68. package/examples/smoke/media-test.png +0 -0
  69. package/examples/smoke/out-smoke.pptx +0 -0
  70. package/examples/smoke/pages/01_cover.yaml +27 -0
  71. package/examples/smoke/pages/02_content.yaml +42 -0
  72. package/examples/smoke/pages/03_chart.yaml +35 -0
  73. package/examples/smoke/preview/01_pages_01_cover.html +1 -0
  74. package/examples/smoke/preview/02_pages_02_content.html +1 -0
  75. package/examples/smoke/preview/03_pages_03_chart.html +1 -0
  76. package/examples/smoke/preview/deck.html +1 -0
  77. package/examples/smoke/preview/layout.json +378 -0
  78. package/lib/autodeclare.js +40 -0
  79. package/lib/commands.js +161 -0
  80. package/lib/crosscheck.js +300 -0
  81. package/lib/imgmeta.js +55 -0
  82. package/lib/index.js +239 -0
  83. package/lib/measurement.js +209 -0
  84. package/lib/msrender.js +123 -0
  85. package/lib/pptd/export-pptx.js +686 -0
  86. package/lib/pptd/import-pptx.js +774 -0
  87. package/lib/pptd/layout.js +209 -0
  88. package/lib/pptd/render-html.js +254 -0
  89. package/lib/pptd/schema.js +518 -0
  90. package/lib/pptd/svgCharts.js +147 -0
  91. package/lib/pptxPy.js +205 -0
  92. package/lib/preset-delivery.js +195 -0
  93. package/lib/preview-server.js +164 -0
  94. package/lib/router.js +165 -0
  95. package/lib/scaffold.js +315 -0
  96. package/lib/skill.js +174 -0
  97. package/lib/splice.js +219 -0
  98. package/lib/state.js +88 -0
  99. package/lib/surgical.js +369 -0
  100. package/lib/templates.js +400 -0
  101. package/lib/tools.js +955 -0
  102. package/lib/verify.js +828 -0
  103. package/lib/xmljs.js +112 -0
  104. package/lib/zips.js +117 -0
  105. package/package.json +81 -0
  106. package/scripts/audit-manual-facts.mjs +294 -0
  107. package/scripts/audit-template-fidelity.mjs +162 -0
  108. package/scripts/bench-m2.mjs +48 -0
  109. package/scripts/build-templates.mjs +63 -0
  110. package/scripts/build.mjs +14 -0
  111. package/scripts/build.sh +7 -0
  112. package/scripts/check-lib-freshness.mjs +70 -0
  113. package/scripts/check-preset.mjs +189 -0
  114. package/scripts/check-tracked-lf.mjs +84 -0
  115. package/scripts/dbg-import.mjs +13 -0
  116. package/scripts/dbg-media.mjs +10 -0
  117. package/scripts/dbg-tpl-inventory.mjs +23 -0
  118. package/scripts/dump-workflow-baseline.mjs +38 -0
  119. package/scripts/e2e-1.0.mjs +129 -0
  120. package/scripts/eval-skills-blind.mjs +91 -0
  121. package/scripts/eval-skills-score.mjs +129 -0
  122. package/scripts/export-orig-templates.ps1 +17 -0
  123. package/scripts/fixtures/workflow-baseline.json +300 -0
  124. package/scripts/fixtures.mjs +501 -0
  125. package/scripts/import-user-templates.mjs +60 -0
  126. package/scripts/install-desktop.mjs +312 -0
  127. package/scripts/install.mjs +209 -0
  128. package/scripts/migrate-templates-dualtrack.mjs +71 -0
  129. package/scripts/preflight-1.0.mjs +198 -0
  130. package/scripts/probe-asset-freshness.mjs +57 -0
  131. package/scripts/probe-effect-semantics.mjs +69 -0
  132. package/scripts/probe-reparse-safety.mjs +32 -0
  133. package/scripts/rebuild-templates-c11.mjs +69 -0
  134. package/scripts/regression-real.mjs +84 -0
  135. package/scripts/release-sync.mjs +425 -0
  136. package/scripts/shot-templates.mjs +49 -0
  137. package/scripts/smoke.mjs +2512 -0
  138. package/scripts/verify-bundle-install.mjs +281 -0
  139. package/scripts/verify-fresh-install.mjs +260 -0
  140. package/skills/ppt-studio-copy/SKILL.md +139 -0
  141. package/skills/ppt-studio-craft/SKILL.md +171 -0
  142. package/skills/ppt-studio-data/SKILL.md +173 -0
  143. package/skills/ppt-studio-manual/SKILL.md +104 -0
  144. package/templates/academic-white/deck.yaml +24 -0
  145. package/templates/academic-white/pages/_chart.yaml +43 -0
  146. package/templates/academic-white/pages/_compare.yaml +37 -0
  147. package/templates/academic-white/pages/_content.yaml +35 -0
  148. package/templates/academic-white/pages/_cover.yaml +28 -0
  149. package/templates/academic-white/pages/_ending.yaml +28 -0
  150. package/templates/academic-white/pages/_flow.yaml +61 -0
  151. package/templates/academic-white/preview.png +0 -0
  152. package/templates/academic-white/template.yaml +14 -0
  153. package/templates/business-blue/deck.yaml +28 -0
  154. package/templates/business-blue/pages/_chart.yaml +36 -0
  155. package/templates/business-blue/pages/_compare.yaml +45 -0
  156. package/templates/business-blue/pages/_content.yaml +80 -0
  157. package/templates/business-blue/pages/_cover.yaml +39 -0
  158. package/templates/business-blue/pages/_ending.yaml +32 -0
  159. package/templates/business-blue/pages/_flow.yaml +87 -0
  160. package/templates/business-blue/preview.png +0 -0
  161. package/templates/business-blue/template.yaml +14 -0
  162. package/templates/pitch-bold/deck.yaml +23 -0
  163. package/templates/pitch-bold/pages/_chart.yaml +32 -0
  164. package/templates/pitch-bold/pages/_compare.yaml +36 -0
  165. package/templates/pitch-bold/pages/_content.yaml +58 -0
  166. package/templates/pitch-bold/pages/_cover.yaml +31 -0
  167. package/templates/pitch-bold/pages/_ending.yaml +27 -0
  168. package/templates/pitch-bold/pages/_flow.yaml +46 -0
  169. package/templates/pitch-bold/preview.png +0 -0
  170. package/templates/pitch-bold/template.yaml +14 -0
  171. package/templates/tech-dark/deck.yaml +24 -0
  172. package/templates/tech-dark/pages/_chart.yaml +27 -0
  173. package/templates/tech-dark/pages/_compare.yaml +38 -0
  174. package/templates/tech-dark/pages/_content.yaml +51 -0
  175. package/templates/tech-dark/pages/_cover.yaml +30 -0
  176. package/templates/tech-dark/pages/_ending.yaml +25 -0
  177. package/templates/tech-dark/pages/_flow.yaml +80 -0
  178. package/templates/tech-dark/preview.png +0 -0
  179. package/templates/tech-dark/template.yaml +14 -0
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,26 @@
1
+ # 冒烟评测样例:从头制作,3 页(cover/content/chart),含主题引用
2
+ version: 1
3
+ title: 季度复盘演示(冒烟)
4
+ size: [960, 540]
5
+ theme:
6
+ colors:
7
+ primary: "#2563EB"
8
+ accent: "#F59E0B"
9
+ text: "#1F2937"
10
+ bg: "#F8FAFC"
11
+ textStyles:
12
+ title:
13
+ fontSize: 40
14
+ color: "$text"
15
+ bold: true
16
+ body:
17
+ fontSize: 18
18
+ color: "$text"
19
+ lineHeight: 1.5
20
+ caption:
21
+ fontSize: 12
22
+ color: "#64748B"
23
+ pages:
24
+ - pages/01_cover.yaml
25
+ - pages/02_content.yaml
26
+ - pages/03_chart.yaml
@@ -0,0 +1,30 @@
1
+ # 由 dsh-ppt-studio 从 pptx 导入(内容保真,版式可从新)
2
+ # 检测到跨页页眉/页脚带(模板特征):建议安全区如下(注释呈现,未启用;确认为模板后取消注释并微调)
3
+ # safeArea: {top: 90}
4
+ # 建议主题(P0-1 聚合自原稿样式,可调;页面字段已内联,无需引用也可渲染)
5
+ # 色板为原稿全量(c1-c7 高频 + c8 起扩展低频色;theme-conformance 以全集为基准,不再误报原稿色)
6
+ theme:
7
+ colors:
8
+ c1: "#2563EB" # 最高频(建议作 ink/主色)
9
+ c2: "#F59E0B"
10
+ c3: "#1F2937"
11
+ c4: "#FFFFFF"
12
+ c5: "#64748B"
13
+ textStyles:
14
+ title: {fontSize: 40, color: "#2563EB", bold: true}
15
+ body: {fontSize: 18, color: "#2563EB"}
16
+ label: {fontSize: 12, color: "#2563EB"}
17
+ version: 1
18
+ title: "out-smoke"
19
+ size: [960, 540]
20
+ pages:
21
+ - pages/slide_01.yaml
22
+ - pages/slide_02.yaml
23
+ - pages/slide_03.yaml
24
+ referenceSource:
25
+ name: "out-smoke.pptx"
26
+ source: source.pptx
27
+ previews:
28
+ - "reference/previews/01.png"
29
+ - "reference/previews/02.png"
30
+ - "reference/previews/03.png"
@@ -0,0 +1,126 @@
1
+ {
2
+ "source": "out-smoke.pptx",
3
+ "size": {
4
+ "width": 960,
5
+ "height": 540
6
+ },
7
+ "generatedBy": "dsh-ppt-studio",
8
+ "note": "原始样式清单(改版求一致时直接复用;字段:fill/gradient/line/font/sz/color/bold/italic/align/shadow;页面元素按 page+id 定位)",
9
+ "elements": [
10
+ {
11
+ "page": 1,
12
+ "id": "hero-rect",
13
+ "fill": "#2563EB",
14
+ "line": {}
15
+ },
16
+ {
17
+ "page": 1,
18
+ "id": "title",
19
+ "sz": 40,
20
+ "color": "#1F2937",
21
+ "bold": true,
22
+ "italic": false
23
+ },
24
+ {
25
+ "page": 1,
26
+ "id": "subtitle",
27
+ "sz": 18,
28
+ "color": "#F59E0B",
29
+ "bold": false,
30
+ "italic": false
31
+ },
32
+ {
33
+ "page": 1,
34
+ "id": "deco",
35
+ "fill": "#F59E0B",
36
+ "line": {}
37
+ },
38
+ {
39
+ "page": 2,
40
+ "id": "page-title",
41
+ "sz": 28,
42
+ "color": "#1F2937",
43
+ "bold": true,
44
+ "italic": false
45
+ },
46
+ {
47
+ "page": 2,
48
+ "id": "body-a",
49
+ "sz": 18,
50
+ "color": "#1F2937",
51
+ "bold": false,
52
+ "italic": false
53
+ },
54
+ {
55
+ "page": 2,
56
+ "id": "metric-rect",
57
+ "fill": "#2563EB",
58
+ "line": {}
59
+ },
60
+ {
61
+ "page": 2,
62
+ "id": "metric",
63
+ "sz": 22,
64
+ "color": "#FFFFFF",
65
+ "bold": true,
66
+ "italic": false,
67
+ "align": "center"
68
+ },
69
+ {
70
+ "page": 2,
71
+ "id": "table-b"
72
+ },
73
+ {
74
+ "page": 3,
75
+ "id": "page-title",
76
+ "sz": 28,
77
+ "color": "#1F2937",
78
+ "bold": true,
79
+ "italic": false
80
+ },
81
+ {
82
+ "page": 3,
83
+ "id": "chart-c-b0-0",
84
+ "fill": "#2563EB",
85
+ "line": {}
86
+ },
87
+ {
88
+ "page": 3,
89
+ "id": "chart-c-b1-0",
90
+ "fill": "#2563EB",
91
+ "line": {}
92
+ },
93
+ {
94
+ "page": 3,
95
+ "id": "chart-c-b2-0",
96
+ "fill": "#2563EB",
97
+ "line": {}
98
+ },
99
+ {
100
+ "page": 3,
101
+ "id": "chart-c-b0-1",
102
+ "fill": "#F59E0B",
103
+ "line": {}
104
+ },
105
+ {
106
+ "page": 3,
107
+ "id": "chart-c-b1-1",
108
+ "fill": "#F59E0B",
109
+ "line": {}
110
+ },
111
+ {
112
+ "page": 3,
113
+ "id": "chart-c-b2-1",
114
+ "fill": "#F59E0B",
115
+ "line": {}
116
+ },
117
+ {
118
+ "page": 3,
119
+ "id": "caption",
120
+ "sz": 12,
121
+ "color": "#64748B",
122
+ "bold": false,
123
+ "italic": false
124
+ }
125
+ ]
126
+ }
@@ -0,0 +1,31 @@
1
+ # 导入自原 pptx(几何仅供参考,可由 layout 编辑器重排;样式已保留;v0.9.1 prst 形状/渐变直通)
2
+ pageType: content
3
+ notes: "开场页"
4
+ background: {"type":"solid","color":"#F8FAFC"}
5
+ elements:
6
+ - elementId: "hero-rect"
7
+ elementType: shape
8
+ bounds: [0, 0, 960, 120]
9
+ kind: rect
10
+ fill: "#2563EB"
11
+ line: {color: "#000000"}
12
+ - elementId: "title"
13
+ elementType: text
14
+ bounds: [80, 180, 700, 90]
15
+ content:
16
+ text: "季度复盘:增长引擎与风险"
17
+ fontSize: 40
18
+ color: "#1F2937"
19
+ bold: true
20
+ - elementId: "subtitle"
21
+ elementType: text
22
+ bounds: [80, 290, 600, 60]
23
+ content:
24
+ text: "2026 Q3 · 内部汇报"
25
+ color: "#F59E0B"
26
+ - elementId: "deco"
27
+ elementType: shape
28
+ bounds: [780, 360, 120, 120]
29
+ kind: ellipse
30
+ fill: "#F59E0B"
31
+ line: {color: "#000000"}
@@ -0,0 +1,38 @@
1
+ # 导入自原 pptx(几何仅供参考,可由 layout 编辑器重排;样式已保留;v0.9.1 prst 形状/渐变直通)
2
+ pageType: content
3
+ background: {"type":"solid","color":"#F8FAFC"}
4
+ elements:
5
+ - elementId: "page-title"
6
+ elementType: text
7
+ bounds: [60, 40, 840, 50]
8
+ content:
9
+ text: "关键进展"
10
+ fontSize: 28
11
+ color: "#1F2937"
12
+ bold: true
13
+ - elementId: "body-a"
14
+ elementType: text
15
+ bounds: [60, 130, 420, 200]
16
+ content:
17
+ text: "线上增长 34%,主要来自新渠道投放;NPS 提升 12 分;复购率升至 41%。 供应链成本环比下降 8%。"
18
+ color: "#1F2937"
19
+ - elementId: "metric-rect"
20
+ elementType: shape
21
+ bounds: [540, 130, 360, 80]
22
+ kind: rect
23
+ fill: "#2563EB"
24
+ line: {color: "#000000"}
25
+ - elementId: "metric"
26
+ elementType: text
27
+ bounds: [540, 150, 360, 40]
28
+ content:
29
+ text: "+34% 增长"
30
+ fontSize: 22
31
+ color: "#FFFFFF"
32
+ bold: true
33
+ align: center
34
+ - elementId: "table-b"
35
+ elementType: table
36
+ bounds: [60, 380, 840, 120]
37
+ cols: ["Col1", "Col2", "Col3", "Col4"]
38
+ rows: [["渠道","投入","产出","ROI"],["搜索","120万","480万","4"],["社群","60万","210万","3.5"],["直播","90万","360万","4"]]
@@ -0,0 +1,55 @@
1
+ # 导入自原 pptx(几何仅供参考,可由 layout 编辑器重排;样式已保留;v0.9.1 prst 形状/渐变直通)
2
+ pageType: content
3
+ background: {"type":"solid","color":"#F8FAFC"}
4
+ elements:
5
+ - elementId: "page-title"
6
+ elementType: text
7
+ bounds: [60, 40, 840, 50]
8
+ content:
9
+ text: "渠道 GMV 走势"
10
+ fontSize: 28
11
+ color: "#1F2937"
12
+ bold: true
13
+ - elementId: "chart-c-b0-0"
14
+ elementType: shape
15
+ bounds: [208, 205, 71, 176]
16
+ kind: rect
17
+ fill: "#2563EB"
18
+ line: {color: "#000000"}
19
+ - elementId: "chart-c-b1-0"
20
+ elementType: shape
21
+ bounds: [443, 183, 71, 198]
22
+ kind: rect
23
+ fill: "#2563EB"
24
+ line: {color: "#000000"}
25
+ - elementId: "chart-c-b2-0"
26
+ elementType: shape
27
+ bounds: [678, 150, 71, 231]
28
+ kind: rect
29
+ fill: "#2563EB"
30
+ line: {color: "#000000"}
31
+ - elementId: "chart-c-b0-1"
32
+ elementType: shape
33
+ bounds: [278, 265, 71, 116]
34
+ kind: rect
35
+ fill: "#F59E0B"
36
+ line: {color: "#000000"}
37
+ - elementId: "chart-c-b1-1"
38
+ elementType: shape
39
+ bounds: [514, 249, 71, 132]
40
+ kind: rect
41
+ fill: "#F59E0B"
42
+ line: {color: "#000000"}
43
+ - elementId: "chart-c-b2-1"
44
+ elementType: shape
45
+ bounds: [749, 216, 71, 165]
46
+ kind: rect
47
+ fill: "#F59E0B"
48
+ line: {color: "#000000"}
49
+ - elementId: "caption"
50
+ elementType: text
51
+ bounds: [60, 480, 840, 30]
52
+ content:
53
+ text: "数据来源:内部经营报表(2026-09 月报)"
54
+ fontSize: 12
55
+ color: "#64748B"
@@ -0,0 +1 @@
1
+ <!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="hero-rect" data-kind="shape" data-shape="rect" style="position:absolute;left:0px;top:0px;width:960px;height:120px;background:#2563EB;border:1px solid #000000"></div><div class="el" id="title" data-kind="text" style="position:absolute;left:80px;top:180px;width:700px;height:90px;font-size:40px;line-height:1.2;color:#1F2937;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">季度复盘:增长引擎与风险</div><div class="el" id="subtitle" data-kind="text" style="position:absolute;left:80px;top:290px;width:600px;height:60px;font-size:18px;line-height:1.2;color:#F59E0B;overflow:visible;white-space:pre-wrap;word-break:break-word">2026 Q3 · 内部汇报</div><div class="el" id="deco" data-kind="shape" data-shape="ellipse" style="position:absolute;left:780px;top:360px;width:120px;height:120px;border-radius:50%;background:#F59E0B;border:1px solid #000000"></div></div></body></html>
@@ -0,0 +1 @@
1
+ <!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="page-title" data-kind="text" style="position:absolute;left:60px;top:40px;width:840px;height:50px;font-size:28px;line-height:1.2;color:#1F2937;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">关键进展</div><div class="el" id="body-a" data-kind="text" style="position:absolute;left:60px;top:130px;width:420px;height:200px;font-size:18px;line-height:1.2;color:#1F2937;overflow:visible;white-space:pre-wrap;word-break:break-word">线上增长 34%,主要来自新渠道投放;NPS 提升 12 分;复购率升至 41%。 供应链成本环比下降 8%。</div><div class="el" id="metric-rect" data-kind="shape" data-shape="rect" style="position:absolute;left:540px;top:130px;width:360px;height:80px;background:#2563EB;border:1px solid #000000"></div><div class="el" id="metric" data-kind="text" style="position:absolute;left:540px;top:150px;width:360px;height:40px;font-size:22px;line-height:1.2;color:#FFFFFF;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">+34% 增长</div><table class="el" id="table-b" data-kind="table" style="position:absolute;left:60px;top:380px;width:840px;height:120px;border-collapse:collapse"><tbody><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">Col1</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">Col2</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">Col3</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">Col4</td></tr><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">渠道</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">投入</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">产出</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">ROI</td></tr><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">搜索</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">120万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">480万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">4</td></tr><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">社群</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">60万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">210万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">3.5</td></tr><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">直播</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">90万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">360万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">4</td></tr></tbody></table></div></body></html>
@@ -0,0 +1 @@
1
+ <!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="page-title" data-kind="text" style="position:absolute;left:60px;top:40px;width:840px;height:50px;font-size:28px;line-height:1.2;color:#1F2937;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">渠道 GMV 走势</div><div class="el" id="chart-c-b0-0" data-kind="shape" data-shape="rect" style="position:absolute;left:208px;top:205px;width:71px;height:176px;background:#2563EB;border:1px solid #000000"></div><div class="el" id="chart-c-b1-0" data-kind="shape" data-shape="rect" style="position:absolute;left:443px;top:183px;width:71px;height:198px;background:#2563EB;border:1px solid #000000"></div><div class="el" id="chart-c-b2-0" data-kind="shape" data-shape="rect" style="position:absolute;left:678px;top:150px;width:71px;height:231px;background:#2563EB;border:1px solid #000000"></div><div class="el" id="chart-c-b0-1" data-kind="shape" data-shape="rect" style="position:absolute;left:278px;top:265px;width:71px;height:116px;background:#F59E0B;border:1px solid #000000"></div><div class="el" id="chart-c-b1-1" data-kind="shape" data-shape="rect" style="position:absolute;left:514px;top:249px;width:71px;height:132px;background:#F59E0B;border:1px solid #000000"></div><div class="el" id="chart-c-b2-1" data-kind="shape" data-shape="rect" style="position:absolute;left:749px;top:216px;width:71px;height:165px;background:#F59E0B;border:1px solid #000000"></div><div class="el" id="caption" data-kind="text" style="position:absolute;left:60px;top:480px;width:840px;height:30px;font-size:12px;line-height:1.2;color:#64748B;overflow:visible;white-space:pre-wrap;word-break:break-word">数据来源:内部经营报表(2026-09 月报)</div></div></body></html>
@@ -0,0 +1 @@
1
+ <!doctype html><html><head><meta charset="utf-8"><title>out-smoke</title><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style><style>body{background:#334155;padding:16px}</style></head><body style="background:#334155"><section style="margin:0 auto 24px;width:960px;padding:4px 0"><div style="font:12px monospace;color:#e2e8f0;padding:2px 8px">1. pages/slide_01</div><div class="slide" style='background:#F8FAFC'><div class="el" id="hero-rect" data-kind="shape" data-shape="rect" style="position:absolute;left:0px;top:0px;width:960px;height:120px;background:#2563EB;border:1px solid #000000"></div><div class="el" id="title" data-kind="text" style="position:absolute;left:80px;top:180px;width:700px;height:90px;font-size:40px;line-height:1.2;color:#1F2937;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">季度复盘:增长引擎与风险</div><div class="el" id="subtitle" data-kind="text" style="position:absolute;left:80px;top:290px;width:600px;height:60px;font-size:18px;line-height:1.2;color:#F59E0B;overflow:visible;white-space:pre-wrap;word-break:break-word">2026 Q3 · 内部汇报</div><div class="el" id="deco" data-kind="shape" data-shape="ellipse" style="position:absolute;left:780px;top:360px;width:120px;height:120px;border-radius:50%;background:#F59E0B;border:1px solid #000000"></div></div></section><section style="margin:0 auto 24px;width:960px;padding:4px 0"><div style="font:12px monospace;color:#e2e8f0;padding:2px 8px">2. pages/slide_02</div><div class="slide" style='background:#F8FAFC'><div class="el" id="page-title" data-kind="text" style="position:absolute;left:60px;top:40px;width:840px;height:50px;font-size:28px;line-height:1.2;color:#1F2937;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">关键进展</div><div class="el" id="body-a" data-kind="text" style="position:absolute;left:60px;top:130px;width:420px;height:200px;font-size:18px;line-height:1.2;color:#1F2937;overflow:visible;white-space:pre-wrap;word-break:break-word">线上增长 34%,主要来自新渠道投放;NPS 提升 12 分;复购率升至 41%。 供应链成本环比下降 8%。</div><div class="el" id="metric-rect" data-kind="shape" data-shape="rect" style="position:absolute;left:540px;top:130px;width:360px;height:80px;background:#2563EB;border:1px solid #000000"></div><div class="el" id="metric" data-kind="text" style="position:absolute;left:540px;top:150px;width:360px;height:40px;font-size:22px;line-height:1.2;color:#FFFFFF;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">+34% 增长</div><table class="el" id="table-b" data-kind="table" style="position:absolute;left:60px;top:380px;width:840px;height:120px;border-collapse:collapse"><tbody><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">Col1</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">Col2</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">Col3</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">Col4</td></tr><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">渠道</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">投入</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">产出</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">ROI</td></tr><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">搜索</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">120万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">480万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">4</td></tr><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">社群</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">60万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">210万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">3.5</td></tr><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">直播</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">90万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">360万</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:11px">4</td></tr></tbody></table></div></section><section style="margin:0 auto 24px;width:960px;padding:4px 0"><div style="font:12px monospace;color:#e2e8f0;padding:2px 8px">3. pages/slide_03</div><div class="slide" style='background:#F8FAFC'><div class="el" id="page-title" data-kind="text" style="position:absolute;left:60px;top:40px;width:840px;height:50px;font-size:28px;line-height:1.2;color:#1F2937;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">渠道 GMV 走势</div><div class="el" id="chart-c-b0-0" data-kind="shape" data-shape="rect" style="position:absolute;left:208px;top:205px;width:71px;height:176px;background:#2563EB;border:1px solid #000000"></div><div class="el" id="chart-c-b1-0" data-kind="shape" data-shape="rect" style="position:absolute;left:443px;top:183px;width:71px;height:198px;background:#2563EB;border:1px solid #000000"></div><div class="el" id="chart-c-b2-0" data-kind="shape" data-shape="rect" style="position:absolute;left:678px;top:150px;width:71px;height:231px;background:#2563EB;border:1px solid #000000"></div><div class="el" id="chart-c-b0-1" data-kind="shape" data-shape="rect" style="position:absolute;left:278px;top:265px;width:71px;height:116px;background:#F59E0B;border:1px solid #000000"></div><div class="el" id="chart-c-b1-1" data-kind="shape" data-shape="rect" style="position:absolute;left:514px;top:249px;width:71px;height:132px;background:#F59E0B;border:1px solid #000000"></div><div class="el" id="chart-c-b2-1" data-kind="shape" data-shape="rect" style="position:absolute;left:749px;top:216px;width:71px;height:165px;background:#F59E0B;border:1px solid #000000"></div><div class="el" id="caption" data-kind="text" style="position:absolute;left:60px;top:480px;width:840px;height:30px;font-size:12px;line-height:1.2;color:#64748B;overflow:visible;white-space:pre-wrap;word-break:break-word">数据来源:内部经营报表(2026-09 月报)</div></div></section></body></html>