Code Monkey home page Code Monkey logo

limber's Introduction

Glimdown

Write Ember or Glimmer rendered with markdown right in your browser.

REPL @ https://limber.glimdown.com
Interactive Glimmer Tutorial @ https://tutorial.glimdown.com


Open Issues | Pending Dependency Updates

Submitted PRs | Renovate PRs | Release Preview PR

Contributing

PRs always welcome! ❀️

Security

If there are any security concerns, please email security [at] nullvoxpopuli.com

Running / Development

  • pnpm i - installs all deps
  • pnpm start to start the apps, ui addon, and style watcher
    • other libraries can be manually started / built by cding to their directory and running the local scripts
  • pnpm lint to lint everything
  • pnpm lint:fix to fix lint violations, where applicable
  • pnpm test to test everything

Special Thanks

Cross-Browser testing provided by

limber's People

Contributors

amiarslimane avatar bartocc avatar github-actions[bot] avatar jaredgalanis avatar johanrd avatar kiwiupover avatar michalbryxi avatar neojp avatar nullvoxpopuli avatar renovate-bot avatar renovate[bot] avatar shaedrich avatar therealchiko avatar ynotdraw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

limber's Issues

Add support for multi-file "projects"

Right now the REPL represents a single file, for more complex demos / tutorials, we'll need to support multiple files -- which will require some changes to how storage works as with multiple files, we'll likely exceed the length limit of the URL. See #947

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • Update CodeMirror (@codemirror/autocomplete, @codemirror/commands, @codemirror/language, @codemirror/lint, @codemirror/view)
  • Update babel monorepo to v7.24.7 (@babel/helper-plugin-utils, @babel/runtime, @babel/standalone)
  • Update dependency @lezer/html to v1.3.10
  • Update dependency @lezer/lr to v1.4.1
  • Update dependency @shikijs/rehype to v1.6.2
  • Update dependency ember-auto-import to v2.7.3
  • Update dependency ember-container-query to v5.0.9
  • Update embroider monorepo (@embroider/addon-shim, @embroider/macros, @embroider/router)
  • Update Node.js to v20.14.0
  • Update dependency reactiveweb to v1.3.0
  • Update dependency rollup to v4.18.0
  • Update pnpm to v9.2.0
  • Update remark (major) (remark-gfm, remark-parse, remark-rehype)
  • πŸ” Create all rate-limited PRs at once πŸ”

Pending Status Checks

These updates await pending status checks. To force their creation now, click the checkbox below.

  • Update dependency browserslist to v4.23.1

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

github-actions
.github/workflows/ci.yml
  • wyvox/action v1
  • actions/upload-artifact v4
  • wyvox/action v1
  • wyvox/action v1
  • wyvox/action v1
  • wyvox/action v1
  • actions/download-artifact v4
.github/workflows/deploy-preview.yml
  • actions/checkout v4
  • felixmosh/turborepo-gh-artifacts v3
  • wyvox/action-setup-pnpm v3
  • actions/upload-artifact v4
  • actions/download-artifact v4
  • marocchino/sticky-pull-request-comment v2
.github/workflows/plan-release.yml
  • actions/checkout v4
  • actions/checkout v4
  • actions/setup-node v4
  • pnpm/action-setup v3
  • peter-evans/create-pull-request v6
.github/workflows/preview-embroider-upgrade.yml
  • actions/checkout v4
  • wyvox/action-setup-pnpm v3
  • peter-evans/create-pull-request v6
.github/workflows/publish.yml
  • actions/checkout v4
  • wyvox/action v1
nodenv
.node-version
  • node 20.13
npm
apps/repl/package.json
  • @ember/test-waiters ^3.1.0
  • @embroider/macros 1.16.1
  • @embroider/router 2.1.7
  • @glimmer/component ^1.1.2
  • @glimmer/tracking ^1.1.2
  • @xstate/inspect ^0.8.0
  • browserslist ^4.22.3
  • dompurify ^3.1.3
  • ember-auto-import ^2.7.2
  • ember-container-query 5.0.8
  • ember-deep-tracked ^2.0.0
  • ember-element-helper ^0.8.5
  • ember-focus-trap ^1.1.0
  • ember-headlessui 0.14.0
  • ember-modifier ^4.1.0
  • ember-primitives ^0.16.0
  • ember-resources ^7.0.1
  • ember-statechart-component 6.1.2
  • highlight.js ^11.9.0
  • highlightjs-glimmer ^2.2.1
  • html-to-image ^1.11.11
  • kolay ^0.0.3
  • lz-string ^1.5.0
  • path-browserify ^1.0.1
  • penpal ^6.2.2
  • reactiveweb ^1.2.0
  • rehype-raw ^6.1.1
  • rehype-stringify ^9.0.4
  • remark-html 16.0.1
  • remark-parse 10.0.2
  • remark-rehype ^10.1.0
  • stringify-object ^5.0.0
  • tracked-built-ins ^3.3.0
  • tracked-toolbox ^2.0.0
  • unified ^10.1.2
  • unist-util-flatmap ^1.0.0
  • unist-util-visit ^5.0.0
  • webpack-bundle-analyzer ^4.10.2
  • ws ^8.15.1
  • xstate 4.35.4
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @codemirror/view 6.26.3
  • @ember/optional-features ^2.0.0
  • @ember/string ^3.1.1
  • @ember/test-helpers ^3.2.1
  • @embroider/compat 3.5.0
  • @embroider/core 3.4.9
  • @embroider/webpack 4.0.0
  • @fortawesome/ember-fontawesome ^2.0.0
  • @fortawesome/fontawesome-svg-core ^6.5.1
  • @fortawesome/free-brands-svg-icons ^6.5.1
  • @fortawesome/free-regular-svg-icons ^6.5.1
  • @fortawesome/free-solid-svg-icons ^6.5.1
  • @glint/core 1.4.0
  • @glint/environment-ember-loose 1.4.0
  • @glint/environment-ember-template-imports 1.4.0
  • @glint/template 1.4.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @tsconfig/ember ^3.0.7
  • @types/babel__core ^7.20.5
  • @types/codemirror 5.60.15
  • @types/common-tags ^1.8.4
  • @types/dompurify ^3.0.5
  • @types/hast ^3.0.3
  • @types/htmlbars-inline-precompile ^3.0.3
  • @types/lz-string ^1.5.0
  • @types/mdast ^4.0.4
  • @types/qunit ^2.19.10
  • @types/rsvp ^4.0.9
  • @types/unist ^3.0.2
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • broccoli-asset-rev ^3.0.0
  • broccoli-merge-trees ^4.2.0
  • build-time-reporter-webpack-plugin ^1.4.3
  • chalk ^5.3.0
  • common-tags ^1.8.2
  • concurrently ^8.2.2
  • ember-async-data 1.0.3
  • ember-cli ~5.8.1
  • ember-cli-babel ^8.2.0
  • ember-cli-browserstack ^3.0.0
  • ember-cli-htmlbars ^6.3.0
  • ember-cli-inject-live-reload ^2.1.0
  • ember-cli-sri ^2.1.1
  • ember-cli-terser ^4.0.2
  • ember-load-initializers ^2.1.2
  • ember-maybe-import-regenerator ^1.0.0
  • ember-modifier ^4.1.0
  • ember-on-resize-modifier ^2.0.2
  • ember-page-title ^8.2.1
  • ember-qunit ^8.0.2
  • ember-resolver ^11.0.1
  • ember-route-template ^1.0.3
  • ember-source >= 5.5.0
  • ember-template-imports ^4.1.1
  • ember-template-lint ^6.0.0
  • ember-template-lint-plugin-prettier ^5.0.0
  • esbuild-loader ^4.0.3
  • eslint ^8.55.0
  • eslint-plugin-ember ^12.1.0
  • execa ^8.0.1
  • file-loader ^6.2.0
  • fractal-page-object ^0.5.0
  • loader.js ^4.7.0
  • onp ^2.0.4
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • process ^0.11.10
  • qunit ^2.20.0
  • qunit-console-grouper ^0.3.0
  • qunit-dom 3.1.2
  • rollup ^4.17.2
  • testem-failure-only-reporter ^1.0.0
  • type-fest 4.18.2
  • typescript ^5.4.5
  • vfile ^6.0.1
  • webpack 5.91.0
  • yn ^5.0.0
  • node >= v16
apps/tutorial/package.json
  • @glimmer/component ^1.1.2
  • @glimmer/tracking ^1.1.2
  • ember-async-data 1.0.3
  • ember-modifier ^4.1.0
  • ember-primitives ^0.16.0
  • ember-resources ^7.0.1
  • highlight.js ^11.9.0
  • highlightjs-glimmer ^2.2.1
  • kolay ^0.0.3
  • reactiveweb ^1.2.0
  • rehype-raw ^6.1.1
  • rehype-stringify ^9.0.4
  • remark-parse ^10.0.2
  • remark-rehype ^10.1.0
  • unified ^10.1.2
  • @babel/core ^7.24.5
  • @babel/runtime ^7.24.5
  • @ember/optional-features ^2.0.0
  • @ember/string ^3.1.1
  • @ember/test-helpers ^3.2.1
  • @ember/test-waiters ^3.1.0
  • @embroider/compat 3.5.0
  • @embroider/core 3.4.9
  • @embroider/webpack 4.0.0
  • @fortawesome/ember-fontawesome ^2.0.0
  • @fortawesome/fontawesome-svg-core ^6.5.1
  • @fortawesome/free-brands-svg-icons ^6.5.1
  • @fortawesome/free-regular-svg-icons ^6.5.1
  • @fortawesome/free-solid-svg-icons ^6.5.1
  • @glint/core 1.4.0
  • @glint/environment-ember-loose 1.4.0
  • @glint/environment-ember-template-imports 1.4.0
  • @glint/template 1.4.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @tsconfig/ember ^3.0.7
  • @types/qunit ^2.19.10
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • broccoli-asset-rev ^3.0.0
  • broccoli-funnel ^3.0.8
  • concurrently ^8.2.2
  • ember-auto-import ^2.7.2
  • ember-cached-decorator-polyfill ^1.0.2
  • ember-cli ~5.8.1
  • ember-cli-babel ^8.2.0
  • ember-cli-dependency-checker ^3.3.2
  • ember-cli-htmlbars ^6.3.0
  • ember-cli-inject-live-reload ^2.1.0
  • ember-cli-terser ^4.0.2
  • ember-load-initializers ^2.1.2
  • ember-modify-based-class-resource ^1.1.0
  • ember-page-title ^8.2.1
  • ember-qunit ^8.0.2
  • ember-resolver ^11.0.1
  • ember-source >= 5.5.0
  • ember-template-imports ^4.1.1
  • ember-template-lint ^6.0.0
  • eslint ^8.55.0
  • eslint-config-prettier ^9.1.0
  • eslint-plugin-ember ^12.1.0
  • eslint-plugin-n ^17.7.0
  • eslint-plugin-prettier ^5.1.3
  • eslint-plugin-qunit ^8.0.1
  • fs-extra ^11.2.0
  • globby ^14.0.0
  • loader.js ^4.7.0
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • qunit ^2.20.0
  • qunit-dom 3.1.2
  • typescript ^5.4.5
  • unplugin ^1.5.1
  • webpack 5.91.0
  • node >= v16
dev/package.json
  • chalk ^5.3.0
  • ember-apply ^2.12.0
  • execa ^8.0.1
  • fs-extra ^11.2.0
  • yargs ^17.7.2
  • @babel/core ^7.24.5
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @types/node ^20.12.12
  • @types/yargs ^17.0.32
  • eslint ^8.55.0
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • typescript ^5.4.5
  • node >= v16
package.json
  • @babel/core ^7.24.5
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • concurrently ^8.2.2
  • eslint ^8.55.0
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • release-plan ^0.9.0
  • turbo ^1.13.3
  • node >= 16
  • node 20.13.1
  • pnpm 9.1.1
  • pnpm 9.1.1
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • ember-element-helper ^0.8.5
  • ember-auto-import ^2.7.2
  • ember-source >= 5.5.0
  • webpack 5.90.3
packages/app-support/codemirror/package.json
  • @codemirror/autocomplete 6.16.0
  • @codemirror/commands 6.5.0
  • @codemirror/lang-html ^6.4.9
  • @codemirror/lang-javascript 6.2.2
  • @codemirror/lang-markdown 6.2.5
  • @codemirror/language ^6.10.1
  • @codemirror/language-data ^6.5.1
  • @codemirror/lint ^6.7.1
  • @codemirror/search 6.5.6
  • @codemirror/state 6.4.1
  • @codemirror/view 6.26.3
  • @lezer/common ^1.1.2
  • @lezer/highlight ^1.2.0
  • @lezer/html ^1.3.7
  • @lezer/markdown ^1.3.0
  • assert ^2.1.0
  • broccoli-funnel ^3.0.8
  • codemirror ^6.0.1
  • codemirror-languageserver ^1.11.0
  • eslint4b ^7.32.0
  • path-browserify ^1.0.1
  • @babel/core ^7.24.5
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • concurrently ^8.2.2
  • esbuild 0.21.3
  • esbuild-plugin-alias ^0.2.1
  • eslint ^8.55.0
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • recursive-copy ^2.0.14
  • typescript ^5.4.5
packages/app-support/limber-ui/addon/package.json
  • @babel/runtime ^7.24.5
  • @embroider/addon-shim 1.8.8
  • @embroider/macros 1.16.1
  • @fortawesome/ember-fontawesome ^2.0.0
  • @fortawesome/fontawesome-svg-core ^6.5.1
  • @fortawesome/free-brands-svg-icons ^6.5.1
  • @fortawesome/free-regular-svg-icons ^6.5.1
  • @fortawesome/free-solid-svg-icons ^6.5.1
  • decorator-transforms ^2.0.0
  • penpal ^6.2.2
  • reactiveweb ^1.2.0
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @babel/plugin-proposal-class-properties ^7.18.6
  • @babel/plugin-proposal-decorators ^7.23.9
  • @babel/plugin-syntax-decorators ^7.23.3
  • @babel/plugin-transform-typescript ^7.24.5
  • @babel/preset-typescript ^7.23.3
  • @ember/test-waiters ^3.1.0
  • @embroider/addon-dev 4.3.1
  • @glimmer/component ^1.1.2
  • @glimmer/tracking ^1.1.2
  • @glint/core 1.4.0
  • @glint/environment-ember-loose 1.4.0
  • @glint/environment-ember-template-imports 1.4.0
  • @glint/template 1.4.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @rollup/plugin-babel ^6.0.4
  • @tsconfig/ember ^3.0.7
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • babel-plugin-ember-template-compilation ^2.2.5
  • concurrently ^8.2.2
  • ember-async-data 1.0.3
  • ember-cli-htmlbars ^6.3.0
  • ember-modifier ^4.1.0
  • ember-primitives ^0.16.0
  • ember-resources ^7.0.1
  • ember-source >= 5.5.0
  • ember-template-imports ^4.1.1
  • ember-template-lint ^6.0.0
  • eslint ^8.55.0
  • eslint-plugin-ember ^12.1.0
  • eslint-plugin-n ^17.7.0
  • eslint-plugin-prettier ^5.1.3
  • execa ^8.0.1
  • fix-bad-declaration-output ^1.1.1
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • rollup ^4.17.2
  • rollup-plugin-copy ^3.5.0
  • typescript ^5.4.5
  • @ember/test-waiters ^3.1.0
  • @glimmer/component ^1.1.2
  • @glimmer/tracking ^1.1.2
  • ember-async-data ^1.0.3
  • ember-modifier ^4.1.0
  • ember-primitives >= 0.11.0
  • ember-resources >= 6.4.2
  • ember-source >= 5.5.0
packages/app-support/limber-ui/test-app/package.json
  • @ember/test-waiters ^3.1.0
  • @glint/template 1.4.0
  • ember-async-data 1.0.3
  • ember-modifier ^4.1.0
  • ember-primitives ^0.16.0
  • ember-resources ^7.0.1
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @ember/optional-features ^2.0.0
  • @ember/string ^3.1.1
  • @ember/test-helpers ^3.2.1
  • @embroider/test-setup 4.0.0
  • @fortawesome/ember-fontawesome ^2.0.0
  • @fortawesome/fontawesome-svg-core ^6.5.1
  • @fortawesome/free-brands-svg-icons ^6.5.1
  • @fortawesome/free-regular-svg-icons ^6.5.1
  • @fortawesome/free-solid-svg-icons ^6.5.1
  • @glimmer/component ^1.1.2
  • @glimmer/tracking ^1.1.2
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @typescript-eslint/parser ^7.9.0
  • broccoli-asset-rev ^3.0.0
  • concurrently ^8.2.2
  • ember-auto-import ^2.7.2
  • ember-cli ~5.8.1
  • ember-cli-babel ^8.2.0
  • ember-cli-dependency-checker ^3.3.2
  • ember-cli-htmlbars ^6.3.0
  • ember-cli-inject-live-reload ^2.1.0
  • ember-cli-sri ^2.1.1
  • ember-cli-terser ^4.0.2
  • ember-disable-prototype-extensions ^1.1.3
  • ember-fetch ^8.1.2
  • ember-load-initializers ^2.1.2
  • ember-page-title ^8.2.1
  • ember-qunit ^8.0.2
  • ember-resolver ^11.0.1
  • ember-source >= 5.5.0
  • ember-source-channel-url ^3.0.0
  • ember-template-lint ^6.0.0
  • ember-try ^3.0.0
  • eslint ^8.55.0
  • eslint-config-prettier ^9.1.0
  • eslint-plugin-ember ^12.1.0
  • eslint-plugin-n ^17.7.0
  • eslint-plugin-prettier ^5.1.3
  • eslint-plugin-qunit ^8.0.1
  • limber-ui ^1.0.0
  • loader.js ^4.7.0
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • qunit ^2.20.0
  • qunit-dom 3.1.2
  • typescript ^5.4.5
  • webpack 5.91.0
  • node >= v16
packages/app-support/styles/package.json
  • @tailwindcss/typography ^0.5.13
  • broccoli-funnel ^3.0.8
  • @babel/core ^7.24.5
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • autoprefixer ^10.4.17
  • concurrently ^8.2.2
  • eslint ^8.55.0
  • postcss ^8.4.32
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • tailwindcss ^3.3.6
packages/app-support/transpilation/package.json
  • @babel/standalone ^7.24.5
  • babel-plugin-htmlbars-inline-precompile ^5.3.1
  • path-browserify ^1.0.1
  • @babel/core ^7.24.5
  • @babel/plugin-proposal-class-properties ^7.18.6
  • @babel/plugin-proposal-decorators ^7.23.9
  • @babel/plugin-transform-runtime ^7.23.9
  • @babel/plugin-transform-typescript ^7.24.5
  • @babel/types ^7.24.5
  • @glimmer/component ^1.1.2
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @types/babel__core ^7.20.5
  • @types/babel__standalone ^7.1.7
  • @types/htmlbars-inline-precompile ^3.0.3
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • babel-loader ^9.1.3
  • ember-source >= 5.5.0
  • esbuild 0.21.3
  • eslint ^8.55.0
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • typescript ^5.4.5
  • webpack 5.91.0
  • webpack-cli ^5.1.4
  • webpack-node-externals ^3.0.0
  • @glimmer/component ^1.1.2
packages/consts/package.json
  • @babel/core ^7.24.5
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • concurrently ^8.2.2
  • eslint ^8.55.0
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • typescript ^5.4.5
packages/ember-repl/addon/package.json
  • @babel/helper-plugin-utils ^7.24.5
  • @babel/standalone ^7.24.5
  • @embroider/addon-shim 1.8.8
  • @embroider/macros 1.16.1
  • babel-import-util ^3.0.0
  • babel-plugin-ember-template-compilation ^2.2.5
  • broccoli-file-creator ^2.1.1
  • change-case ^5.4.4
  • common-tags ^1.8.2
  • content-tag ^1.2.1
  • decorator-transforms ^2.0.0
  • ember-resources ^7.0.1
  • line-column ^1.0.2
  • magic-string ^0.30.6
  • mdast ^3.0.0
  • parse-static-imports ^1.1.0
  • rehype-raw ^6.1.1
  • rehype-stringify ^9.0.4
  • remark-gfm ^3.0.1
  • remark-parse ^10.0.2
  • remark-rehype ^10.1.0
  • unified ^10.1.2
  • unist-util-visit ^5.0.0
  • uuid ^9.0.1
  • vfile ^6.0.1
  • @babel/core ^7.24.5
  • @babel/plugin-transform-typescript ^7.24.5
  • @babel/preset-typescript ^7.23.3
  • @babel/types ^7.24.5
  • @ember/test-helpers ^3.2.1
  • @ember/test-waiters ^3.1.0
  • @embroider/addon-dev 4.3.1
  • @glimmer/compiler ^0.92.0
  • @glimmer/component ^1.1.2
  • @glimmer/interfaces ^0.92.0
  • @glimmer/reference ^0.92.0
  • @glimmer/syntax ^0.92.0
  • @glimmer/tracking ^1.1.2
  • @glimmer/util ^0.92.0
  • @glint/core 1.4.0
  • @glint/environment-ember-loose 1.4.0
  • @glint/environment-ember-template-imports 1.4.0
  • @glint/template 1.4.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @rollup/plugin-babel ^6.0.4
  • @rollup/plugin-commonjs ^25.0.7
  • @tsconfig/ember ^3.0.7
  • @types/babel__core ^7.20.5
  • @types/babel__standalone ^7.1.7
  • @types/babel__traverse ^7.20.4
  • @types/hast ^3.0.3
  • @types/mdast ^4.0.4
  • @types/unist ^3.0.2
  • @types/uuid ^9.0.8
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • concurrently ^8.2.2
  • ember-resources ^7.0.0
  • ember-source >= 5.5.0
  • ember-template-imports ^4.1.1
  • ember-template-lint ^6.0.0
  • eslint ^8.55.0
  • eslint-plugin-ember ^12.1.0
  • eslint-plugin-n ^17.7.0
  • eslint-plugin-prettier ^5.1.3
  • execa ^8.0.1
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • publint ^0.2.6
  • rollup ~4.17.2
  • rollup-plugin-copy ^3.5.0
  • typescript ^5.4.5
  • @glimmer/compiler >= 0.86.0
  • @glimmer/syntax >= 0.86.0
  • @glint/template >= 1.3.0
packages/ember-repl/test-app/package.json
  • @shikijs/rehype ^1.5.2
  • @types/unist ^3.0.2
  • buffer ^6.0.3
  • common-tags ^1.8.2
  • ember-resources ^7.0.1
  • unist-util-visit ^5.0.0
  • @babel/core ^7.24.5
  • @babel/plugin-proposal-decorators ^7.23.9
  • @ember/optional-features ^2.0.0
  • @ember/string ^3.1.1
  • @ember/test-helpers ^3.2.1
  • @ember/test-waiters ^3.1.0
  • @embroider/compat 3.5.0
  • @embroider/core 3.4.9
  • @embroider/test-setup 4.0.0
  • @embroider/webpack 4.0.0
  • @glimmer/component ^1.1.2
  • @glimmer/tracking ^1.1.2
  • @glint/core 1.4.0
  • @glint/environment-ember-loose 1.4.0
  • @glint/environment-ember-template-imports 1.4.0
  • @glint/template 1.4.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @tsconfig/ember ^3.0.7
  • @types/common-tags ^1.8.4
  • @types/qunit ^2.19.10
  • @types/rsvp ^4.0.9
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • concurrently ^8.2.2
  • ember-auto-import ^2.7.2
  • ember-cli ~5.8.1
  • ember-cli-app-version ^6.0.1
  • ember-cli-babel ^8.2.0
  • ember-cli-dependency-checker ^3.3.2
  • ember-cli-htmlbars ^6.3.0
  • ember-cli-inject-live-reload ^2.1.0
  • ember-cli-sri ^2.1.1
  • ember-load-initializers ^2.1.2
  • ember-page-title ^8.2.1
  • ember-qunit ^8.0.2
  • ember-resolver ^11.0.1
  • ember-source >= 5.5.0
  • ember-source-channel-url ^3.0.0
  • ember-template-imports ^4.1.1
  • ember-template-lint ^6.0.0
  • ember-try ^3.0.0
  • eslint ^8.55.0
  • eslint-config-prettier ^9.1.0
  • eslint-plugin-ember ^12.1.0
  • eslint-plugin-n ^17.7.0
  • eslint-plugin-prettier ^5.1.3
  • eslint-plugin-qunit ^8.0.1
  • loader.js ^4.7.0
  • path-browserify ^1.0.1
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • qunit ^2.20.0
  • qunit-dom 3.1.2
  • typescript ^5.4.5
  • unified ^10.1.2
  • webpack 5.91.0
  • node >= v16
packages/horizon-theme/package.json
  • @babel/core ^7.24.5
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • concurrently ^8.2.2
  • eslint ^8.55.0
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • typescript ^5.4.5
packages/syntax/-infra/package.json
  • @codemirror/language ^6.10.1
  • @codemirror/view ^6.26.3
  • @lezer/generator ^1.6.0
  • @lezer/highlight ^1.2.0
  • @rollup/plugin-node-resolve ^15.2.3
  • rollup ^4.17.2
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • eslint ^8.55.0
  • prettier ^3.2.5
  • typescript ^5.4.5
  • node >= v16
packages/syntax/dev-preview/package.json
  • @codemirror/state ^6.4.0
  • @lezer/common ^1.1.2
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • eslint ^8.55.0
  • prettier ^3.2.5
  • typescript ^5.4.5
  • node >= v16
packages/syntax/glimdown/codemirror/dev/package.json
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @codemirror/language ^6.10.1
  • @codemirror/state ^6.4.0
  • @codemirror/theme-one-dark ^6.1.2
  • @codemirror/view ^6.26.3
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • eslint ^8.55.0
  • prettier ^3.2.5
  • typescript ^5.4.5
  • vite ^5.2.11
  • node >= v16
packages/syntax/glimdown/codemirror/package.json
  • @codemirror/lang-html ^6.4.9
  • @codemirror/lang-markdown ^6.2.5
  • @codemirror/language-data ^6.5.1
  • @lezer/common ^1.1.2
  • @lezer/highlight ^1.2.0
  • @lezer/html ^1.3.7
  • @lezer/javascript ^1.4.16
  • @lezer/lr ^1.4.0
  • @lezer/markdown ^1.3.0
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @codemirror/buildhelper ^1.0.1
  • @codemirror/language ^6.10.1
  • @codemirror/state ^6.4.0
  • @codemirror/view ^6.26.3
  • @lezer/generator ^1.6.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @tsconfig/ember ^3.0.7
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • codemirror ^6.0.1
  • concurrently ^8.2.2
  • eslint ^8.55.0
  • prettier ^3.2.5
  • rollup ^4.17.2
  • rollup-plugin-ts ^3.4.5
  • typescript ^5.4.5
  • @codemirror/state ^6.3.3
  • @codemirror/view ^6.22.3
packages/syntax/glimdown/lezer/package.json
  • @lezer/highlight ^1.2.0
  • @lezer/lr ^1.4.0
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @lezer/generator ^1.6.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @rollup/plugin-node-resolve ^15.2.3
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • eslint ^8.55.0
  • mocha ^10.2.0
  • prettier ^3.2.5
  • rollup ^4.17.2
  • typescript ^5.4.5
packages/syntax/glimmer-js/codemirror/dev/package.json
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @codemirror/language ^6.10.1
  • @codemirror/state ^6.4.0
  • @codemirror/theme-one-dark ^6.1.2
  • @codemirror/view ^6.26.3
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • eslint ^8.55.0
  • prettier ^3.2.5
  • typescript ^5.4.5
  • vite ^5.2.11
packages/syntax/glimmer-js/codemirror/package.json
  • @codemirror/lang-css ^6.2.1
  • @codemirror/lang-html ^6.4.9
  • @codemirror/lang-javascript ^6.2.1
  • @codemirror/language ^6.10.1
  • @lezer/highlight ^1.2.0
  • @lezer/javascript ^1.4.16
  • @lezer/lr ^1.4.0
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @codemirror/buildhelper ^1.0.1
  • @codemirror/view ^6.26.3
  • @lezer/common ^1.1.2
  • @lezer/generator ^1.6.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @tsconfig/ember ^3.0.7
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • codemirror ^6.0.1
  • concurrently ^8.2.2
  • eslint ^8.55.0
  • prettier ^3.2.5
  • rollup ^4.17.2
  • rollup-plugin-ts ^3.4.5
  • typescript ^5.4.5
  • @codemirror/view ^6.22.3
packages/syntax/glimmer-s-expression/lezer/package.json
  • @lezer/highlight ^1.2.0
  • @lezer/lr ^1.4.0
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @lezer/generator ^1.6.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @rollup/plugin-node-resolve ^15.2.3
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • eslint ^8.55.0
  • prettier ^3.2.5
  • rollup ^4.17.2
  • typescript ^5.4.5
packages/syntax/glimmer/codemirror/dev/package.json
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @codemirror/language ^6.10.1
  • @codemirror/state ^6.4.0
  • @codemirror/theme-one-dark ^6.1.2
  • @codemirror/view ^6.26.3
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • eslint ^8.55.0
  • prettier ^3.2.5
  • typescript ^5.4.5
  • vite ^5.2.11
  • node >= v16
packages/syntax/glimmer/codemirror/package.json
  • @codemirror/autocomplete 6.16.0
  • @codemirror/lang-css ^6.2.1
  • @codemirror/lang-html ^6.4.9
  • @codemirror/lang-javascript ^6.2.1
  • @codemirror/state ^6.4.0
  • @codemirror/view ^6.26.3
  • @lezer/highlight ^1.2.0
  • @lezer/html ^1.3.7
  • @lezer/javascript ^1.4.16
  • @lezer/lr ^1.4.0
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @codemirror/buildhelper ^1.0.1
  • @codemirror/language ^6.10.1
  • @lezer/common ^1.1.2
  • @lezer/generator ^1.6.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @tsconfig/ember ^3.0.7
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • codemirror ^6.0.1
  • concurrently ^8.2.2
  • eslint ^8.55.0
  • prettier ^3.2.5
  • rollup ^4.17.2
  • rollup-plugin-ts ^3.4.5
  • typescript ^5.4.5
  • @lezer/common ^1.1.2
packages/syntax/glimmer/lezer/package.json
  • @lezer/common ^1.1.2
  • @lezer/highlight ^1.2.0
  • @lezer/html ^1.3.7
  • @lezer/javascript ^1.4.16
  • @lezer/lr ^1.4.0
  • @babel/core ^7.24.5
  • @babel/eslint-parser ^7.24.5
  • @codemirror/buildhelper ^1.0.1
  • @codemirror/language ^6.10.1
  • @lezer/generator ^1.6.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • @tsconfig/ember ^3.0.7
  • @typescript-eslint/eslint-plugin ^7.9.0
  • @typescript-eslint/parser ^7.9.0
  • codemirror ^6.0.1
  • concurrently ^8.2.2
  • eslint ^8.55.0
  • prettier ^3.2.5
  • rollup ^4.17.2
  • rollup-plugin-ts ^3.4.5
  • typescript ^5.4.5
packages/untyped/package.json
  • @glint/template 1.4.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • eslint ^8.55.0
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • typescript ^5.4.5
spikes/unified/package.json
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • eslint ^8.55.0
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • node >= v16
spikes/url-shortening/package.json
  • @algorithm.ts/base64 3.1.1
  • @algorithm.ts/huffman 3.1.1
  • filesize ^10.1.2
  • globby ^14.0.0
  • jsoncrush ^1.1.8
  • lz-string ^1.5.0
  • tinybench ^2.8.0
  • @nullvoxpopuli/eslint-configs ^4.0.0
  • eslint ^8.55.0
  • prettier ^3.2.5
  • prettier-plugin-ember-template-tag 2.0.2
  • typescript ^5.4.5
  • vitest ^1.6.0
  • node >= v16

  • Check this box to trigger a request for Renovate to run again on this repository

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: .github/renovate.json5
Error type: The renovate configuration file contains some invalid settings
Message: Invalid configuration option: packageRules[1].packagePatters, packageRules[1]: Each packageRule must contain at least one match* or exclude* selector. Rule: {"groupName":"Monaco Editor","packagePatters":["monaco-*"]}

Here is how to use the ESM version of unified and remark:

https://jsbin.com/serolidome/1/edit?html,output

The caveat here is that we'd lose the "inline" glimmer features, like what is demostrated here

Discussion on the future: https://github.com/orgs/unifiedjs/discussions/213

And separate repo to implement ideas: https://github.com/nullvoxpopuli/glimdown

The solution is going to be a custom parser that hopefully uses @glimmer/parser, and converts the AST to UAST or whatever it's called -- or at least uses the format.

Related:

(not that this project uses Docfy, but we're solving similar things -- Limber: at runtime, Docfy: at build time)

Could not find module `limber/helpers/state` imported from `(require)`

  1. Go here: https://limber.glimdown.com/edit?c=MQAgogZhCmDGAuBnEBLAduAtgI2gJwCgCBJEAEwHs0ByeEACwEMA3aERtATxGcYBsUZEAFdEbWIzHIIFPCGhQ4SEPCZ0JGCCjroV6bmWiYKiADQhEFEMWqYQAK1F0%2BFAOav0rlVdXiqlvjYAd3poDGhGWHp5RQQQCGE0BBQqVGQJPkCyADoiAHVQjApsMTxmTxVQkFwmctkQCghK6DFyIxNzXAthPDZ4K1q%2Bquw8CiDSkFh-CkCGgAcw3IJgUAAZRk4KYTpIGAQiACVEiwpMP0NyHor0bRR%2BEF60Q0IAAzfXe2QBVhA53vLoEECFM0Ig6JhOLslCAALwgAAUAEpYQA%2BSbTQLZFyueHUPCJZBUWDQaiIgDcRAAPPAjHM%2BIwaSiCCAQABvVkIiFQhDIgC%2BvIIlIA9DTMHSGdAmW8XkQVuBYnQQmF2HhXMIzmhlFEOK5oERiOEcPhzJthCJEMJ%2BHwDFRaCA0NBoEJ%2BuQfPQUIgCLgJKI2M8UKwhGQGYxfgyaXhQQwWGxRJbMtxXBR1BRWL0yAR4br4BGzA8Wls8MS89B4LBEUtpR8vgG2H9oACgSgxbI6GCJfFRnZqAIjXghaE%2BAs8Ighe2adQKc25q22Q0MLzO6cQNQAAJGXD94xkFBafCToggsEgLkK2EImQUZEwtFHmbQLFuXGXtL2sYr8yX8mH-x0PLaehuToOFqVpelGWZNkOXhU89joVcv35QURTAiUUQpQVRXFCCWXZYBAjoeFx2gZFJBAAAfRByKQlkWUpdA5m2KDUmoBjtmoCxsnQWBeg1eB%2BUmelEEQGEACJsFkZ5RJAIUmVokBKX-VQgJABCKAoGF2UQbJeD4YRoAE2TIPZIUCKQ4UsPAyUCGlWVQCA5BGG2CgAFp4DwSIAGt9SaSJi0QCp3K8p1yBDEAggA3RQwSJJ4BSIo5AUODzAIbRwpQTJ2GctyPNgTzzA4IRehc-EMCVDBfBUXLPJC4N4FDbU0F1bSiCrT4QG%2BPVp1nABhU4ZwdTUl27VdXF7M5%2BymFtBvgA9urwOgOVSRcIC7Fd1z7IVt13FB9ynFsFrnIK8pCla1rXMbmwmkVqs8A8CGgAAPGdDsMCAnL4dQhOQAARdp5EemknmQPrprCRbINXY6aqEXT9IpFlINg6E4SRVE2Uglk70xbF4ReaGQrh6AAC4QAAElZVQPR0-h9N5F5vxZAVIOEOY6rYVGG3B680Sp7SifPLnNWyerVVLGm9OgBGQEg0CxSsuTaPZBE%2BeyZGeRAJDMYUtjFtZFjdY41XWfZgTYG%2BsSJLwKSZMVizUIggVpSAA&format=glimdown

(linked from 'demo' here: https://nullvoxpopuli.com/2022-09-05-gjs-cookbook-examples/)

  1. See error Could not find module 'limber/helpers/state' imported from '(require)':
Screenshot 2024-05-22 at 22 30 22

Some 404 errors on startup tutorial

Hi!
I've just cloned the repo, installed the dependencies, and started it with the command pnpm run start:tutorial -- --port 4201, the app seems to start properly:

tutorial:start: Building into /private/var/folders/3m/5qk_qwcd7r9dk6txxw00g4gr0000gp/T/embroider/7e15f3
tutorial:start: - building...
tutorial:start:
tutorial:start: Build successful (5250ms) – Serving on http://localhost:4201/
tutorial:start:
tutorial:start: Slowest Nodes (totalTime >= 5%) | Total (avg)
tutorial:start: -+-
tutorial:start: @embroider/webpack (1) | 3277ms
tutorial:start: @embroider/compat/addons (1) | 430ms
tutorial:start: @embroider/compat/app (1) | 388ms
tutorial:start:

but opening the url, I'm getting these errors:
limber-tutorial-errors

Not sure if I'm missing a configuration here?

Add support for *.gjs in live code blocks

Example:

code-fence tag: gjs live

// ```gjs live
const foo = 'hi';

<template>
  woosh {{foo}}
</template>
'''
// ```gjs live
import Component from '@glimmer/component';

class Foo extends Component {
  @tracked num = 2;

  <template>
    {{this.num}}
  </template>
}

in both cases, the live tag creates a component named after guidFor(the content in the codefence) and then replaces the codefence block with an invocation to that component in the markdown

Allow importing from arbitrary npm packages for better demos

I had wanted to use Limber for showcasing https://github.com/NullVoxPopuli/ember-statechart-component/, because the story here is really slick with template imports -- but xstate (and ember-statechart-component) are not included in the Limber build.

It'd be great if you could import from 'x' and have x added to your page at runtime, kinda like what https://runkit.com/ does for node packages

How this might look (but with gjs live instead of just gjs)

[Quest]: Improve editing experience

  • lint in the browser ember-template-lint/ember-template-lint#2120
  • contextual errors from the VM (line them up in the editor, rather than render them in a corner of the window)
  • be able to capture and intercept VM crashes that currently cause the app to refresh+redirect
  • add inline "hints" to the editor(s) so that it's clear if the cursor is in markdown mode or ember mode
  • add completion APIs
  • Decide on CodeMirror vs Monaco CodeMirror - more accessible. Will be more work since it's newer / less support, but accessibility is important.
  • determine if a pre-configured editor for ember can/should be pre-packaged and shipped as an addon
    • this app then almost becomes solely the combination of 2 addons + some layout
  • CodeMirror specific improvements
    • Finish NullVoxPopuli/glimdown#2
      • Write Glimmer Language
        • Auto-indentation on new line
        • Highlighting
        • Intellisense / scope
      • Write GJS/GTS Language
      • Write Glimdown Language
        • GJS/GTS will be via tagged code fences

Make Ember (the framework) Tutorial using embedded StackBlitz SDK

Docs: https://developer.stackblitz.com/platform/api/javascript-sdk
Prereq:

  • embroider ships vite support
  • I make another subdomain, maybe https://ember.glimdown.com
  • Figure out how to load up stackblitz projects based off some starter template + some modifications to allow the tutorial chapters to be hosted within this repo

Nice to have:

  • stackblitz provides a way to hide files, or categorize them somehow?
    since frameworks tend to have a lot of boilerplate (at least for mostly empty projects), it would be nice to guide focus to only reveal what files are needed for a given tutorial chapter.

Ember-resources example with composition of remoteData with async authorization headers?

Hi. Thanks for the fun and useful https://tutorial.glimdown.com.

When looking at the remote-data and keeping latest examples I get exited about the simplicity and composability.

However, I struggled to wrap my head around good practices with async inputs for the remoteData function. In my case I use firebase getIdToken , which returns a promise.

Ideally I'd like to compose a RemoteData function that awaits the results of getIdToken().

// expecting this to return with `isLoading` state if getIdToken is pending or if remoteData is pending:
@use myData = resource(async (hooks) => {
  let token = await getAuth().currentUser?.getIdToken()
  return remoteData<string>(hooks, this.args.fetchUrl, {
    headers: {
      Authorization: `Bearer ${token}`
      }
    }
  )
})

@use latest = keepLatest({
  value: () => this.myData.value,
  when: () => this.myData.isLoading,
});

However, simply marking the function and awaiting the token, makes this.myData return as Promise<State<string>>, not as State<string>, so I'm probably on the wrong tracks here.

Any ideas for better composibilbity? Wrapping it in a resourceFactory? Or do I anyways need to create a custom wrapper util that returns a remoteData like State if getIdToken is running?

Posting here, since I think it could be a useful exercise in the glimdown tutorial. Thanks!

[repl, the library] Add support for rendering *any* codefence

We can support any/all renderers via dynamic import, keyed off the code fence.

import { compile } from 'ember-repl';

await compile(text, {
  formats: {
    /**
     * example
     * ```gjs live
     * content here
     * ```
     */
    gjs: {
      needsLiveMeta: true, // default
      compiler: () => import(...),
    },
    /**
     * example
     * ```jsx live
     * content here
     * ```
     */
    jsx: {
      compiler: () => import(...),
    },
    /**
     * example
     * ```svelte live
     * content here
     * ```
     */
    svelte: {
      compiler: () => import(...),
    },
    /**
     * example
     * ```mermaid
     * content here
     * ```
     */
    mermaid: {
      needsLiveMeta: false, // compile and replace with mermaid output, not preview
      compiler: () => import(...),
    },
  },
  onSuccess: (RootComponent) => {
    /* do something with the rendered `text` */
  }
  /* ... */
});

To support https://mermaid.js.org/config/usage.html

The type for the above:

// ComponentLike is "native" to the system, since it's Ember
// string outputs will be innerHTML'd
//
// optionally, 
//   nothing may be returned of the compiler wants to render in to the parentElement
type Compiled = ComponentLike | string;
type Compiler = 
  | (textContent: string, parentElement: HTMLElement) => Compiled | void;

interface LanguageOptions {
  compiler: () => Promise<{ default: Compiler }>
  /* ... */
}

Once the change is made to the REPL, this'll need to be updated:

[Tutorial] show using AbortController for simpler cleanup with event listeners

From @sukima: https://tritarget.org/#examples%2Fpage-unload-management%2Fevent-handler-abort

Instead of:

  @action setupWindowListener() {
    /* setup */
    window.addEventListener('beforeunload', this.handleUnload)

    registerDestructor(this, () => {
      /* teardown */
      window.removeEventListener('beforeunload', this.handleUnload)
    });
  }

Maybe this?

  @action setupWindowListener() {
    /* setup */
    let cleanup = new AbortController();
    let { signal } = cleanup;
    window.addEventListener('beforeunload', this.handleUnload, { signal })

    /* tear down */
    registerDestructor(cleanup, cleanup.abort);
  }

Implement Glimdown Syntax for Monaco, VSCode, and (neo)vim

Markdown support in most editors implements an HTML highlighter, which doesn't include Glimmer syntax.

Not all editors' syntax parsing engines will allow to match on a tag and backtrack that match to the nested parser -- because of that, some implementations may need to re-implement an entire syntax, rather than just extend and differ.

  • Monaco
    • gjs
    • glimmer in markdown instead of html
  • CodeMirror
    • gjs
  • VS Code
    • gjs
    • glimmer in markdown instead of html
  • (neo)vim
    • gjs
    • glimmer in markdown instead of html
  • highlightjs
    • gjs
    • glimmer in markdown instead of html
  • prismjs
    • gjs
    • glimmer in markdown instead of html

Integrate with 3rd party documentation tools (Vitepress, Notebooks, etc)

Prereqs:

  • #32
  • #1632
    • Will need to support probably more markdown environments?
    • Will need to move compiler to a service worker

Goals:

  • for any documentation tool,
    • provide a plugin for their system to emit the runtime code
    • allow rendering of any language/tool inline

Stretch Goals:

  • provide fallback compiler in case service worker is undesired for whatever reason
    • these REPLs would not be allowed to import from NPM

VitePress:

  • vuejs/vitepress#3676
  • uses markdown-it instead of rehype/remark
  • I'd need to add a Vue Component that calls in to ember-repl
    • (not bad, tbh, since ember-repl is mostly ember-agnostic, just needs some already planned re-arranging)

Markdoc:

Allow alternate storage options -- github gists, etc

When approaching the limit of the URL, we should immediately store the project to local storage and clear the URL, after which point we can prompt to the user to save to a GitHub Gist (or elsewhere) if they want to share their demo with someone.

Will unblock #946

Add various copy buttons to code snippets

Kinda like what GitHub implemented, except:

  • copy code block as text implemented
  • copy code block as image
  • copy rendered document as image

what's tricky about this is that the content is all dynamic, so we can't statically render copy buttons with a menu or popover.

  • this could be rendered elsewhere in the document, and hidden
  • when a pre tag or rendered document is hovered, we could show the elsewhere'd content and change the position to be near the hovered element

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.