dsh-pictor 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/LICENSE +21 -0
- package/README.md +81 -0
- package/agents/00.renderer.md +117 -0
- package/agents/10.orchestrator.md +191 -0
- package/agents/11.extractor.md +132 -0
- package/agents/12.advisor.md +151 -0
- package/assets/empty-state.png +0 -0
- package/assets/previews/layouts/bento-grid.webp +0 -0
- package/assets/previews/layouts/binary-comparison.webp +0 -0
- package/assets/previews/layouts/bridge.webp +0 -0
- package/assets/previews/layouts/circular-flow.webp +0 -0
- package/assets/previews/layouts/comic-strip.webp +0 -0
- package/assets/previews/layouts/comparison-matrix.webp +0 -0
- package/assets/previews/layouts/dashboard.webp +0 -0
- package/assets/previews/layouts/funnel.webp +0 -0
- package/assets/previews/layouts/geo-map.webp +0 -0
- package/assets/previews/layouts/hierarchical-layers.webp +0 -0
- package/assets/previews/layouts/hub-spoke.webp +0 -0
- package/assets/previews/layouts/iceberg.webp +0 -0
- package/assets/previews/layouts/isometric-map.webp +0 -0
- package/assets/previews/layouts/jigsaw.webp +0 -0
- package/assets/previews/layouts/linear-progression.webp +0 -0
- package/assets/previews/layouts/network-graph.webp +0 -0
- package/assets/previews/layouts/parallel-tracks.webp +0 -0
- package/assets/previews/layouts/periodic-table.webp +0 -0
- package/assets/previews/layouts/quadrant-matrix.webp +0 -0
- package/assets/previews/layouts/sankey-flow.webp +0 -0
- package/assets/previews/layouts/story-mountain.webp +0 -0
- package/assets/previews/layouts/structural-breakdown.webp +0 -0
- package/assets/previews/layouts/toulmin-argument.webp +0 -0
- package/assets/previews/layouts/tree-branching.webp +0 -0
- package/assets/previews/layouts/venn-diagram.webp +0 -0
- package/assets/previews/layouts/winding-roadmap.webp +0 -0
- package/assets/previews/styles/aged-academia.webp +0 -0
- package/assets/previews/styles/bandung-circuit.webp +0 -0
- package/assets/previews/styles/bold-graphic.webp +0 -0
- package/assets/previews/styles/chalkboard.webp +0 -0
- package/assets/previews/styles/claymation.webp +0 -0
- package/assets/previews/styles/clean-analytics.webp +0 -0
- package/assets/previews/styles/corporate-memphis.webp +0 -0
- package/assets/previews/styles/craft-handmade.webp +0 -0
- package/assets/previews/styles/cyberpunk-neon.webp +0 -0
- package/assets/previews/styles/ikea-manual.webp +0 -0
- package/assets/previews/styles/kawaii.webp +0 -0
- package/assets/previews/styles/knolling.webp +0 -0
- package/assets/previews/styles/lego-brick.webp +0 -0
- package/assets/previews/styles/mckinsey-report.webp +0 -0
- package/assets/previews/styles/origami.webp +0 -0
- package/assets/previews/styles/pixel-art.webp +0 -0
- package/assets/previews/styles/storybook-watercolor.webp +0 -0
- package/assets/previews/styles/subway-map.webp +0 -0
- package/assets/previews/styles/technical-schematic.webp +0 -0
- package/assets/previews/styles/tricon-infographic.webp +0 -0
- package/assets/previews/styles/ui-wireframe.webp +0 -0
- package/cordis.patch.yml +8 -0
- package/docs/DESIGN.zh.md +278 -0
- package/docs/verification-checklist.zh.md +64 -0
- package/lib/client.js +1724 -0
- package/lib/image-providers.js +195 -0
- package/lib/index.js +739 -0
- package/lib/render.js +28 -0
- package/package.json +80 -0
- package/references/domain/base-prompt.md +44 -0
- package/references/domain/diagram-types/_catalog.yaml +78 -0
- package/references/domain/diagram-types/debate-map.md +33 -0
- package/references/domain/diagram-types/evidence-radar.md +33 -0
- package/references/domain/diagram-types/geographic-map.md +33 -0
- package/references/domain/diagram-types/greimas-square.md +33 -0
- package/references/domain/diagram-types/landscape.md +33 -0
- package/references/domain/diagram-types/network-graph.md +35 -0
- package/references/domain/diagram-types/parallel-timeline.md +33 -0
- package/references/domain/diagram-types/quadrant.md +33 -0
- package/references/domain/diagram-types/sankey-flow.md +33 -0
- package/references/domain/diagram-types/stakeholder-matrix.md +31 -0
- package/references/domain/diagram-types/toulmin-diagram.md +35 -0
- package/references/domain/layouts/bento-grid.md +41 -0
- package/references/domain/layouts/binary-comparison.md +48 -0
- package/references/domain/layouts/bridge.md +41 -0
- package/references/domain/layouts/circular-flow.md +41 -0
- package/references/domain/layouts/comic-strip.md +41 -0
- package/references/domain/layouts/comparison-matrix.md +41 -0
- package/references/domain/layouts/dashboard.md +41 -0
- package/references/domain/layouts/funnel.md +41 -0
- package/references/domain/layouts/geo-map.md +82 -0
- package/references/domain/layouts/hierarchical-layers.md +48 -0
- package/references/domain/layouts/hub-spoke.md +41 -0
- package/references/domain/layouts/iceberg.md +41 -0
- package/references/domain/layouts/isometric-map.md +41 -0
- package/references/domain/layouts/jigsaw.md +41 -0
- package/references/domain/layouts/linear-progression.md +48 -0
- package/references/domain/layouts/network-graph.md +42 -0
- package/references/domain/layouts/parallel-tracks.md +49 -0
- package/references/domain/layouts/periodic-table.md +41 -0
- package/references/domain/layouts/quadrant-matrix.md +93 -0
- package/references/domain/layouts/sankey-flow.md +97 -0
- package/references/domain/layouts/story-mountain.md +41 -0
- package/references/domain/layouts/structural-breakdown.md +48 -0
- package/references/domain/layouts/toulmin-argument.md +113 -0
- package/references/domain/layouts/tree-branching.md +41 -0
- package/references/domain/layouts/venn-diagram.md +41 -0
- package/references/domain/layouts/winding-roadmap.md +41 -0
- package/references/domain/styles/aged-academia.md +36 -0
- package/references/domain/styles/bandung-circuit.md +82 -0
- package/references/domain/styles/bold-graphic.md +36 -0
- package/references/domain/styles/chalkboard.md +61 -0
- package/references/domain/styles/claymation.md +29 -0
- package/references/domain/styles/clean-analytics.md +78 -0
- package/references/domain/styles/corporate-memphis.md +29 -0
- package/references/domain/styles/craft-handmade.md +44 -0
- package/references/domain/styles/cyberpunk-neon.md +29 -0
- package/references/domain/styles/ikea-manual.md +29 -0
- package/references/domain/styles/kawaii.md +29 -0
- package/references/domain/styles/knolling.md +29 -0
- package/references/domain/styles/lego-brick.md +29 -0
- package/references/domain/styles/mckinsey-report.md +83 -0
- package/references/domain/styles/origami.md +29 -0
- package/references/domain/styles/pixel-art.md +29 -0
- package/references/domain/styles/storybook-watercolor.md +29 -0
- package/references/domain/styles/subway-map.md +29 -0
- package/references/domain/styles/technical-schematic.md +36 -0
- package/references/domain/styles/tricon-infographic.md +54 -0
- package/references/domain/styles/ui-wireframe.md +29 -0
- package/references/domain/visual-principles.md +63 -0
package/lib/render.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
function renderPrompt(input, runDir) {
|
|
4
|
+
const refs = (rel) => join(runDir, "references", "domain", rel);
|
|
5
|
+
const base = readFileSync(refs("base-prompt.md"), "utf8");
|
|
6
|
+
let layoutGuidelines = `\uFF08\u672A\u627E\u5230 ${input.suggestedLayout} \u7684 layout \u89C4\u8303\u6587\u4EF6\uFF0C\u4EC5\u6309\u540D\u79F0\u4F7F\u7528\uFF09`;
|
|
7
|
+
try {
|
|
8
|
+
layoutGuidelines = readFileSync(refs(`layouts/${input.suggestedLayout}.md`), "utf8");
|
|
9
|
+
} catch {
|
|
10
|
+
}
|
|
11
|
+
let styleGuidelines = `\uFF08\u672A\u627E\u5230 ${input.suggestedStyle} \u7684 style \u89C4\u8303\u6587\u4EF6\uFF0C\u4EC5\u6309\u540D\u79F0\u4F7F\u7528\uFF09`;
|
|
12
|
+
try {
|
|
13
|
+
styleGuidelines = readFileSync(refs(`styles/${input.suggestedStyle}.md`), "utf8");
|
|
14
|
+
} catch {
|
|
15
|
+
}
|
|
16
|
+
const aspect = input.aspectRatio || "16:9";
|
|
17
|
+
const lang = input.language || "English";
|
|
18
|
+
const textLabels = [
|
|
19
|
+
`Communicative intent: ${input.communicativeIntent}`,
|
|
20
|
+
`Suggested layout: ${input.suggestedLayout}`,
|
|
21
|
+
input.estimatedComplexity ? `Estimated complexity: ${input.estimatedComplexity}` : void 0
|
|
22
|
+
].filter(Boolean).join("\n");
|
|
23
|
+
const prompt = base.replaceAll("{{LAYOUT}}", input.suggestedLayout).replaceAll("{{STYLE}}", input.suggestedStyle).replaceAll("{{ASPECT_RATIO}}", aspect).replaceAll("{{LANGUAGE}}", lang).replaceAll("{{LAYOUT_GUIDELINES}}", layoutGuidelines).replaceAll("{{STYLE_GUIDELINES}}", styleGuidelines).replaceAll("{{CONTENT}}", input.sourceText).replaceAll("{{TEXT_LABELS}}", textLabels);
|
|
24
|
+
return { prompt, textLabels };
|
|
25
|
+
}
|
|
26
|
+
export {
|
|
27
|
+
renderPrompt
|
|
28
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dsh-pictor",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Pictor:文档转信息图工作台。每项目一个连贯 dsh 会话,GUI 为 shell.overlay 工作台(左栏项目、右栏三步:提取/方案/渲染),行为全部交给 DSH 智能运行时。",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/bandung-circuits/pictor.git"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/bandung-circuits/pictor",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/bandung-circuits/pictor/issues"
|
|
13
|
+
},
|
|
14
|
+
"main": "./lib/index.js",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"default": "./lib/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./client": {
|
|
20
|
+
"default": "./lib/client.js"
|
|
21
|
+
},
|
|
22
|
+
"./package.json": "./package.json"
|
|
23
|
+
},
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": ">=20"
|
|
26
|
+
},
|
|
27
|
+
"dsh": {
|
|
28
|
+
"bundle": {
|
|
29
|
+
"patch": "./cordis.patch.yml"
|
|
30
|
+
},
|
|
31
|
+
"client": {
|
|
32
|
+
"inject": [
|
|
33
|
+
"@deepseek-ai/dsh-client-runtime",
|
|
34
|
+
"@deepseek-ai/dsh-client-ui-theme",
|
|
35
|
+
"@deepseek-ai/dsh-client-ui-conversation",
|
|
36
|
+
"@deepseek-ai/dsh-client-ui-settings"
|
|
37
|
+
],
|
|
38
|
+
"platform": "web"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"files": [
|
|
42
|
+
"lib",
|
|
43
|
+
"cordis.patch.yml",
|
|
44
|
+
"agents",
|
|
45
|
+
"references/domain",
|
|
46
|
+
"docs",
|
|
47
|
+
"README.md",
|
|
48
|
+
"LICENSE",
|
|
49
|
+
"assets"
|
|
50
|
+
],
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "node scripts/build.mjs",
|
|
53
|
+
"verify": "node scripts/build.mjs && node verify.mjs",
|
|
54
|
+
"verify:integration": "bash scripts/transport-smoke.sh",
|
|
55
|
+
"test:e2e": "playwright test --config e2e/playwright.config.ts --project chromium",
|
|
56
|
+
"verify:live": "playwright test --config e2e/playwright.config.ts --project live",
|
|
57
|
+
"prepare": "node scripts/build.mjs"
|
|
58
|
+
},
|
|
59
|
+
"license": "MIT",
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.6",
|
|
62
|
+
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.0-rc.6",
|
|
63
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.0-rc.6",
|
|
64
|
+
"@deepseek-ai/dsh-client-ui-theme": "^0.1.0-rc.6",
|
|
65
|
+
"react": "^18.2.0",
|
|
66
|
+
"react-dom": "^18.2.0"
|
|
67
|
+
},
|
|
68
|
+
"peerDependenciesMeta": {
|
|
69
|
+
"react": {
|
|
70
|
+
"optional": true
|
|
71
|
+
},
|
|
72
|
+
"react-dom": {
|
|
73
|
+
"optional": true
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"devDependencies": {
|
|
77
|
+
"@playwright/test": "^1.62.1",
|
|
78
|
+
"esbuild": "^0.28.2"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
Create a professional infographic following these specifications:
|
|
2
|
+
|
|
3
|
+
## Image Specifications
|
|
4
|
+
|
|
5
|
+
- **Type**: Infographic
|
|
6
|
+
- **Layout**: {{LAYOUT}}
|
|
7
|
+
- **Style**: {{STYLE}}
|
|
8
|
+
- **Aspect Ratio**: {{ASPECT_RATIO}}
|
|
9
|
+
- **Language**: {{LANGUAGE}}
|
|
10
|
+
|
|
11
|
+
## Core Principles
|
|
12
|
+
|
|
13
|
+
- Follow the layout structure precisely for information architecture
|
|
14
|
+
- Apply style aesthetics consistently throughout
|
|
15
|
+
- If content involves sensitive or copyrighted figures, create stylistically similar alternatives
|
|
16
|
+
- Keep information concise, highlight keywords and core concepts
|
|
17
|
+
- Use ample whitespace for visual clarity
|
|
18
|
+
- Maintain clear visual hierarchy
|
|
19
|
+
- Do NOT add source citations, methodology notes, institutional branding, logos, or watermarks inside the graphic — focus purely on presenting the information content itself
|
|
20
|
+
|
|
21
|
+
## Text Requirements
|
|
22
|
+
|
|
23
|
+
- All text must match the specified style treatment
|
|
24
|
+
- Main titles should be prominent and readable
|
|
25
|
+
- Key concepts should be visually emphasized
|
|
26
|
+
- Labels should be clear and appropriately sized
|
|
27
|
+
- Use the specified language for all text content
|
|
28
|
+
|
|
29
|
+
## Layout Guidelines
|
|
30
|
+
|
|
31
|
+
{{LAYOUT_GUIDELINES}}
|
|
32
|
+
|
|
33
|
+
## Style Guidelines
|
|
34
|
+
|
|
35
|
+
{{STYLE_GUIDELINES}}
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
Generate the infographic based on the content below:
|
|
40
|
+
|
|
41
|
+
{{CONTENT}}
|
|
42
|
+
|
|
43
|
+
Text labels (in {{LANGUAGE}}):
|
|
44
|
+
{{TEXT_LABELS}}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Pictor 学术可视化类型注册表
|
|
2
|
+
#
|
|
3
|
+
# 每种类型对应一个 layout(参见 references/domain/layouts/)。
|
|
4
|
+
# 标 fallback 的表示当前尚无专用 layout,使用近似 layout 渲染,存在语义损失。
|
|
5
|
+
#
|
|
6
|
+
# 已有专用 layout 的基础类型(不在此列):
|
|
7
|
+
# hierarchy → hierarchical-layers
|
|
8
|
+
# concept-decomposition → tree-branching
|
|
9
|
+
# timeline → linear-progression
|
|
10
|
+
# cycle → circular-flow
|
|
11
|
+
|
|
12
|
+
types:
|
|
13
|
+
# --- 关系与结构 ---
|
|
14
|
+
|
|
15
|
+
- id: network-graph
|
|
16
|
+
name: Network Graph
|
|
17
|
+
layout: network-graph
|
|
18
|
+
file: network-graph.md
|
|
19
|
+
|
|
20
|
+
- id: stakeholder-matrix
|
|
21
|
+
name: Stakeholder Matrix
|
|
22
|
+
layout: quadrant-matrix
|
|
23
|
+
file: stakeholder-matrix.md
|
|
24
|
+
|
|
25
|
+
# --- 论证与论辩 ---
|
|
26
|
+
|
|
27
|
+
- id: toulmin-diagram
|
|
28
|
+
name: Toulmin Diagram
|
|
29
|
+
layout: toulmin-argument
|
|
30
|
+
file: toulmin-diagram.md
|
|
31
|
+
|
|
32
|
+
- id: debate-map
|
|
33
|
+
name: Debate Map
|
|
34
|
+
layout: binary-comparison # fallback
|
|
35
|
+
file: debate-map.md
|
|
36
|
+
|
|
37
|
+
- id: greimas-square
|
|
38
|
+
name: Greimas Square
|
|
39
|
+
layout: binary-comparison # fallback
|
|
40
|
+
file: greimas-square.md
|
|
41
|
+
|
|
42
|
+
# --- 流程与周期 ---
|
|
43
|
+
|
|
44
|
+
- id: sankey-flow
|
|
45
|
+
name: Sankey Flow Diagram
|
|
46
|
+
layout: sankey-flow
|
|
47
|
+
file: sankey-flow.md
|
|
48
|
+
|
|
49
|
+
# --- 时间与演变 ---
|
|
50
|
+
|
|
51
|
+
- id: parallel-timeline
|
|
52
|
+
name: Parallel Timeline
|
|
53
|
+
layout: parallel-tracks
|
|
54
|
+
file: parallel-timeline.md
|
|
55
|
+
|
|
56
|
+
# --- 评估与定位 ---
|
|
57
|
+
|
|
58
|
+
- id: evidence-radar
|
|
59
|
+
name: Evidence Radar
|
|
60
|
+
layout: dashboard # fallback
|
|
61
|
+
file: evidence-radar.md
|
|
62
|
+
|
|
63
|
+
- id: quadrant
|
|
64
|
+
name: Quadrant Chart
|
|
65
|
+
layout: quadrant-matrix
|
|
66
|
+
file: quadrant.md
|
|
67
|
+
|
|
68
|
+
# --- 空间与全景 ---
|
|
69
|
+
|
|
70
|
+
- id: landscape
|
|
71
|
+
name: Landscape Map
|
|
72
|
+
layout: bento-grid # fallback
|
|
73
|
+
file: landscape.md
|
|
74
|
+
|
|
75
|
+
- id: geographic-map
|
|
76
|
+
name: Geographic Map
|
|
77
|
+
layout: geo-map
|
|
78
|
+
file: geographic-map.md
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 论辩地图 / Debate Map
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
|
|
5
|
+
展示**正反观点的对立结构**,包括支持论据、反驳论据、以及各方立场之间的回应关系。适合呈现学术争论、政策辩论、多方立场对比。
|
|
6
|
+
|
|
7
|
+
## 信息结构特征
|
|
8
|
+
|
|
9
|
+
当源文本包含以下特征时,适合使用论辩地图:
|
|
10
|
+
|
|
11
|
+
- 存在明确的正反两方或多方观点
|
|
12
|
+
- "支持者认为...反对者则认为..."
|
|
13
|
+
- 论点之间有直接的反驳或回应关系
|
|
14
|
+
- 某个主张同时有多条支持和反对证据
|
|
15
|
+
- 多个学者/团体对同一议题的不同立场
|
|
16
|
+
|
|
17
|
+
## 核心视觉元素
|
|
18
|
+
|
|
19
|
+
| 元素 | 用途 | 常见表现 |
|
|
20
|
+
|------|------|----------|
|
|
21
|
+
| 中心议题 | 辩论的核心问题 | 顶部或中心的突出框 |
|
|
22
|
+
| 支持论点 | 赞同立场的论据 | 绿色/蓝色节点 |
|
|
23
|
+
| 反对论点 | 反对立场的论据 | 红色/橙色节点 |
|
|
24
|
+
| 回应连线 | 论点间的反驳/支持关系 | 带箭头连线,颜色区分 |
|
|
25
|
+
| 证据节点 | 支撑论点的具体证据 | 较小的附属节点 |
|
|
26
|
+
|
|
27
|
+
## 布局原则
|
|
28
|
+
|
|
29
|
+
- **对称布局**:正方和反方分列左右或上下
|
|
30
|
+
- **中心议题突出**:核心问题居于视觉焦点
|
|
31
|
+
- **颜色对比**:用鲜明的颜色对比区分正反方
|
|
32
|
+
- **层级深度**:从核心立场到具体证据逐层展开
|
|
33
|
+
- **回应关系清晰**:反驳连线用虚线或不同颜色标识
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 证据雷达图 / Evidence Radar
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
|
|
5
|
+
在**多个维度轴上展示评估结果**,形成雷达/蛛网形状,直观比较各维度的强弱。适合多维度评估、证据质量对比、能力评估、方案综合评分。
|
|
6
|
+
|
|
7
|
+
## 信息结构特征
|
|
8
|
+
|
|
9
|
+
当源文本包含以下特征时,适合使用证据雷达图:
|
|
10
|
+
|
|
11
|
+
- 对同一对象在多个维度上的评估
|
|
12
|
+
- "在 X 方面表现优秀,但在 Y 方面不足"
|
|
13
|
+
- 多个指标的综合评分
|
|
14
|
+
- 多个方案/候选人的对比评估
|
|
15
|
+
- 证据链在不同方面的强度差异
|
|
16
|
+
|
|
17
|
+
## 核心视觉元素
|
|
18
|
+
|
|
19
|
+
| 元素 | 用途 | 常见表现 |
|
|
20
|
+
|------|------|----------|
|
|
21
|
+
| 维度轴 | 各评估维度 | 从中心向外辐射的轴线 |
|
|
22
|
+
| 数据多边形 | 各维度得分连线 | 连接各轴上得分点的封闭区域 |
|
|
23
|
+
| 刻度环 | 得分参照 | 同心圆或同心多边形 |
|
|
24
|
+
| 维度标签 | 标识每个维度 | 轴线末端的文字 |
|
|
25
|
+
| 多对象叠加 | 对比多个对象 | 不同颜色/线型的叠加多边形 |
|
|
26
|
+
|
|
27
|
+
## 布局原则
|
|
28
|
+
|
|
29
|
+
- **维度数适中**:5-10 个维度最佳
|
|
30
|
+
- **均匀分布**:各维度轴等角度分布
|
|
31
|
+
- **刻度统一**:所有维度使用相同的评分范围
|
|
32
|
+
- **颜色区分**:叠加多个对象时用不同颜色和透明度
|
|
33
|
+
- **标签可读**:维度标签不相互重叠
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 地理分布图 / Geographic Map
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
|
|
5
|
+
在**地理空间**上展示数据、事件或现象的分布,呈现空间模式、区域差异、扩散路径等。
|
|
6
|
+
|
|
7
|
+
## 信息结构特征
|
|
8
|
+
|
|
9
|
+
当源文本包含以下特征时,适合使用地理分布图:
|
|
10
|
+
|
|
11
|
+
- 涉及多个国家、地区或地理位置的数据
|
|
12
|
+
- "在 X 地区...而在 Y 地区..."
|
|
13
|
+
- 现象的地理扩散或传播路径
|
|
14
|
+
- 区域间的对比或差异
|
|
15
|
+
- 地缘政治分析
|
|
16
|
+
|
|
17
|
+
## 核心视觉元素
|
|
18
|
+
|
|
19
|
+
| 元素 | 用途 | 常见表现 |
|
|
20
|
+
|------|------|----------|
|
|
21
|
+
| 地图底图 | 地理参照 | 简化的区域/国家轮廓 |
|
|
22
|
+
| 热度着色 | 数值的地理分布 | 色阶填充(浅=低,深=高) |
|
|
23
|
+
| 标记点 | 具体位置的事件/数据 | 圆点,大小反映数值 |
|
|
24
|
+
| 路径/箭头 | 流向或扩散方向 | 连接两地的曲线箭头 |
|
|
25
|
+
| 图例 | 颜色/大小的含义 | 边栏的说明 |
|
|
26
|
+
|
|
27
|
+
## 布局原则
|
|
28
|
+
|
|
29
|
+
- **地理准确**:位置应大致对应真实地理方位
|
|
30
|
+
- **简化底图**:去除不必要的地理细节,突出数据
|
|
31
|
+
- **色阶直觉**:用直觉性的色阶(如红=高、蓝=低)
|
|
32
|
+
- **标签不遮挡**:文字标签不遮挡关键区域
|
|
33
|
+
- **比例尺**:如果距离有意义,提供比例尺参考
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 格雷马斯方阵 / Greimas Square
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
|
|
5
|
+
展示**语义对立关系的四元结构**,将一对二元对立拆解为四个位置(S1、S2、非S1、非S2),并展示它们之间的对立(contrary)、矛盾(contradictory)和蕴含(implication)关系。来源于结构主义语义学,广泛用于叙事分析和意识形态批评。
|
|
6
|
+
|
|
7
|
+
## 信息结构特征
|
|
8
|
+
|
|
9
|
+
当源文本包含以下特征时,适合使用格雷马斯方阵:
|
|
10
|
+
|
|
11
|
+
- 明确的二元对立(如自由 vs. 秩序、自然 vs. 文化)
|
|
12
|
+
- 存在"既不是 A 也不是 B"的中间或否定态
|
|
13
|
+
- 对意识形态结构的分析
|
|
14
|
+
- 叙事中人物或价值观的对立关系
|
|
15
|
+
- 概念的辩证关系(正题→反题→合题的变体)
|
|
16
|
+
|
|
17
|
+
## 核心视觉元素
|
|
18
|
+
|
|
19
|
+
| 元素 | 用途 | 常见表现 |
|
|
20
|
+
|------|------|----------|
|
|
21
|
+
| 四个位置 | S1、S2、非S1、非S2 | 正方形四角的节点 |
|
|
22
|
+
| 对立轴 | S1 ↔ S2 的对立关系 | 水平连线,标注"对立" |
|
|
23
|
+
| 矛盾轴 | S1 ↔ 非S1、S2 ↔ 非S2 | 对角虚线,标注"矛盾" |
|
|
24
|
+
| 蕴含轴 | S1 → 非S2、S2 → 非S1 | 垂直连线,标注"蕴含" |
|
|
25
|
+
| 综合位置 | 复合语义(如 S1+S2) | 中央或边线位置 |
|
|
26
|
+
|
|
27
|
+
## 布局原则
|
|
28
|
+
|
|
29
|
+
- **正方形布局**:四个位置严格排列在正方形的四角
|
|
30
|
+
- **关系线类型**:对立=实线、矛盾=对角虚线、蕴含=单向箭头
|
|
31
|
+
- **标注清晰**:每个位置和每条关系线都有明确的语义标签
|
|
32
|
+
- **颜色区分**:上方两个(正面概念)和下方两个(否定概念)用不同色调
|
|
33
|
+
- **保持简洁**:不添加额外装饰,保持结构主义的严谨感
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 全景图 / Landscape Map
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
|
|
5
|
+
**鸟瞰式展示某个领域的整体格局**,包括主要参与者、思想流派、技术生态或市场格局的全貌。适合在一张图中呈现一个领域"谁在做什么、各占什么位置"。
|
|
6
|
+
|
|
7
|
+
## 信息结构特征
|
|
8
|
+
|
|
9
|
+
当源文本包含以下特征时,适合使用全景图:
|
|
10
|
+
|
|
11
|
+
- 一个领域内多个参与者/流派/技术的概览
|
|
12
|
+
- "该领域主要分为...几大方向"
|
|
13
|
+
- 竞争格局、生态系统的描述
|
|
14
|
+
- 学术领域中不同研究方向的分布
|
|
15
|
+
- 需要一张图让读者对整个领域有全局认识
|
|
16
|
+
|
|
17
|
+
## 核心视觉元素
|
|
18
|
+
|
|
19
|
+
| 元素 | 用途 | 常见表现 |
|
|
20
|
+
|------|------|----------|
|
|
21
|
+
| 区域/地带 | 不同方向或子领域 | 色块区域或地图式分区 |
|
|
22
|
+
| 实体标记 | 具体参与者/技术/流派 | 区域内的图标或标签 |
|
|
23
|
+
| 边界 | 子领域间的界限 | 渐变色过渡或虚线 |
|
|
24
|
+
| 关系连线 | 跨领域的关联 | 虚线或淡色连线 |
|
|
25
|
+
| 全局标题 | 整个版图的主题 | 顶部或中心的标题 |
|
|
26
|
+
|
|
27
|
+
## 布局原则
|
|
28
|
+
|
|
29
|
+
- **空间隐喻**:相似的事物在空间上靠近
|
|
30
|
+
- **区域清晰**:不同子领域用颜色/边界明确区分
|
|
31
|
+
- **密度均匀**:避免某个区域过于密集而其他空旷
|
|
32
|
+
- **层次感**:重要参与者/流派用更大的标记
|
|
33
|
+
- **可浏览性**:读者应能快速扫视获得全局印象
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 网络关系图 / Network Graph
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
|
|
5
|
+
展示**实体之间的多对多关系网络**。适合将非线性的、相互交织的关系结构可视化,包括因果网络、利益相关方关系、知识图谱、引用网络、权力关系等。
|
|
6
|
+
|
|
7
|
+
## 信息结构特征
|
|
8
|
+
|
|
9
|
+
当源文本包含以下特征时,适合使用网络关系图:
|
|
10
|
+
|
|
11
|
+
- 多个实体之间的相互影响或依赖
|
|
12
|
+
- "A 影响 B"、"X 与 Y 相关"、"互相作用"
|
|
13
|
+
- 因果链或因果网络(非单一线性因果)
|
|
14
|
+
- 利益相关方之间的权力、资源或信息交换
|
|
15
|
+
- 概念之间的类比、对比、包含关系
|
|
16
|
+
|
|
17
|
+
## 核心视觉元素
|
|
18
|
+
|
|
19
|
+
| 元素 | 用途 | 常见表现 |
|
|
20
|
+
|------|------|----------|
|
|
21
|
+
| 节点 | 表示一个实体/概念 | 圆形或圆角矩形,大小反映重要性 |
|
|
22
|
+
| 边/连线 | 表示关系 | 带箭头(有向)或无箭头(无向) |
|
|
23
|
+
| 边标签 | 描述关系类型 | 连线上的简短文字 |
|
|
24
|
+
| 节点颜色 | 区分实体类别 | 不同颜色代表不同类型 |
|
|
25
|
+
| 边粗细 | 关系强度 | 越粗表示关系越强 |
|
|
26
|
+
| 聚类分组 | 将相关节点归类 | 背景色区域或虚线框 |
|
|
27
|
+
|
|
28
|
+
## 布局原则
|
|
29
|
+
|
|
30
|
+
- **中心性**:最重要的节点居中,次要节点向外辐射
|
|
31
|
+
- **减少交叉**:尽量减少连线的交叉
|
|
32
|
+
- **颜色编码**:用颜色区分节点类别(如不同利益方、不同层级)
|
|
33
|
+
- **权重可视化**:节点大小 → 重要程度;连线粗细 → 关系强度
|
|
34
|
+
- **标签可读**:每个节点和关键连线都应有标签
|
|
35
|
+
- **复杂度控制**:单张图不超过 20-30 个节点
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 平行时间线 / Parallel Timeline
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
|
|
5
|
+
**多条并行的时间线对照展示**不同领域、地区或主题的同步演变。适合展示跨领域的历史对比、多国并行发展、多线程叙事。
|
|
6
|
+
|
|
7
|
+
## 信息结构特征
|
|
8
|
+
|
|
9
|
+
当源文本包含以下特征时,适合使用平行时间线:
|
|
10
|
+
|
|
11
|
+
- 同一时期内多个领域/国家/主题的并行发展
|
|
12
|
+
- "与此同时,在另一个领域..."
|
|
13
|
+
- 不同线索之间存在时间上的呼应或因果关系
|
|
14
|
+
- 需要对比不同维度的演变节奏
|
|
15
|
+
- 多线程的历史叙事
|
|
16
|
+
|
|
17
|
+
## 核心视觉元素
|
|
18
|
+
|
|
19
|
+
| 元素 | 用途 | 常见表现 |
|
|
20
|
+
|------|------|----------|
|
|
21
|
+
| 多条时间轴 | 各自代表一个领域/线索 | 平行的水平线 |
|
|
22
|
+
| 时间刻度 | 统一的时间参照 | 顶部或底部的共享刻度 |
|
|
23
|
+
| 事件标记 | 各线索上的具体事件 | 各轴上的节点和标签 |
|
|
24
|
+
| 跨线关联 | 不同线索间的因果/影响 | 连接两条轴的虚线或箭头 |
|
|
25
|
+
| 线索标签 | 标识每条时间线 | 左侧或右侧的分类标签 |
|
|
26
|
+
|
|
27
|
+
## 布局原则
|
|
28
|
+
|
|
29
|
+
- **垂直排列**:多条时间线从上到下平行排列
|
|
30
|
+
- **时间对齐**:所有线索共享同一时间刻度
|
|
31
|
+
- **颜色区分**:每条线索用不同颜色
|
|
32
|
+
- **关联清晰**:跨线索的关联用连线明确标出
|
|
33
|
+
- **间距充足**:各线索之间留够空间放置跨线关联标记
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 象限图 / Quadrant Chart
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
|
|
5
|
+
在 **2×2 矩阵**中定位事物,展示两个维度的交叉分类。适合策略定位、优先级矩阵、风险评估、分类决策。
|
|
6
|
+
|
|
7
|
+
## 信息结构特征
|
|
8
|
+
|
|
9
|
+
当源文本包含以下特征时,适合使用象限图:
|
|
10
|
+
|
|
11
|
+
- 两个维度的交叉分类(如"重要性 × 紧急性")
|
|
12
|
+
- "高 X 低 Y"、"既 A 又 B"等二维定位描述
|
|
13
|
+
- 策略分析中的四类划分
|
|
14
|
+
- 需要为不同位置推荐不同策略
|
|
15
|
+
- BCG 矩阵、艾森豪威尔矩阵等经典模型
|
|
16
|
+
|
|
17
|
+
## 核心视觉元素
|
|
18
|
+
|
|
19
|
+
| 元素 | 用途 | 常见表现 |
|
|
20
|
+
|------|------|----------|
|
|
21
|
+
| 两条轴 | 定义分析维度 | 十字交叉的坐标轴 |
|
|
22
|
+
| 四个象限 | 四种分类区域 | 用不同背景色标识 |
|
|
23
|
+
| 象限标签 | 每个象限的含义/策略 | 象限内的标题文字 |
|
|
24
|
+
| 定位标记 | 具体事物在矩阵中的位置 | 圆点或图标 |
|
|
25
|
+
| 轴端标签 | 维度的两极 | 轴两端的文字(如"高"/"低") |
|
|
26
|
+
|
|
27
|
+
## 布局原则
|
|
28
|
+
|
|
29
|
+
- **正方形比例**:四个象限面积相等
|
|
30
|
+
- **颜色直觉**:用冷暖色调暗示优先级(如红=高优先,绿=低优先)
|
|
31
|
+
- **标记清晰**:每个定位点都有标签
|
|
32
|
+
- **象限命名**:每个象限有简短有力的策略名称
|
|
33
|
+
- **简洁为主**:不超过 15-20 个定位标记
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 桑基流量图 / Sankey Flow Diagram
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
|
|
5
|
+
用**宽度与流量成比例的带状连线**展示资源、价值、资本或信息从来源到目的地的流动与分配。适合将价值链、资源分配、资本流向等量化流动关系可视化。
|
|
6
|
+
|
|
7
|
+
## 信息结构特征
|
|
8
|
+
|
|
9
|
+
当源文本包含以下特征时,适合使用桑基流量图:
|
|
10
|
+
|
|
11
|
+
- 从一组来源流向一组目标的数据(如资金从投资者流向不同行业)
|
|
12
|
+
- 价值链分析(原料→加工→分销→消费)
|
|
13
|
+
- "其中 X% 流向了..."、"A 贡献了 Y 给 B"
|
|
14
|
+
- 资源的分配和再分配
|
|
15
|
+
- 多级分流或汇聚
|
|
16
|
+
|
|
17
|
+
## 核心视觉元素
|
|
18
|
+
|
|
19
|
+
| 元素 | 用途 | 常见表现 |
|
|
20
|
+
|------|------|----------|
|
|
21
|
+
| 节点列 | 来源、中间站、目标 | 垂直排列的矩形 |
|
|
22
|
+
| 流量带 | 连接节点的比例宽度连线 | 弯曲的带状色块,宽度=流量 |
|
|
23
|
+
| 节点标签 | 标识每个来源/目标 | 节点旁边的文字 |
|
|
24
|
+
| 数值标注 | 标注具体流量数值 | 流量带上或旁边的数字 |
|
|
25
|
+
| 颜色编码 | 区分不同来源或类别 | 每个来源用不同颜色 |
|
|
26
|
+
|
|
27
|
+
## 布局原则
|
|
28
|
+
|
|
29
|
+
- **从左到右**:来源在左,目标在右,可有多个中间层
|
|
30
|
+
- **比例准确**:带的宽度严格与流量成正比
|
|
31
|
+
- **总量守恒**:左侧总宽度 = 右侧总宽度(除非有损耗)
|
|
32
|
+
- **颜色连贯**:同一来源的流量在整个路径中保持同色
|
|
33
|
+
- **避免交叉**:通过合理排序减少带的交叉
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 利益相关方矩阵 / Stakeholder Matrix
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
|
|
5
|
+
在**二维坐标轴上定位各利益相关方**,展示其影响力、利益、立场等维度的相对位置。适合分析多方博弈、权力格局、政策利益关系。
|
|
6
|
+
|
|
7
|
+
## 信息结构特征
|
|
8
|
+
|
|
9
|
+
当源文本包含以下特征时,适合使用利益相关方矩阵:
|
|
10
|
+
|
|
11
|
+
- 涉及多个参与方/利益相关方
|
|
12
|
+
- 描述了各方的影响力大小或利益程度
|
|
13
|
+
- "A 是关键决策者"、"B 的利益受到直接影响"
|
|
14
|
+
- 权力-利益、影响-意愿等二维分析
|
|
15
|
+
- 需要区分"应该重点关注谁"
|
|
16
|
+
|
|
17
|
+
## 核心视觉元素
|
|
18
|
+
|
|
19
|
+
| 元素 | 用途 | 常见表现 |
|
|
20
|
+
|------|------|----------|
|
|
21
|
+
| 二维坐标轴 | 定义分析维度 | X 轴(如利益程度)、Y 轴(如影响力) |
|
|
22
|
+
| 象限标签 | 标识四个区域的策略含义 | 如"重点管理"、"保持满意"等 |
|
|
23
|
+
| 利益相关方标记 | 定位各参与方 | 圆形标记,大小可反映第三个维度 |
|
|
24
|
+
| 标签 | 标识每个参与方 | 标记旁边的文字 |
|
|
25
|
+
|
|
26
|
+
## 布局原则
|
|
27
|
+
|
|
28
|
+
- **坐标轴语义明确**:两个维度的含义必须清晰标注
|
|
29
|
+
- **象限含义**:四个象限各有明确的管理策略含义
|
|
30
|
+
- **避免重叠**:当标记密集时适当偏移,保持可读性
|
|
31
|
+
- **颜色区分**:可用颜色区分不同类型的利益相关方(如政府、企业、社会组织)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 图尔敏论证图 / Toulmin Diagram
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
|
|
5
|
+
按**图尔敏论证模型**拆解一个论证的完整结构,展示主张(Claim)、数据(Data)、保证(Warrant)、支持(Backing)、限定(Qualifier)和反驳(Rebuttal)之间的逻辑关系。
|
|
6
|
+
|
|
7
|
+
## 信息结构特征
|
|
8
|
+
|
|
9
|
+
当源文本包含以下特征时,适合使用图尔敏论证图:
|
|
10
|
+
|
|
11
|
+
- 明确的论点/主张及其支撑证据
|
|
12
|
+
- "因为 A,所以 B"(数据→主张)
|
|
13
|
+
- 隐含的推理规则("之所以 A 能推出 B,是因为...")
|
|
14
|
+
- 对论点的限定条件("除非..."、"在...条件下")
|
|
15
|
+
- 反驳或例外情况
|
|
16
|
+
|
|
17
|
+
## 核心视觉元素
|
|
18
|
+
|
|
19
|
+
| 元素 | 用途 | 常见表现 |
|
|
20
|
+
|------|------|----------|
|
|
21
|
+
| Claim(主张) | 论证的核心结论 | 右侧突出显示的矩形 |
|
|
22
|
+
| Data(数据) | 支持主张的事实/证据 | 左侧矩形 |
|
|
23
|
+
| Warrant(保证) | 连接数据与主张的推理规则 | 数据→主张连线下方 |
|
|
24
|
+
| Backing(支持) | 支撑保证的进一步依据 | 保证下方 |
|
|
25
|
+
| Qualifier(限定) | 限定主张成立的程度 | 主张上方或旁边的修饰 |
|
|
26
|
+
| Rebuttal(反驳) | 主张不成立的条件 | 主张下方,用不同颜色标识 |
|
|
27
|
+
| 连线 | 逻辑推导关系 | 带箭头的线 |
|
|
28
|
+
|
|
29
|
+
## 布局原则
|
|
30
|
+
|
|
31
|
+
- **从左到右**:Data → Warrant → Claim 的逻辑流向
|
|
32
|
+
- **保证在下方**:Warrant 和 Backing 位于主推理线的下方
|
|
33
|
+
- **反驳突出**:Rebuttal 用不同颜色(如红色)标识
|
|
34
|
+
- **标签清晰**:每个元素的角色标签(D/W/C/B/Q/R)明确标注
|
|
35
|
+
- **单一论证**:一张图只展示一个完整论证,复杂论证拆分为多张
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# bento-grid
|
|
2
|
+
|
|
3
|
+
Modular grid layout with varied cell sizes, like a bento box.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
- Grid of rectangular cells
|
|
8
|
+
- Mixed cell sizes (1x1, 2x1, 1x2, 2x2)
|
|
9
|
+
- No strict symmetry required
|
|
10
|
+
- Hero cell for main point
|
|
11
|
+
- Supporting cells around it
|
|
12
|
+
|
|
13
|
+
## Best For
|
|
14
|
+
|
|
15
|
+
- Multiple topic overview
|
|
16
|
+
- Feature highlights
|
|
17
|
+
- Dashboard summaries
|
|
18
|
+
- Portfolio displays
|
|
19
|
+
- Mixed content types
|
|
20
|
+
|
|
21
|
+
## Visual Elements
|
|
22
|
+
|
|
23
|
+
- Clear cell boundaries
|
|
24
|
+
- Varied cell backgrounds
|
|
25
|
+
- Icons or illustrations per cell
|
|
26
|
+
- Consistent padding/margins
|
|
27
|
+
- Visual hierarchy through size
|
|
28
|
+
|
|
29
|
+
## Text Placement
|
|
30
|
+
|
|
31
|
+
- Main title at top
|
|
32
|
+
- Cell titles within each cell
|
|
33
|
+
- Brief content per cell
|
|
34
|
+
- Minimal text, maximum visual
|
|
35
|
+
- CTA or summary in prominent cell
|
|
36
|
+
|
|
37
|
+
## Recommended Pairings
|
|
38
|
+
|
|
39
|
+
- `craft-handmade`: Friendly overviews (default)
|
|
40
|
+
- `corporate-memphis`: Business summaries
|
|
41
|
+
- `pixel-art`: Retro feature grids
|