[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81407":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":13,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":15,"compositeScore":16,"rankGlobal":8,"rankLanguage":8,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":20,"createdAt":8,"pushedAt":8,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":14,"starSnapshotCount":14,"syncStatus":11,"lastSyncTime":24,"discoverSource":25},81407,"merman","kitlangton\u002Fmerman","kitlangton",null,"TypeScript",38,2,35,1,0,3,1.43,"MIT License",false,"main",[],"2026-06-12 02:04:14","# merman\n\n```txt\n       .-\"\"\"\"\"-.          ╭─────╮                 ╭─────╮           ╭──────╮               ╭─────╮\n    .-'  _   _  '-.       │ You │                 │ CLI │           │ Core │               │ TTY │\n  .'    (o) (o)    '.     ╰──┬──╯                 ╰──┬──╯           ╰───┬──╯               ╰──┬──╯\n \u002F        .-.        \\       │                       │                  │                     │\n;    .--.\u002F___\\.--.    ;      │                       │                  │                     │\n|   \u002F   \u002F_____\\   \\   |      │                 Mermaid in, terminal art out                   │\n|   \\__\u002F  '-'  \\__\u002F   |      │                       │                  │                     │\n;        \u002F| |\\        ;      │ merman diagram.mmd    │                  │                     │\n \\      \u002F_|_|_\\      \u002F       ├───────────────────────▶                  │                     │\n  '.      | |      .'        │                       │                  │                     │\n    '-.   | |   .-'          │                       ├──────────────╮   │                     │\n       '--|_|--'             │                       │ detect kind  │   │                     │\n         \u002F| |\\               │                       ◀──────────────╯   │                     │\n        \u002F_|_|_\\              │                       │                  │                     │\n      .'  | |  '.            │                       │ parse            │                     │\n     \u002F    | |    \\           │                       ├──────────────────▶                     │\n    ;  .--| |--.  ;          │                       │                  │                     │\n    | \u002F   | |   \\ |          │                       │                  ├─────────────────╮   │\n    | \\__.| |.__\u002F |          │                       │                  │ layout + route  │   │\n    ;     | |     ;          │                       │                  ◀─────────────────╯   │\n     \\   \u002F| |\\   \u002F           │                       │                  │                     │\n      '-' | | '-'            │                       │ grid             │                     │\n          | |                │                       ◀──────────────────┤                     │\n       ___| |___             │                       │                  │                     │\n   _.-'   | |   '-._         │                       │ print            │                     │\n.-'     __| |__     '-.      │                       ├────────────────────────────────────────▶\n       \u002F  | |  \\             │                       │                  │                     │\n      ;   | |   ;            │ diagrams!             │                  │                     │\n      |  \u002F   \\  |            ◀────────────────────────────────────────────────────────────────┤\n       '._   _.'             │                       │                  │                     │\n          \"\"\"\n```\n\nMermaid diagrams for the terminal — flowcharts, sequence diagrams, and state\ndiagrams as plain text, ANSI-colored output, or a live\n[OpenTUI](https:\u002F\u002Fgithub.com\u002Fanomalyco\u002Fopentui) renderable.\n\n> Status: experimental. APIs may shift before `1.0`.\n\n- [CLI](#cli)\n- [Examples](#examples)\n- [Library](#library)\n\n## CLI\n\nInstall `merman` globally when you just want diagrams on your `$PATH`:\n\n```sh\nbun add -g @kitlangton\u002Fmerman\n# or\nnpm install -g @kitlangton\u002Fmerman\n```\n\nRender Mermaid from stdin, a positional argument, or a file:\n\n```sh\necho \"flowchart LR\n  A[Mermaid] --> B[Terminal]\n  B --> C[OpenTUI]\" | merman --no-color\n```\n\n```txt\n╭─────────╮          ╭──────────╮          ╭─────────╮\n│ Mermaid ├─────────▶│ Terminal ├─────────▶│ OpenTUI │\n╰─────────╯          ╰──────────╯          ╰─────────╯\n```\n\nMore ways to run it:\n\n```sh\n# Read from a file\nmerman --file diagram.mmd\n\n# Plain text (no ANSI escapes) for piping into docs\nmerman --file diagram.mmd --no-color > rendered.txt\n```\n\nThe CLI is shipped as a Bun executable, so Bun must be available on your\n`$PATH`.\n\n## Examples\n\nFlowchart:\n\n```txt\n╭──────╮          ╭───────╮          ╭────────╮          ╭──────────╮\n│ Idea ├─────────▶│ Parse ├─────────▶│ Render ├─────────▶│ Terminal │\n╰──────╯          ╰───────╯          ╰────────╯          ╰──────────╯\n```\n\nSequence diagram:\n\n```txt\n╭──────╮         ╭────────╮       ╭──────────╮\n│ User │         │ merman │       │ Terminal │\n╰───┬──╯         ╰────┬───╯       ╰─────┬────╯\n    │                 │                 │\n    │ diagram.mmd     │                 │\n    ├─────────────────▶                 │\n    │                 │                 │\n    │                 │ ANSI art        │\n    │                 ├─────────────────▶\n    │                 │                 │\n    │ ship it         │                 │\n    ◀───────────────────────────────────┤\n    │                 │                 │\n```\n\nState diagram:\n\n```txt\n                           ╔═══════════╗           ╔═══════════════════╗\n                       ╔═══╣ edit loop ║       ╔═══╣ terminal snapshot ║\n                       ║   ╚═══════════╝       ║   ╚═══════════════════╝\n                       ║                       ║\n                       ║                       ║\n              ╭───────╮   render    ╭─────────╮    ship     ╭───────────╮\n●────────────▶│ Draft ├────────────▶│ Preview ├────────────▶│ Published ├────────────▶◎\n              ╰──┬────╯             ╰──┬──────╯             ╰───┬───────╯\n                 │  ▲ type             │    ▲ tweak             │    ▲ share\n                 ╰──╯                  ╰────╯                   ╰────╯\n```\n\n## Library\n\nInstall the package with its OpenTUI peer dependency:\n\n```sh\nbun add @kitlangton\u002Fmerman @opentui\u002Fcore\n# or\nnpm install @kitlangton\u002Fmerman @opentui\u002Fcore\n```\n\nESM only. The library requires Node `>=20` or any current Bun.\n\n`render` takes any Mermaid string — the leading `flowchart`\u002F`sequenceDiagram`\u002F\n`stateDiagram-v2` line picks the right renderer for you.\n\n```ts\nimport { render } from \"@kitlangton\u002Fmerman\"\n\n\u002F\u002F ANSI-colored string, ready for stdout.\nconsole.log(\n  render(`flowchart LR\n  Cart([Cart]) --> Address[Address]\n  Address --> Payment[Payment]\n  Payment -->|approved| Orders[(Orders DB)]\n  Payment -->|declined| Retry([Retry])\n  Retry --> Payment`),\n)\n\nconsole.log(\n  render(`sequenceDiagram\n  Alice->>Bob: Hello\n  Bob-->>Alice: Hi`),\n)\n\nconsole.log(\n  render(`stateDiagram-v2\n  [*] --> Editing\n  Editing --> Submitted: submit`),\n)\n\n\u002F\u002F Plain text (no escapes) — handy for snapshots and pipes.\nrender(content, { color: false })\n\n\u002F\u002F Override the palette.\nrender(content, { theme: { node: \"#86E1C8\", edge: \"#5D766B\" } })\n```\n\nTwo more top-level helpers:\n\n```ts\nimport { parse, isMermaid } from \"@kitlangton\u002Fmerman\"\n\nisMermaid(content) \u002F\u002F boolean — looks like any supported diagram?\n\nconst diagram = parse(content) \u002F\u002F discriminated union\nswitch (diagram.kind) {\n  case \"flowchart\":\n    diagram.nodes.forEach(\u002F* ... *\u002F)\n    break\n  case \"sequence\":\n    diagram.steps.forEach(\u002F* ... *\u002F)\n    break\n  case \"state\":\n    diagram.states.forEach(\u002F* ... *\u002F)\n    break\n}\n```\n\n### Inside an OpenTUI app\n\nLive, themeable, animatable diagrams are kind-specific (each has its own\ntheme\u002Fanimation surface). Pick the matching namespace:\n\n```ts\nimport { createCliRenderer } from \"@opentui\u002Fcore\"\nimport { Flowchart } from \"@kitlangton\u002Fmerman\"\n\nconst renderer = await createCliRenderer({ targetFps: 30 })\n\nconst diagram = new Flowchart.Renderable(renderer, {\n  id: \"diagram\",\n  content: `flowchart TD\n    A[Start] --> B{Decide}\n    B -->|yes| C[Do it]\n    B -->|no| D[Skip]`,\n})\n\nrenderer.root.add(diagram)\n```\n\n`Sequence.Renderable` and `State.Renderable` follow the same pattern. Each\nexposes theme setters, active-node\u002Fedge highlighting, and a `pulseFrame` for\nanimated edge pulses. See the demos in [`examples\u002F`](.\u002Fexamples).\n\n## React\n\nComing soon as a separate package: `@kitlangton\u002Fmerman-react`.\n\n## Examples\n\nInteractive demos (themes, active-node animation, scrolling, drag-to-pan) live\nin [`examples\u002F`](.\u002Fexamples):\n\n```sh\nbun run examples              # master demo: pick a sub-demo, Esc to go back\nbun run examples:flowchart    # individual demos\nbun run examples:state\nbun run examples:sequence\n```\n\n## Development\n\n```sh\nbun install\nbun run test          # vitest-style suite via bun:test\nbun run typecheck     # tsc on src + examples\nbun run build         # tsdown -> dist\u002F\nbun run validate      # build + publint + attw (pre-publish gate)\n```\n\nSee [`AGENTS.md`](.\u002FAGENTS.md) for the codebase map and conventions.\n\n## License\n\nMIT © [Kit Langton](https:\u002F\u002Fgithub.com\u002Fkitlangton)\n","merman 是一个用于在终端中生成 Mermaid 图表的工具，支持流程图、时序图和状态图等。该项目采用 TypeScript 编写，通过 CLI 接口将 Mermaid 语法转换为美观的终端艺术输出。其核心功能包括自动检测图表类型、解析输入文件、布局与路由计算以及最终的网格绘制。merman 适用于需要快速查看或演示 Mermaid 图表但又希望保持在命令行环境下的开发者和技术人员。","2026-06-11 04:04:56","CREATED_QUERY"]