Сохраняйте пробелы в RTE для предварительных тегов и тегов кода

Я хочу отображать код с помощью тегов <pre> и / или <code>, и это нормально. Пробелы сохраняются при первом сохранении и правильно отображаются во внешнем интерфейсе. Однако при перезагрузке содержимого в бэкэнде редактор показывает код без дополнительных пробелов. Сохранение снова отбрасывает все форматирование кода.

Я предполагаю, что для этого есть какие-то настройки, но до сих пор я ничего не мог найти. Есть намеки на это?

Для выделения кода я использую расширения GeshiLib и vjrtecodesnippets.

Изменить:

Извините, пропустил настройку. Здесь задействовано основное rtehtmlarea, в настоящее время v4.7.5, нет никаких специфических изменений TCA, так как это стандартное поле основного текста из стандартного элемента Text content TYPO3 (отображается через css_styled_content).

PageTS для RTE выглядит следующим образом:

RTE.default.hidePStyleItems := removeFromList(pre)
RTE.default.proc {
  allowTags := addToList(pre)
  entryHTMLparser_db.allowTags < RTE.default.proc.allowTags

  overruleMode = tx_vjrtecodesnippets,ts_css,cleanenc
  allowTags := addToList(code)
  allowTagsOutside := addToList(code)

  entryHTMLparser_db {
    allowTags < RTE.default.proc.allowTags
    allowTagsOutside < RTE.default.proc.allowTagsOutside
  }

  HTMLparser_rte {
    allowTags < RTE.default.proc.allowTags
    allowTagsOutside < RTE.default.proc.allowTagsOutside
  }
}

Edit2: мы опубликовали news_blog расширения TYPO3, которое делает именно это.


person pdu    schedule 01.11.2012    source источник
comment
Не могли бы вы выложить конфигурацию TCA для поля и таблицы, пожалуйста? Есть ли где-то RTE?   -  person adhominem    schedule 01.11.2012
comment
Итак, то, что вы видите здесь, - это анализатор RTE в действии. Он пытается оптимизировать HTML. Вам нужен RTE в бэкэнде? Не могли бы вы использовать простое старое текстовое поле? В противном случае вам придется настраивать parsefunc, а это настоящая проблема.   -  person adhominem    schedule 01.11.2012
comment
Мне нужен RTE в бэкэнде, поскольку выделитель синтаксиса также должен работать для поля основного текста в новостях и других расширениях. Не могли бы вы дать мне начальную подсказку, чтобы я мог немного побеспокоиться?   -  person pdu    schedule 02.11.2012
comment
Хм ... тогда вам может потребоваться отключить синтаксический анализ или написать свой собственный parsefunc. Google для parseFunc в сочетании с RTE   -  person adhominem    schedule 03.11.2012
comment
Только что понял: может помочь эта ссылка: van-tomas.de/blog/how-to-enable-custom-tags-in-typo3-rte   -  person adhominem    schedule 03.11.2012
comment
Какая версия TYPO3, rtehtmlarea?   -  person Mateng    schedule 23.11.2012
comment
4.7.5, как написано в вопросе   -  person pdu    schedule 24.11.2012


Ответы (2)


Я хотел написать комментарий, но короткий ответ со сложными догадками может быть не хуже:

  • Проверил на собственном сайте, тег <code> работает нормально. Пробелы сохраняются как &nbsp; в поле основного текста, поэтому сохраняются при сохранении и повторном открытии.
  • Вы пытались удалить строку
    RTE.default.hidePStyleItems := removeFromList(pre)?
  • Согласно manual, поддерживаются только теги <code>. пользователя vjrtecodesnippets. Вам действительно нужны оба тега для выделения синтаксиса?
  • Кроме того, пробовали ли вы изменить свой PageTS следующим образом, чтобы включить <pre> ?:

-

RTE.default.proc {
  allowTagsOutside := addToList(code,pre)
}

РЕДАКТИРОВАТЬ:
Я нашел связанный фрагмент TypoScript, который может быть примечателен для вашего случая. Пожалуйста, попробуйте внести следующие изменения:

В разделе НАСТРОЙКА шаблона:

lib.parseFunc.allowTags := addToList(code,pre)
lib.parseFunc_RTE.allowTags := addToList(code,pre)

В СТРАНИЦЕ TSconfig:

RTE.default.proc {
  allowTags := addToList(code,pre)
  allowTagsOutside := addToList(code,pre)
  overruleMode = tx_vjrtecodesnippets,ts_css,cleanenc

  // CONTENT TO DATABASE
  HTMLparser_rte {
    allowTags < RTE.default.proc.allowTags
    allowTagsOutside < RTE.default.proc.allowTagsOutside
  }

  // Entry HTML parser
  entryHTMLparser_db {
    allowTags < RTE.default.proc.allowTags
    allowTagsOutside < RTE.default.proc.allowTagsOutside
  }
}
person Mateng    schedule 23.11.2012

это работает на typo3 7.4

    RTE.default.proc {
    allowTags := addToList(pre)

    HTMLparser_rte {
        allowTags < RTE.default.proc.allowTags
    }

    entryHTMLparser_db {
        allowTags < RTE.default.proc.allowTags
    }
}

наверняка вы также можете добавить больше имен тегов, разделенных ","

Дополнительные настройки вашего RTE в опечатках см. https://docs.typo3.org/typo3cms/CoreApiReference/6.2/Rte/Transformations/Tsconfig/Index.html

person Robert    schedule 29.09.2015