Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
769d36a
goals and plan
jens-meisner Jun 18, 2026
6793f5f
storybook step1
jens-meisner Jun 18, 2026
29b3cfa
storybook step2
jens-meisner Jun 18, 2026
cb978d8
storybook step3
jens-meisner Jun 18, 2026
8b44411
storybook step4
jens-meisner Jun 18, 2026
7637a0c
storybook step4
jens-meisner Jun 18, 2026
11e88f4
storybook step5 - test1
jens-meisner Jun 18, 2026
ed497c2
storybook step5 - test3
jens-meisner Jun 18, 2026
a93b7dc
storybook step5 - test4
jens-meisner Jun 18, 2026
986a2ed
storybook step5 - test6
jens-meisner Jun 18, 2026
e126e20
storybook step5 - test10
jens-meisner Jun 18, 2026
7662a3d
storybook step5 - tests complete
jens-meisner Jun 18, 2026
2e131d6
storybook step8 - cleanup
jens-meisner Jun 18, 2026
d01162c
storybook step9
jens-meisner Jun 18, 2026
2135099
storybook step10
jens-meisner Jun 18, 2026
ace6976
storybook step11
jens-meisner Jun 18, 2026
6889d8d
plan tests refactoring
jens-meisner Jun 24, 2026
f1cbd0f
tests refactoring - phase 1
jens-meisner Jun 24, 2026
be4ab52
tests refactoring - phase 2
jens-meisner Jun 24, 2026
31a36b6
tests refactoring - added tests/constants package
jens-meisner Jun 24, 2026
b4def70
tests refactoring - phase 3
jens-meisner Jun 24, 2026
ddef8c0
tests refactoring - phase 4 - BBCode
jens-meisner Jun 24, 2026
67b2c06
tests refactoring - phase 4 - Blocklist
jens-meisner Jun 24, 2026
2c1c77a
tests refactoring - phase 4 - Blocklist specials
jens-meisner Jun 24, 2026
07adced
tests refactoring - phase 4 - added constants
jens-meisner Jun 24, 2026
fa35b25
tests refactoring - phase 4 - ContentLink
jens-meisner Jun 24, 2026
01ea023
tests refactoring - phase 4 - LinkBalloon
jens-meisner Jun 24, 2026
aca1929
tests refactoring - phase 4b - FontMapper
jens-meisner Jun 25, 2026
0f75c19
tests refactoring - phase 4b - PasteButton
jens-meisner Jun 25, 2026
64b21d6
tests refactoring - phase 4b - DragDrop
jens-meisner Jun 25, 2026
78d9535
tests refactoring - phase 4c - DocumentLists
jens-meisner Jun 25, 2026
b1dff1f
tests refactoring - phase 4c - Differencing
jens-meisner Jun 25, 2026
84b77b7
tests refactoring - phase 4c - Images
jens-meisner Jun 25, 2026
c2958e1
tests refactoring - phase 4d
jens-meisner Jun 25, 2026
44a9887
tests refactoring - phase 5 (cleanup)
jens-meisner Jun 25, 2026
cbca530
tests refactoring - phase 6
jens-meisner Jun 25, 2026
2d3d02a
tests refactoring - eliminated last "page.evaluate" call
jens-meisner Jun 25, 2026
e876991
tests refactoring - eliminated last "page.evaluate" call
jens-meisner Jun 25, 2026
3c00c09
cleanup - removed unnecessary dependencies
jens-meisner Jul 13, 2026
fde63cf
cleanup - removed unnecessary dependencies
jens-meisner Jul 13, 2026
01582a6
upgraded dependencies + fixed issues with new TypeScript version 6
jens-meisner Jul 13, 2026
556bdf9
removed prettier and fixed peer dependency issues
jens-meisner Jul 13, 2026
ef4c720
cleanup - removed unnecessary dependencies
jens-meisner Jul 14, 2026
ce61381
cleanup - removed unnecessary script
jens-meisner Jul 14, 2026
81161a7
Merge remote-tracking branch 'origin/main' into add-storybook
jens-meisner Jul 24, 2026
dc1566d
allow builds for @swc/core + update pnpm-lock
jens-meisner Jul 24, 2026
cdd559d
update pnpm-lock
jens-meisner Jul 24, 2026
efbe466
Potential fix for pull request finding
jens-meisner Jul 24, 2026
ae12c01
removed condition for setEditorData in applyScenario
jens-meisner Jul 24, 2026
ee98f2a
added cleanup of setInterval calls
jens-meisner Jul 24, 2026
d465fc6
added cleanup of added html elements
jens-meisner Jul 24, 2026
4dcb8db
replaced set inerHTML
jens-meisner Jul 24, 2026
fb61c9f
fixed comment
jens-meisner Jul 24, 2026
6d9f114
cleanup
jens-meisner Jul 24, 2026
21e33a2
added more cleanup functions in stories
jens-meisner Jul 24, 2026
0173451
wording
jens-meisner Jul 24, 2026
17a02ec
cleanup also window.editor
jens-meisner Jul 24, 2026
4192c47
aligned author in package.json and fixed version
jens-meisner Jul 24, 2026
459897d
cleanup also destroys ckeditor5 editor
jens-meisner Jul 24, 2026
fdc7e76
fixed error message
jens-meisner Jul 24, 2026
aed55ea
make applyScenario more robust
jens-meisner Jul 24, 2026
77e0e60
wording
jens-meisner Jul 24, 2026
0dc2379
improved comment
jens-meisner Jul 24, 2026
579b594
improved comment
jens-meisner Jul 24, 2026
adc089e
avoid hard-coded plugin name
jens-meisner Jul 24, 2026
16d1ab3
improve asset rule exclusion
jens-meisner Jul 24, 2026
b099aed
removed ai generated files
jens-meisner Aug 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 126 additions & 0 deletions .github/workflows/deploy-storybook.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: "Deploy Storybook"

# Builds the Storybook integration-test package and publishes the static
# Storybook to GitHub Pages. The deployed Storybook is the same runtime the
# Playwright integration tests execute against (see tests/storybook and
# tests/playwright).
#
# To coexist with the existing GitHub Pages content (most notably the API
# documentation served from the Pages root), the Storybook is published into a
# dedicated `storybook/` subfolder of the `gh-pages` branch. Publishing uses
# `keep_files: true`, so sibling content (e.g. `docs/api/`) is left untouched.
# Resulting URL: https://coremedia.github.io/ckeditor-plugins/storybook/

on:
# Publish on every push to the main branch.
push:
branches:
- main
# Allow manual deployment from the Actions tab.
workflow_dispatch:

run-name: |
${{ github.workflow }}: ${{ github.ref_name }}

env:
# https://github.com/actions/runner-images/issues/70
NODE_OPTIONS: "--max_old_space_size=4096"

# Least-privilege defaults; the publish job opts into the permissions it needs.
permissions: {}

# Allow only one concurrent deployment, without cancelling in-progress runs, so
# an in-flight Pages deployment is allowed to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
get-env:
name: "Get Environment"
uses: "./.github/workflows/env.yml"
get-engines:
name: "Get Engines"
uses: "./.github/workflows/get-engines.yml"
secrets: inherit
deploy:
name: "Build and Publish Storybook"
runs-on: ubuntu-latest
timeout-minutes: 20
needs:
- get-env
- get-engines
# Required to push the built Storybook to the `gh-pages` branch.
permissions:
contents: write
env:
nodeVersion: ${{ needs.get-engines.outputs.nodeVersion }}
pnpmVersion: ${{ needs.get-engines.outputs.pnpmVersion }}
npmHost: ${{ needs.get-env.outputs.npm-host }}
npmUrl: ${{ needs.get-env.outputs.npm-url }}
steps:
- id: checkout
name: Checkout
uses: actions/checkout@v5
- id: authorize
name: "NPM Authorization"
run: |
result=$(curl -s -H "Accept: application/json" -H "Content-Type:application/json" -X PUT --data '{"name": "${{ secrets.PLUGINS_NEXUS_USER }}", "password": "${{ secrets.PLUGINS_NEXUS_PASSWORD }}"}' "${{ env.npmUrl }}/-/user/org.couchdb.user:${{ secrets.PLUGINS_NEXUS_USER }}" | jq --raw-output .token)
# Ensure, the token is not exposed in output.
echo "::add-mask::${result}"
echo "NODE_AUTH_TOKEN=${result}" >> $GITHUB_ENV
- id: initNpmConfiguration
name: "Initialize NPM Configuration"
run: |
npmHost="${{ env.npmHost }}"
npmUrl="${{ env.npmUrl }}"
npmAuthToken="${{ env.NODE_AUTH_TOKEN }}"

echo "//${npmHost}/:_authToken=${npmAuthToken}" >> .npmrc
echo "@coremedia:registry=${npmUrl}" >> .npmrc
echo "@coremedia-internal:registry=${npmUrl}" >> .npmrc
# We must not commit this change.
git update-index --assume-unchanged .npmrc
- id: installPnpm
name: "Install: Use PNPM ${{ env.pnpmVersion }}"
uses: pnpm/action-setup@v5
with:
version: ${{ env.pnpmVersion }}
run_install: false
- id: installNodeJs
name: "Install: Use Node.js ${{ env.nodeVersion }}"
uses: actions/setup-node@v5
with:
node-version: ${{ env.nodeVersion }}
cache: "pnpm"
- id: install
name: Install
run: |
pnpm install --frozen-lockfile
- name: Create env file
run: |
touch .env
echo CKEDITOR_LICENSE_KEY=${{ secrets.CKEDITOR_LICENSE }}>> .env
- id: build
name: "Build Workspace"
run: |
pnpm -r build
- id: buildStorybook
name: "Build Storybook"
env:
CKEDITOR_LICENSE_KEY: ${{ secrets.CKEDITOR_LICENSE }}
run: |
pnpm --filter "@coremedia/ckeditor5-storybook-itest" run build-storybook
- id: publish
name: "Publish Storybook to GitHub Pages"
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: tests/storybook/build/storybook
# Publish into a subfolder so the existing Pages content (e.g. the API
# docs at the Pages root) is preserved.
destination_dir: storybook
keep_files: true
user_name: "github-actions[bot]"
user_email: "github-actions[bot]@users.noreply.github.com"
commit_message: "docs(storybook): deploy ${{ github.sha }}"
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,8 @@ implements the described behavior.
## See Also

* **[GitHub Pages][gp:ckeditor-plugins]:** These pages on GitHub Pages.
* **[Storybook][gp:storybook]:** Interactive Storybook of the integration-test
scenarios on GitHub Pages (see [`tests/storybook`](./tests/storybook/README.md)).
* **[Walk-Through Examples](./examples/README.md):** Some step-by-step guides
for customizing CKEditor 5.
* **[Development](./DEVELOPMENT.md):** Hints for developing within this
Expand Down Expand Up @@ -250,3 +252,5 @@ implements the described behavior.
[CoreMedia CMS]: <https://www.coremedia.com/> "Best-of-Breed Digital Experience Platform CoreMedia"

[gp:ckeditor-plugins]: <https://coremedia.github.io/ckeditor-plugins/> "CoreMedia CKEditor 5 Plugins – GitHub Pages"

[gp:storybook]: <https://coremedia.github.io/ckeditor-plugins/storybook/> "CoreMedia CKEditor 5 Plugins – Storybook"
10 changes: 1 addition & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
},
"license": "Apache-2.0",
"scripts": {
"bootstrap": "pnpm install",
"publishall": "pnpm --recursive publish",
"setversion": "set-version",
"clean": "pnpm --recursive run clean",
Expand All @@ -44,8 +43,6 @@
"doc:config": "typedoc --showConfig",
"ui-test": "pnpm --recursive --filter \"@coremedia/ckeditor5-playwright-itest\" run ui-test",
"test": "pnpm --recursive test",
"prettier": "prettier --check \"**/*.{js,cjs,mjs,ts,tsx}\"",
"prettier:fix": "prettier --write \"**/*.{js,cjs,mjs,ts,tsx}\"",
"preinstall": "node ./scripts/check-pnpm.mjs",
"start": "pnpm --recursive --filter \"@coremedia/ckeditor5-app\" start",
"script:version": "node ./scripts/version.mjs"
Expand All @@ -58,21 +55,16 @@
"@eslint/eslintrc": "catalog:",
"@eslint/js": "catalog:",
"@stylistic/eslint-plugin": "catalog:",
"@typescript-eslint/eslint-plugin": "catalog:",
"@typescript-eslint/parser": "catalog:",
"eslint": "catalog:",
"eslint-config-prettier": "catalog:",
"eslint-plugin-import": "catalog:",
"eslint-plugin-jsdoc": "catalog:",
"eslint-plugin-prettier": "catalog:",
"eslint-plugin-tsdoc": "catalog:",
"minimist": "catalog:",
"package-directory": "catalog:",
"prettier": "catalog:",
"rimraf": "catalog:",
"semver": "catalog:",
"typedoc": "catalog:",
"typescript": "catalog:",
"validate-peer-dependencies": "catalog:"
"typescript": "catalog:"
}
}
1 change: 0 additions & 1 deletion packages/ckeditor5-bbcode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
}
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-common/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-coremedia-differencing/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-coremedia-example-data/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-coremedia-link/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-coremedia-richtext-support/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-coremedia-richtext/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-data-facade/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-dataprocessor-support/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-dom-converter/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-dom-support/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-font-mapper/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
1 change: 0 additions & 1 deletion packages/ckeditor5-logging/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
"global-jsdom": "catalog:",
"jsdom": "catalog:",
"rimraf": "catalog:",
"ts-node": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:"
},
Expand Down
Loading
Loading