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

Материал из Викитеки — свободной библиотеки

AutoWikiBrowser (AWB)[править]

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

Pywikibot[править]

Примеры применения скриптов на основе 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. Резервная ссылка на словарь дореволюционной орфографии (ДО).