Pages, Articles & News
Tools & Plugins
Example / Placeholder Title


Description as an example placeholder. Sample text content for further customization of the "Index36" template.

You are free to edit and customize the template however you like. If you don’t have time or enough knowledge — you can always order template adaptation by contacting me via GitHub or private messages on the digital goods marketplace.

2025-08-29 20:35

1. Проблема

По умолчанию CKEditor 5  как плагин в Cotonti CMF 0.9.26 позволяет выделять блоки кода (CodeBlock) с подсветкой синтаксиса для ограниченного набора языков (PHP, HTML, JavaScript, CSS). Если вы хотите вставлять SQL или другие языки программирования, они могут не подсвечиваться или не отображаться в списке выбора.

2. Что делаем

Мы расширяем конфигурацию плагина CodeBlock в CKEditor 5, чтобы добавить:

  • SQL;
  • Другие популярные языки: Python, Ruby, Go, C#, Java, Kotlin, Swift и др.;
  • Подсказки и комментарии для каждого языка, чтобы пользователю было понятно, где и для чего он используется.

3. Где это делается

В файле конфигурации CKEditor 5, например:

plugins/ckeditor/js/presets/ckeditor.default.set.js
 

4. Как это выглядит

Мы добавляем в объект full (или другой пресет) блок:

например в блок

   window.ckeditorPreset = {
       full: {
после
        plugins: [
               Alignment,
                .....
               Underline
           ],
добавить
 
			codeBlock: {
				languages: [
					{ language: 'abap', label: 'ABAP' },            // ABAP – язык программирования для SAP систем
					{ language: 'apex', label: 'Apex' },            // Apex – язык для Salesforce
					{ language: 'azcli', label: 'Azure CLI' },      // Azure CLI – команды для управления Azure
					{ language: 'bat', label: 'Batch' },            // Batch – командные скрипты Windows
					{ language: 'c', label: 'C' },                  // C – системное программирование, ядра, драйверы
					{ language: 'clojure', label: 'Clojure' },      // Clojure – функциональный язык на JVM
					{ language: 'cpp', label: 'C++' },              // C++ – объектно-ориентированное системное программирование
					{ language: 'csharp', label: 'C#' },            // C# – язык для .NET приложений
					{ language: 'css', label: 'CSS' },              // CSS – оформление веб-страниц
					{ language: 'dockerfile', label: 'Dockerfile' },// Dockerfile – инструкции для Docker
					{ language: 'fsharp', label: 'F#' },            // F# – функциональный язык на .NET
					{ language: 'go', label: 'Go' },                // Go – язык для серверного программирования и микросервисов
					{ language: 'graphql', label: 'GraphQL' },      // GraphQL – язык запросов API
					{ language: 'html', label: 'HTML' },            // HTML – структура веб-страниц
					{ language: 'ini', label: 'INI' },              // INI – конфигурационные файлы
					{ language: 'java', label: 'Java' },            // Java – серверное программирование, Android
					{ language: 'javascript', label: 'JavaScript' },// JavaScript – интерактивность веб-страниц
					{ language: 'json', label: 'JSON' },            // JSON – формат обмена данными
					{ language: 'kotlin', label: 'Kotlin' },        // Kotlin – язык для Android и JVM
					{ language: 'less', label: 'LESS' },            // LESS – препроцессор CSS
					{ language: 'lua', label: 'Lua' },              // Lua – встраиваемый язык для игр и приложений
					{ language: 'markdown', label: 'Markdown' },    // Markdown – разметка текста
					{ language: 'objectivec', label: 'Objective-C' },// Objective-C – iOS и macOS приложения
					{ language: 'perl', label: 'Perl' },            // Perl – скрипты, системное администрирование
					{ language: 'php', label: 'PHP' },              // PHP – серверное программирование веб-сайтов
					{ language: 'powershell', label: 'PowerShell' },// PowerShell – командная оболочка Windows
					{ language: 'pug', label: 'Pug' },              // Pug – шаблонизатор HTML
					{ language: 'python', label: 'Python' },        // Python – скрипты, веб, наука о данных
					{ language: 'r', label: 'R' },                  // R – статистика и аналитика данных
					{ language: 'ruby', label: 'Ruby' },            // Ruby – веб-фреймворк Rails и скрипты
					{ language: 'rust', label: 'Rust' },            // Rust – безопасное системное программирование
					{ language: 'scss', label: 'SCSS' },            // SCSS – препроцессор CSS
					{ language: 'sql', label: 'SQL' },              // SQL – работа с базами данных
					{ language: 'swift', label: 'Swift' },          // Swift – iOS и macOS приложения
					{ language: 'typescript', label: 'TypeScript' },// TypeScript – JS с типизацией
					{ language: 'vb', label: 'Visual Basic' },      // Visual Basic – старые Windows приложения
					{ language: 'xml', label: 'XML' },              // XML – обмен структурированными данными
					{ language: 'yaml', label: 'YAML' }             // YAML – конфигурационные файлы
				]
			}
        },
 
 
свой файл прикрепил, закачать по адресу с заменой:
plugins/ckeditor/js/presets/ckeditor.default.set.js
список языков в выпадающем списке можете редактировать под себя.
 
добавлено в прилагаемом файле только в full а в medium и basic уже добавляйте по своему усмотрению
 
 
 
This post was edited by webitproff (2025-08-30 05:37, 9 months ago)
Account