Как создать собственное расширение темы JupyterLab css? - PullRequest
0 голосов
/ 16 января 2019

Я ищу простой способ применить пользовательский CSS к блокноту Jupyter Lab. Я пытался следовать документации и получаю следующую ошибку:

Missing extension module "lib/index.js"

после запуска jupyter labextension install .

Jupyter Lab использует Themes для настройки форматирования ноутбука. Кажется, это разумный способ сделать свои темы многократно используемыми, но у меня чертовски много времени выясняется, как внести и применить набор изменений, которые я хотел бы сделать.

В соответствии с документацией по темам, указанным выше:

Чтобы быстро создать тему, основанную на Light Theme JupyterLab, следуйте инструкции в соответствующем руководстве, а затем запустите jlpm run создать: тема из корневого каталога репозитория. Как только вы выберите имя, заголовок и описание, новая папка темы будет создана в текущий каталог. Вы можете переместить эту новую папку в папку ваш выбор, и начните вносить необходимые изменения.

Шаги в справочном пособии побудили меня сделать следующее:

  1. Клонировал репозиторий JupyterLab из GitHub, используя Fork .
  2. pip install -e .
  3. jlpm install
  4. jlpm run build
  5. jlpm run build:core
  6. jupyter lab build

Все из моего локального каталога, где я клонировал репо. Это имело побочный эффект от установки последней альфа-сборки JupyterLab, чего я не хочу. Мне нужно использовать стабильную версию, поэтому я удалил jupyterlab через conda, а затем переустановил его.

Затем я повторил вышеупомянутое, используя тег 0.35.4 JupyterLab. Я упоминаю об этом только в том маловероятном случае, когда двойная установка куда-то облажалась.

Затем, просматривая тему Авторская документация , я сначала:

  1. npm install, который работает без инцидентов
  2. npm run build, который жалуется на то, что ../application/tsconfig.json не найден, что я считаю правильным, потому что я не думаю, что использую какой-либо TypeScript (??)
  3. jupyter labextension install ., что не удается, поскольку lib/index.js не найден.

Я предполагаю, что это потому, что lib/index.js указан в "main".

Я не уверен, какие части этого конфига изменить и что оставить прежними, если моя единственная цель - изменить файлы .css в каталоге style.

Вот мой полный package.json файл:

{
  "name": "FirstTheme",
  "version": "0.19.1",
  "description": "My first Theme",
  "homepage": "https://github.com/jupyterlab/jupyterlab",
  "bugs": {
    "url": "https://github.com/jupyterlab/jupyterlab/issues"
  },
  "license": "BSD-3-Clause",
  "author": "Project Jupyter",
  "files": [
    "lib/*.d.ts",
    "lib/*.js.map",
    "lib/*.js",
    "static/*.css",
    "static/*.ttf",
    "static/*.eot",
    "static/*.woff",
    "static/*.woff2"
  ],
  "main": "lib/index.js",
  "types": "lib/index.d.ts",
  "directories": {
    "lib": "lib/"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/jupyterlab/jupyterlab.git"
  },
  "scripts": {
    "build": "tsc -b",
    "build:src": "tsc -b src",
    "build:webpack": "webpack",
    "clean": "rimraf lib && rimraf static",
    "prepublishOnly": "npm run build",
    "watch": "tsc -b --watch",
    "watch:src": "tsc -b src --watch",
    "watch:webpack": "webpack --watch"
  },
  "dependencies": {
    "@jupyterlab/application": "^0.19.1",
    "@jupyterlab/apputils": "^0.19.1",
    "ajv": "^6.7.0",
    "font-awesome": "~4.7.0"
  },
  "devDependencies": {
    "css-loader": "~0.28.7",
    "mini-css-extract-plugin": "^0.4.0",
    "npm-run-all": "~4.1.1",
    "rimraf": "~2.6.2",
    "svg-url-loader": "~2.3.1",
    "svgo": "~1.0.4",
    "svgo-loader": "~2.1.0",
    "typedoc": "~0.12.0",
    "typescript": "~3.1.1",
    "url-loader": "~1.0.1",
    "webpack": "~4.12.0",
    "webpack-cli": "^3.0.3"
  },
  "publishConfig": {
    "access": "public"
  },
  "jupyterlab": {
    "extension": true,
    "themeDir": "static"
  }
}
...