You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While it's possible to load modules, discovering them, and then learning about them, is a bit harder.
Proposed Solution
Surface known module information in a new button, Open JS Explorer (next to Load Current File as Extension), which opens a new MainAreaWidget (or sidebar).
Populate the panel with expanded templated metadata.
Lazily do best-effort discovery of extensions via PageConfig.getOption('federated_extension'). Use these to further discover sharedPackages from package.json, and/or novel #/jupyterlab/playground metadata.
Offer this as public API which allows for registering new known modules, including links to (versioned) source and docs.
While other extensions could make use of this, directly... the lower-entropy route would be to scrape PageConfig.getOption('federated_extensions'), fetch all the package.json files, and read all this stuff directly from the source of truth, as it would be able to harvest:
the package itself
name, homepage, and repository would at least be starting points
all the #/jupyterlab/sharePackages for name
from the names, derive the npmjs.org page
UI
As a first cut, the UI panel wouldn't deviate too far from zeal, offering best-effort search of, at least initially, the package name.
To really drive a zeal-like UI, however, one would need the typedoc JSON output, a la typedoc's own... which is another couple issues on at least two other repos, and then a bunch of backport PRs, but probably worth it.
The text was updated successfully, but these errors were encountered:
Closely related to #27. Sounds like good way forward.
"dynamic dynamic imports" (import('@jupyterlab/' + name)) are trickier than "dynamic imports", I did not get them to work but did not try very hard either - but would need thorough testing and it did not seem worth the maintenance burden risk.
Problem
While it's possible to load modules, discovering them, and then learning about them, is a bit harder.
Proposed Solution
Surface known module information in a new button,
Open JS Explorer
(next toLoad Current File as Extension
), which opens a new MainAreaWidget (or sidebar).Populate the panel with expanded templated metadata.
Lazily do best-effort discovery of extensions via
PageConfig.getOption('federated_extension')
. Use these to further discoversharedPackages
frompackage.json
, and/or novel#/jupyterlab/playground
metadata.Offer this as public API which allows for registering new known modules, including links to (versioned) source and docs.
Additional context
Typing
URLs
For known
@jupyterlab
stuff, the patterns is pretty formulaic:(this even works for independently-versioned ones like
services
, which is great)as with
@lumino
:The others are... well, the others.
Core
Discovery
While other extensions could make use of this, directly... the lower-entropy route would be to scrape
PageConfig.getOption('federated_extensions')
, fetch all thepackage.json
files, and read all this stuff directly from the source of truth, as it would be able to harvest:name
,homepage
, andrepository
would at least be starting points#/jupyterlab/sharePackages
forname
npmjs.org
pageUI
As a first cut, the UI panel wouldn't deviate too far from zeal, offering best-effort search of, at least initially, the package name.
To really drive a
zeal
-like UI, however, one would need the typedoc JSON output, a latypedoc
's own... which is another couple issues on at least two other repos, and then a bunch of backport PRs, but probably worth it.The text was updated successfully, but these errors were encountered: