Skip to content

CheckListPlugin not available in importmap + Propshaft setups — - [ ] renders as literal text #1057

@zigzagjeff

Description

@zigzagjeff

Question

Is exposing CheckListPlugin on the roadmap?

I am building a task app and using Lexxy for the text editor. Claude is assisting.

We were trying to render [ ] as a clickable checkbox.

Or to render a task list, as per the Github text editor I am typing in now.

This appears to be available in Lexical, but is not exposed in lexxy.

Attempting to pull the lexical instance broke the editor.

Claude has supplied the rest of the documentation for you here:

Environment

  • lexxy gem: 0.1.26.beta
  • Rails: 8.1.3
  • Asset pipeline: Propshaft + importmap-rails

Background

Lexical ships CheckListPlugin natively. The capability exists in the
foundation — this request is about exposing it through Lexxy, not building
it from scratch.

The importmap constraint

In an importmap + Propshaft setup, importing @lexical/list directly
alongside Lexxy's bundled copy of Lexical creates two separate lexical
instances at runtime. Without a bundler to deduplicate them, the editor
breaks entirely. This makes the standard workaround unavailable in importmap
setups.

In jsbundling setups (esbuild, webpack) this is not an issue — the bundler
handles deduplication. The constraint is importmap-specific.

What would resolve it

Expose CheckListPlugin (or checklist support) through Lexxy's own exports,
so consumers never need to import @lexical/list separately. This eliminates
the dual-instance conflict and makes the feature available in both importmap
and jsbundling setups consistently.

Use case

- [ ] task list items are GFM-compatible and a natural fit for tile-based
note-taking applications. Currently they render as literal text rather than
interactive checkboxes.

Happy to contribute a PR if
the direction is confirmed and you can point me at the right surface in the
codebase.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions