1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- const components = require('../components.js');
- const getLoader = require('../dependencies');
- const loadedLanguages = new Set();
- function loadLanguages(languages) {
- if (languages === undefined) {
- languages = Object.keys(components.languages).filter(l => l != 'meta');
- } else if (!Array.isArray(languages)) {
- languages = [languages];
- }
-
-
- const loaded = [...loadedLanguages, ...Object.keys(Prism.languages)];
- getLoader(components, languages, loaded).load(lang => {
- if (!(lang in components.languages)) {
- if (!loadLanguages.silent) {
- console.warn('Language does not exist: ' + lang);
- }
- return;
- }
- const pathToLanguage = './prism-' + lang;
-
- delete require.cache[require.resolve(pathToLanguage)];
- delete Prism.languages[lang];
- require(pathToLanguage);
- loadedLanguages.add(lang);
- });
- }
- loadLanguages.silent = false;
- module.exports = loadLanguages;
|