«Исходные коды» и скрипты для генерации исторических таймлайнов.
Существует уже довольно много онлайн-сервисов для создания таймлайнов. Но у них есть важные недостатки. Например, стили и интерфейсы онлайн-таймлайнов обычно фиксированные, то есть под себя не настроишь. Механизмы коллективной работы самопальные, а хотелось бы что-то вроде git, то есть знакомую, профессиональную систему контроля версий.
Как работает?
Скрипт запускает Adobe Illustrator и согласно содержимому текстового файлика со списком дат рисует в Illustratore таймлайн — шкалу лет, а над ней ставит прямоугольнички-плашки событий, каждая плашка стоит как раз над своим местом на временнОй шкале таймлайна. Потом рисунок сохраняется в PDF файл. Чтобы добавить новую дату на таймлайн, нужно просто дописать строчку в текстовый файлик с «исходным кодом» таймлайна и опять запустить скрипт-построитель, который пересоздаст PDF файл. Для каждого таймлайна свой текстовый файл с «исходным кодом» — с конфигами и списком дат. Например, на основе данных из файла 1930-1947.txt строится таймлайн о Второй мировой войне, событиях ей предшествующих и последующих ей. На гитхабе в одном репозитории вместе лежат и файлы с «исходными кодами» таймлайнов и скрипты, которые строят изображения таймлайнов на основе этих «исходных кодов». Как говорится, делайте форк и добавляйте свои даты в таймлайны.
Как поставить и пользоваться?
Чтобы строить таймлайны на своем компьютере — нужен Illustrator СС 18 (скрипты писал под него на windows 7) и ruby 2.2. Откройте cmd.exe и в директории проекта запустите команду «ruby timelines.rb 1913-1924.txt». Из «исходников» файла 1913-1924.txt построится таймлайн о первой мировой, революции и гражданской. Код «наколеночный» — you are warned. And you are welcome.
Почему под Illustrator?
А почему не в Inkscape, или не сразу в SVG, или вообще в TeX? В принципе ничто не мешает потом написать скрипты, которые на основе «исходников» таймланов будут строить схемы в перечисленных форматах. Потом. А причина выбора Illustrator, во-первых, в возможности в перспективе отправить pdf (или ai файл — в скрипте можно включить сохранение в .ai) сразу в издательство без лишних проволочек, во-вторых, в Illustrator есть встроенный стиль OuterGlow (Внешнее свечение) — им удобно оформлять плавно-высветляющим свечением плашки событий на таймлайне, размывая объекты вокруг плашки, в результате уменьшается ощущение скученности, «толкания локтями» элементов, свойственное насыщенным схемам.
Как отмечать неточные, спорные даты?
Некоторые важные для понимания истории периоды не имеют дат известных с точностью до дня. Поэтому, если даты приблизительные с точностью до месяца, спорные, то в подписи события добавляем в скобках тире и по соответствующие от него стороны буковки m или y, которые и означают неточную дату. Например, первый день бомбардировки Лондона ракетами Фау-1 известен, а последний — нет, поэтому указываем «(-m)». Если бы и первый день не был известен точно, то написали бы «(m-m)». Если обе даты точные — пояснения не нужны. Если и день и месяц в году не известны точно — пишем, например, «(y-)». Если день месяца точно не известен, то в «исходном коде» пишем 15-ый день, если аналогичная ситуация с месяцем, то прописываем «07» (июль). Если более-менее точный день или месяц известны, но вы не уверены — указываете точную цифру, но все равно добавляйте пометку. Для описываемых одной датой исторических событий в аналогичных случаях ставим пометку в скобках, но уже без тире, например «(m)». Эти правила не окончательные, будем вместе дорабатывать.
Формат событий и периодов
Пример формата строки периода «17.07.1942,02.02.1943, Сталинградская битва, 35, g». Перед номером дня или месяца ставим «лидирующий» ноль. Запятые являются частью формата, поэтому в названии события их не должно быть, иначе скрипт не отработает. Формат будем еще совершенствовать. Если у нас не период, а событие описываемое одной датой, то между первой и второй запятой не должно быть знаков или пробелов, например, «12.04.1961,,Полет Гагарина,50,g». Цифра после третьей запятой означает расстояние от временной шкалы по вертикали в процентах, иначе говоря, от 0 до 100 и чем больше, тем выше. Пока в основном располагаю события по высоте с учетом удобства и наглядности, а не их исторической важности. Буква «g» означает календарную шкалу относительно которой которой должно быть расположено событие, в данном случае это код григорианского календаря, но функция пока еще не реализована.
Планы
Добавить шкалу с вековым масштабом, на одном таймлайне выводить шкалы разных летоисчислений, вместе создавать новые таймлайны и наполнять их значимыми событиями.