Справка:Инструменты

AutoWikiBrowser (AWB) править

АвтоВикиБраузер — мощный инструмент для правок Википедии в полуавтоматическом или полностью автоматическом (с учётных записей бота или администратора) режиме. Для его использования потребуется получение разрешения.

Примеры применения скриптов на основе Pywikibot для наиболее распространённых операций.

Генератор списка страниц править

Генератор списка страниц для обработки применяется во множестве скриптов. Для него служат несколько параметров скрипта.

Это может одна страница (параметр -page:"НАЗВАНИЕ СТРАНИЦЫ"), категории (-category:"НАЗВАНИЕ СТРАНИЦЫ КАТЕГОРИИ", для работы по пересечению категорий указать параметр -intersect, иначе работа будет по всем страницам всех указанных категорий), страницы использующие шаблон (-transcludes:""), по началу названий страниц (-prefixindex:"").

Дополнительно существуют фильтры, выполняющиеся по результатам генераторов. Например, можно задать фильтрацию названий по регэкспу (-titleregex:"") после создания списка содержимого какой-либо категории.

Список страниц править

Используется скрипт listpages.py.

pwb.py listpages  -format:'{page.can_title}' -family:wikisource -lang:ru -cat:"Русская проза, крупные формы" > /tmp/pagelist.txt

Переименование страниц править

Используется скрипт movepages.py. Список страниц для переименования помещаются в файл, указываемый в параметре «pairsfile», в формате построчно пары названий: исходное название, целевое название.

python pwb.py movepages -family:wikisource -lang:ru -noredirect -pairsfile:"pagelist.txt" -always

Процесс переименования выглядит примерно так:

# Экспорт списка страниц в текстовый файл, здесь простой случай: всё содержимое определённой категории
pwb.py listpages -site:wikisource:ru  -format:"{page.can_title}" -cat:"<имя категории>" > /tmp/f.txt

# Открываем файл в нашем текстом редакторе, в данном случае в Sublime
subl /tmp/f.txt
# Жмём ctrl+h, включаем режим регэкспов, и в поля вводим шаблоны поиска-замены (без крайних парных кавычек), для разных случаев шаблоны могут отличаться: 
# "^(.+?)( текстовая строка которую надо убрать из названий страниц)(/.+)?$"
# "\1\2\3\n\1\3"
# Кликаем "replace all", все строки в файле должны продублироваться, попарно: старое название и на новой строке - новое название. 
# Проверяем, что после изменения число строк в файл чётное. Если это не так, проверяем где строка не была изменена и добавлена новая строка. Это важно, ибо скрипт будет переименовывать страницы попарно, и непарность где-то в списке приведёт к ошибочному переименованию всех последующих страниц.
# Жмём ctrl+s для сохранения в файл

# Переименовываем страницы
pwb.py movepages -site:wikisource:ru -noredirect -nosubpages -pairsfile:/tmp/f.txt

Замены текста на страницах править

Используется скрипт replace.py. Необходимо указать генератор списка страниц для обработки, см. тему выше.

# Список пар замен помещаются в конце строки. Если используются регэкспы, то указать параметр "regex".
pwb.py replace -family:wikisource -lang:ru -prefixindex:'Страница:Начальная часть названия'  -regex '(\w)а(\w)' '\1б\2'

# Список замен помещаются в файл, указываемый в параметре "pairsfile", в формате построчно: исходное название, целевое название.
pwb.py replace -family:wikisource -lang:ru -page:'НАЗВАНИЕ СТРАНИЦЫ' -pairsfile:"/tmp/pagelist.txt"

Загрузка файлов на Викисклад править

Используется скрипт upload.py.

1. Создать текстовый файл с содержимым создаваемой страницы, включающий описание, лицензию, категории и т. п. Например, desc.txt:

=={{int:filedesc}}==
{{Information
|description={{ru|1=Иллюстрация к книге "Робинзон Крузо" Даниеля Д., опубликованной на рус. языке}}
|date= published at 1887
|source=''Дефо, Даниэль'' [https://viewer.rusneb.ru/ru/rsl01003620114?page=1 Робинзон Крузо / По Даниелю де Фоэ, рассказ. рус. детям Елизаветой Вейнберг. - Одесса : Э. Берндт, ценз. 1887].
|author= [[w:ru:Дефо, Даниель|Дефо, Даниель]]
|permission=
|other versions=
}}

=={{int:license-header}}==
{{PD-RusEmpire}}

[[Category:Daniel Defoe]]

2. Запустить в консоли нижеследующую команду из папки с файлом или указав пути к файлам.

# Загрузка файла на Викисклад. Для загрузки в Викитеку заменить "-family:commons -lang:commons" на "-family:wikisource -lang:ru".
pwb.py upload -family:commons -lang:commons -keep -recursive -noverify -descfile:"desc.txt" -summary:"+" "ИМЯ_ФАЙЛА"

# Загрузка множества файлов. 
# Для каждого файла надо запускать вышеприведённую команду отдельно или выполнять её для списка файлов в папке. 
# На Linux это можно сделать так. Обратите внимание, что файл с описанием надо разместить в другой папке, поскольку эта команда пытается загрузить все файлы из текущей папки, что может вызвать ошибку при наличии в ней посторонних файлов.
for f in $(ls); do pwb.py upload -family:commons -lang:commons -keep -recursive -noverify -descfile:"ПУТЬ/desc.txt" -summary:"+" "$f"; done;

Удаление всех страниц в Категория:К быстрому удалению править

Используется скрипт delete.py.

Замените УЧАСТНИК на ваш псевдоним.

pwb.py delete -family:wikisource -lang:ru -user:УЧАСТНИК -cat:"К быстрому удалению" -summary:"удаление всех страниц в [[Категория:К быстрому удалению]]" -always


Отмена последних правок участника или бота править

Используется скрипт revertbot.py.

Замените УЧАСТНИК и ЧИСЛО_ПОСЛЕДНИХ_ПРАВОК_ДЛЯ_ОТМЕНЫ на нужные.

pwb.py revertbot -site:wikisource:ru -username:УЧАСТНИК -limit:ЧИСЛО_ПОСЛЕДНИХ_ПРАВОК_ДЛЯ_ОТМЕНЫ

Нужное число правок можно найти, подобрав параметр limit в url: https://ru.wikisource.org/w/index.php?title=Служебная:Вклад&target=УЧАСТНИК&limit=2

Внешние редакторы править

Тексты страниц может быть удобно редактировать скопировав во внешние файлы. Внешние текстовые редакторы позволяют отменять последние изменения в тексте, делать мощные и быстрые операции, такие как моментальную поиск-замену текста с поддержкой регэкспов.

Cохранять nекст следует в формате TXT (plain text), обязательно в кодировке utf-8. Формат mediawiki — это plain text с разметкой из текстовых символов, которые программы могут интерпретировать как оформление.

Лучшие редакторы: Notepad++ для Windows, Sublime для Windows и Linux.

Не следует путать текстовые редакторы и текстовые процессоры (MS Word, WordPad, LibreOffice и т. п.), которые создают файлы в своих форматах, кроме собственно текста содержащие шрифты, стили и др.

Автосохранение править

Редактор в браузере не поддерживает автосохранение прогресса редактирования текста, историю изменений и возможность отмены последних правок. Это создаёт риск утери многочасовой кропотливой работы из-за какого-либо технического сбоя. Поэтому полезной привычкой является редактирование во внешних редакторах, имеющих данные функции, и/или периодическое копирование в них редактируемого текста во время работы и перед постингом.

Варианты:

  • Обязательно нажимать кнопки ctrl+A и ctrl+C перед кликом по кнопке отправки текста. Эти комбинации клавиш копируют весь текст в буфер обмена. Это предохранит от утери текста при отправке из-за обрыва связи. (Скопированный текст можно вставить в редактор нажатием ctrl+V.) Это действие рекомендуется сделать привычкой при работе с любыми текстами в интернет.
  • Внешние редакторы.
  • Сервис Google Keep (расширение браузера и приложение для гаджетов), сохраняющий текст в облаке. Может быть удобен при написании небольших заметок и сохранения комментариев перед постингом.
  • Приложения автоматически сохраняющие буфер копирования. С ними достаточно просто выделить текст, нажать Ctrl-c где угодно, включая окно браузера, и он сохранится.

Редактор Sublime править

Проверка орфографии править

К Sublime можно подключить словари для проверки орфографии, есть словарь дореформенной орфографии.

Включение проверки орфографии выполняется нажатием F6, переход по ошибкам клавишами ctrl+F6 и ctrl+shift+F6. Переключение словарей в меню View → Dictionary

Дополнительные настройки:

  • Откройте настройки Sublime (Preferences → Settings в меню), в правой половине экрана расположены пользовательские настройки, найдите там строку "dictionary": "/путь к словарю/", под ней добавьте "fallback_encoding": "Cyrillic (Windows 1251)",.
  • При добавлении строки "spell_check": true, включится автопроверка орфографии для каждого текста, без нажатия F6. Но это будет замедлять работу с большими файлами.
Установка словарей править

Со страницы словарей скачайте файлы *.aff и *.dic нужного словаря (скачать все словари). Для дореформенной орфографии это файлы ru_petr1708.aff, ru_petr1708.dic[1]. Откройте папку профиля Sublime (Preferences → Browse Packages… в меню Sublime), желательно перейти в подпапку User, и положите туда файлы. Перезапустите Sublime.

Плагин Mediawiker править

Для Sublime есть плагин Mediawiker. Поддеживает подсветку вики-синтаксиса, простое оформление (курсив, bold, заголовки и т. п.), открытие страницы с вики-сайта, предпросмотр изменений, постинг и некоторые др. функции. Например, им удобно редактировать единый файл для всех страниц книги перед заливкой его в ПИ Страница с разбивкой на страницы.

Недостаток: Для реализации обёртывающих тегов и шаблонов, которые добавляют начальные и конечные текстовые фрагменты по разным сторонам выделенного текста (например, теги <ref></ref>), надо добавлять свои сниппеты.

Плагин GhostText править

Плагин GhostText позволяет связать поле редактирования в браузере с текстовым редактором (Sublime, Vim, Emacs, VSCode, Acme). Видео. Для установки надо установить плагин для браузера, плагин в редактор. Использование: в браузере открыть на редактирование нужную вики-страницу, кликнуть иконку плагина в панели браузера, текст откроется в текстом редакторе.

Недостаток: Изменения текста синхронизированы в направлении редактор → браузер. Поэтому, если сделать какие-то изменения в викиредакторе (например, викификацию текста), а затем кликнуть окно с внешним редактором, то изменения в викиредакторе заменятся (удалятся) версией из внешнего редактора. Необходимо быть внимательным.

Программа распознавания текста (OCR) FineReader править

Лучшая из существующих программа распознавания текста, является коммерческой.

Извлечение иллюстраций из сканов править

Удобна для извлечения иллюстраций из сканов книг, при этом для них выполнится исправление искажений. Для этого надо загрузить в неё скан, запустить распознавание, затем экспортировать результат как html. Иллюстрации сохранятся в папке. Затем их легко загрузить с помощью Pywikibot (см. выше).

Регулярные выражения (RegExp, регэкспы) править

Регулярные выражения позволяют, используя специальные метасимволы, делать сложные операции поиск/замена. Поддерживаются во всех редакторах и ботах.

Импорт тестов со сторонних сайтов с сохранением оформления текста править

  1. Для примера возьмём страницу https://russportal.ru/index.php?id=church_writing.ilyin_ia1931_00_001. Там надо найти html-элемент с блоком текста.
    1. Открываем панель «Инструменты разработчика»:
      • В браузере Chrome достаточно просто правой кнопкой кликнуть на нужный участок страницы, и в контекстном меню выбрать «показать код».
      • Или откройте панель «Инструменты разработчика». В браузере Chrome оно вызывается кнопкой F12; В Яндекс-браузере — Crtl-Shift+I или через меню. В панели, на левой вкладке «Элементы» включите «выбор элементов на странице», Ctrl+Shift+C. Есть масса информации в интернет об этом, например см. видео про эту панель, как включить выбор элементов показано на :39 секунде.
    2. Там надо найти нужный элемент с блоком всего текста, но без сторонних элементов (вроде блоков рекламы, навигации и т. п.). Мышкой, в режиме выделения элементов, на данной странице его можно найти, наведя чуть выше красного заголовка «И. А. Ильинъ († 1954 г.)». Это элемент <div class="text">...</div>. Поскольку я вам его уже нашёл и назвал, вы можете его просто найти, нажав Ctrl+F (поиск по элементам) в панели на вкладке «Элементы» и введя «.text» (точка — это сокращение для «class»). Далее кликаете по этому элементу правой кнопкой, выбираете «Копировать → Копировать outerHTML». Готово, html с текстом у вас в буфере обмена.
  2. Вставляете его в редактор, нажав Ctrl+V или используя контекстное меню мышки.
    • Рекомендую установить текстовый редактор Notepad++ или Sublime. Поскольку дальше придётся чистить текст от лишних тегов и мусора, предпочтительно с использованием регэкспов. Редактировать можно и в обычном вики-редакторе, но он ущербный, опция Поиск/замена в нём очень тормозит, особенно на больших файлах, нет возможности отменять последние изменения в тексте.
  3. Теперь надо преобразовать html-разметку в вики-разметку. Хотя Викитека понимает html (и «под капотом» преобразуем собственно вики-разметку в html), но это общественный проект в котором текст должен был понятен другим пользователям и не должно быть сложных html-тегов, затрудняющих редактирование и запутывающих участников не являющихся веб-дизайнерами. Для конвертации html в вики-разметку используем следующие способы.
    • Есть общеизвестный конвертер Pandoc (https://pandoc.org), он консольный, хотя бывают его веб-интерфейсы в виде сайтов. Консольный лучше всех других конверторов. Конвертация была бы такой командой. Но поскольку большинство пользователей использует ОС Windows и привыкло к визуальному представлению и мышке, то объяснять это не буду; а пользователи ОС на базе Linux и так всё сделают парой команд.
    • Гаджет wikEd. После включения гаджета в правом-верхнем углу в ВТ появится иконка  . Если нажать её — панель редактирования гаджета включиться в режиме редактирования страницы. Рекомендую этот гаджет выключать после использования, возвращаясь к нашей панели. В этой панели вам нужна кнопочка «<>» Fix html (w:en:User:Cacycle/wikEd help#Fix buttons). При её нажатии, html-теги преобразуются в вики-разметку. Бывает конвертирование html этого гаджета неудовлетворительное, поэтому можно будет смотреть др. вариант.
  4. Теперь надо преобразовать нестандартный теги сайта в наши шаблоны. Для этого используем регэкспы. Надо переключить опцию Поисх/замена на режим регэкспов: во внешних редакторах есть галочка, в вики-редакторе в Поиск/замена тоже есть галочка (нижняя). Несколько примеров:
    • Преобразуем разрядку сайта в наш шаблон {{razr}}. В поле «поиск» введите регэксп: <cite>(\s*)(.+?)(\s*)</cite>, в поле «замена»: $1{{razr|$2}}$3. Если пользуетесь редактором Sublime, то замените тут «$1» на «\1» (другой диалект регэкспов).
    • Переводы строк тегом <br> на нормальные, регэкспом: <br>\n. «\n» означает перевод строки.
    • Заголовки, выделенные в этом тексте жирным шрифтом и тегом <center>, регэкспом: \n*<center>'''(.+?)'''</center>\n*\n\n=== $1 ===\n.

Дореформенная орфография править

CSS — стили оформления править

  • MediaWiki:Common.css, MediaWiki:Interface.css — общие стили
  • MediaWiki:Epub.css — экспорт страниц в файлы Epub, расширения s:mul:Wikisource:WS Export
  • CSS страницы шаблонов — расширение TemplateStyles (см. w:Википедия:Стили шаблонов) позволяет использовать CSS для отдельных шаблонов, как их подстраницу. Это может разгружать код шаблона, HTML-код страницы (если шаблон часто повторяется на странице) и позволяет вносить правки без необходимости править общие css-правила Викитеки.
  • MediaWiki:Mobile.css — для мобильной версии

Также есть другие css для гаджетов и тем оформления.

Примечания править

  1. Резервная ссылка на словарь дореволюционной орфографии (ДО).