Search by

pushword / admin-block-editor

Robin D.

Supercharged the Pushword Admin with block editor (gutenberg like).

Package info

github.com/Pushword/admin-block-editor

Homepage

Issues

Documentation

Language:TypeScript

Type:symfony-bundle

pkg:composer/pushword/admin-block-editor

Fund package maintenance!

Liberapay

Statistics

Installs: 8 174

Dependents: 0

Suggesters: 19

Stars: 1

1.0.105 2026-10-29 14:56 UTC

This package is auto-updated.

Last update: 2026-10-30 14:14:57 UTC


README

An Editor.js block editor for the Pushword admin, with content stored as Markdown.

Latest Version Software License GitHub Tests Action Status

Code Coverage Total Downloads

Features

  • Block (Editor.js) editing inside the admin, toggleable per app.
  • Content stored as Markdown — blocks are converted to/from Markdown transparently.
  • Extensible: add your own Editor.js plugins / custom blocks.
  • Pages-list block with a powerful search syntax (CHILDREN, slug:…, OR).

Installation

composer require pushword/admin-block-editor

Documentation

Visit pushword.piedweb.com/extension/admin-block-editor.

Site-provided tools

Load a site's tool script before the block editor initializes, then add its constructor directly to the widget's editorjsConfig.tools. Native Editor.js constructors and Pushword's built-in className entries can be used together:

editorjsConfig.tools.promotion = {
  class: PromotionTool,
  config: { preview: '/admin/promotion/preview' },
}

To preserve Markdown storage, a custom tool also implements the static isItMarkdownExported(markdown), importFromMarkdown(editor, markdown) and exportToMarkdown(data, tunes) methods. Claim only syntax the tool can read and write without losing information; leave unsupported expressions to the Raw tool.

The Pushword ecosystem

Pushword is a modular CMS — one Symfony bundle for the core and one bundle per feature. See the full list and guides at pushword.piedweb.com/extensions.

Contributing

If you're interested in contributing to Pushword, please read our contributing docs before submitting a pull request.

Browser integration tests

The Playwright suite runs in separate CI jobs on Google Chrome (chrome), Microsoft Edge (msedge) and Playwright's Firefox build, with no retries.

From the repository root on Linux, with Composer dependencies installed:

yarn --cwd packages/admin-block-editor install --frozen-lockfile
yarn --cwd packages/admin-block-editor playwright install --with-deps chrome msedge firefox
yarn --cwd packages/admin-block-editor build
yarn --cwd packages/admin-monaco-editor install --frozen-lockfile
yarn --cwd packages/admin-monaco-editor build
yarn --cwd packages/admin-block-editor test:browser
# Run one browser or one journey while investigating:
yarn --cwd packages/admin-block-editor test:browser --project=msedge --grep 'checklist:'

The suite starts a test app on port 9079 with a temporary database, media, sessions and content, removed when the server stops. It refuses to reuse an existing server and leaves the development app's content intact. Each browser signs in through the login form and uses a separate page fixture. Sequential journeys retain the same edit-lock identity and wait for ownership before interacting with the form.

Keyboard journeys cover nested lists, inline formatting, undo/redo, immediate saving, hard breaks, rich-text copy/paste, tables and Markdown/JSON round trips. Saved content is checked after reloading the admin. In-page checks shared with Panther cover the configured blocks and tunes, selection preservation and incremental rendering. Preview and image journeys check toolbar placement, block movement and repeated editing without losing content, including empty images. Uncaught browser errors and console errors fail the tests.

CI uploads the HTML/JSON reports, browser versions, individual in-page outcomes, server log, failure screenshots and Playwright traces. Local reports are in playwright-report/ and test-results/ inside this package. Add new user regressions to tests/browser/*.spec.ts: every scenario then runs on all three browsers.

Microsoft Edge on the local Windows VM

Start the existing Windows 11 VM with its usual VM launcher. It needs Edge, Node.js, OpenSSH and an active desktop session. Run from the Linux host after building the editor and Monaco as above:

yarn --cwd packages/admin-block-editor test:windows
# Narrow a diagnostic run:
yarn --cwd packages/admin-block-editor test:windows --grep 'physical keys|Office'

The default SSH target is Administrator@127.0.0.1:2223, with the key at ~/.local/share/ga-windows11-vm/cle. Override PW_WINDOWS_SSH_HOST, PW_WINDOWS_SSH_PORT or PW_WINDOWS_SSH_KEY for another existing VM. The launcher uses the host's Playwright version and opens an isolated Edge through a temporary interactive scheduled task. SSH forwards the Linux test app's port 9079 and Edge's ports 19880/19881 over loopback. The launcher closes its browser, task and tunnels on completion and leaves the VM running.

This runs the shared journeys and Windows-only AZERTY keyboard tests, including circumflex and diaeresis dead keys with default writing suggestions and with them disabled. Reports, Windows/Edge versions, screenshots and traces are in playwright-report-windows/ and test-results-windows/. Office clipboard fixtures use representative HTML payloads without launching Word or Outlook. Writing-assistant problems still need comparison on the affected user's profile.

Reporting an editor problem

Use Report a problem below the editor to download a diagnostic and compare browser writing suggestions. See Reporting an editor problem for the steps and the report's contents.

Credits

License

The MIT License (MIT). Please see License File for more information.

PHP Packages Open Source