@jupyterlab/markedparser-extension 4.0.0-alpha.8 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * @packageDocumentation
7
7
  * @module markedparser-extension
8
8
  */
9
- import { CodeMirrorEditor, Mode } from '@jupyterlab/codemirror';
9
+ import { IEditorLanguageRegistry } from '@jupyterlab/codemirror';
10
10
  import { IMarkdownParser } from '@jupyterlab/rendermime';
11
11
  import { marked } from 'marked';
12
12
  /**
@@ -16,8 +16,9 @@ const plugin = {
16
16
  id: '@jupyterlab/markedparser-extension:plugin',
17
17
  autoStart: true,
18
18
  provides: IMarkdownParser,
19
- activate: () => {
20
- Private.initializeMarked();
19
+ requires: [IEditorLanguageRegistry],
20
+ activate: (app, languages) => {
21
+ Private.initializeMarked(languages);
21
22
  return {
22
23
  render: (content) => new Promise((resolve, reject) => {
23
24
  marked(content, (err, content) => {
@@ -39,7 +40,7 @@ export default plugin;
39
40
  var Private;
40
41
  (function (Private) {
41
42
  let markedInitialized = false;
42
- function initializeMarked() {
43
+ function initializeMarked(languages) {
43
44
  if (markedInitialized) {
44
45
  return;
45
46
  }
@@ -50,7 +51,7 @@ var Private;
50
51
  gfm: true,
51
52
  sanitize: false,
52
53
  // breaks: true; We can't use GFM breaks as it causes problems with tables
53
- langPrefix: `cm-s-${CodeMirrorEditor.defaultConfig.theme} language-`,
54
+ langPrefix: `language-`,
54
55
  highlight: (code, lang, callback) => {
55
56
  const cb = (err, code) => {
56
57
  if (callback) {
@@ -62,28 +63,21 @@ var Private;
62
63
  // no language, no highlight
63
64
  return cb(null, code);
64
65
  }
65
- Mode.ensure(lang)
66
- .then(spec => {
67
- const el = document.createElement('div');
68
- if (!spec) {
69
- console.error(`No CodeMirror mode: ${lang}`);
70
- return cb(null, code);
71
- }
72
- try {
73
- Mode.run(code, spec.mime, el);
66
+ const el = document.createElement('div');
67
+ try {
68
+ languages
69
+ .highlight(code, languages.findBest(lang), el)
70
+ .then(() => {
74
71
  return cb(null, el.innerHTML);
75
- }
76
- catch (err) {
77
- console.error(`Failed to highlight ${lang} code`, err);
78
- return cb(err, code);
79
- }
80
- })
81
- .catch(err => {
82
- console.error(`No CodeMirror mode: ${lang}`);
83
- console.error(`Require CodeMirror mode error: ${err}`);
84
- return cb(null, code);
85
- });
86
- return code;
72
+ })
73
+ .catch(reason => {
74
+ return cb(reason, code);
75
+ });
76
+ }
77
+ catch (err) {
78
+ console.error(`Failed to highlight ${lang} code`, err);
79
+ return cb(err, code);
80
+ }
87
81
  }
88
82
  });
89
83
  }
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;+EAG+E;AAC/E;;;GAGG;AAMH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;GAEG;AACH,MAAM,MAAM,GAA2C;IACrD,EAAE,EAAE,2CAA2C;IAC/C,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,eAAe;IACzB,QAAQ,EAAE,CAAC,uBAAuB,CAAC;IACnC,QAAQ,EAAE,CAAC,GAAoB,EAAE,SAAkC,EAAE,EAAE;QACrE,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO;YACL,MAAM,EAAE,CAAC,OAAe,EAAmB,EAAE,CAC3C,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACtC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,OAAe,EAAE,EAAE;oBAC5C,IAAI,GAAG,EAAE;wBACP,MAAM,CAAC,GAAG,CAAC,CAAC;qBACb;yBAAM;wBACL,OAAO,CAAC,OAAO,CAAC,CAAC;qBAClB;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;SACL,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,eAAe,MAAM,CAAC;AAEtB,IAAU,OAAO,CA0ChB;AA1CD,WAAU,OAAO;IACf,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,SAAgB,gBAAgB,CAAC,SAAkC;QACjE,IAAI,iBAAiB,EAAE;YACrB,OAAO;SACR;aAAM;YACL,iBAAiB,GAAG,IAAI,CAAC;SAC1B;QAED,MAAM,CAAC,UAAU,CAAC;YAChB,GAAG,EAAE,IAAI;YACT,QAAQ,EAAE,KAAK;YACf,0EAA0E;YAC1E,UAAU,EAAE,WAAW;YACvB,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAClC,MAAM,EAAE,GAAG,CAAC,GAAiB,EAAE,IAAY,EAAE,EAAE;oBAC7C,IAAI,QAAQ,EAAE;wBACZ,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;qBACrB;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC;gBACF,IAAI,CAAC,IAAI,EAAE;oBACT,4BAA4B;oBAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBACvB;gBACD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI;oBACF,SAAS;yBACN,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;yBAC7C,IAAI,CAAC,GAAG,EAAE;wBACT,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;oBAChC,CAAC,CAAC;yBACD,KAAK,CAAC,MAAM,CAAC,EAAE;wBACd,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC1B,CAAC,CAAC,CAAC;iBACN;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,OAAO,EAAE,GAAG,CAAC,CAAC;oBACvD,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;iBACtB;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAvCe,wBAAgB,mBAuC/B,CAAA;AACH,CAAC,EA1CS,OAAO,KAAP,OAAO,QA0ChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/markedparser-extension",
3
- "version": "4.0.0-alpha.8",
3
+ "version": "4.0.0-beta.0",
4
4
  "description": "JupyterLab - Markdown parser provider",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -25,7 +25,8 @@
25
25
  "files": [
26
26
  "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}",
27
27
  "style/index.css",
28
- "style/index.js"
28
+ "style/index.js",
29
+ "src/**/*.{ts,tsx}"
29
30
  ],
30
31
  "scripts": {
31
32
  "build": "tsc -b",
@@ -34,15 +35,16 @@
34
35
  "watch": "tsc -b --watch"
35
36
  },
36
37
  "dependencies": {
37
- "@jupyterlab/application": "^4.0.0-alpha.8",
38
- "@jupyterlab/codemirror": "^4.0.0-alpha.8",
39
- "@jupyterlab/rendermime": "^4.0.0-alpha.8",
40
- "marked": "^4.0.10"
38
+ "@jupyterlab/application": "^4.0.0-beta.0",
39
+ "@jupyterlab/codemirror": "^4.0.0-beta.0",
40
+ "@jupyterlab/rendermime": "^4.0.0-beta.0",
41
+ "marked": "^4.0.17"
41
42
  },
42
43
  "devDependencies": {
43
- "@types/marked": "^4.0.1",
44
+ "@types/marked": "^4.0.3",
44
45
  "rimraf": "~3.0.0",
45
- "typescript": "~4.5.2"
46
+ "typedoc": "~0.23.25",
47
+ "typescript": "~5.0.2"
46
48
  },
47
49
  "publishConfig": {
48
50
  "access": "public"
package/src/index.ts ADDED
@@ -0,0 +1,90 @@
1
+ /* -----------------------------------------------------------------------------
2
+ | Copyright (c) Jupyter Development Team.
3
+ | Distributed under the terms of the Modified BSD License.
4
+ |----------------------------------------------------------------------------*/
5
+ /**
6
+ * @packageDocumentation
7
+ * @module markedparser-extension
8
+ */
9
+
10
+ import {
11
+ JupyterFrontEnd,
12
+ JupyterFrontEndPlugin
13
+ } from '@jupyterlab/application';
14
+ import { IEditorLanguageRegistry } from '@jupyterlab/codemirror';
15
+ import { IMarkdownParser } from '@jupyterlab/rendermime';
16
+ import { marked } from 'marked';
17
+
18
+ /**
19
+ * The markdown parser plugin.
20
+ */
21
+ const plugin: JupyterFrontEndPlugin<IMarkdownParser> = {
22
+ id: '@jupyterlab/markedparser-extension:plugin',
23
+ autoStart: true,
24
+ provides: IMarkdownParser,
25
+ requires: [IEditorLanguageRegistry],
26
+ activate: (app: JupyterFrontEnd, languages: IEditorLanguageRegistry) => {
27
+ Private.initializeMarked(languages);
28
+ return {
29
+ render: (content: string): Promise<string> =>
30
+ new Promise<string>((resolve, reject) => {
31
+ marked(content, (err: any, content: string) => {
32
+ if (err) {
33
+ reject(err);
34
+ } else {
35
+ resolve(content);
36
+ }
37
+ });
38
+ })
39
+ };
40
+ }
41
+ };
42
+
43
+ /**
44
+ * Export the plugin as default.
45
+ */
46
+ export default plugin;
47
+
48
+ namespace Private {
49
+ let markedInitialized = false;
50
+ export function initializeMarked(languages: IEditorLanguageRegistry): void {
51
+ if (markedInitialized) {
52
+ return;
53
+ } else {
54
+ markedInitialized = true;
55
+ }
56
+
57
+ marked.setOptions({
58
+ gfm: true,
59
+ sanitize: false,
60
+ // breaks: true; We can't use GFM breaks as it causes problems with tables
61
+ langPrefix: `language-`,
62
+ highlight: (code, lang, callback) => {
63
+ const cb = (err: Error | null, code: string) => {
64
+ if (callback) {
65
+ callback(err, code);
66
+ }
67
+ return code;
68
+ };
69
+ if (!lang) {
70
+ // no language, no highlight
71
+ return cb(null, code);
72
+ }
73
+ const el = document.createElement('div');
74
+ try {
75
+ languages
76
+ .highlight(code, languages.findBest(lang), el)
77
+ .then(() => {
78
+ return cb(null, el.innerHTML);
79
+ })
80
+ .catch(reason => {
81
+ return cb(reason, code);
82
+ });
83
+ } catch (err) {
84
+ console.error(`Failed to highlight ${lang} code`, err);
85
+ return cb(err, code);
86
+ }
87
+ }
88
+ });
89
+ }
90
+ }
package/style/index.css CHANGED
@@ -4,6 +4,6 @@
4
4
  |----------------------------------------------------------------------------*/
5
5
 
6
6
  /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */
7
- @import url('~@jupyterlab/codemirror/style/index.css');
8
7
  @import url('~@jupyterlab/rendermime/style/index.css');
9
8
  @import url('~@jupyterlab/application/style/index.css');
9
+ @import url('~@jupyterlab/codemirror/style/index.css');
package/style/index.js CHANGED
@@ -4,6 +4,6 @@
4
4
  |----------------------------------------------------------------------------*/
5
5
 
6
6
  /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */
7
- import '@jupyterlab/codemirror/style/index.js';
8
7
  import '@jupyterlab/rendermime/style/index.js';
9
8
  import '@jupyterlab/application/style/index.js';
9
+ import '@jupyterlab/codemirror/style/index.js';