{"id":43525852,"url":"https://github.com/kitconcept/volto-plate","last_synced_at":"2026-02-03T15:01:09.624Z","repository":{"id":335639755,"uuid":"1082713579","full_name":"kitconcept/volto-plate","owner":"kitconcept","description":"platejs.org block Plone Volto add-on","archived":false,"fork":false,"pushed_at":"2026-01-31T10:46:30.000Z","size":11346,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-31T22:19:15.528Z","etag":null,"topics":["add-on","platejs","plone","volto"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kitconcept.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-24T16:47:51.000Z","updated_at":"2026-01-31T10:44:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kitconcept/volto-plate","commit_stats":null,"previous_names":["kitconcept/volto-plate"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/kitconcept/volto-plate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitconcept%2Fvolto-plate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitconcept%2Fvolto-plate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitconcept%2Fvolto-plate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitconcept%2Fvolto-plate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kitconcept","download_url":"https://codeload.github.com/kitconcept/volto-plate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitconcept%2Fvolto-plate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29047789,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T14:55:20.264Z","status":"ssl_error","status_checked_at":"2026-02-03T14:55:19.725Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["add-on","platejs","plone","volto"],"created_at":"2026-02-03T15:00:52.463Z","updated_at":"2026-02-03T15:01:09.614Z","avatar_url":"https://github.com/kitconcept.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cpicture\u003e\n  \u003csource align=\"right\" width=\"200\" media=\"(prefers-color-scheme: dark)\" srcset=\"https://kitconcept.com/kitconcept-white.svg\"\u003e\n  \u003cimg align=\"right\" width=\"200\" alt=\"kitconcept, GmbH\" src=\"https://kitconcept.com/kitconcept-black.svg\"\u003e\n\u003c/picture\u003e\n\n# Volto Plate.js support \u003cbr/\u003e(@kitconcept/volto-plate)\n\n\u003cdiv align=\"center\"\u003e\n\nAn add-on that adds a [Plate.js](https://www.platejs.org/) support in Volto.\n\n[![npm](https://img.shields.io/npm/v/@kitconcept/volto-plate)](https://www.npmjs.com/package/@kitconcept/volto-plate)\n[![Code analysis checks](https://github.com/kitconcept/volto-plate/actions/workflows/code.yml/badge.svg)](https://github.com/kitconcept/volto-plate/actions/workflows/code.yml)\n[![Unit tests](https://github.com/kitconcept/volto-plate/actions/workflows/unit.yml/badge.svg)](https://github.com/kitconcept/volto-plate/actions/workflows/unit.yml)\n[![Acceptance tests](https://github.com/kitconcept/volto-plate/actions/workflows/acceptance.yml/badge.svg)](https://github.com/kitconcept/volto-plate/actions/workflows/acceptance.yml)\n\u003c/div\u003e\n\n\u003e [!WARNING]\n\u003e This package is in early development and should be used with caution in production environments.\n\u003e It is subject to breaking changes and incomplete features.\n\u003e Please test thoroughly and report any issues you encounter.\n\n## Features\n\nThis package provides support for the [Plate.js](https://www.platejs.org/) rich text editor in Volto.\n\nIt provides \"on-the-fly\" conversion between Slate.js and Plate.js data models, allowing seamless integration of Plate.js-based blocks in Volto.\nThe conversion is only one-way: from Slate.js to Plate.js when loading data into the editor. Once in Plate.js, the data remains in Plate.js format.\nIn the future, we may considering adding a backend package providing scripts for batch converting back and forth between the two formats if needed.\n\nPlate.js uses the concept of \"blocks\" that collide with the Volto ones. From now on, we will refer to Volto blocks as \"Volto blocks\" and Plate.js blocks as \"Plate blocks\" to avoid confusion.\n\nFrom the user perspective, it provides:\n-   A total replacement of slate (text) default block using Plate.js (by default) using block model 3.\n-   A new `Plate` block type, which uses Plate.js as the rich text editor.\n-   Basic features using the inline floating toolbar, extending the default Volto one with experimental additions.\n-   Slash commands to insert both Plate blocks and Volto blocks.\n-   Split block in here slash command.\n-   Add new block slash command.\n-   Ability to insert a Volto image block as a Plate image block (inline).\n-   Ability to insert existing \"normal\" Volto blocks via the (+) button inside the Plate block.\n\n## Behavior notes\n\nIt keeps in place the default Volto rich text block (slate-based) assumptions, so you can have multiple plate.js-based blocks in the same page.\nHowever, pressing `ENTER` won't create a new block, instead, it will create a new paragraph inside the same block, as is standard behavior in rich text editors.\nYou can create new blocks using the block chooser as usual, and using the `/` slash command inside the `plate.js`-based block.\n\n## Developer features\n\nFrom the developer perspective, it provides:\n-   A Volto block adapter to reuse existing Volto blocks inside Plate-based editors (e.g. rich text).\n-   A Plate plugin to reuse the Volto Image block inside Plate-based editors.\n-   A Plate-based Text block implementation for Volto, replacing the default Slate-based one.\n\n## Installation\n\nTo install your project, you must choose the method appropriate to your version of Volto.\n\n\n### Volto 18 and later\n\nAdd `@kitconcept/volto-plate` to your `package.json`:\n\n```json\n\"dependencies\": {\n    \"@kitconcept/volto-plate\": \"*\"\n}\n```\n\nAdd `@kitconcept/volto-plate` to your `volto.config.js`:\n\n```javascript\nconst addons = ['@kitconcept/volto-plate'];\n```\n\nIf this package provides a Volto theme, and you want to activate it, then add the following to your `volto.config.js`:\n\n```javascript\nconst theme = '@kitconcept/volto-plate';\n```\n\n## Test installation\n\nVisit http://localhost:3000/ in a browser, login, and check the awesome new features.\n\n\n## Development\n\nThe development of this add-on is done in isolation using a new approach using pnpm workspaces and latest `mrs-developer` and other Volto core improvements.\nFor this reason, it only works with pnpm and Volto 18 (currently in alpha).\n\n\n### Prerequisites ✅\n\n-   An [operating system](https://6.docs.plone.org/install/create-project-cookieplone.html#prerequisites-for-installation) that runs all the requirements mentioned.\n-   [nvm](https://6.docs.plone.org/install/create-project-cookieplone.html#nvm)\n-   [Node.js and pnpm](https://6.docs.plone.org/install/create-project.html#node-js) 22\n-   [Make](https://6.docs.plone.org/install/create-project-cookieplone.html#make)\n-   [Git](https://6.docs.plone.org/install/create-project-cookieplone.html#git)\n-   [Docker](https://docs.docker.com/get-started/get-docker/) (optional)\n\n### Installation 🔧\n\n1.  Clone this repository, then change your working directory.\n\n    ```shell\n    git clone git@github.com:collective/volto-plate.git\n    cd volto-plate\n    ```\n\n2.  Install this code base.\n\n    ```shell\n    make install\n    ```\n\n\n### Make convenience commands\n\nRun `make help` to list the available commands.\n\n```text\nhelp                             Show this help\ninstall                          Installs the add-on in a development environment\nstart                            Starts Volto, allowing reloading of the add-on during development\nbuild                            Build a production bundle for distribution of the project with the add-on\ni18n                             Sync i18n\nci-i18n                          Check if i18n is not synced\nformat                           Format codebase\nlint                             Lint, or catch and remove problems, in code base\nrelease                          Release the add-on on npmjs.org\nrelease-dry-run                  Dry-run the release of the add-on on npmjs.org\ntest                             Run unit tests\nci-test                          Run unit tests in CI\nbackend-docker-start             Starts a Docker-based backend for development\nstorybook-start                  Start Storybook server on port 6006\nstorybook-build                  Build Storybook\nacceptance-frontend-dev-start    Start acceptance frontend in development mode\nacceptance-frontend-prod-start   Start acceptance frontend in production mode\nacceptance-backend-start         Start backend acceptance server\nci-acceptance-backend-start      Start backend acceptance server in headless mode for CI\nacceptance-test                  Start acceptance tests in interactive mode\nci-acceptance-test               Run acceptance tests in headless mode for CI\n```\n\n### Development environment set up\n\nInstall package requirements.\n\n```shell\nmake install\n```\n\n### Start developing\n\nStart the backend.\n\n```shell\nmake backend-docker-start\n```\n\nIn a separate terminal session, start the frontend.\n\n```shell\nmake start\n```\n\n### Lint code\n\nRun ESlint, Prettier, and Stylelint in analyze mode.\n\n```shell\nmake lint\n```\n\n### Format code\n\nRun ESlint, Prettier, and Stylelint in fix mode.\n\n```shell\nmake format\n```\n\n### i18n\n\nExtract the i18n messages to locales.\n\n```shell\nmake i18n\n```\n\n### Unit tests\n\nRun unit tests.\n\n```shell\nmake test\n```\n\n### Run Acceptance tests\n\nThis project uses Playwright for acceptance testing.\n\nRun each of these steps in separate terminal sessions.\n\nIn the first session, start the frontend in development mode.\n\n```shell\nmake acceptance-frontend-dev-start\n```\n\nIn the second session, start the backend acceptance server.\n\n```shell\nmake acceptance-backend-start\n```\n\nIn the third session, start the acceptance tests in interactive mode.\n\n```shell\nmake acceptance-test\n```\n\n## License\n\nThe project is licensed under the MIT license.\n\n## Credits and acknowledgements 🙏\n\nGenerated using [Cookieplone (0.9.8)](https://github.com/plone/cookieplone) and [cookieplone-templates (1d2012a)](https://github.com/plone/cookieplone-templates/commit/1d2012a950e4374f91c3f93e9531fde44b330ab3) on 2025-09-23 09:45:10.835983. A special thanks to all contributors and supporters!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitconcept%2Fvolto-plate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkitconcept%2Fvolto-plate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitconcept%2Fvolto-plate/lists"}