Path: blob/main/extensions/markdown-math/src/extension.ts
4772 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/4import * as vscode from 'vscode';56declare function require(path: string): any;78const markdownMathSetting = 'markdown.math';910export function activate(context: vscode.ExtensionContext) {11function isEnabled(): boolean {12const config = vscode.workspace.getConfiguration('markdown');13return config.get<boolean>('math.enabled', true);14}1516function getMacros(): { [key: string]: string } {17const config = vscode.workspace.getConfiguration('markdown');18return config.get<{ [key: string]: string }>('math.macros', {});19}2021vscode.workspace.onDidChangeConfiguration(e => {22if (e.affectsConfiguration(markdownMathSetting)) {23vscode.commands.executeCommand('markdown.api.reloadPlugins');24}25}, undefined, context.subscriptions);2627return {28extendMarkdownIt(md: any) {29if (isEnabled()) {30const katex = require('@vscode/markdown-it-katex').default;31const settingsMacros = getMacros();32const options = {33enableFencedBlocks: true,34globalGroup: true,35macros: { ...settingsMacros }36};37md.core.ruler.push('reset-katex-macros', () => {38options.macros = { ...settingsMacros };39});40return md.use(katex, options);41}42return md;43}44};45}4647