# kuankuan2007/k-markdown-parser architecture

> Architecture diagram of the GitHub repository kuankuan2007/k-markdown-parser, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kuankuan2007/k-markdown-parser
- Repository: https://github.com/kuankuan2007/k-markdown-parser

## Overview

k-markdown-parser is a dependency-free Markdown-to-AST library. A caller supplies Markdown to KMarkdownParser.parse; the parser normalizes escapes, applies configurable syntax groups, recursively parses eligible node content, and returns a root node. Its documented capabilities include block and inline Markdown constructs, tables and lists, XML-like tags, customizable syntax groups and node classes, and text conversion helpers. The graph groups related syntax modules by parsing stage; their exact internal wiring is not fully sampled, so only the parser-to-syntax dispatch supported by the parser and default configuration is shown.

Main entry points: [`src/parser.ts`](https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/parser.ts) (Markdown Parser), [`src/options.ts`](https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/options.ts) (Parser Options), [`src/syntaxes`](https://github.com/kuankuan2007/k-markdown-parser/tree/main/src/syntaxes) (Inline Syntax), [`src/textConverter.ts`](https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/textConverter.ts) (Text Converter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Parser API"]
  node_parser["Markdown Parser<br/>[parser.ts]"]
  node_config["Parser Options<br/>[options.ts]"]
end

subgraph group_prep["Text Preparation"]
  node_converter["Text Converter<br/>[textConverter.ts]"]
end

subgraph group_stages["Syntax Stages"]
  node_block["Block Syntax"]
  node_structure["Structural Syntax"]
  node_inline["Inline Syntax"]
  node_pairutil["Pair Matcher<br/>[matchPairs.ts]"]
end

subgraph group_ast["AST Construction"]
  node_nodecore["Core Node Types<br/>[core.ts]"]
  node_astresult["Root AST<br/>[core.ts]"]
end

node_caller(("Library Caller"))

node_caller -->|"calls parse"| node_parser
node_parser -->|"builds options"| node_config
node_parser -->|"normalizes text"| node_converter
node_parser -->|"builds syntax groups"| node_config
node_parser -->|"dispatches rules"| node_block
node_parser -->|"dispatches rules"| node_structure
node_parser -->|"dispatches rules"| node_inline
node_parser -->|"instantiates nodes"| node_nodecore
node_parser -->|"returns AST"| node_astresult
node_config -->|"configures rules"| node_block
node_config -->|"configures rules"| node_structure
node_config -->|"configures rules"| node_inline
node_inline -->|"matches delimiters"| node_pairutil
node_caller -->|"uses conversions"| node_converter

click node_parser "https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/parser.ts"
click node_config "https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/options.ts"
click node_converter "https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/textConverter.ts"
click node_block "https://github.com/kuankuan2007/k-markdown-parser/tree/main/src/syntaxes"
click node_structure "https://github.com/kuankuan2007/k-markdown-parser/tree/main/src/syntaxes"
click node_inline "https://github.com/kuankuan2007/k-markdown-parser/tree/main/src/syntaxes"
click node_nodecore "https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/nodes/core.ts"
click node_astresult "https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/nodes/core.ts"
click node_pairutil "https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/util/matchPairs.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_parser,node_config toneBlue
class node_converter toneAmber
class node_block,node_structure,node_inline,node_pairutil toneMint
class node_nodecore,node_astresult toneRose
class node_caller toneIndigo
```

## Components

### Parser API

- [Markdown Parser](https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/parser.ts): `src/parser.ts`
- [Parser Options](https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/options.ts): `src/options.ts`

### Text Preparation

- [Text Converter](https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/textConverter.ts): `src/textConverter.ts`

### Syntax Stages

- [Block Syntax](https://github.com/kuankuan2007/k-markdown-parser/tree/main/src/syntaxes): `src/syntaxes`
- [Structural Syntax](https://github.com/kuankuan2007/k-markdown-parser/tree/main/src/syntaxes): `src/syntaxes`
- [Inline Syntax](https://github.com/kuankuan2007/k-markdown-parser/tree/main/src/syntaxes): `src/syntaxes`
- [Pair Matcher](https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/util/matchPairs.ts): `src/util/matchPairs.ts`

### AST Construction

- [Core Node Types](https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/nodes/core.ts): `src/nodes/core.ts`
- [Root AST](https://github.com/kuankuan2007/k-markdown-parser/blob/main/src/nodes/core.ts): `src/nodes/core.ts`

### Other components

- **Library Caller**

## Connections

- Library Caller → Markdown Parser: calls parse
- Markdown Parser → Parser Options: builds options
- Markdown Parser → Text Converter: normalizes text
- Markdown Parser → Parser Options: builds syntax groups
- Markdown Parser → Block Syntax: dispatches rules
- Markdown Parser → Structural Syntax: dispatches rules
- Markdown Parser → Inline Syntax: dispatches rules
- Markdown Parser → Core Node Types: instantiates nodes
- Markdown Parser → Root AST: returns AST
- Parser Options → Block Syntax: configures rules
- Parser Options → Structural Syntax: configures rules
- Parser Options → Inline Syntax: configures rules
- Inline Syntax → Pair Matcher: matches delimiters
- Library Caller → Text Converter: uses conversions
