Расширение:CodeEditor

This page is a translated version of the page Extension:CodeEditor and the translation is 100% complete.
Это расширение поставляется с MediaWiki 1.31 и выше. Таким образом, вам не нужно загружать его снова. Тем не менее, вы всё равно должны следовать другим инструкциям.
Справка по расширениям MediaWiki
OOjs UI icon advanced-invert.svg
CodeEditor
Статус релиза: стабильный
CodeEditor extension screenshot.png
Описание Предоставляет редактор кода с подсветкой синтаксиса для сайта и пользовательских страниц JS, CSS и Lua, интегрированный с расширенной панелью инструментов редактирования
Автор(ы)
  • Brion Vibber
  • Derk-Jan Hartman
  • authors of Ace (ace.c9.io)
Политика совместимости Snapshots releases along with MediaWiki. Master is not backward compatible.
MediaWiki 1.32+
Изменения БД Нет
Лицензия GPL-2.0-or-later AND BSD-3-Clause
Загрузка
  • $wgCodeEditorEnableCore
Переведите расширение CodeEditor если оно доступно на translatewiki.net

Проверьте использование и версию.

Проблемы Открытые задачи · Сообщить об ошибке

Расширение CodeEditor расширяет панель инструментов расширенного редактирования WikiEditor встроенным виджетом редактора Ace, предоставляя некоторые удобные функции для страниц JavaScript пользователя/сайта, страниц CSS, страниц JSON, а также, если установлено расширение Scribunto, для страниц Lua, т.е. страниц в пространстве имен Модуль. Редактор кода не отображается на обычных вики-страницах, т.е. вики-страницах с моделью содержимого "вики-текст". (См. Extension:CodeMirror для подсветки синтаксиса вики-текста при использовании редактора исходного текста.)

Оно предоставляет следующие возможности:

  • подсветка синтаксиса для JavaScript, CSS и Lua
  • автоматический отступ
  • клавиша табуляции создает отступы табуляции (с версии 1.22), до этого были мягкие отступы.
  • выделение отступа/неотступа с помощью клавиш Tab/Shift-Tab
  • проверка достоверности синтаксиса для JavaScript
  • Попарное сопоставление для круглых и квадратных скобок

Установка

Для работы этого расширения необходимо установить расширение WikiEditor. Установка расширения Scribunto необязательна.
  • Если вы используете Vagrant , установите с помощью vagrant roles enable codeeditor --provision
Ручная установка
  • Скачайте и распакуйте файл(ы) в папку с названием CodeEditor в вашей папке extensions/.
  • Добавьте следующие строки в конец файла LocalSettings.php:
    wfLoadExtension( 'CodeEditor' );
    $wgDefaultUserOptions['usebetatoolbar'] = 1; // user option provided by WikiEditor extension
    
  • Настройте по необходимости.
  •   Готово – Перейдите на страницу Special:Version на своей вики, чтобы удостовериться в том, что расширение успешно установлено.

Настройка

$wgCodeEditorEnableCore
Чтобы отключить редактор на страницах JavaScript и CSS в пространствах имен MediaWiki, User и других основных, установите $wgCodeEditorEnableCore = false; (по умолчанию "true").
$wgScribuntoUseCodeEditor
Чтобы отключить это расширение для Scribunto, то есть в пространстве имен модулей, установите $wgScribuntoUseCodeEditor = false; (по умолчанию "true").
Этот параметр конфигурации предоставляется расширением Scribunto и поэтому должен быть добавлен после вызова CodeEditor, а также расширения Scribunto, которое также должно быть установлено для работы.
JavaScript

Можно изменить конфигурацию редактора ACE, подключившись к MediaWiki JS hook (i.e. mw.hook( 'codeEditor.configure' ).add( ... )). Аргументом, передаваемым вашему хуку, будет сессия редактора ACE.

Интеграция с WikiEditor

Я интегрировал CodeEditor в подключаемые части Расширение:WikiEditor в качестве подготовки к работе над будущим редактором, поскольку мы хотим иметь возможность расширить его для редактирования вещей, которые не являются простым вики-текстом, что потребует некоторых изменений в настройке панели инструментов и тому подобное. JS/CSS здесь в конечном итоге все равно возвращают обычный текст, что делает его более простым промежуточным проектом. --brion 00:26, 14 June 2011 (UTC)

Хорошо:

  • работают специальные вставки символов, включая пары кавычек для окружения текста
  • работают основные вставки форматирования, включая диалоги ссылок
  • работает диалог поиска/замены
    • Встроенный в ace пользовательский интерфейс поиска/замены также срабатывает от команд клавиатуры, все ещё нужно отключить его! (onCommandKey)

Плохо:

  • многострочное форматирование применяется некорректно (но действительно ли оно должно применяться здесь? :)

Todo:

  • удалить кнопки панели инструментов, которые не применяются (форматирование, помощь по синтаксису?).
  • добавить кнопки панели инструментов, которые являются более непосредственно полезными
    • отступ/выступ
    • помощники для вставки общих ключевых слов или битов кода
    • справочная ссылка на справочник MW JS API, спецификации/документацию по JS и CSS

Известные проблемы

  • доступность: tab/shift-tab переопределяются. есть ли последовательная альтернатива для пользователей, полагающихся на клавиатуру?
  • доступность: клавишу доступа в исходной текстовой области необходимо перенести или обработать другим способом
  • полоса прокрутки инициализируется слишком широкой; необходимо запустить проверку изменения размера после её заполнения (возможно, исправлено?).
  • позиция курсора/прокрутки не сохраняется при предварительном просмотре/изменении

Лицензия

Хотя это расширение лицензировано GNU General Public License v2.0 или более поздней версии (GPL-2.0+), оно использует программное обеспечение редактора Ace, которое лицензировано BSD 3-clause "New" или "Revised" License (BSD-3-Clause).