diff --git a/_regroup/ckeditor5-footnotes/.editorconfig b/_regroup/ckeditor5-footnotes/.editorconfig
new file mode 100644
index 000000000..37ea8ff91
--- /dev/null
+++ b/_regroup/ckeditor5-footnotes/.editorconfig
@@ -0,0 +1,19 @@
+# Configurations to normalize the IDE behavior.
+# http://editorconfig.org/
+
+root = true
+
+[*]
+indent_style = tab
+tab_width = 4
+charset = utf-8
+end_of_line = lf
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.{js,jsx,ts}]
+quote_type = single
+
+[package.json]
+indent_style = space
+tab_width = 2
diff --git a/_regroup/ckeditor5-footnotes/.eslintrc.cjs b/_regroup/ckeditor5-footnotes/.eslintrc.cjs
new file mode 100644
index 000000000..aa41a27ad
--- /dev/null
+++ b/_regroup/ckeditor5-footnotes/.eslintrc.cjs
@@ -0,0 +1,46 @@
+/* eslint-env node */
+
+'use strict';
+
+module.exports = {
+ extends: 'ckeditor5',
+ parser: '@typescript-eslint/parser',
+ plugins: [
+ '@typescript-eslint'
+ ],
+ root: true,
+ ignorePatterns: [
+ // Ignore the entire `dist/` (the NIM build).
+ 'dist/**',
+ // Ignore compiled JavaScript files, as they are generated automatically.
+ 'src/**/*.js',
+ // Also, do not check typing declarations, too.
+ 'src/**/*.d.ts'
+ ],
+ rules: {
+ // This rule disallows importing from any path other than the package main entrypoint.
+ 'ckeditor5-rules/allow-imports-only-from-main-package-entry-point': 'error',
+ // This rule ensures that all imports from `@ckeditor/*` packages are done through the main package entry points.
+ // This is required for the editor types to work properly and to ease migration to the installation methods
+ // introduced in CKEditor 5 version 42.0.0.
+ 'ckeditor5-rules/no-legacy-imports': 'error',
+ // As required by the ECMAScript (ESM) standard, all imports must include a file extension.
+ // If the import does not include it, this rule will try to automatically detect the correct file extension.
+ 'ckeditor5-rules/require-file-extensions-in-imports': [
+ 'error',
+ {
+ extensions: [ '.ts', '.js', '.json' ]
+ }
+ ]
+ },
+ overrides: [
+ {
+ files: [ 'tests/**/*.[jt]s', 'sample/**/*.[jt]s' ],
+ rules: {
+ // To write complex tests, you may need to import files that are not exported in DLL files by default.
+ // Hence, imports CKEditor 5 packages in test files are not checked.
+ 'ckeditor5-rules/ckeditor-imports': 'off'
+ }
+ }
+ ]
+};
diff --git a/_regroup/ckeditor5-footnotes/.gitattributes b/_regroup/ckeditor5-footnotes/.gitattributes
new file mode 100644
index 000000000..41be6fafe
--- /dev/null
+++ b/_regroup/ckeditor5-footnotes/.gitattributes
@@ -0,0 +1,19 @@
+* text=auto
+
+*.htaccess eol=lf
+*.cgi eol=lf
+*.sh eol=lf
+
+*.css text
+*.htm text
+*.html text
+*.js text
+*.ts text
+*.json text
+*.php text
+*.txt text
+*.md text
+
+*.png -text
+*.gif -text
+*.jpg -text
diff --git a/_regroup/ckeditor5-footnotes/.github/workflows/release.yml b/_regroup/ckeditor5-footnotes/.github/workflows/release.yml
new file mode 100644
index 000000000..a2c61a1cc
--- /dev/null
+++ b/_regroup/ckeditor5-footnotes/.github/workflows/release.yml
@@ -0,0 +1,26 @@
+name: Release
+on:
+ push:
+ tags:
+ - 'v*'
+jobs:
+ publish-package:
+ name: Publish package
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up Node
+ uses: actions/setup-node@v4
+ with:
+ node-version: 22
+ registry-url: 'https://registry.npmjs.org'
+ always-auth: true
+ - run: |
+ corepack enable &&
+ corepack install
+ - name: Install dependencies
+ run: yarn install --frozen-lockfile
+ - name: Publish package
+ run: yarn publish --access public
+ env:
+ NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
diff --git a/_regroup/ckeditor5-footnotes/.gitignore b/_regroup/ckeditor5-footnotes/.gitignore
new file mode 100644
index 000000000..881847f13
--- /dev/null
+++ b/_regroup/ckeditor5-footnotes/.gitignore
@@ -0,0 +1,8 @@
+build/
+coverage/
+dist/
+node_modules/
+tmp/
+sample/ckeditor.dist.js
+
+# Ignore compiled TypeScript files.
diff --git a/_regroup/ckeditor5-footnotes/.stylelintrc b/_regroup/ckeditor5-footnotes/.stylelintrc
new file mode 100644
index 000000000..1d86a41f9
--- /dev/null
+++ b/_regroup/ckeditor5-footnotes/.stylelintrc
@@ -0,0 +1,3 @@
+{
+ "extends": "stylelint-config-ckeditor5"
+}
diff --git a/_regroup/ckeditor5-footnotes/LICENSE.md b/_regroup/ckeditor5-footnotes/LICENSE.md
new file mode 100644
index 000000000..d9785fc8b
--- /dev/null
+++ b/_regroup/ckeditor5-footnotes/LICENSE.md
@@ -0,0 +1,24 @@
+Software License Agreement
+==========================
+
+Copyright (c) 2024. All rights reserved.
+
+Licensed under the terms of [ISC license](https://opensource.org/licenses/ISC).
+
+This code is highly derivative of [Forum Magnum Footnote Plugin](https://github.com/ForumMagnum/ForumMagnum/tree/master/public/lesswrong-editor/src/ckeditor5-footnote/src) with original license reproduced below:
+
+ISC License
+
+Copyright (c) 2020 Bohan Niu
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
\ No newline at end of file
diff --git a/_regroup/ckeditor5-footnotes/README.md b/_regroup/ckeditor5-footnotes/README.md
new file mode 100644
index 000000000..cfa366bd4
--- /dev/null
+++ b/_regroup/ckeditor5-footnotes/README.md
@@ -0,0 +1,155 @@
+@tomaitken/ckeditor5-footnotes
+==============================
+
+This package was created by the [ckeditor5-package-generator](https://www.npmjs.com/package/ckeditor5-package-generator) package. It is essentially lifted from the [ForumMagnum Footnote Plugin](https://github.com/ForumMagnum/ForumMagnum/tree/master/public/lesswrong-editor/src/ckeditor5-footnote/src) with only minor modifications. All intellectual credit should go to the developers of this plugin.
+
+## Table of contents
+
+* [Usage](#usage)
+* [Developing the package](#developing-the-package)
+* [Available scripts](#available-scripts)
+ * [`start`](#start)
+ * [`test`](#test)
+ * [`lint`](#lint)
+ * [`stylelint`](#stylelint)
+ * [`build:dist`](#builddist)
+ * [`translations:collect`](#translationscollect)
+ * [`translations:download`](#translationsdownload)
+ * [`translations:upload`](#translationsupload)
+ * [`ts:build` and `ts:clear`](#tsbuild-and-tsclear)
+* [License](#license)
+
+## Usage
+Install via NPM / yarn.
+
+Then import code and CSS:
+```
+import '@tomaitken/ckeditor5-footnotes/index.css';
+
+import { Footnotes } from '@tomaitken/ckeditor5-footnotes';
+```
+
+Then add this `Footnotes` import to the plugins list and the string `'footnote'` to the toolbar buttons.
+
+## Developing the package
+
+To read about the CKEditor 5 Framework, visit the [CKEditor 5 Framework documentation](https://ckeditor.com/docs/ckeditor5/latest/framework/index.html).
+
+## Available scripts
+
+NPM scripts are a convenient way to provide commands in a project. They are defined in the `package.json` file and shared with people contributing to the project. It ensures developers use the same command with the same options (flags).
+
+All the scripts can be executed by running `yarn run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+