pd-markdown 1.0.0 → 1.0.1

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 (170) hide show
  1. package/README.md +293 -0
  2. package/package.json +68 -1
  3. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/index.d.ts +0 -4
  4. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/index.d.ts.map +0 -1
  5. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/index.js +0 -5
  6. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/index.js.map +0 -1
  7. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/index.d.ts +0 -4
  8. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/index.d.ts.map +0 -1
  9. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/index.js +0 -4
  10. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/index.js.map +0 -1
  11. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/heading.d.ts +0 -6
  12. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/heading.d.ts.map +0 -1
  13. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/heading.js +0 -36
  14. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/heading.js.map +0 -1
  15. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/list.d.ts +0 -14
  16. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/list.d.ts.map +0 -1
  17. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/list.js +0 -18
  18. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/list.js.map +0 -1
  19. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/table.d.ts +0 -27
  20. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/table.d.ts.map +0 -1
  21. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/table.js +0 -37
  22. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/table.js.map +0 -1
  23. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/processor.d.ts +0 -22
  24. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/processor.d.ts.map +0 -1
  25. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/processor.js +0 -95
  26. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/processor.js.map +0 -1
  27. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/types/index.d.ts +0 -55
  28. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/types/index.d.ts.map +0 -1
  29. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/types/index.js +0 -2
  30. package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/types/index.js.map +0 -1
  31. package/packages/parser/__tests__/frontmatter.test.ts +0 -69
  32. package/packages/parser/__tests__/gfm.test.ts +0 -83
  33. package/packages/parser/__tests__/processor.test.ts +0 -136
  34. package/packages/parser/__tests__/transform/heading.test.ts +0 -56
  35. package/packages/parser/__tests__/transform/list.test.ts +0 -67
  36. package/packages/parser/__tests__/transform/table.test.ts +0 -85
  37. package/packages/parser/node_modules/.bin/yaml +0 -17
  38. package/packages/parser/package.json +0 -38
  39. package/packages/parser/rollup.config.ts +0 -38
  40. package/packages/parser/src/index.ts +0 -15
  41. package/packages/parser/src/plugins/index.ts +0 -3
  42. package/packages/parser/src/plugins/transform/heading.ts +0 -40
  43. package/packages/parser/src/plugins/transform/list.ts +0 -29
  44. package/packages/parser/src/plugins/transform/table.ts +0 -62
  45. package/packages/parser/src/processor.ts +0 -119
  46. package/packages/parser/src/types/index.ts +0 -60
  47. package/packages/parser/tsconfig.json +0 -9
  48. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/query.d.ts +0 -36
  49. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/query.d.ts.map +0 -1
  50. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/query.js +0 -99
  51. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/query.js.map +0 -1
  52. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/traverse.d.ts +0 -22
  53. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/traverse.d.ts.map +0 -1
  54. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/traverse.js +0 -46
  55. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/traverse.js.map +0 -1
  56. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/index.d.ts +0 -7
  57. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/index.d.ts.map +0 -1
  58. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/index.js +0 -8
  59. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/index.js.map +0 -1
  60. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/sanitize.d.ts +0 -22
  61. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/sanitize.d.ts.map +0 -1
  62. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/sanitize.js +0 -140
  63. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/sanitize.js.map +0 -1
  64. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/slugify.d.ts +0 -16
  65. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/slugify.d.ts.map +0 -1
  66. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/slugify.js +0 -39
  67. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/slugify.js.map +0 -1
  68. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/types/index.d.ts +0 -49
  69. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/types/index.d.ts.map +0 -1
  70. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/types/index.js +0 -19
  71. package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/types/index.js.map +0 -1
  72. package/packages/utils/__tests__/query.test.ts +0 -155
  73. package/packages/utils/__tests__/sanitize.test.ts +0 -96
  74. package/packages/utils/__tests__/slugify.test.ts +0 -71
  75. package/packages/utils/__tests__/traverse.test.ts +0 -131
  76. package/packages/utils/package.json +0 -27
  77. package/packages/utils/rollup.config.ts +0 -26
  78. package/packages/utils/src/ast/query.ts +0 -127
  79. package/packages/utils/src/ast/traverse.ts +0 -73
  80. package/packages/utils/src/index.ts +0 -20
  81. package/packages/utils/src/string/sanitize.ts +0 -155
  82. package/packages/utils/src/string/slugify.ts +0 -43
  83. package/packages/utils/src/types/index.ts +0 -72
  84. package/packages/utils/tsconfig.json +0 -8
  85. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/MarkdownRenderer.d.ts +0 -27
  86. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/MarkdownRenderer.d.ts.map +0 -1
  87. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/MarkdownRenderer.js +0 -39
  88. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/MarkdownRenderer.js.map +0 -1
  89. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/NodeRenderer.d.ts +0 -10
  90. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/NodeRenderer.d.ts.map +0 -1
  91. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/NodeRenderer.js +0 -130
  92. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/NodeRenderer.js.map +0 -1
  93. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/context.d.ts +0 -17
  94. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/context.d.ts.map +0 -1
  95. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/context.js +0 -14
  96. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/context.js.map +0 -1
  97. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Blockquote.d.ts +0 -8
  98. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Blockquote.d.ts.map +0 -1
  99. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Blockquote.js +0 -5
  100. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Blockquote.js.map +0 -1
  101. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Code.d.ts +0 -13
  102. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Code.d.ts.map +0 -1
  103. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Code.js +0 -9
  104. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Code.js.map +0 -1
  105. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Heading.d.ts +0 -8
  106. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Heading.d.ts.map +0 -1
  107. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Heading.js +0 -7
  108. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Heading.js.map +0 -1
  109. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Image.d.ts +0 -7
  110. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Image.d.ts.map +0 -1
  111. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Image.js +0 -5
  112. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Image.js.map +0 -1
  113. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Link.d.ts +0 -8
  114. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Link.d.ts.map +0 -1
  115. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Link.js +0 -7
  116. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Link.js.map +0 -1
  117. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/List.d.ts +0 -13
  118. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/List.d.ts.map +0 -1
  119. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/List.js +0 -14
  120. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/List.js.map +0 -1
  121. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Paragraph.d.ts +0 -8
  122. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Paragraph.d.ts.map +0 -1
  123. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Paragraph.js +0 -5
  124. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Paragraph.js.map +0 -1
  125. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Table.d.ts +0 -19
  126. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Table.d.ts.map +0 -1
  127. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Table.js +0 -18
  128. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Table.js.map +0 -1
  129. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/index.d.ts +0 -34
  130. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/index.d.ts.map +0 -1
  131. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/index.js +0 -28
  132. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/index.js.map +0 -1
  133. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/hooks/useMarkdown.d.ts +0 -11
  134. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/hooks/useMarkdown.d.ts.map +0 -1
  135. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/hooks/useMarkdown.js +0 -28
  136. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/hooks/useMarkdown.js.map +0 -1
  137. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/index.d.ts +0 -6
  138. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/index.d.ts.map +0 -1
  139. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/index.js +0 -9
  140. package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/index.js.map +0 -1
  141. package/packages/web/__tests__/MarkdownRenderer.test.tsx +0 -89
  142. package/packages/web/__tests__/NodeRenderer.test.tsx +0 -97
  143. package/packages/web/__tests__/components/Code.test.tsx +0 -71
  144. package/packages/web/__tests__/components/Heading.test.tsx +0 -65
  145. package/packages/web/__tests__/components/List.test.tsx +0 -100
  146. package/packages/web/__tests__/components/Table.test.tsx +0 -105
  147. package/packages/web/__tests__/useMarkdown.test.ts +0 -63
  148. package/packages/web/package.json +0 -40
  149. package/packages/web/rollup.config.ts +0 -36
  150. package/packages/web/src/components/MarkdownRenderer.tsx +0 -70
  151. package/packages/web/src/components/NodeRenderer.tsx +0 -205
  152. package/packages/web/src/components/context.ts +0 -24
  153. package/packages/web/src/components/defaults/Blockquote.tsx +0 -11
  154. package/packages/web/src/components/defaults/Code.tsx +0 -26
  155. package/packages/web/src/components/defaults/Heading.tsx +0 -14
  156. package/packages/web/src/components/defaults/Image.tsx +0 -10
  157. package/packages/web/src/components/defaults/Link.tsx +0 -18
  158. package/packages/web/src/components/defaults/List.tsx +0 -33
  159. package/packages/web/src/components/defaults/Paragraph.tsx +0 -11
  160. package/packages/web/src/components/defaults/Table.tsx +0 -50
  161. package/packages/web/src/components/defaults/index.tsx +0 -80
  162. package/packages/web/src/hooks/useMarkdown.ts +0 -32
  163. package/packages/web/src/index.ts +0 -37
  164. package/packages/web/tsconfig.json +0 -11
  165. package/packages/web/vitest.config.ts +0 -9
  166. package/pnpm-workspace.yaml +0 -2
  167. package/tsconfig.base.json +0 -26
  168. package/tsconfig.json +0 -8
  169. package/vitest.config.ts +0 -28
  170. package/vitest.setup.ts +0 -1
package/README.md ADDED
@@ -0,0 +1,293 @@
1
+ # pd-markdown
2
+
3
+ 一个现代化的 Markdown 解析和渲染工具库,基于 unified/remark 构建,支持 React。
4
+
5
+ ## 特性
6
+
7
+ - 🚀 **高性能解析** - 基于 unified/remark 的 Markdown 解析器
8
+ - 📝 **GFM 支持** - 完整支持 GitHub Flavored Markdown
9
+ - 📋 **Frontmatter** - 支持 YAML frontmatter 解析
10
+ - ⚛️ **React 组件** - 提供开箱即用的 React 渲染组件
11
+ - 🎨 **可定制** - 支持自定义组件和插件
12
+ - 🔗 **自动锚点** - 标题自动生成 slug 锚点
13
+ - 📦 **Tree-shakable** - 支持 ESM,优化打包体积
14
+
15
+ ## 安装
16
+
17
+ ```bash
18
+ # 使用 npm
19
+ npm install pd-markdown
20
+
21
+ # 使用 pnpm
22
+ pnpm add pd-markdown
23
+
24
+ # 使用 yarn
25
+ yarn add pd-markdown
26
+ ```
27
+
28
+ ## 模块结构
29
+
30
+ | 模块路径 | 描述 |
31
+ | --- | --- |
32
+ | `pd-markdown/parser` | Markdown 解析器,将 Markdown 转换为 AST |
33
+ | `pd-markdown/web` | React 组件,用于渲染 Markdown |
34
+ | `pd-markdown/utils` | 工具函数库,提供 AST 操作和字符串处理 |
35
+
36
+ ## 快速开始
37
+
38
+ ### 基础使用
39
+
40
+ ```tsx
41
+ import { MarkdownRenderer } from 'pd-markdown/web'
42
+
43
+ function App() {
44
+ const markdown = `
45
+ # Hello World
46
+
47
+ This is a **markdown** document.
48
+
49
+ ## Features
50
+
51
+ - GFM support
52
+ - Frontmatter parsing
53
+ - Custom components
54
+ `
55
+
56
+ return <MarkdownRenderer source={markdown} />
57
+ }
58
+ ```
59
+
60
+ ### 使用预解析的 AST(SSR 优化)
61
+
62
+ ```tsx
63
+ import { createParser } from 'pd-markdown/parser'
64
+ import { MarkdownRenderer } from 'pd-markdown/web'
65
+
66
+ // 服务端解析
67
+ const parser = createParser()
68
+ const ast = parser.parse(markdownContent)
69
+
70
+ // 客户端直接使用 AST,跳过解析
71
+ function Page({ ast }) {
72
+ return <MarkdownRenderer ast={ast} />
73
+ }
74
+ ```
75
+
76
+ ### 使用 Hook
77
+
78
+ ```tsx
79
+ import { useMarkdown, MarkdownRenderer } from 'pd-markdown/web'
80
+
81
+ function MarkdownPreview({ source }) {
82
+ const ast = useMarkdown(source)
83
+
84
+ // 可以对 AST 进行自定义处理
85
+ return <MarkdownRenderer ast={ast} />
86
+ }
87
+ ```
88
+
89
+ ## API 文档
90
+
91
+ ### pd-markdown/parser
92
+
93
+ #### `createParser(options?)`
94
+
95
+ 创建 Markdown 解析器实例。
96
+
97
+ ```ts
98
+ import { createParser } from 'pd-markdown/parser'
99
+
100
+ const parser = createParser({
101
+ gfm: true, // 启用 GFM 支持(默认 true)
102
+ frontmatter: true, // 启用 frontmatter 解析(默认 true)
103
+ plugins: [], // 自定义插件
104
+ })
105
+
106
+ const ast = parser.parse('# Hello World')
107
+ ```
108
+
109
+ #### `definePlugin(config)`
110
+
111
+ 定义自定义解析器插件。
112
+
113
+ ```ts
114
+ import { definePlugin } from 'pd-markdown/parser'
115
+
116
+ const myPlugin = definePlugin({
117
+ name: 'my-plugin',
118
+ phase: 'after', // 'before' | 'after'
119
+ transform: () => (tree, file) => {
120
+ // 处理 AST
121
+ console.log(tree)
122
+ },
123
+ })
124
+ ```
125
+
126
+ ### pd-markdown/web
127
+
128
+ #### `<MarkdownRenderer />`
129
+
130
+ 主渲染组件。
131
+
132
+ ```tsx
133
+ interface MarkdownRendererProps {
134
+ /** Markdown 源字符串(将被解析) */
135
+ source?: string
136
+ /** 预解析的 AST(跳过解析,适用于 SSR) */
137
+ ast?: Root
138
+ /** 自定义组件覆盖 */
139
+ components?: Partial<ComponentMap>
140
+ /** 包装器 CSS 类名 */
141
+ className?: string
142
+ /** 包装器内联样式 */
143
+ style?: CSSProperties
144
+ /** 解析器选项(仅在使用 source 时生效) */
145
+ parserOptions?: ParserOptions
146
+ }
147
+ ```
148
+
149
+ #### 自定义组件
150
+
151
+ ```tsx
152
+ import { MarkdownRenderer, type ComponentMap } from 'pd-markdown/web'
153
+
154
+ const customComponents: Partial<ComponentMap> = {
155
+ heading: ({ node, children }) => (
156
+ <h2 className="custom-heading">{children}</h2>
157
+ ),
158
+ code: ({ node, children }) => (
159
+ <pre className="custom-code-block">
160
+ <code>{children}</code>
161
+ </pre>
162
+ ),
163
+ }
164
+
165
+ function App() {
166
+ return (
167
+ <MarkdownRenderer
168
+ source={markdown}
169
+ components={customComponents}
170
+ />
171
+ )
172
+ }
173
+ ```
174
+
175
+ #### 可自定义的组件列表
176
+
177
+ | 组件名 | 对应节点 |
178
+ | --- | --- |
179
+ | `heading` | 标题 (h1-h6) |
180
+ | `paragraph` | 段落 |
181
+ | `list` | 列表 |
182
+ | `listItem` | 列表项 |
183
+ | `table` | 表格 |
184
+ | `tableRow` | 表格行 |
185
+ | `tableCell` | 表格单元格 |
186
+ | `code` | 代码块 |
187
+ | `inlineCode` | 行内代码 |
188
+ | `link` | 链接 |
189
+ | `image` | 图片 |
190
+ | `blockquote` | 引用块 |
191
+
192
+ ### pd-markdown/utils
193
+
194
+ 工具函数库,提供 AST 操作和字符串处理功能。
195
+
196
+ ```ts
197
+ import {
198
+ // AST 遍历
199
+ traverseAst,
200
+ findNodes,
201
+ findNode,
202
+ // 类型守卫
203
+ isParent,
204
+ isLiteral,
205
+ isNodeType,
206
+ // 字符串处理
207
+ slugify,
208
+ uniqueSlugify,
209
+ escapeHtml,
210
+ sanitizeHtml,
211
+ } from 'pd-markdown/utils'
212
+
213
+ // 查找所有标题节点
214
+ const headings = findNodes(ast, 'heading')
215
+
216
+ // 生成 slug
217
+ const slug = slugify('Hello World') // 'hello-world'
218
+ ```
219
+
220
+ ## 示例
221
+
222
+ ### 博客文章渲染
223
+
224
+ ```tsx
225
+ import { createParser } from 'pd-markdown/parser'
226
+ import { MarkdownRenderer } from 'pd-markdown/web'
227
+
228
+ const parser = createParser()
229
+
230
+ function BlogPost({ content }) {
231
+ const ast = parser.parse(content)
232
+
233
+ return (
234
+ <article className="prose">
235
+ <MarkdownRenderer
236
+ ast={ast}
237
+ className="markdown-body"
238
+ />
239
+ </article>
240
+ )
241
+ }
242
+ ```
243
+
244
+ ### 代码高亮
245
+
246
+ ```tsx
247
+ import { MarkdownRenderer, type CodeProps } from 'pd-markdown/web'
248
+ import Prism from 'prismjs'
249
+
250
+ function CodeBlock({ node, children }: CodeProps) {
251
+ const lang = node.lang || 'text'
252
+ const highlighted = Prism.highlight(
253
+ String(children),
254
+ Prism.languages[lang] || Prism.languages.text,
255
+ lang
256
+ )
257
+
258
+ return (
259
+ <pre className={`language-${lang}`}>
260
+ <code dangerouslySetInnerHTML={{ __html: highlighted }} />
261
+ </pre>
262
+ )
263
+ }
264
+
265
+ function App() {
266
+ return (
267
+ <MarkdownRenderer
268
+ source={markdown}
269
+ components={{ code: CodeBlock }}
270
+ />
271
+ )
272
+ }
273
+ ```
274
+
275
+ ## 开发
276
+
277
+ ```bash
278
+ # 安装依赖
279
+ pnpm install
280
+
281
+ # 构建
282
+ pnpm build
283
+
284
+ # 运行测试
285
+ pnpm test
286
+
287
+ # 类型检查
288
+ pnpm typecheck
289
+ ```
290
+
291
+ ## License
292
+
293
+ MIT
package/package.json CHANGED
@@ -1,7 +1,61 @@
1
1
  {
2
2
  "name": "pd-markdown",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "type": "module",
5
+ "description": "A modular markdown parsing and rendering library",
6
+ "exports": {
7
+ "./parser": {
8
+ "types": "./packages/parser/dist/index.d.ts",
9
+ "import": "./packages/parser/dist/index.mjs",
10
+ "require": "./packages/parser/dist/index.cjs"
11
+ },
12
+ "./utils": {
13
+ "types": "./packages/utils/dist/index.d.ts",
14
+ "import": "./packages/utils/dist/index.mjs",
15
+ "require": "./packages/utils/dist/index.cjs"
16
+ },
17
+ "./web": {
18
+ "types": "./packages/web/dist/index.d.ts",
19
+ "import": "./packages/web/dist/index.mjs",
20
+ "require": "./packages/web/dist/index.cjs"
21
+ }
22
+ },
23
+ "typesVersions": {
24
+ "*": {
25
+ "parser": [
26
+ "./packages/parser/dist/index.d.ts"
27
+ ],
28
+ "utils": [
29
+ "./packages/utils/dist/index.d.ts"
30
+ ],
31
+ "web": [
32
+ "./packages/web/dist/index.d.ts"
33
+ ]
34
+ }
35
+ },
36
+ "files": [
37
+ "packages/*/dist"
38
+ ],
39
+ "peerDependencies": {
40
+ "react": "^18.0.0 || ^19.0.0",
41
+ "react-dom": "^18.0.0 || ^19.0.0"
42
+ },
43
+ "peerDependenciesMeta": {
44
+ "react": {
45
+ "optional": true
46
+ },
47
+ "react-dom": {
48
+ "optional": true
49
+ }
50
+ },
51
+ "dependencies": {
52
+ "remark-frontmatter": "^5.0.0",
53
+ "remark-gfm": "^4.0.1",
54
+ "remark-parse": "^11.0.0",
55
+ "unified": "^11.0.5",
56
+ "unist-util-visit": "^5.0.0",
57
+ "yaml": "^2.7.0"
58
+ },
5
59
  "devDependencies": {
6
60
  "@rollup/plugin-commonjs": "^28.0.2",
7
61
  "@rollup/plugin-node-resolve": "^16.0.0",
@@ -15,6 +69,19 @@
15
69
  "typescript": "^5.7.3",
16
70
  "vitest": "^3.0.7"
17
71
  },
72
+ "keywords": [
73
+ "markdown",
74
+ "parser",
75
+ "react",
76
+ "remark",
77
+ "unified"
78
+ ],
79
+ "license": "MIT",
80
+ "repository": {
81
+ "type": "git",
82
+ "url": "https://github.com/pidan/pd-markdown.git"
83
+ },
84
+ "sideEffects": false,
18
85
  "scripts": {
19
86
  "build": "pnpm -r run build",
20
87
  "test": "vitest run",
@@ -1,4 +0,0 @@
1
- export type { Parser, ParserOptions, ParserPlugin, PluginConfig, FrontmatterData, FileData, } from './types';
2
- export { createParser, definePlugin } from './processor';
3
- export { transformHeading, transformList, transformTable } from './plugins';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,QAAQ,GACT,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAGxD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA"}
@@ -1,5 +0,0 @@
1
- // Core
2
- export { createParser, definePlugin } from './processor';
3
- // Transform plugins (for advanced usage)
4
- export { transformHeading, transformList, transformTable } from './plugins';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO;AACP,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAExD,yCAAyC;AACzC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA"}
@@ -1,4 +0,0 @@
1
- export { transformHeading } from './transform/heading';
2
- export { transformList } from './transform/list';
3
- export { transformTable } from './transform/table';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
@@ -1,4 +0,0 @@
1
- export { transformHeading } from './transform/heading';
2
- export { transformList } from './transform/list';
3
- export { transformTable } from './transform/table';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
@@ -1,6 +0,0 @@
1
- import type { Root } from 'mdast';
2
- /**
3
- * Transform plugin that adds slug IDs to headings
4
- */
5
- export declare function transformHeading(tree: Root): void;
6
- //# sourceMappingURL=heading.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../../src/plugins/transform/heading.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA4B,MAAM,OAAO,CAAA;AAqB3D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAejD"}
@@ -1,36 +0,0 @@
1
- import { visit } from 'unist-util-visit';
2
- import { uniqueSlugify } from '@pd-markdown/utils';
3
- /**
4
- * Extract text content from phrasing content nodes
5
- */
6
- function extractText(nodes) {
7
- return nodes
8
- .map((node) => {
9
- if (node.type === 'text') {
10
- return node.value;
11
- }
12
- if ('children' in node) {
13
- return extractText(node.children);
14
- }
15
- return '';
16
- })
17
- .join('');
18
- }
19
- /**
20
- * Transform plugin that adds slug IDs to headings
21
- */
22
- export function transformHeading(tree) {
23
- const slugs = new Set();
24
- visit(tree, 'heading', (node) => {
25
- const text = extractText(node.children);
26
- const slug = uniqueSlugify(text, slugs);
27
- // Add data.id to the heading node
28
- const data = (node.data || {});
29
- data.id = slug;
30
- const hProperties = (data.hProperties || {});
31
- hProperties.id = slug;
32
- data.hProperties = hProperties;
33
- node.data = data;
34
- });
35
- }
36
- //# sourceMappingURL=heading.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../src/plugins/transform/heading.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD;;GAEG;AACH,SAAS,WAAW,CAAC,KAAwB;IAC3C,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,KAAK,CAAA;QACnB,CAAC;QACD,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,WAAW,CAAC,IAAI,CAAC,QAA6B,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAU;IACzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAE/B,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAEvC,kCAAkC;QAClC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAA;QACzD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAA;QACd,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAA2B,CAAA;QACtE,WAAW,CAAC,EAAE,GAAG,IAAI,CAAA;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- import type { Root } from 'mdast';
2
- /**
3
- * Extended list item with index
4
- */
5
- declare module 'mdast' {
6
- interface ListItemData {
7
- index?: number;
8
- }
9
- }
10
- /**
11
- * Transform plugin that adds index to list items
12
- */
13
- export declare function transformList(tree: Root): void;
14
- //# sourceMappingURL=list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/plugins/transform/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,OAAO,CAAA;AAGjD;;GAEG;AACH,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAU,YAAY;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf;CACF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAa9C"}
@@ -1,18 +0,0 @@
1
- import { visit } from 'unist-util-visit';
2
- /**
3
- * Transform plugin that adds index to list items
4
- */
5
- export function transformList(tree) {
6
- visit(tree, 'list', (node) => {
7
- node.children.forEach((item, index) => {
8
- item.data = item.data || {};
9
- item.data.index = index;
10
- // For ordered lists, also store the actual number
11
- if (node.ordered) {
12
- const start = node.start ?? 1;
13
- item.data.index = start + index;
14
- }
15
- });
16
- });
17
- }
18
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/plugins/transform/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAWxC;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAU;IACtC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAU,EAAE,EAAE;QACjC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAc,EAAE,KAAa,EAAE,EAAE;YACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;YAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAEvB,kDAAkD;YAClD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;gBAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;YACjC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,27 +0,0 @@
1
- import type { Root } from 'mdast';
2
- /**
3
- * Extended table data
4
- */
5
- declare module 'mdast' {
6
- interface TableData {
7
- /** Header row */
8
- header?: TableRow;
9
- /** Body rows */
10
- body?: TableRow[];
11
- }
12
- interface TableCellData {
13
- /** Whether this cell is in header */
14
- isHeader?: boolean;
15
- /** Column alignment */
16
- align?: 'left' | 'center' | 'right' | null;
17
- /** Column index */
18
- columnIndex?: number;
19
- }
20
- }
21
- /**
22
- * Transform plugin that enhances table structure
23
- * - Separates header and body rows
24
- * - Adds alignment and index info to cells
25
- */
26
- export declare function transformTable(tree: Root): void;
27
- //# sourceMappingURL=table.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/plugins/transform/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAoB,MAAM,OAAO,CAAA;AAGnD;;GAEG;AACH,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAU,SAAS;QACjB,iBAAiB;QACjB,MAAM,CAAC,EAAE,QAAQ,CAAA;QACjB,gBAAgB;QAChB,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA;KAClB;IAED,UAAU,aAAa;QACrB,qCAAqC;QACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,uBAAuB;QACvB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAA;QAC1C,mBAAmB;QACnB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB;CACF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAgC/C"}
@@ -1,37 +0,0 @@
1
- import { visit } from 'unist-util-visit';
2
- /**
3
- * Transform plugin that enhances table structure
4
- * - Separates header and body rows
5
- * - Adds alignment and index info to cells
6
- */
7
- export function transformTable(tree) {
8
- visit(tree, 'table', (node) => {
9
- if (node.children.length === 0)
10
- return;
11
- const [headerRow, ...bodyRows] = node.children;
12
- const align = node.align || [];
13
- // Mark header row and cells
14
- if (headerRow) {
15
- headerRow.children.forEach((cell, index) => {
16
- cell.data = cell.data || {};
17
- cell.data.isHeader = true;
18
- cell.data.align = align[index] || null;
19
- cell.data.columnIndex = index;
20
- });
21
- }
22
- // Mark body cells
23
- bodyRows.forEach((row) => {
24
- row.children.forEach((cell, index) => {
25
- cell.data = cell.data || {};
26
- cell.data.isHeader = false;
27
- cell.data.align = align[index] || null;
28
- cell.data.columnIndex = index;
29
- });
30
- });
31
- // Store structured data on table node
32
- node.data = node.data || {};
33
- node.data.header = headerRow;
34
- node.data.body = bodyRows;
35
- });
36
- }
37
- //# sourceMappingURL=table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/plugins/transform/table.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAuBxC;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,IAAW,EAAE,EAAE;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAEtC,MAAM,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;QAE9B,4BAA4B;QAC5B,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAe,EAAE,KAAa,EAAE,EAAE;gBAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;gBACzB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAA;gBACtC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;YAC/B,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,kBAAkB;QAClB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAe,EAAE,KAAa,EAAE,EAAE;gBACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;gBAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAA;gBACtC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;YAC/B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,sCAAsC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,22 +0,0 @@
1
- import type { Root } from 'mdast';
2
- import type { VFile } from 'vfile';
3
- import type { Parser, ParserOptions, ParserPlugin } from './types';
4
- /**
5
- * Create a markdown parser with the specified options
6
- *
7
- * @param options - Parser configuration options
8
- * @returns Parser instance with parse method
9
- */
10
- export declare function createParser(options?: ParserOptions): Parser;
11
- /**
12
- * Type-safe helper to define a parser plugin
13
- *
14
- * @param config - Plugin configuration
15
- * @returns Parser plugin
16
- */
17
- export declare function definePlugin<T = void>(config: {
18
- name: string;
19
- phase: 'before' | 'after';
20
- transform: (options?: T) => (tree: Root, file: VFile) => void;
21
- }, options?: T): ParserPlugin;
22
- //# sourceMappingURL=processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAQ,MAAM,OAAO,CAAA;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAElC,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAY,MAAM,SAAS,CAAA;AA2B5E;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CAuDhE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,GAAG,IAAI,EACnC,MAAM,EAAE;IACN,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAA;IACzB,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,CAAA;CAC9D,EACD,OAAO,CAAC,EAAE,CAAC,GACV,YAAY,CAMd"}