|
16 | 16 |
|
17 | 17 | import {longestStreak} from 'longest-streak'
|
18 | 18 | import {safe} from 'mdast-util-to-markdown/lib/util/safe.js'
|
| 19 | +import {track} from 'mdast-util-to-markdown/lib/util/track.js' |
19 | 20 |
|
20 | 21 | /**
|
21 | 22 | * @returns {FromMarkdownExtension}
|
@@ -150,29 +151,33 @@ export function mathToMarkdown(options = {}) {
|
150 | 151 | * @type {ToMarkdownHandle}
|
151 | 152 | * @param {Math} node
|
152 | 153 | */
|
153 |
| - function math(node, _, context) { |
| 154 | + function math(node, _, context, safeOptions) { |
154 | 155 | const raw = node.value || ''
|
155 |
| - const fence = '$'.repeat(Math.max(longestStreak(raw, '$') + 1, 2)) |
| 156 | + const sequence = '$'.repeat(Math.max(longestStreak(raw, '$') + 1, 2)) |
156 | 157 | const exit = context.enter('mathFlow')
|
157 |
| - let value = fence |
| 158 | + const tracker = track(safeOptions) |
| 159 | + let value = tracker.move(sequence) |
158 | 160 |
|
159 | 161 | if (node.meta) {
|
160 | 162 | const subexit = context.enter('mathFlowMeta')
|
161 |
| - value += safe(context, node.meta, { |
162 |
| - before: '$', |
163 |
| - after: ' ', |
164 |
| - encode: ['$'] |
165 |
| - }) |
| 163 | + value += tracker.move( |
| 164 | + safe(context, node.meta, { |
| 165 | + ...tracker.current(), |
| 166 | + before: value, |
| 167 | + after: ' ', |
| 168 | + encode: ['$'] |
| 169 | + }) |
| 170 | + ) |
166 | 171 | subexit()
|
167 | 172 | }
|
168 | 173 |
|
169 |
| - value += '\n' |
| 174 | + value += tracker.move('\n') |
170 | 175 |
|
171 | 176 | if (raw) {
|
172 |
| - value += raw + '\n' |
| 177 | + value += tracker.move(raw + '\n') |
173 | 178 | }
|
174 | 179 |
|
175 |
| - value += fence |
| 180 | + value += tracker.move(sequence) |
176 | 181 | exit()
|
177 | 182 | return value
|
178 | 183 | }
|
|
0 commit comments