Меню

Главная
Случайная статья
Настройки
Участник:Alex Smotrov/ExtEdit
Материал из https://ru.wikipedia.org

Содержание

ExtEdit — это WSH скрипт для редактирования страниц Википедии во внешнем редакторе. Подробнее о концепции внешнего редактора см. meta:Help:External editors  (англ.).

После установки:
  • в браузере: клик мышкой передаёт вики-код страницы в текстовый редактор
  • из редактора: комбинация клавиш запускает быстрый предпросмотр в браузере


Демонстрационный флэш-ролик (154 КБ)




Установка

Скачать ExtEdit.vbs себе в любую папку, по умолчанию здесь же будут создаваться файлы с содержимым страниц.
Альтернативный вариант: зайти на эту страницу в en-Wikipedia и скопировать код из окна редактирования в локальный файл ExtEdit.vbs.
Если у вас стоит антивирус, то скорее всего он автоматически блокирует попытку скачивания/выполнения ExtEdit.vbs как потенциально опасного скрипта, и вам нужно выбрать «всегда разрешить выполнять этот скрипт» или похожее действие. Вы всегда можете сами просмотреть код скрипта и удостовериться в том, какие действия он выполняет.



Ассоциировать .wiki с вашим текстовым редактором


Настроить браузер вызывать ExtEdit.vbs для контента application/x-external-editor :
  • FireFox 2: установить расширение MIME Edit, затем меню ToolsOptionsContentManage
  • Internet Explorer: автору пока неизвестен способ инструктировать IE обрабатывать нестандартные MIME названия. Как вариант, можно запустить ExtEdit.vbs и ответить «Yes» для его ассоциации с .php файлами.
  • Opera: нажмите ссылку ниже, в окне «Download file» нажмите «Change», затем выберите «Open with other application», нажмите «Choose» и укажите ExtEdit.vbs. Позже можно это поменять в Preferences Advanced Downloads.


Для проверки нажать тут, если ваш браузер спросит что делать с файлом index.php, инструктируйте его «открыть» этот файл и в следующий раз об этом не спрашивать. Код страницы «Википедия:Песочница» должен открыться в вашем внешнем редакторе.


Добавить в monobook.js:
//Ссылка «править во внешнем редакторе» 
addOnloadHook(function(){
 var editTab = document.getElementById('ca-edit');
 if (!editTab) return;
 addPortletLink('p-cactions', editTab.firstChild.href + '&externaledit=true',
 '', 'ca-exted', 'внешний редактор', '', editTab.nextSibling);
})


Настроить внешний редактор вызывать ExtEdit.vbs как внешнюю утилиту для .wiki файлов.

Использование

Редактирование

Рядом с обычной ссылкой «править» у вас теперь есть ссылка «», вызывающая внешний редактор для правки. Вы можете ей пользоваться:
  • просто для более удобного редактирования страницы — в отдельном окне редактора с подсветкой синтаксиса
  • для выполнения дополнительных функций, например массовой замены слов
  • если хотите несколько дней поработать над статьёй в оффлайне; разумеется, либо это должна быть достаточно редко редактируемая статья, либо вы должны сначала поставить на неё шаблон {{Пишу}} или


Создание

ExtEdit идеально подходит для создания новых статей. Он позволяет избежать ненужных записей в историю правок, совершаемых участниками только из-за опасения потерять свой текст при сбое браузера. Просто создайте .wiki файл и на первой строке укажите в комментарии будущий адрес страницы, например
<!--http://ru.wikipedia.org/wiki/Участник:Alex Smotrov/Черновик-->


Запись в вики

Основной цикл редактирования во внешнем редакторе:
  • редактирование
  • запись на диск
  • запуск предпросмотра
  • возвращение в редактор для дальнейшего редактирования


Когда вы удовлетворены своей версией страницы, при очередном предпросмотре в браузере нажмите кнопку «Записать страницу».




Разное

Как работает ExtEdit.vbs

ExtEdit.vbs — это Windows Script Host скрипт, написанный на языке VBScript. При запуске:


  • без аргументов — скрипт с вашего разрешения модифицирует Реестр Windows, ассоциируя себя с .php файлами;



  • с аргументом xxx.php (из браузера) — скрипт анализирует контрольный .php файл (сгенерированный MediaWiki для вызова внешнего редактора), затем запрашивает с сервера Викимедии исходный код (вики-разметку) нужной страницы, записывает его на локальный диск как .wiki файл и открывает этот .wiki файл в редакторе;
    • кроме того, рядом с .wiki файлом создаётся служебный .info файл, в который записывается адрес страницы и дата последней модификации, чтобы позже при записи страницы движок MediaWiki смог предупредить вас о возможном конфликте правок
    • если .wiki файл уже существует, то скрипт перемещает его в папку .\backup



  • с аргументом xxx.wiki (из редактора) — скрипт генерирует и запускает в браузере форму для предпросмотра новой версии страницы. При этом адрес страницы берётся:
    • из .info файла с тем же именем
    • если нет, то из первой строки .wiki файла
    • если нет, то используется параметр defaultDraftURL





Параметры

Конфигурируемые параметры указаны как константы в самом начале кода скрипта.
wikiExt
расширение для создаваемых вики-файлов; ("wiki")
defaultDraftURL
адрес для предпросмотра, когда адрес нигде не указан (рувики Песочница)
workingDir
куда сохранять все .wiki файлы ("" означает папку где находится скрипт)
backupSubDir
имя подпапки для сохранения резервных копий (по умолчанию "backup\")
useIEpreview
если true (по умолчанию), то для предпросмотра использовать IE, при этом при последующем просмотре находить это же окно IE для быстрого предпросмотра. Если false, то просто запускать браузер по умолчанию.


Кроме того, мелкие изменения вы всегда можете внести прямо в исходный код.




Выбор внешнего редактора

Основные требования к внешнему редактору — это поддержка кодировки UTF-8, используемой на страницах проектов Викимедии, и возможность запуска из редактора внешней утилиты.

Весьма желательными являются следующие возможности
  • подсветка вики-разметки
  • удобный ввод нестандартных символов и часто используемых элементов разметки


В настоящее время к использованию рекомендуется бесплатный редактор Notepad++. После некоторой настройки он более-менее удовлетворяет всем вышеуказанным пунктам:
  • userDefineLang.xml — файл синтаксиса подсветки, положить рядом с notepad++.exe (увы, не идеален, и существенно его вряд ли можно улучшить)
  • MediaWiki.api — пример списка «вставок» (спецсимволов и разметки), вызываемых по Ctrl-Enter, положить в папку .\plugins\APIs
  • Зайти в меню Run Run, вставить ваш_путь\ExtEdit.vbs $(FULL_CURRENT_PATH), нажать Save, выбрать клавишу быстрого запуска (например F12), нажать Ok





Для ввода специальных символов лучше всего отредактировать свою раскладку клавиатуры (будет удобно вводить эти символы и в редакторе и в браузере):


Комментарии к другим текстовым редакторам:
  • PSPad — рассматривался как ближайший конкурент Notepad++, имеет множество полезных возможностей, потенциально очень полезную поддержку выполнения над текстом WSH-скриптов; к сожалению, возможности настройки подсветки синтаксиса абсолютно не годятся для вики-разметки
  • en:Programmer's Notepad — использует тот же основной компонент, что и Notepad++, обещают (англ.) когда-нибудь в будущем удобную поддержку пользовательской подсветки кода. Похоже, что уже сейчас можно сделать неплохую подсветку, если разобраться в структуре .scheme файлов.
  • en:Cream (как Vim, но говорят ближе к пользователю) — смешанные впечатления, надо будет попробовать ещё раз
  • Не рассматривались пока известные платные редакторы, такие как EditPlus, en:UltraEdit и Multi-Edit (англ.), возможно некоторые из них вполне подошли бы
  • Не рассматривались пока редакторы, написанные на Java,такие как JEdit


Возможно стоит начать отдельный проект, посвящённый внешним редакторам.

См. также тихоползущий Проект:Подсветка синтаксиса




Возможные подводные камни
  • Разработка велась на Windows 2000 SP4 Eng, скрипт один раз тестировался на XP.
  • Возможно на некоторых (старых) OS скрипт не сможет создавать имена файлов из-за кириллических букв, тогда можно либо убрать вызов функции decodeURL (т.е. сделать многие имена файлов неразборчивыми) либо написать функцию encodeToTranslit
  • Возможно на некоторых (старых) OS скрипт не найдёт нужных объектов — Microsoft.XMLHTTP или ADODB.Stream.


Возможные улучшения
  • Вероятно, ассоциация скрипта с .php — это не лучший способ передать контрольный .php файл из браузера в скрипт
  • Если вы несколько раз нажимаете на ссылке «внеш», то во избежание потерь ваших изменений скрипт делает копию старого .wiki файла. Скрипт мог бы не делать копию при DateCreated = DateModified, однако обнаружилось странное поведение Windows — при удалении и перемещении файла и затем создании нового файла с тем же именем, файл имеет Creation Date от старого файла. Объяснение и возможное решение проблемы приветствуются.
  • Большая просьба оставлять комментарии на странице обсуждения.


Ссылки по теме
Downgrade Counter