Browse Source

Use new markdown viewer tracker for rendered markdown documents.

Ian Rose 6 years ago
parent
commit
966eb8ab42

+ 2 - 1
packages/toc/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@jupyterlab/toc",
-  "version": "1.0.0",
+  "version": "1.0.0-pre",
   "private": false,
   "description": "Table of Contents extension for JupyterLab",
   "keywords": [
@@ -39,6 +39,7 @@
     "@jupyterlab/docmanager": "^1.0.0-alpha.3",
     "@jupyterlab/docregistry": "^1.0.0-alpha.3",
     "@jupyterlab/fileeditor": "^1.0.0-alpha.3",
+    "@jupyterlab/markdownviewer": "^1.0.0-alpha.3",
     "@jupyterlab/notebook": "^1.0.0-alpha.4",
     "@jupyterlab/rendermime": "^1.0.0-alpha.3",
     "@phosphor/algorithm": "^1.1.2",

+ 5 - 4
packages/toc/src/extension.ts

@@ -4,7 +4,6 @@
 import {
   ILabShell,
   ILayoutRestorer,
-  IMimeDocumentTracker,
   JupyterFrontEnd,
   JupyterFrontEndPlugin
 } from '@jupyterlab/application';
@@ -13,6 +12,8 @@ import { IDocumentManager } from '@jupyterlab/docmanager';
 
 import { IEditorTracker } from '@jupyterlab/fileeditor';
 
+import { IMarkdownViewerTracker } from '@jupyterlab/markdownviewer';
+
 import { INotebookTracker } from '@jupyterlab/notebook';
 
 import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
@@ -42,7 +43,7 @@ const extension: JupyterFrontEndPlugin<ITableOfContentsRegistry> = {
     IEditorTracker,
     ILabShell,
     ILayoutRestorer,
-    IMimeDocumentTracker,
+    IMarkdownViewerTracker,
     INotebookTracker,
     IRenderMimeRegistry
   ],
@@ -58,7 +59,7 @@ function activateTOC(
   editorTracker: IEditorTracker,
   labShell: ILabShell,
   restorer: ILayoutRestorer,
-  mimeDocumentTracker: IMimeDocumentTracker,
+  markdownViewerTracker: IMarkdownViewerTracker,
   notebookTracker: INotebookTracker,
   rendermime: IRenderMimeRegistry
 ): ITableOfContentsRegistry {
@@ -95,7 +96,7 @@ function activateTOC(
 
   // Create an rendered markdown editor TableOfContentsRegistry.IGenerator
   const renderedMarkdownGenerator = createRenderedMarkdownGenerator(
-    mimeDocumentTracker,
+    markdownViewerTracker,
     rendermime.sanitizer,
     toc
   );

+ 10 - 10
packages/toc/src/generators/markdowndocgenerator/index.ts

@@ -1,10 +1,17 @@
 // Copyright (c) Jupyter Development Team.
 // Distributed under the terms of the Modified BSD License.
 
-import { IDocumentWidget, MimeDocument } from '@jupyterlab/docregistry';
+import { ISanitizer } from '@jupyterlab/apputils';
+
+import { IDocumentWidget } from '@jupyterlab/docregistry';
 
 import { FileEditor, IEditorTracker } from '@jupyterlab/fileeditor';
 
+import {
+  IMarkdownViewerTracker,
+  MarkdownDocument
+} from '@jupyterlab/markdownviewer';
+
 import { TableOfContentsRegistry } from '../../registry';
 
 import {
@@ -14,8 +21,6 @@ import {
   INumberedHeading
 } from '../shared';
 
-import { IInstanceTracker, ISanitizer } from '@jupyterlab/apputils';
-
 import { MarkdownDocGeneratorOptionsManager } from './optionsmanager';
 
 import { TableOfContents } from '../../toc';
@@ -81,10 +86,10 @@ export function createMarkdownGenerator(
  * @returns A TOC generator that can parse markdown files.
  */
 export function createRenderedMarkdownGenerator(
-  tracker: IInstanceTracker<MimeDocument>,
+  tracker: IMarkdownViewerTracker,
   sanitizer: ISanitizer,
   widget: TableOfContents
-): TableOfContentsRegistry.IGenerator<MimeDocument> {
+): TableOfContentsRegistry.IGenerator<MarkdownDocument> {
   const options = new MarkdownDocGeneratorOptionsManager(widget, {
     needsNumbering: true,
     sanitizer
@@ -99,11 +104,6 @@ export function createRenderedMarkdownGenerator(
     itemRenderer: (item: INumberedHeading) => {
       return markdownDocItemRenderer(options, item);
     },
-    isEnabled: widget => {
-      // Only enable this if the editor mimetype matches
-      // one of a few markdown variants.
-      return isMarkdown(widget.content.mimeType);
-    },
     generate: widget => {
       let numberingDict: { [level: number]: number } = {};
       return Private.getRenderedHTMLHeadingsForMarkdownDoc(

+ 12 - 0
packages/toc/yarn.lock

@@ -208,6 +208,18 @@
     "@phosphor/widgets" "^1.6.0"
     react "~16.4.2"
 
+"@jupyterlab/markdownviewer@^1.0.0-alpha.3":
+  version "1.0.0-alpha.3"
+  resolved "https://registry.yarnpkg.com/@jupyterlab/markdownviewer/-/markdownviewer-1.0.0-alpha.3.tgz#140bc46fee0861d01f41053eead08927377cdc03"
+  dependencies:
+    "@jupyterlab/apputils" "^1.0.0-alpha.3"
+    "@jupyterlab/coreutils" "^3.0.0-alpha.3"
+    "@jupyterlab/docregistry" "^1.0.0-alpha.3"
+    "@jupyterlab/rendermime" "^1.0.0-alpha.3"
+    "@phosphor/coreutils" "^1.3.0"
+    "@phosphor/messaging" "^1.2.2"
+    "@phosphor/widgets" "^1.6.0"
+
 "@jupyterlab/notebook@^1.0.0-alpha.4":
   version "1.0.0-alpha.4"
   resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-1.0.0-alpha.4.tgz#62bd27c0aa409ea1eeb9d2dc3506d8874f74f0bb"