mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-29 11:02:28 +08:00
65 lines
2.7 KiB
Markdown
65 lines
2.7 KiB
Markdown
# Updating to a newer version of CKEditor
|
||
## Before updating
|
||
|
||
Make sure that all the plugins are compatible with this version: <a class="reference-link" href="Versions%20and%20external%20plugins.md">Versions and external plugins</a>. If not, they will need to be updated to the same version as the one you are updating, by altering their `package.json`.
|
||
|
||
If the plugin is external to the Trilium organisation, it needs to be forked first.
|
||
|
||
## Environment setup
|
||
|
||
The first step is to add the CKEditor source as a remote. This only needs to be done once.
|
||
|
||
```
|
||
git remote add upstream ssh://git@github.com/ckeditor/ckeditor5.git
|
||
git fetch upstream
|
||
```
|
||
|
||
## Update steps
|
||
|
||
Due to how the repository is structured, updates to the CKEditor are a bit difficult.
|
||
|
||
1. `git fetch upstream`
|
||
2. Pick a version and merge with it: `git merge -X theirs v99.2.0`
|
||
3. When there are complicated conflicts, sometimes it's easier to take everything from the target version instead, for a given path: `git checkout v99.2.0 -- "packages/ckeditor5-list/**"`.
|
||
4. Go in `packages/ckeditor5-build-trilium/package.json` and run `node sync-version.js` to update the `package.json` with the new versions. Review and commit the change.
|
||
5. Follow again the dependency setup in <a class="reference-link" href="Environment%20setup.md">Environment setup</a>, as they have changed.
|
||
6. [Run the build](Building%20the%20editor.md) and check that it works.
|
||
|
||
## Final steps
|
||
|
||
1. Start the TriliumNext server
|
||
2. If updated to a newer version of CKEditor, check type `CKEDITOR_VERSION` in the browser/Electron console to ensure that the correct version is used.
|
||
3. Do a basic sanity check as well.
|
||
4. Commit and push the change on both sides (in the `trilium-ckeditor5` repo and in the `Notes` repo).
|
||
|
||
## Troubleshooting client side errors
|
||
|
||
These errors might show up when testing the Trilium app:
|
||
|
||
```
|
||
ReferenceError: CKEditor is not defined
|
||
```
|
||
|
||
Usually this is a side effect of another error, check the logs carefully to see if there is any other related error (perhaps a `CKEditorError`).
|
||
|
||
* * *
|
||
|
||
```
|
||
Uncaught error: Message: CKEditorError: ckeditor-duplicated-modules
|
||
```
|
||
|
||
Most likely cause is one of the external plugins is incompatible with this version.
|
||
|
||
For example, to disable the Math plugin, go to `packages/ckeditor5-build-trilium/src/config.ts` and modify:
|
||
|
||
```diff
|
||
-import Math from '@triliumnext/ckeditor5-math/src/math';
|
||
-import AutoformatMath from '@triliumnext/ckeditor5-math/src/autoformatmath';
|
||
|
||
export const COMMON_PLUGINS = [
|
||
- Math,
|
||
- AutoformatMath,
|
||
]
|
||
```
|
||
|
||
In this case, make sure to align the version of all the external plugins with the one you are updating to, usually by forking the external plugin and updating its versions. |