返回 Skill 列表
extension
分类: 内容与媒体无需 API Key

markmind-mapper

从任何内容(书籍、文章、主题、笔记、对话)生成Obsidian MarkMind富格式思维导图。每当用户要求创建思维导图、心智图、概念图或视觉摘要时,使用此技能。当用户说'markmind'、'mindmap'、'mind map'、'mappa',或者要求可视化/映射/概要化任何内容时也触发该技能。该技能处理头脑风暴、内容提取、层级设计,并输出一个.md文件,准备好粘贴到带有MarkMind插件的Obsidian库中。

person作者: jakexiaohubgithub

MarkMind Mapper

Generate mind maps in Obsidian MarkMind Rich JSON format. The output is a .md file the user can drop directly into their Obsidian vault and open with the MarkMind plugin.

Workflow

Phase 1: Brainstorming (internal, not shown to user)

Before generating any JSON, analyze the input content and produce an internal outline:

  1. Identify the central theme in 2-4 words
  2. Extract 5-7 main branches (L2). Each branch is a core concept, not a chapter title. Think: "What are the 5-7 ideas that, together, reconstruct the whole?"
  3. For each branch, extract 2-4 sub-concepts (L3). Each is a keyword or micro-phrase (2-4 words max)
  4. For each sub-concept, extract 1-3 leaf details (L4). Single keyword or keyword pair
  5. Assign emoji to every L2 and L3 node using the semantic code below
  6. Assign colors to each L2 branch from the palette

Do NOT skip this phase. The quality of the map depends entirely on the brainstorming outline.

Phase 2: Generation

Run the Python script scripts/generate_markmind.py passing the brainstorming outline as a JSON structure. The script handles coordinate calculation, node assembly, and file output.

Phase 3: Delivery

Present the generated .md file to the user. Mention it's ready to drop into Obsidian.

Content Principles

Follow the E-Myth model: complete coverage, balanced branches, equal weight across all L2 rami. No Pareto filtering. The goal is a comprehensive visual reference, not a highlight reel.

  • Every node = keyword or micro-phrase, never a full sentence
  • Prefer nouns and action verbs; strip articles and prepositions
  • Causal/sequential relations: use in node text
  • Opposites/tensions: use or or
  • Never use the em dash character

Emoji Semantic Code

| Function | Emoji | | ---------------------------- | ----- | | Central concept / nucleus | 🎯 | | Definition / "what is it" | 📌 | | Process / sequence | ⚙️ | | Risk / warning | ⚠️ | | Advantage / strength | ✅ | | Disadvantage / limit | ❌ | | Concrete example | 💡 | | Cross-branch link | 🔗 | | Open question / explore | ❓ | | Numeric data / metric | 📊 | | Person / role | 👤 | | Time / phase | ⏳ |

Add domain-specific emoji where useful (🧠 psychology, 💻 tech, 💰 finance, 📖 book, etc.). Emoji always goes before the keyword.

Color Palette (L2 branches)

| Branch # | Hex | Name | | -------- | --------- | ---------- | | 1 | #ff6b6b | Coral | | 2 | #4ecdc4 | Teal | | 3 | #95e77e | Lime | | 4 | #a8e6cf | Mint | | 5 | #ffd3b6 | Peach | | 6 | #d4a5f5 | Lavender | | 7 | #f7dc6f | Yellow | | 8 | #85c1e9 | Sky |

All descendants inherit the stroke color of their L2 ancestor.

How to Use the Script

Read references/markmind-rich-spec.md for the full JSON schema if needed.

The script accepts a JSON outline on stdin and writes the .md file:

cat <<'EOF' | python scripts/generate_markmind.py --output /path/to/output.md --title "Map Title"
{
  "root": "🎯 Central Theme",
  "branches": [
    {
      "text": "🔴 Branch One",
      "color": "#ff6b6b",
      "children": [
        {
          "text": "⚙️ Sub-concept A",
          "children": [
            { "text": "Detail 1" },
            { "text": "Detail 2" }
          ]
        },
        {
          "text": "📌 Sub-concept B",
          "children": []
        }
      ]
    }
  ]
}
EOF

The script automatically:

  • Generates unique node IDs
  • Splits branches left/right of root
  • Calculates x/y coordinates with proper spacing
  • Creates 8 empty free nodes
  • Wraps everything in valid MarkMind Rich format

Checklist Before Delivery

  • All pid references point to existing id values
  • Root has isRoot: true, main: true, layout object
  • No pid on root node
  • Each L2 branch has a unique stroke color
  • All descendants inherit their L2 ancestor's stroke
  • Coordinates don't overlap (V_SPACING respected)
  • JSON is valid (no trailing commas, balanced brackets)
  • 8 empty free nodes present
  • Emoji on all L2 and L3 nodes
  • Max 4 levels of depth