|
@@ -21,50 +21,9 @@ require('./imports.css');
|
|
|
*/
|
|
|
function main() {
|
|
|
var JupyterLab = require('@jupyterlab/application').JupyterLab;
|
|
|
-
|
|
|
- // Get the disabled extensions.
|
|
|
- var disabled = { patterns: [], matches: [] };
|
|
|
- var disabledExtensions = [];
|
|
|
- try {
|
|
|
- var tempDisabled = PageConfig.getOption('disabledExtensions');
|
|
|
- if (tempDisabled) {
|
|
|
- disabledExtensions = JSON.parse(tempDisabled).map(function(pattern) {
|
|
|
- disabled.patterns.push(pattern);
|
|
|
- return { raw: pattern, rule: new RegExp(pattern) };
|
|
|
- });
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- console.warn('Unable to parse disabled extensions.', error);
|
|
|
- }
|
|
|
-
|
|
|
- // Get the deferred extensions.
|
|
|
- var deferred = { patterns: [], matches: [] };
|
|
|
- var deferredExtensions = [];
|
|
|
+ var disabled = [];
|
|
|
+ var deferred = [];
|
|
|
var ignorePlugins = [];
|
|
|
- try {
|
|
|
- var tempDeferred = PageConfig.getOption('deferredExtensions');
|
|
|
- if (tempDeferred) {
|
|
|
- deferredExtensions = JSON.parse(tempDeferred).map(function(pattern) {
|
|
|
- deferred.patterns.push(pattern);
|
|
|
- return { raw: pattern, rule: new RegExp(pattern) };
|
|
|
- });
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- console.warn('Unable to parse deferred extensions.', error);
|
|
|
- }
|
|
|
-
|
|
|
- function isDeferred(value) {
|
|
|
- return deferredExtensions.some(function(pattern) {
|
|
|
- return pattern.raw === value || pattern.rule.test(value);
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- function isDisabled(value) {
|
|
|
- return disabledExtensions.some(function(pattern) {
|
|
|
- return pattern.raw === value || pattern.rule.test(value);
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
var register = [];
|
|
|
|
|
|
// Handle the registered mime extensions.
|
|
@@ -73,12 +32,12 @@ function main() {
|
|
|
var extMod;
|
|
|
{{#each jupyterlab_mime_extensions}}
|
|
|
try {
|
|
|
- if (isDeferred('{{key}}')) {
|
|
|
- deferred.matches.push('{{key}}');
|
|
|
+ if (PageConfig.Extension.isDeferred('{{key}}')) {
|
|
|
+ deferred.push('{{key}}');
|
|
|
ignorePlugins.push('{{key}}');
|
|
|
}
|
|
|
- if (isDisabled('{{@key}}')) {
|
|
|
- disabled.matches.push('{{@key}}');
|
|
|
+ if (PageConfig.Extension.isDisabled('{{@key}}')) {
|
|
|
+ disabled.push('{{@key}}');
|
|
|
} else {
|
|
|
extMod = require('{{@key}}/{{this}}');
|
|
|
extension = extMod.default;
|
|
@@ -88,21 +47,18 @@ function main() {
|
|
|
extension = extMod;
|
|
|
}
|
|
|
|
|
|
- if (Array.isArray(extension)) {
|
|
|
- extension.forEach(function(plugin) {
|
|
|
- if (isDeferred(plugin.id)) {
|
|
|
- deferred.matches.push(plugin.id);
|
|
|
- ignorePlugins.push(plugin.id);
|
|
|
- }
|
|
|
- if (isDisabled(plugin.id)) {
|
|
|
- disabled.matches.push(plugin.id);
|
|
|
- return;
|
|
|
- }
|
|
|
- mimeExtensions.push(plugin);
|
|
|
- });
|
|
|
- } else {
|
|
|
- mimeExtensions.push(extension);
|
|
|
- }
|
|
|
+ var list = Array.isArray(extension) ? extension : [extension];
|
|
|
+ list.forEach(function(plugin) {
|
|
|
+ if (PageConfig.Extension.isDeferred(plugin.id)) {
|
|
|
+ deferred.push(plugin.id);
|
|
|
+ ignorePlugins.push(plugin.id);
|
|
|
+ }
|
|
|
+ if (PageConfig.Extension.isDisabled(plugin.id)) {
|
|
|
+ disabled.push(plugin.id);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ mimeExtensions.push(plugin);
|
|
|
+ });
|
|
|
}
|
|
|
} catch (e) {
|
|
|
console.error(e);
|
|
@@ -112,12 +68,12 @@ function main() {
|
|
|
// Handled the registered standard extensions.
|
|
|
{{#each jupyterlab_extensions}}
|
|
|
try {
|
|
|
- if (isDeferred('{{key}}')) {
|
|
|
- deferred.matches.push('{{key}}');
|
|
|
+ if (PageConfig.Extension.isDeferred('{{key}}')) {
|
|
|
+ deferred.push('{{key}}');
|
|
|
ignorePlugins.push('{{key}}');
|
|
|
}
|
|
|
- if (isDisabled('{{@key}}')) {
|
|
|
- disabled.matches.push('{{@key}}');
|
|
|
+ if (PageConfig.Extension.isDisabled('{{@key}}')) {
|
|
|
+ disabled.push('{{@key}}');
|
|
|
} else {
|
|
|
extMod = require('{{@key}}/{{this}}');
|
|
|
extension = extMod.default;
|
|
@@ -127,31 +83,35 @@ function main() {
|
|
|
extension = extMod;
|
|
|
}
|
|
|
|
|
|
- if (Array.isArray(extension)) {
|
|
|
- extension.forEach(function(plugin) {
|
|
|
- if (isDeferred(plugin.id)) {
|
|
|
- deferred.matches.push(plugin.id);
|
|
|
- ignorePlugins.push(plugin.id);
|
|
|
- }
|
|
|
- if (isDisabled(plugin.id)) {
|
|
|
- disabled.matches.push(plugin.id);
|
|
|
- return;
|
|
|
- }
|
|
|
- register.push(plugin);
|
|
|
- });
|
|
|
- } else {
|
|
|
- register.push(extension);
|
|
|
- }
|
|
|
+ var list = Array.isArray(extension) ? extension : [extension];
|
|
|
+ list.forEach(function(plugin) {
|
|
|
+ if (PageConfig.Extension.isDeferred(plugin.id)) {
|
|
|
+ deferred.push(plugin.id);
|
|
|
+ ignorePlugins.push(plugin.id);
|
|
|
+ }
|
|
|
+ if (PageConfig.Extension.isDisabled(plugin.id)) {
|
|
|
+ disabled.push(plugin.id);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ register.push(plugin);
|
|
|
+ });
|
|
|
}
|
|
|
} catch (e) {
|
|
|
console.error(e);
|
|
|
}
|
|
|
{{/each}}
|
|
|
-
|
|
|
var lab = new JupyterLab({
|
|
|
mimeExtensions: mimeExtensions,
|
|
|
- disabled: disabled,
|
|
|
- deferred: deferred
|
|
|
+ disabled: {
|
|
|
+ matches: disabled,
|
|
|
+ patterns: PageConfig.Extension.disabled
|
|
|
+ .map(function (val) { return val.raw; })
|
|
|
+ },
|
|
|
+ deferred: {
|
|
|
+ matches: deferred,
|
|
|
+ patterns: PageConfig.Extension.deferred
|
|
|
+ .map(function (val) { return val.raw; })
|
|
|
+ },
|
|
|
});
|
|
|
register.forEach(function(item) { lab.registerPluginModule(item); });
|
|
|
lab.start({ ignorePlugins: ignorePlugins });
|