Typo3后端t3editor自定义模式

问题描述 投票:0回答:1

版本:Typo3 v11,CodeMirror v5,浏览器:Firefox

总结: 我有一个 Typo3 扩展,我想为其添加自定义语法突出显示。这应该可以使用内置 t3editor 实现,如文档中所述。

但是,就我而言,我只能通过指定已经使用typo3交付的模式来使其工作。

我的设置:

  1. 出于测试目的,我已将所有代码镜像文件复制到我的
    /Resources/Public/JavaScript/cm
    目录中
  2. /Configuration/Backend/T3editor/Modes.php
    我回来了:
    return [
        'turtle' => [
            'module' => 'TYPO3/CMS/MyExtension/cm/mode/turtle/turtle',
        ],
    ];
  1. /Configuration/TCA/tt_content.php
    我正在设置
    $GLOBALS['TCA']['tt_content']['types']['my_extension']['columnsOverrides']['bodytext']['config']['format'] = 'turtle';

结果: 它显示了一个 CodeMirror 编辑器,没有任何突出显示(黑色文本)。控制台显示没有错误。在浏览器中调试turtle.js 文件时,我注意到执行了海龟模式(CodeMirror.defineMode)的注册,但从未使用注册的函数(即未应用语法突出显示)。

有效的变体

看来我不能离得太远,因为当我更改以下任何一项时,它都会按预期工作:

  • 当我将所有内容更改为 css 而不是turtle 时,它会正确显示 css 突出显示。
  • 当我将模块更改为
    'cm/mode/turtle/turtle'
    (从而直接从 t3editor 加载文件,其中包括所有模式)时,它会正确地突出显示海龟。 (我不想要这个的原因是我正在编写自己的模式,我需要从自己的扩展中添加)

有人能发现我错过了什么吗?

typo3 codemirror codemirror-modes t3editor
1个回答
0
投票

弄清楚如何让它工作,但不确定我明白为什么。欢迎补充解释。 如果在turtle.js文件中我更改了require的参数并定义从

"../../lib/codemirror"
"codemirror"
->一切都按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.