FictionBook Editor V 2.66 Руководство - "Izekbis". Страница 9
Что делает скрипт.
1. Добавляет body примечаний, если его нет.
2. Добавляет заголовок body примечаний, если его нет. Если есть – оставляет без изменений.
3. Изменяет ID секций примечаний.
4. Изменяет заголовки секций примечаний.
5. Меняет адреса как сносок, так и простых ссылок, которые указывают на секции примечаний.
6. Меняет текст сносок (у простых ссылок остается как было).
7. Добавляет новую секцию примечаний.
8. Добавляет новую сноску с правильными адресом и текстом.
Как использовать скрипт? Нужно стать на позицию в тексте, где должна появиться ссылка на примечание, и запустить скрипт. Остальное делается автоматически.
Детали алгоритма. Номер вставляемого примечания определяется по номеру примечания, расположенного перед вставляемым. Остальные не анализируются. Т. е. если вставляем после сноски, связанной с третьей секцией боди примечаний, новая сноска получит номер четыре и будет связана с четвертой секцией в боди примечаний. Если вставлять новую сноску после сноски, которая не связана ни с какой секцией в теле примечаний, скрипт сообщит об ошибке.
Новые адреса и тексты ссылок генерируются не по порядку их размещения в тексте, а вычисляются по тому, с какими секциями связаны ссылки. Другими словами, связь ссылки и секции сохраняется независимо от порядка их расположения.
Секции примечаний нумеруются с единицы для первой секции.
Заголовки в секции примечаний добавляются независимо от исходного их наличия/отсутствия.
Ограничения. Скрипт не понимает вложенные (более одного уровня вложения) секции в боди примечаний. В случае, если встречаются секции второго или более уровня вложения, скрипт выдаст предупреждающее сообщение и прервет свою работу.
Настройки. В начале файла скрипта расположены определения констант, которые задают шаблоны для называния заголовков, для текста ссылок и пр. Соответственно при необходимости их можно поменять. Макрос %N задает номер секции примечания, остальное трактуется как просто текст.
В данный набор скриптов входят следующие подверсии:
1. Добавление сноски;
2. Обработка сносок;
3. Добавление сноски со вводом;
4. Добавление сноски с переходом;
5. Добавление последней сноски;
6. Добавление последней сноски со вводом;
7. Добавление последней сноски с переходом;
8. Унификация комментария;
9. Унификация комментариев;
10. Добавление комментария со вводом;
11. Добавление комментария с переходом;
12. Добавление последнего комментария;
13. Добавление последнего комментария со вводом;
14. Добавление последнего комментария с переходом;
15. Унификация сносок (с удалением неиспользуемых секций сносок);
16. Унификация комментариев (с удалением неиспользуемых секций комментариев);
Видно, что есть скрипты, которые работают с так называемыми «сносками», а есть которые с «комментариями». Что тут имеется в виду? А имеется тут в виду то, что можно работать одновременно с двумя потоками сносок, различающихся вот чем. Во-первых, «сноски» располагаются в ‹body name=«notes»›, а «комментарии» – в ‹body name=«comments»›. Во-вторых, текст ссылок-«комментариев» скрипт выделяет тегом ‹sup›, чего не происходит со «сносками». Это нужно для того, чтобы «комментарии» в тех читалках, где нет специальной их поддержки, отображались как верхний индекс. Третье – по умолчанию ссылка «сноски» имеет такой вид: [1], в то время как ссылки «комментариев» оформляются следующим образом: {1}. То есть для «комментариев» используются фигурные скобки, а не квадратные, таким образом можно зрительно различать тип сноски при чтении книги. Четвертое различие состоит в том, что по умолчанию id секций «сносок» имеют вид i_1, а «комментариев» – c_1. Соответственно этому различаются и адреса ссылок.
Скрипты 1 и 8 («Добавление сноски» и «Добавление комментария») добавляют простую сноску или комментарий, и больше ничего не делают – курсор оказывается в позиции сразу за добавленной ссылкой сноски.
Скрипты 2 и 9 («Обработка сносок/комментариев») отличаются тем, что не производят добавление сноски или комментария, но при этом производят перенумерацию и всяческую обработку уже имеющихся сносок/комментариев.
Скрипты 3, 6, 10 и 13 («…со вводом») позволяют после генерации пустой сноски в соответствующем боди ввести ее текст в появившемся окошке. Можно использовать различные теги, как fb2- (‹emphasis›, ‹strong› и пр.) так и теги html (‹b›, ‹i› и пр.). html-теги тоже будут преобразованы в fb2-теги, но их может быть удобнее использовать вследствие краткости, и, следовательно, большей быстроты их набора на клавиатуре. После того, как текст будет введен в окошке и сноска создана, курсор окажется в позиции сразу за свежесозданной ссылкой сноски.
Скрипты 4, 7, 11 и 14 («…с переходом») работают так, что совершаются все перенумерации, создается сноска с пустым телом, а потом в начало этого тела сноски (но после заголовка) перемещается курсор. Бывает удобно вставить текст сноски в буфер обмена, потом запустить скрипт «…с переходом» и сделать paste из буфера.
Скрипты 6, 7, 13 и 14 («Добавление *последней* сноски/комментария…») позволяют добавлять сноску только ниже по документу, чем расположена последняя сноска из уже имеющихся. Данные скрипты не производят перенумерацию ссылок и секций (т. к. при добавлении *последней* сноски в этом нет нужды), за счет чего происходит ускорение работы скрипта. Детали работы этого скрипта, я, честно говоря, сам восстанавливаю в памяти не без труда, если еще чего вспомню, то напишу.
Скрипты 15 и 16 («Унификация… с удалением неиспользуемых секций…») производят унификацию сносок либо комментариев, при этом секции сносок или комментариев, на которые нет ссылок, удаляются.
Примечания и комментарии из скобок v2.2
Бывает так, что в книге примечания сделаны прямо посреди основного текста книги, а не вынесены в отдельные секции в ‹body name=«notes»›. В таком случае может быть удобней не переносить примечания в ‹body name=«notes»› по одному, а пометить начало и конец каждого примечания (посреди текста книги) последовательностью определенных символов (такая последовательность в рамках письменного и устного общения насчет данного скрипта условно называется «скобкой»), а потом сгенерировать все (корректно оформленные) сноски сразу. Именно для такого случая и сделан данный набор скриптов.
В архиве имеются следующие скрипты:
1. Примечания из [];
2. Примечания из {};
3. Примечания из [!!];
4. Примечания из [~ ~];
5. Примечания из скобок, заданных регэкспами;
6. Примечания из скобок, заданных простым текстом;
7. Комментарии из [];
8. Комментарии из {};
9. Комментарии из [!!];
10. Комментарии из [~ ~]
11. Комментарии из скобок, заданных регэкспами;
12. Комментарии из скобок, заданных простым текстом;
Про разницу между «Примечаниями» и «Комментариями» можно прочитать в описании скрипта «Добавление сносок и примечаний».
Скрипты 1-4 и 7-10 используют жестко заданные «скобки», какие именно – указано в названиях скриптов (сначала открывающая, а затем закрывающая).
Скрипты 5 и 11 («…из скобок заданных регэкспами») позволяют задать отдельно регэксп для открывающей и закрывающей «скобок», и по этим регэкспам скрипт ищет скобки и извлекает сноски.
Скрипты 6 и 12 («…из скобок, заданных простым текстом») позволяют ввести две строковые последовательности в одном окошке (через пробел), и эти последовательности скрипт при работе будет считать за открывающую и закрывающую скобки.
Начиная с определенной версии, в поисках примечаний скрипт обрабатывает все body, которые есть в книге, причем он просматривает их целиком, выделение текста перед запуском скрипта не учитывается.
Скрипты данного набора имеют такой недостаток, что если внутри многосимвольной «скобки» в тексте книги есть какой-то тег (например, используется скрипт «Примечания из [!!]» и открывающая скобка имеет в fb2 вид [‹emphasis›!), то такая скобка не будет обнаружена скриптом. По этой причине односимвольные «скобки» предпочтительнее многосимвольных. Если вам все же приходится использовать многосимвольные, то после обработки скриптом нужно сделать поиск «скобки» по тексту в режим «Дизайн» (в случае приведенного примера искать нужно [! и!]), подправить случаи, где тег оказался внутри «скобки», и запустить скрипт заново.