TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:36 +02:00
commit 1e393722e8
183 changed files with 7832 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
<?php
use TYPO3\CMS\RteCKEditor\Controller\BrowseLinksController;
/**
* Definitions of routes for rte-ckeditor.
*/
return [
// Register RTE browse links wizard
'rteckeditor_wizard_browse_links' => [
'path' => '/rte/wizard/browselinks',
'target' => BrowseLinksController::class . '::mainAction',
],
];
+62
View File
@@ -0,0 +1,62 @@
<?php
return [
'dependencies' => [
'backend',
],
'imports' => [
'@typo3/rte-ckeditor/' => [
'path' => 'EXT:rte_ckeditor/Resources/Public/JavaScript/',
'exclude' => [
'EXT:core/Resources/Public/JavaScript/legacy/',
],
],
'@typo3/ckeditor5/translations/' => 'EXT:rte_ckeditor/Resources/Public/Contrib/translations/',
'@ckeditor/ckeditor5-alignment' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-alignment.js',
'@ckeditor/ckeditor5-autoformat' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-autoformat.js',
'@ckeditor/ckeditor5-basic-styles' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-basic-styles.js',
'@ckeditor/ckeditor5-block-quote' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-block-quote.js',
'@ckeditor/ckeditor5-clipboard' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-clipboard.js',
'@ckeditor/ckeditor5-code-block' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-code-block.js',
'@ckeditor/ckeditor5-core' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-core.js',
'@ckeditor/ckeditor5-editor-classic' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-editor-classic.js',
'@ckeditor/ckeditor5-editor-decoupled' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-editor-decoupled.js',
'@ckeditor/ckeditor5-editor-multi-root' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-editor-multi-root.js',
'@ckeditor/ckeditor5-engine' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-engine.js',
'@ckeditor/ckeditor5-enter' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-enter.js',
'@ckeditor/ckeditor5-essentials' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-essentials.js',
'@ckeditor/ckeditor5-find-and-replace' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-find-and-replace.js',
'@ckeditor/ckeditor5-font' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-font.js',
'@ckeditor/ckeditor5-fullscreen' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-fullscreen.js',
'@ckeditor/ckeditor5-heading' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-heading.js',
'@ckeditor/ckeditor5-highlight' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-highlight.js',
'@ckeditor/ckeditor5-horizontal-line' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-horizontal-line.js',
'@ckeditor/ckeditor5-html-support' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-html-support.js',
'@ckeditor/ckeditor5-icons' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-icons.js',
'@ckeditor/ckeditor5-image' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-image.js',
'@ckeditor/ckeditor5-indent' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-indent.js',
'@ckeditor/ckeditor5-inspector' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-inspector.js',
'@ckeditor/ckeditor5-language' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-language.js',
'@ckeditor/ckeditor5-link' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-link.js',
'@ckeditor/ckeditor5-list' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-list.js',
'@ckeditor/ckeditor5-mention' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-mention.js',
'@ckeditor/ckeditor5-paragraph' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-paragraph.js',
'@ckeditor/ckeditor5-paste-from-office' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-paste-from-office.js',
'@ckeditor/ckeditor5-remove-format' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-remove-format.js',
'@ckeditor/ckeditor5-select-all' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-select-all.js',
'@ckeditor/ckeditor5-show-blocks' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-show-blocks.js',
'@ckeditor/ckeditor5-source-editing' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-source-editing.js',
'@ckeditor/ckeditor5-special-characters' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-special-characters.js',
'@ckeditor/ckeditor5-style' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-style.js',
'@ckeditor/ckeditor5-table' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-table.js',
'@ckeditor/ckeditor5-theme-lark' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-theme-lark.js',
'@ckeditor/ckeditor5-typing' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-typing.js',
'@ckeditor/ckeditor5-ui' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-ui.js',
'@ckeditor/ckeditor5-undo' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-undo.js',
'@ckeditor/ckeditor5-upload' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-upload.js',
'@ckeditor/ckeditor5-utils' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-utils.js',
'@ckeditor/ckeditor5-watchdog' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-watchdog.js',
'@ckeditor/ckeditor5-widget' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-widget.js',
'@ckeditor/ckeditor5-word-count' => 'EXT:rte_ckeditor/Resources/Public/Contrib/@ckeditor/ckeditor5-word-count.js',
],
];
+77
View File
@@ -0,0 +1,77 @@
# Load default processing options
imports:
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Processing.yaml' }
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml' }
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml' }
#- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/LinkBrowser.yaml' }
# Additional optional TYPO3 specific configuration is available via ./Editor/LinkBrowser.yaml
# See https://docs.typo3.org/c/typo3/cms-rte-ckeditor/main/en-us/Configuration/Reference.html
#
# The keys typing.transformations.extra.from and htmlSupport.allow.name allow
# to have a special array with a key `pattern` that allows to specify Regular Expressions:
# - { from: { pattern: '(typoscript|TYPOScript|typo3script)$' }, to: 'TypoScript' }
# see https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/12.4.x/Important-104827-AllowToUseRegularExpressionsInCKEditorYAML.html
#
# Add configuration for the editor
# For complete documentation see https://ckeditor.com/docs/ckeditor5/latest/features/index.html
editor:
config:
toolbar:
items:
- style
- heading
# grouping separator
- '|'
- bold
- italic
- subscript
- superscript
- softhyphen
- '|'
- bulletedList
- numberedList
- blockQuote
- alignment
- '|'
- findAndReplace
- link
- '|'
- removeFormat
- undo
- redo
- '|'
- insertTable
- '|'
- specialCharacters
- horizontalLine
- sourceEditing
heading:
options:
- { model: 'paragraph', title: 'Paragraph' }
- { model: 'heading2', view: 'h2', title: 'Heading 2' }
- { model: 'heading3', view: 'h3', title: 'Heading 3' }
- { model: 'formatted', view: 'pre', title: 'Pre-Formatted Text' }
style:
definitions:
- { name: "Lead", element: "p", classes: ['lead'] }
- { name: "Small", element: "small" }
- { name: "Muted", element: "span", classes: ['text-muted'] }
alignment:
options:
- { name: 'left', className: 'text-start' }
- { name: 'center', className: 'text-center' }
- { name: 'right', className: 'text-end' }
- { name: 'justify', className: 'text-justify' }
table:
defaultHeadings: { rows: 1 }
contentToolbar:
- tableColumn
- tableRow
- mergeTableCells
- tableProperties
- tableCellProperties
- toggleTableCaption
+14
View File
@@ -0,0 +1,14 @@
# Add configuration for the editor for any configuration
# For complete documentation see http://docs.ckeditor.com/#!/api/CKEDITOR.config
editor:
config:
# the CSS file to be used inside the editor
contentsCss:
- 'EXT:rte_ckeditor/Resources/Public/Css/contents.css'
height: 300
width: 'auto'
ui:
poweredBy:
position: 'inside'
side: 'right'
label: ''
+98
View File
@@ -0,0 +1,98 @@
# Additional TYPO3 specific configuration comes here.
# See https://docs.typo3.org/c/typo3/cms-rte-ckeditor/main/en-us/Configuration/Reference.html
# This is unrelated to CKEditor itself, but applies to Link Browser usage:
# Which fields can be shown with additional attributes for a link? (comma separated list)
# - target: Link target (allows to use "_blank", "_self", "_top" or a framename)
# - title: Link title attribute (not the link text itself)
# - class: Custom CSS class selection
# - params: Additional URL query arguments (see "queryParametersSelector" below when used)
# - rel: Link relation attribute ("rel", see "relAttribute" below when used)
allowedOptions: 'target,title,class,params,rel'
# Comma-separated list of allowed Link Types
# Valid LinkTypes:
# - page: Internal TYPO3 page
# - url: External URL
# - file: TYPO3 file relation
# - folder: TYPO3 folder relation
# - email: Mail address
# - ...: Custom Link Types, when implemented, with their name.
allowedTypes: 'page,url,file,folder,telephone,email'
# Which class definitions and targets are allowed per LinkType (array)
# Each array element has attributes:
# - "class": Default CSS class to apply to this LinkType
# - "type": LinkType as listed above
# - "target": Default link target to apply to this LinkType
classesAnchor:
- { class: "customPageCssClass", type: "page", target: "" }
- { class: "customUrlCssClass", type: "url", target: "_blank" }
- { class: "customFileCssClass", type: "file", target: "_parent" }
- { class: "customFolderCssClass", type: "folder" }
- { class: "customTelephoneCssClass", type: "telephone" }
- { class: "customEmailCssClass", type: "email" }
buttons:
link:
# Global Link Browser options
options:
# Optional comma-separated list of Link Types to be specifically removed
removeItems: 'telephone'
# Specifically enable the "rel" attribute entry, needed when set in "allowedOptions"
relAttribute:
enabled: true
# Specifically enable the "params" (URL query arguments) attribute entry, needed when set in "allowedOptions"
queryParametersSelector:
enabled: true
# Optionally disable showing the "target" field (even though when set in "allowedOptions")
targetSelector:
disabled: false
# Define general CSS options for the Link Browser
# This is needed to perform any of the link classing below!
properties:
class:
# If set to "true", a CSS class must be selected
required: false
# Available CSS classes
allowedClasses: 'globalCss1,globalCss2,customPageCssClass,customUrlCssClass,customFileCssClass,customFolderCssClass,customTelephoneCssClass,customEmailCssClass'
# Define default CSS classes per LinkType. The CSS class name listed here
# must also be part of the "allowedClasses" attribute above.
# The attribute "required" is also available for each block.
page:
properties:
class:
default: "customPageCssClass"
url:
properties:
class:
default: "customUrlCssClass"
file:
properties:
class:
default: "customFileCssClass"
folder:
properties:
class:
default: "customFolderCssClass"
telephone:
properties:
class:
default: "customTelephoneCssClass"
email:
properties:
class:
default: "customEmailCssClass"
# Optionally define labels for all classes listed in buttons.link.properties.class.allowedClasses
# Also the style of a CSS class choice can be applied via "value" (deprecated, does not work in all browsers).
# Any label missing in this setup just uses the CSS classname as a label, without special formatting.
classes:
globalCss1:
name: Label for globalCss1
customPageCssClass:
name: Label for customPageCssClass
value: "color: red; background-color: blue"
+22
View File
@@ -0,0 +1,22 @@
# Register custom plugins for ckeditor
editor:
config:
# Explicitly remove (default or external) plugins
# removeImportModules: []
# load modules for plugins when CKEditor is initialized
# see CKEditor plugin API for details
importModules:
# Plugin for whitespace control like soft hypens and non breaking spaces
- { module: '@typo3/rte-ckeditor/plugin/whitespace.js', exports: [ 'Whitespace' ] }
- { module: '@typo3/rte-ckeditor/plugin/typo3-link.js', exports: [ 'Typo3Link' ] }
# Configure global wordCount plugin defaults
# Overwrite them in your RTE presets as it is necessary
# wordCount:
# displayWords: true
# displayCharacters: true
# configuration for external plugins
externalPlugins:
typo3link: { route: 'rteckeditor_wizard_browse_links' }
+167
View File
@@ -0,0 +1,167 @@
####
# Example of what CKEditor can all bring
###
# Load default processing options
imports:
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Processing.yaml' }
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml' }
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml' }
# Add configuration for the editor
# For complete documentation see https://ckeditor.com/docs/ckeditor5/latest/features/index.html
editor:
config:
style:
definitions:
# block level styles
- { name: 'Orange title H2', element: 'h2', classes: ['orange'] }
- { name: 'Orange title H3', element: 'h3', classes: ['orange'] }
- { name: 'Quote / Citation', element: 'blockquote' }
- { name: 'Code block', element: 'code' }
# Inline styles
- { name: 'Yellow marker', element: 'span', classes: ['yellow-marker'] }
heading:
options:
- { model: 'paragraph', title: 'Paragraph' }
- { model: 'heading2', view: 'h2', title: 'Heading 2' }
- { model: 'heading3', view: 'h3', title: 'Heading 3' }
- { model: 'formatted', view: 'pre', title: 'Pre-Formatted Text' }
toolbar:
items:
- removeFormat
- undo
- redo
# grouping separator
- '|'
- findAndReplace
- link
- '|'
- insertTable
- tableColumn
- tableRow
- mergeTableCells
- TableProperties
- TableCellProperties
- '|'
- selectAll
- '|'
- sourceEditing
- showBlocks
- horizontalLine
# line break
- '-'
- bold
- italic
- underline
- strikethrough
- subscript
- superscript
- softhyphen
- '|'
- bulletedList
- numberedList
- blockQuote
- indent
- outdent
- alignment
- '|'
- specialCharacters
- '-'
- style
- heading
- fontFamily
- fontBackgroundColor
- fontColor
- fontSize
- textPartLanguage
- highlight
- highlight:greenMarker
- '|'
- fullscreen
alignment:
options:
- { name: 'left', className: 'text-start' }
- { name: 'center', className: 'text-center' }
- { name: 'right', className: 'text-end' }
- { name: 'justify', className: 'text-justify' }
table:
defaultHeadings: { rows: 1 }
contentToolbar:
- tableColumn
- tableRow
- mergeTableCells
- tableProperties
- tableCellProperties
- toggleTableCaption
fontColor:
colors:
- { label: 'Orange', color: '#ff8700' }
- { label: 'Blue', color: '#0080c9' }
- { label: 'Green', color: '#209d44' }
fontBackgroundColor:
colors:
- { label: 'Stage orange light', color: '#fab85c' }
fontFamily:
options:
- 'default'
- 'Arial, sans-serif'
fontSize:
options:
- 'default'
- 18
- 21
list:
properties:
styles: true
startIndex: true
reversed: true
indentBlock:
classes:
- 'ps-2'
- 'ps-3'
- 'ps-4'
language:
textPartLanguage: [
{ title: 'English', languageCode: 'en' },
{ title: 'French', languageCode: 'fr' },
{ title: 'German', languageCode: 'de' }
]
highlight:
options:
- { model: 'yellowMarker', class: 'marker-yellow', title: 'Yellow marker', type: 'marker', color: 'var(--ck-content--highlight-marker-yellow)' }
- { model: 'greenMarker', class: 'marker-green', title: 'Green marker', type: 'marker', color: 'var(--ck-content-highlight-marker-green)' }
- { model: 'redPen', class: 'pen-red', title: 'Red pen', type: 'pen', color: 'var(--ck-content-highlight-pen-red)' }
mention:
feeds:
-
marker: '@'
feed:
- '@TYPO3'
minimumCharacters: 1
importModules:
- { module: '@ckeditor/ckeditor5-word-count', exports: ['WordCount'] }
# Provides fontFamily, fontSize, fontColor, and fontBackgroundColor toolbar items
- { module: '@ckeditor/ckeditor5-font', exports: ['Font'] }
# Provides showBlocks toolbar item
- { module: '@ckeditor/ckeditor5-show-blocks', exports: ['ShowBlocks'] }
# Provides textPartLanguage toolbar item
- { module: '@ckeditor/ckeditor5-language', exports: ['TextPartLanguage'] }
- { module: '@ckeditor/ckeditor5-mention', exports: ['Mention'] }
- { module: '@ckeditor/ckeditor5-highlight', exports: ['Highlight'] }
- { module: '@ckeditor/ckeditor5-list', exports: ['ListProperties'] }
- { module: '@ckeditor/ckeditor5-fullscreen', exports: [ 'Fullscreen' ] }
+16
View File
@@ -0,0 +1,16 @@
# Load default processing options
imports:
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Processing.yaml' }
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml' }
# Minimal configuration for the editor
editor:
config:
toolbar:
items:
- bold
- italic
- '|'
- clipboard
- undo
- redo
+106
View File
@@ -0,0 +1,106 @@
# ********************************************************
# Sets the proc options for all default configurations
# https://docs.typo3.org/permalink/t3tsref:rte-config-proc
# ********************************************************
processing:
mode: default
# Tags that are allowed in the content in general
# Note that some tags like <mark> require you to style them via custom CSS directives in your frontend.
allowTags:
- a
- abbr
- acronym
- address
- article
- big
- blockquote
- br
- caption
- cite
- code
- col
- colgroup
- dd
- del
- dfn
- dl
- div
- dt
- em
- figure
- figcaption
- footer
- header
- h1
- h2
- h3
- h4
- h5
- h6
- hr
- i
- img
- ins
- kbd
- label
- li
- mark
- nav
- ol
- p
- pre
- q
- s
- samp
- section
- small
- span
- strong
- sub
- sup
- table
- thead
- tbody
- tfoot
- td
- th
- tr
- tt
- u
- ul
- var
## Tags that are allowed outside of paragraphs
allowTagsOutside: [address, article, aside, blockquote, figure, figcaption, footer, header, hr, mark, nav, section, div]
## allowed default attributes
allowAttributes: [class, id, title, dir, lang, xml:lang, itemscope, itemtype, itemprop]
## CONTENT TO DATABASE
HTMLparser_db:
## STRIP ALL ATTRIBUTES FROM THESE TAGS
## If this list of tags is not set, it will default to: b,i,u,br,center,hr,sub,sup,strong,em,li,ul,ol,blockquote,strike,mark,s.
## However, we want to keep xml:lang attribute on most tags and tags from the default list were cleaned on entry.
noAttrib: br
# Can be disabled if you trust ckeditor (If Automatic Content Formatting is enabled, this should be OK)
# allowTags: %default%
denyTags: img
tags:
hr:
allowedAttribs:
- class
## REMOVE OPEN OFFICE META DATA TAGS, WORD 2003 TAGS, LINK, META, STYLE AND TITLE TAGS, AND DEPRECATED HTML TAGS
## We use this rule instead of the denyTags rule so that we can protect custom tags without protecting these unwanted tags.
removeTags: [link, meta, o:p, sdfield, style, title, font, center]
## PROTECT CUSTOM TAGS
keepNonMatchedTags: protect
# HTML Sanitizer
# `htmlSanitize = false | null` to disable individually
htmlSanitize:
# either preset name as declared in `$GLOBALS['TYPO3_CONF_VARS']['SYS']['htmlSanitizer']`
# or class-name implementing interface `\TYPO3\HtmlSanitizer\Builder\BuilderInterface`
build: default
+8
View File
@@ -0,0 +1,8 @@
services:
_defaults:
autowire: true
autoconfigure: true
public: false
TYPO3\CMS\RteCKEditor\:
resource: '../Classes/*'