diff --git a/plugins/plugin-md-power/src/node/inline/annotation.ts b/plugins/plugin-md-power/src/node/inline/annotation.ts index 83600e9e..e0af2432 100644 --- a/plugins/plugin-md-power/src/node/inline/annotation.ts +++ b/plugins/plugin-md-power/src/node/inline/annotation.ts @@ -4,6 +4,7 @@ import type { RuleInline } from 'markdown-it/lib/parser_inline.mjs' import type StateBlock from 'markdown-it/lib/rules_block/state_block.mjs' import type StateInline from 'markdown-it/lib/rules_inline/state_inline.mjs' import type Token from 'markdown-it/lib/token.mjs' +import { cleanMarkdownEnv } from '../utils/cleanMarkdownEnv' interface AnnotationToken extends Token { meta: { @@ -165,7 +166,7 @@ export const annotationPlugin: PluginSimple = (md) => { return `${ data.sources.map((source, i) => { - const annotation = data.rendered[i] ??= md.render(source, env) + const annotation = data.rendered[i] ??= md.render(source, cleanMarkdownEnv(env, ['references'])) return `` }).join('') }` diff --git a/plugins/plugin-md-power/src/node/utils/cleanMarkdownEnv.ts b/plugins/plugin-md-power/src/node/utils/cleanMarkdownEnv.ts index d93c7476..3fd0774b 100644 --- a/plugins/plugin-md-power/src/node/utils/cleanMarkdownEnv.ts +++ b/plugins/plugin-md-power/src/node/utils/cleanMarkdownEnv.ts @@ -6,13 +6,16 @@ export interface CleanMarkdownEnv extends MarkdownEnv { annotations?: unknown } -export function cleanMarkdownEnv(env: CleanMarkdownEnv): CleanMarkdownEnv { - return { - base: env.base, - filePath: env.filePath, - filePathRelative: env.filePathRelative, - references: env.references, - abbreviations: env.abbreviations, - annotations: env.annotations, +const WHITE_LIST = ['base', 'filePath', 'filePathRelative', 'references', 'abbreviations', 'annotations'] as const + +type WhiteListUnion = (typeof WHITE_LIST)[number] + +export function cleanMarkdownEnv(env: CleanMarkdownEnv, excludes: WhiteListUnion[] = []): CleanMarkdownEnv { + const result: CleanMarkdownEnv = {} + for (const key of WHITE_LIST) { + if (excludes.includes(key)) + continue + result[key] = env[key] as string } + return result }