From 194c7f23f91d28782795da60fb01cd1fb4ccb76c Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 9 May 2020 07:50:20 -0400 Subject: [PATCH] Add compatibility so old package names (and options) will still work after the renaming. --- components/src/dependencies.js | 10 ++++++++++ .../src/input/tex/extensions/amscd/amscd.js | 3 +++ .../src/input/tex/extensions/colorv2/colorv2.js | 3 +++ .../tex/extensions/configmacros/configmacros.js | 3 +++ components/src/input/tex/extensions/rename.js | 16 ++++++++++++++++ .../input/tex/extensions/tagformat/tagformat.js | 3 +++ components/src/startup/startup.js | 3 ++- 7 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 components/src/input/tex/extensions/rename.js diff --git a/components/src/dependencies.js b/components/src/dependencies.js index c198402d6..028d1f559 100644 --- a/components/src/dependencies.js +++ b/components/src/dependencies.js @@ -77,3 +77,13 @@ export const provides = { ], '[tex]/all-packages': allPackages }; + +// +// Compatibility with v3.0 names for TeX extensions +// +export const compatibility = { + '[tex]/amsCd': '[tex]/amscd', + '[tex]/colorV2': '[tex]/colorv2', + '[tex]/configMacros': '[tex]/configmacros', + '[tex]/tagFormat': '[tex]/tagformat' +}; diff --git a/components/src/input/tex/extensions/amscd/amscd.js b/components/src/input/tex/extensions/amscd/amscd.js index 7518b2c86..da1ab0a95 100644 --- a/components/src/input/tex/extensions/amscd/amscd.js +++ b/components/src/input/tex/extensions/amscd/amscd.js @@ -1 +1,4 @@ import './lib/amscd.js'; +import {rename} from '../../rename.js'; + +rename('amsCd', 'amscd', true); diff --git a/components/src/input/tex/extensions/colorv2/colorv2.js b/components/src/input/tex/extensions/colorv2/colorv2.js index bbc7ad38d..51849b591 100644 --- a/components/src/input/tex/extensions/colorv2/colorv2.js +++ b/components/src/input/tex/extensions/colorv2/colorv2.js @@ -1 +1,4 @@ import './lib/colorv2.js'; +import {rename} from '../rename.js'; + +rename('colorV2', 'colorv2', false); diff --git a/components/src/input/tex/extensions/configmacros/configmacros.js b/components/src/input/tex/extensions/configmacros/configmacros.js index 0dd16952d..8645dfee9 100644 --- a/components/src/input/tex/extensions/configmacros/configmacros.js +++ b/components/src/input/tex/extensions/configmacros/configmacros.js @@ -1 +1,4 @@ import './lib/configmacros.js'; +import {rename} from '../rename.js'; + +rename('configMacros', 'configmacros', false); diff --git a/components/src/input/tex/extensions/rename.js b/components/src/input/tex/extensions/rename.js new file mode 100644 index 000000000..1a44098f1 --- /dev/null +++ b/components/src/input/tex/extensions/rename.js @@ -0,0 +1,16 @@ +// +// Look for a package name in the package list and change it to a new name +// rhen rename tex options for it, if there are any. +// +export function rename(oname, nname, options) { + const tex = MathJax.config.tex; + if (tex && tex.packages) { + const packages = tex.packages; + const n = packages.indexOf(oname); + if (n >= 0) packages[n] = nname; + if (options && tex[oname]) { + tex[nname] = tex[oname]; + delete tex[oname]; + } + } +} diff --git a/components/src/input/tex/extensions/tagformat/tagformat.js b/components/src/input/tex/extensions/tagformat/tagformat.js index 29b0da313..17ee5137a 100644 --- a/components/src/input/tex/extensions/tagformat/tagformat.js +++ b/components/src/input/tex/extensions/tagformat/tagformat.js @@ -1 +1,4 @@ import './lib/tagformat.js'; +import {rename} from '../rename.js'; + +rename('tagFormat', 'tagformat', true); diff --git a/components/src/startup/startup.js b/components/src/startup/startup.js index cbdf49642..7472aafb5 100644 --- a/components/src/startup/startup.js +++ b/components/src/startup/startup.js @@ -2,11 +2,12 @@ import './lib/startup.js'; import {Loader, CONFIG} from '../../../js/components/loader.js'; import {combineDefaults} from '../../../js/components/global.js'; -import {dependencies, paths, provides} from '../dependencies.js'; +import {dependencies, paths, provides, compatibility} from '../dependencies.js'; combineDefaults(MathJax.config.loader, 'dependencies', dependencies); combineDefaults(MathJax.config.loader, 'paths', paths); combineDefaults(MathJax.config.loader, 'provides', provides); +combineDefaults(MathJax.config.loader, 'source', compatibility); Loader.preLoad('loader');