From 75b112c0e994efd991dad954aa38c9d37731787f Mon Sep 17 00:00:00 2001 From: Dou Date: Tue, 17 Mar 2020 15:19:13 +0100 Subject: [PATCH 1/6] Add version check --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cf7f4ad..2777c5a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,3 +28,5 @@ jobs: jlpm && jlpm run build jupyter labextension install . python -m jupyterlab.browser_check + - name: Check package version + uses: technote-space/package-version-check-action@v1 From 5029f51148510d57f5e764e6d8e39cce0d3abacd Mon Sep 17 00:00:00 2001 From: Dou Date: Tue, 17 Mar 2020 15:22:22 +0100 Subject: [PATCH 2/6] check for all branches --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2777c5a..53e539e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,7 +2,7 @@ name: Build on: push: - branches: master + branches: '*' pull_request: branches: '*' From 4f55e4e56fc5df9be0698d509456094ab69302e4 Mon Sep 17 00:00:00 2001 From: Dou Date: Sat, 23 May 2020 18:45:58 +0200 Subject: [PATCH 3/6] Add the files for JupyterLab 2.x --- LICENSE | 28 +++++++++++++++++++++++ OSSCAR-logo.png | Bin 32579 -> 0 bytes README.md | 3 +-- package.json | 27 ++++++++++++++++------ src/index.ts | 59 ++++++++++++++++++++++++------------------------ style/index.css | 3 +++ 6 files changed, 82 insertions(+), 38 deletions(-) create mode 100644 LICENSE delete mode 100644 OSSCAR-logo.png diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..238e2f4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,28 @@ +BSD 3-Clause License + +Copyright (c) 2020, Dou Du All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/OSSCAR-logo.png b/OSSCAR-logo.png deleted file mode 100644 index 36e2ec9f02bc2a345b0972fb10028f15cf1b5605..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32579 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 P_<8wUQ>jY9BIN%7$zkAA diff --git a/README.md b/README.md index 8cdf029..126f33e 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,7 @@ https://github.com/AixViPMaP/jlab-hide-code ## Requirements -* JupyterLab >= 1.2 -* JupyterLab < 2.0 +* JupyterLab >= 2.0 ## Install diff --git a/package.json b/package.json index fb41ddf..9b64a90 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "jupyterlab-hide-code", "version": "0.1.0", - "description": "A button in JupyterLab to hide the code cells.", + "description": "A JupyterLab extension to run and hide code cells. ", "keywords": [ "jupyter", "jupyterlab", @@ -25,20 +25,32 @@ "url": "https://github.com/osscar-org/jupyterlab-hide-code.git" }, "scripts": { + "build": "tsc", "clean": "rimraf lib tsconfig.tsbuildinfo", + + "eslint": "eslint . --ext .ts,.tsx --fix", + "eslint:check": "eslint . --ext .ts,.tsx", "prepare": "jlpm run clean && jlpm run build", "watch": "tsc -w" }, "dependencies": { - "@jupyterlab/application": "^1.2.1", - "@jupyterlab/apputils": "^1.2.1", - "@jupyterlab/services": "^4.2.0", - "@jupyterlab/docregistry": "^1.2.1", - "@jupyterlab/notebook": "^1.2.1", - "@phosphor/disposable": "^1.3.1" + "@jupyterlab/application": "^2.1.0", + "@jupyterlab/apputils": "^2.1.0", + "@jupyterlab/services": "^5.1.0", + "@jupyterlab/docregistry": "^2.1.0", + "@jupyterlab/notebook": "^2.1.0", + "@lumino/disposable": "^1.3.5", + "@lumino/widgets": "^1.11.1" }, "devDependencies": { + "@typescript-eslint/eslint-plugin": "^2.25.0", + "@typescript-eslint/parser": "^2.25.0", + "eslint": "^6.8.0", + "eslint-config-prettier": "^6.10.1", + "eslint-plugin-prettier": "^3.1.2", + + "prettier": "1.16.4", "rimraf": "^2.6.1", "typescript": "~3.7.0" }, @@ -46,6 +58,7 @@ "style/*.css" ], "jupyterlab": { + "extension": true } } diff --git a/src/index.ts b/src/index.ts index 07ec512..de3d438 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,13 +1,13 @@ import { IDisposable, DisposableDelegate -} from '@phosphor/disposable'; +} from '@lumino/disposable'; import { - PanelLayout -} from '@phosphor/widgets'; + PanelLayout +} from '@lumino/widgets'; import { - JupyterFrontEnd, JupyterFrontEndPlugin + JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; import { @@ -22,11 +22,12 @@ import { NotebookActions, NotebookPanel, INotebookModel } from '@jupyterlab/notebook'; +import '../style/index.css'; const plugin: JupyterFrontEndPlugin = { id: 'jlab-hide-code:buttonPlugin', autoStart: true, - activate + activate }; @@ -34,54 +35,54 @@ export class ButtonExtension implements DocumentRegistry.IWidgetExtension { createNew(panel: NotebookPanel, context: DocumentRegistry.IContext): IDisposable { - + let hideInputCode = () => { - NotebookActions.runAll(panel.content, context.session); + NotebookActions.runAll(panel.content, context.sessionContext); panel.content.widgets.forEach(cell => { if (cell.model.type === 'code'){ - let layout = cell.layout as PanelLayout; - layout.widgets[1].hide(); - } - }); + let layout = cell.layout as PanelLayout; + layout.widgets[1].hide(); + } + }); buttonHideInput.hide(); - buttonShowInput.show(); + buttonShowInput.show(); }; - let showInputCode = () => { + let showInputCode = () => { panel.content.widgets.forEach(cell => { if (cell.model.type === 'code'){ - let layout = cell.layout as PanelLayout; - layout.widgets[1].show(); - } - }); + let layout = cell.layout as PanelLayout; + layout.widgets[1].show(); + } + }); buttonHideInput.show(); - buttonShowInput.hide(); - }; - + buttonShowInput.hide(); + }; + let buttonHideInput = new ToolbarButton({ className: 'myButton', - iconClassName: 'fa fa-eye-slash', + iconClass: 'fa fa-eye-slash fontawesome-colors', onClick: hideInputCode, tooltip: 'Hide Input' }); - - let buttonShowInput = new ToolbarButton({ + + let buttonShowInput = new ToolbarButton({ className: 'myButton', - iconClassName: 'fa fa-eye', + iconClass: 'fa fa-eye fontawesome-colors', onClick: showInputCode, - tooltip: 'Show Input' + tooltip: 'Show Input' }); - buttonShowInput.hide(); + buttonShowInput.hide(); - panel.toolbar.insertItem(9, 'hideInput', buttonHideInput); - panel.toolbar.insertItem(9, 'showInput', buttonShowInput); + panel.toolbar.insertItem(11, 'hideInput', buttonHideInput); + panel.toolbar.insertItem(11, 'showInput', buttonShowInput); return new DisposableDelegate(() => { buttonHideInput.dispose(); - buttonShowInput.dispose(); + buttonShowInput.dispose(); }); } diff --git a/style/index.css b/style/index.css index e69de29..4803b2e 100644 --- a/style/index.css +++ b/style/index.css @@ -0,0 +1,3 @@ +.fontawesome-colors { + color: white; +} From 392e65922d0a6dbb4620b45f408d804086c49a16 Mon Sep 17 00:00:00 2001 From: Dou Date: Sat, 23 May 2020 21:00:03 +0200 Subject: [PATCH 4/6] Update for Jlab2.1.2 --- .github/workflows/build.yml | 11 ++++++----- src/index.ts | 4 ++-- style/index.css | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 53e539e..3696a27 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,7 +2,7 @@ name: Build on: push: - branches: '*' + branches: master pull_request: branches: '*' @@ -22,11 +22,12 @@ jobs: python-version: '3.7' architecture: 'x64' - name: Install dependencies - run: python -m pip install jupyterlab==1.2.6 + run: python -m pip install jupyterlab==2.1.2 - name: Build the extension run: | - jlpm && jlpm run build + jlpm + jlpm run eslint:check + jupyter labextension install . + python -m jupyterlab.browser_check - - name: Check package version - uses: technote-space/package-version-check-action@v1 diff --git a/src/index.ts b/src/index.ts index de3d438..6cccc2b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -63,14 +63,14 @@ class ButtonExtension implements DocumentRegistry.IWidgetExtension Date: Sat, 23 May 2020 21:24:03 +0200 Subject: [PATCH 5/6] Add more files --- .eslintignore | 5 +++++ .eslintrc.js | 32 ++++++++++++++++++++++++++++++++ .prettierignore | 4 ++++ .prettierrc | 3 +++ 4 files changed, 44 insertions(+) create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .prettierignore create mode 100644 .prettierrc diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..5c99ba7 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +node_modules +dist +coverage +**/*.d.ts +tests diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..a7d2a36 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,32 @@ +module.exports = { + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended' + ], + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + sourceType: 'module' + }, + plugins: ['@typescript-eslint'], + rules: { + '@typescript-eslint/interface-name-prefix': [ + 'error', + { prefixWithI: 'always' } + ], + '@typescript-eslint/no-unused-vars': ['warn', { args: 'none' }], + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/quotes': [ + 'error', + 'single', + { avoidEscape: true, allowTemplateLiterals: false } + ], + curly: ['error', 'all'], + eqeqeq: 'error', + 'prefer-arrow-callback': 'error' + } +}; diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..8103ecd --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +node_modules +**/node_modules +**/lib +**/package.json diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..544138b --- /dev/null +++ b/.prettierrc @@ -0,0 +1,3 @@ +{ + "singleQuote": true +} From 17f417a0d95b8ba3a671d8dd9b60db0426e118fd Mon Sep 17 00:00:00 2001 From: Dou Date: Sat, 23 May 2020 21:50:26 +0200 Subject: [PATCH 6/6] Fix the npm run eslint:check --- src/index.ts | 55 +++++++++++++++++++++++----------------------------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/src/index.ts b/src/index.ts index 6cccc2b..49c06cf 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,25 +1,20 @@ -import { - IDisposable, DisposableDelegate -} from '@lumino/disposable'; +import { IDisposable, DisposableDelegate } from '@lumino/disposable'; -import { - PanelLayout -} from '@lumino/widgets'; +import { PanelLayout } from '@lumino/widgets'; import { - JupyterFrontEnd, JupyterFrontEndPlugin + JupyterFrontEnd, + JupyterFrontEndPlugin } from '@jupyterlab/application'; -import { - ToolbarButton -} from '@jupyterlab/apputils'; +import { ToolbarButton } from '@jupyterlab/apputils'; -import { - DocumentRegistry -} from '@jupyterlab/docregistry'; +import { DocumentRegistry } from '@jupyterlab/docregistry'; import { - NotebookActions, NotebookPanel, INotebookModel + NotebookActions, + NotebookPanel, + INotebookModel } from '@jupyterlab/notebook'; import '../style/index.css'; @@ -30,29 +25,28 @@ const plugin: JupyterFrontEndPlugin = { activate }; - -export -class ButtonExtension implements DocumentRegistry.IWidgetExtension { - - createNew(panel: NotebookPanel, context: DocumentRegistry.IContext): IDisposable { - - let hideInputCode = () => { +export class ButtonExtension + implements DocumentRegistry.IWidgetExtension { + createNew( + panel: NotebookPanel, + context: DocumentRegistry.IContext + ): IDisposable { + const hideInputCode = () => { NotebookActions.runAll(panel.content, context.sessionContext); panel.content.widgets.forEach(cell => { - if (cell.model.type === 'code'){ - let layout = cell.layout as PanelLayout; + if (cell.model.type === 'code') { + const layout = cell.layout as PanelLayout; layout.widgets[1].hide(); } }); buttonHideInput.hide(); buttonShowInput.show(); }; - let showInputCode = () => { - + const showInputCode = () => { panel.content.widgets.forEach(cell => { - if (cell.model.type === 'code'){ - let layout = cell.layout as PanelLayout; + if (cell.model.type === 'code') { + const layout = cell.layout as PanelLayout; layout.widgets[1].show(); } }); @@ -61,14 +55,14 @@ class ButtonExtension implements DocumentRegistry.IWidgetExtension