GREP. Продолжение.3
Вчерашний пример откликнулся интересным суждением, что хорошо бы в этом тексте отделять стихотворные блоки не пустой строкой сверху/снизу, а оформлять стих так, чтобы в первой строке была отбивка сверху, а в последней — снизу.
Используя grep, это можно сделать. Не за один раз, а с помощью выполнения цепочки запросов. Для этого уже давно есть скрипт DoQueryList. Я планировал рассказать тут о нём позже, но раз такой вопрос возник, то немного перекрою свой план.
Итак, как сделать эти отбивки?
Пусть наши стихи оформлены своим абзацным стилем. Сделаем стили для первой и последней строк.
Первый запрос по аналогии с вчерашним запросом добавит переводы строки до и после стиха, и эти переводы будут с тем же абзацным стилем, что и стих.
Второй запрос найдёт первый абзац, состоящий из перевода строки и текста после него, и поставит перед этим переводом строки символ #.
Подумайте до видео, как это сделать. Вариант \r.+ не годится, т.к. он пойдёт по всем строкам стиха. Надо найти именно строку, в которой только перевод строки. Для этого есть не один способ.
Третий запрос находит последнюю строку и одиночный перевод строки и ставит перед ним знак равенства.
Так знаками # и = мы отметили начало и конец вставленных в текст стихотворных строк. И два последних запроса эти служебные строки убирают, и присваивают текстовым строкам нужные абзацные стили.
После этого надо запустить скрипт DoQueryList и выполнить эту последовательность.
Вот ссылка на архив, где этот текст, этот скрипт, запросы в папке скрипта, и видео.
https://www.dropbox.com/s/erzadk1fpuosyuh/grep.3.zip?dl=0
Пробуйте, понимайте, грепуйте в кайф.
В понедельник будет новая информация. Продолжение следует…
Последние комментарии