{"id":27959126,"url":"https://github.com/datalayer-examples/jupyterlab-extensions-example","last_synced_at":"2025-10-29T13:15:37.290Z","repository":{"id":62109801,"uuid":"537813827","full_name":"datalayer-examples/jupyterlab-extensions-example","owner":"datalayer-examples","description":"🪐 JupyterLab extensions example.","archived":false,"fork":false,"pushed_at":"2024-05-05T13:13:27.000Z","size":7029,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-05-05T14:27:06.848Z","etag":null,"topics":["example","extension","jupyterlab"],"latest_commit_sha":null,"homepage":"https://jupyter-ui.datalayer.tech","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datalayer-examples.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-17T13:16:51.000Z","updated_at":"2024-05-05T14:27:08.603Z","dependencies_parsed_at":"2023-10-04T12:27:35.253Z","dependency_job_id":"86ee80d0-40f7-499e-a817-86b679bd75d2","html_url":"https://github.com/datalayer-examples/jupyterlab-extensions-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalayer-examples%2Fjupyterlab-extensions-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalayer-examples%2Fjupyterlab-extensions-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalayer-examples%2Fjupyterlab-extensions-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalayer-examples%2Fjupyterlab-extensions-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datalayer-examples","download_url":"https://codeload.github.com/datalayer-examples/jupyterlab-extensions-example/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252933392,"owners_count":21827502,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["example","extension","jupyterlab"],"created_at":"2025-05-07T18:28:41.051Z","updated_at":"2025-10-29T13:15:37.186Z","avatar_url":"https://github.com/datalayer-examples.png","language":"TypeScript","readme":"[![Datalayer](https://assets.datalayer.tech/datalayer-25.svg)](https://datalayer.io)\n\n[![Become a Sponsor](https://img.shields.io/static/v1?label=Become%20a%20Sponsor\u0026message=%E2%9D%A4\u0026logo=GitHub\u0026style=flat\u0026color=1ABC9C)](https://github.com/sponsors/datalayer)\n\n# JupyterLab Extensions Example\n\n\u003e Example to better understand how to extend JupyterLab.\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/datalayer-examples/jupyterlab-extensions-example/main?urlpath=lab) [![Github Actions Status](https://github.com/datalayer-examples/jupyterlab-extensions-example/workflows/Build/badge.svg)](https://github.com/datalayer-examples/jupyterlab-extensions-example/actions/workflows/build.yml)\n\n\u003cdiv align=\"center\" style=\"text-align: center\"\u003e\n  \u003cimg alt=\"Jupyter Extensions Example\" src=\"https://datalayer-jupyter-examples.s3.amazonaws.com/jupyterlab-extensions-example-highlight.png\" /\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\" style=\"text-align: center\"\u003e\n  \u003cimg alt=\"Jupyter Extensions Example\" src=\"https://datalayer-jupyter-examples.s3.amazonaws.com/jupyterlab-extensions-example-christmas-theme.png\" /\u003e\n\u003c/div\u003e\n\nThe audience of this repository is JupyterLab extension developers and is a complement, not a replacement, to these other resources:\n\n- The official [Read The Docs](https://jupyterlab.readthedocs.io/en/latest) documentation. The complete reading of that documentation is a prerequisite before digging more into the content present here. A special attention should be given to the [Develop Extension](https://jupyterlab.readthedocs.io/en/latest/extension/extension_dev.html) section.\n- The [extension examples](https://github.com/jupyterlab/extension-examples) repository. That repository contains many different extensions which cover each one specific feature, whereas this repository contains one extension that provides many features.\n- The [astronomy picture of the day extension](https://github.com/jupyterlab/jupyterlab_apod) documented on [this page](https://jupyterlab.readthedocs.io/en/stable/extension/extension_tutorial.html).\n\nThis repository has been bootstrapped with the [JupyterLab extension cookiecutter](https://github.com/jupyterlab/extension-cookiecutter-ts) with the following command and update to take into account JupyterLab 4.\n\n```bash\ncookiecutter \\\n  https://github.com/jupyterlab/extension-cookiecutter-ts \\\n  --checkout 3.0\n```\n\nIt is composed of a Python package named `jupyterlabextensions` for the server extension and a NPM package named `jupyterlabextensions` for the frontend extension. This repository is updated to track the latest JupyterLab 4 work. This means it will not work fine for previous versions of JupyterLab.\n\n## Documentation\n\nFollow the documentation to use and learn more on the internals of this extension.\n\n- [Concepts](./docs/concepts.md)\n- [Setup the Environment](./docs/env.md)\n- [Develop the Extensions](./docs/dev.md)\n- [Lumino Application](./docs/app-lumino.md)\n- [JupyterLab Application](./docs/app-jupyterlab.md)\n- [Application Plugins](./docs/plugins-application.md)\n- [Theme Plugins](./docs/plugins-theme.md)\n- [Mime Renderer Plugins](./docs/plugins-mime-renderer.md)\n- [Lint the Source](./docs/lint.md)\n- [Test the JavaScript](./docs/test-js.md)\n- [Test the Server](./docs/test-server.md)\n- [Integration Tests](./docs/test-integration.md)\n- [Continuous Integration](./docs/ci.md)\n- [Build JupyterLab](./docs/build-jupyterlab.md)\n- [Release](./docs/release.md)\n- [Notebook 7 Compatibility](./docs/notebook7.md)\n- [FAQ](./docs/faq.md)\n\n## ⚖️ License\n\nCopyright (c) 2022 Datalayer, Inc.\n\nReleased under the terms of the BSD-3 license (see [LICENSE](./LICENSE)).\n\n\u003chr/\u003e\n\nPS: To avoid duplicate content, we try to sit in the top-right quadrant of the `HOW TO GUIDES`.\n\n\u003cimg src=\"https://documentation.divio.com/_images/overview.png\"/\u003e\n\n_Source of the image: https://documentation.divio.com_\n\n","funding_links":["https://github.com/sponsors/datalayer"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatalayer-examples%2Fjupyterlab-extensions-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatalayer-examples%2Fjupyterlab-extensions-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatalayer-examples%2Fjupyterlab-extensions-example/lists"}