|
@@ -0,0 +1,37 @@
|
|
|
+// Copyright (c) Jupyter Development Team.
|
|
|
+// Distributed under the terms of the Modified BSD License.
|
|
|
+
|
|
|
+// We dynamically set the webpack public path based on the page config
|
|
|
+// settings from the JupyterLab app. We copy some of the pageconfig parsing
|
|
|
+// logic in @jupyterlab/coreutils below, since this must run before any other
|
|
|
+// files are loaded (including @jupyterlab/coreutils).
|
|
|
+
|
|
|
+/**
|
|
|
+ * Get global configuration data for the Jupyter application.
|
|
|
+ *
|
|
|
+ * @param name - The name of the configuration option.
|
|
|
+ *
|
|
|
+ * @returns The config value or an empty string if not found.
|
|
|
+ *
|
|
|
+ * #### Notes
|
|
|
+ * All values are treated as strings.
|
|
|
+ * For browser based applications, it is assumed that the page HTML
|
|
|
+ * includes a script tag with the id `jupyter-config-data` containing the
|
|
|
+ * configuration as valid JSON. In order to support the classic Notebook,
|
|
|
+ * we fall back on checking for `body` data of the given `name`.
|
|
|
+ */
|
|
|
+function getOption(name) {
|
|
|
+ let configData = Object.create(null);
|
|
|
+ // Use script tag if available.
|
|
|
+ if (typeof document !== 'undefined' && document) {
|
|
|
+ const el = document.getElementById('jupyter-config-data');
|
|
|
+
|
|
|
+ if (el) {
|
|
|
+ configData = JSON.parse(el.textContent || '{}');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return configData[name] || '';
|
|
|
+}
|
|
|
+
|
|
|
+// eslint-disable-next-line no-undef
|
|
|
+__webpack_public_path__ = getOption('fullStaticUrl') + '/';
|