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

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

править

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

Cохранять текст следует в формате 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 (см. ниже).

AutoWikiBrowser (AWB)

править

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

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

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

править

Генератор списка страниц для задачи применяется во множестве скриптов. Он может быть определён несколькими параметрами.

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

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

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

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

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

править

Список страниц для переименования помещаются в файл, указываемый в параметре «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

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

править

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

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

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

править

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;

Требует административные права, надо указать свой псевдоним в поле УЧАСТНИК.

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

Удаление всех страниц в категории вместе с иллюстрациями

править

Скрипт позволяет определить категорию, например: «К быстрому удалению» или категорию автора. Требует административные права, надо указать свой псевдоним в поле УЧАСТНИК.

#!/bin/bash
USERNAME="УЧАСТНИК"  # ваш псевдоним администратора
SUMMARY="Неиспользуемое изображение без лицензии"
LIST_PAGES_OF_CATEGORY=/tmp/catlist.txt
LIST_IMAGES_ON_PAGE=/tmp/page_images.txt

# В 1-м параметре командной строки можно указать категорию
if [ -n "$1" ]; then
    CATEGORY="$1"
else
    CATEGORY="К быстрому удалению"  # категория по умолчанию
fi

# работаем по списку страниц категории
pwb.py listpages -site:wikisource:ru -format:'{page.can_title}' -cat:"$CATEGORY" > $LIST_OF_CATEGORY_PAGES
while IFS= read -r pagename; do
    echo "$pagename"

    # создаём список изображений на странице
    pwb.py listpages -site:wikisource:ru -format:'{page.can_title}' -imagesused:"$pagename" > $LIST_IMAGES_ON_PAGE

    # исключаем посторонние изображения, которые не нужно удалять
    sed -i '/File:PD-icon\.svg/d' $LIST_IMAGES_ON_PAGE

    # удаляем изображения
    pwb.py delete -site:wikisource:ru -user:$USERNAME -summary:"$SUMMARY" -file:$LIST_IMAGES_ON_PAGE -always
done < $LIST_IMAGES_ON_PAGE

Удаление изображений на страницах категории, с последующим удалением самих страниц:

CAT="К быстрому удалению"; ./delete_images_of_pages_of_category.sh "$CAT"; python pwb.py delete -site:wikisource:ru -user:УЧАСТНИК -cat:"$CAT" -always -summary:"к быстрому удалению"

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

править

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

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

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

Регулярные выражения (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.

Дореформенная орфография

править

Типографская раскладка

править

Можно настроить клавиатуру для ввода различных букв и символов, включая дореформенные буквы, тире, ударение и др.

Windows
Ubuntu и др. GNU/Linux

Перейдите в папку настроек клавиш (cd /usr/share/X11/xkb/symbols/). Добавьте нужные настройки в файл typo (sudo nano typo). Или замените его на следующий, с рядом настроек, которые добавляют «І і Ѣ ѣ Ѳ ѳ Ѵ ѵ» в клавиши 3-го ряда на буквы «и, е, ф, ю, г», а также тире, ударение, минуты ′ и секунды ″ , кавычки «», неразрывный пробел и др.

Подключите раскладку командой setxkbmap -layout us+typo,ru:2+typo -option lv3:rwin_switch -option grp:caps_toggle -option grp_led:caps, добавьте её в автозагрузку. Эта команда делает переключателем 3-го ряда клавишу правый ⊞ Win и подключает настройки файла typo, а также делает переключателем рус./англ. раскладок клавишу CapsLock.[2][3]

Альтернативно, можно внести настройки в файл ru[4], но он для букв, поэтому типографские символы в нём нерелевантны.

Конверторы текста

править
  • Деятификатор. В Настройки → Гаджеты включите «Деятификатор». Это добавит на панель редактирования кнопку для перекодирования орфографии.
  • slavenica.com — переводчик из новой в старую орфографию и обратно.
  • Конвертор для быстрого создания ботом текста в ДО по имеющемуся тексту в СО. Конвертация упрощенная, поэтому потребуется последующая вычитка.

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 для гаджетов и тем оформления.

Примечания

править