|
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