прожка для генерации карточек
Python JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
images
micros
styles
templates
.gitignore
checkOverflow.js
gen.bat
gen.py
metalang.py
readme.txt
replacements.txt
sample_order.txt
unformat.py

readme.txt

Прожка для генерации карточек


Категория - это множество карточек одного формата. 
Формат карточек категории example определяется следующими файлами:
    templates/example.txt
    templates/example_front.html
    templates/example_back.html
    styles/example.css

Первый файл определяет потенциальное содержимое карточки, остальные три - её вид. В файле templates/example.txt вводятся конструкции вида {field}, отвечающие определённым элементам карточки, а в файлах templates/example_front.html и templates/example_back.html они могут использоваться.

Файл карточки - это файл, повторяющий структуру шаблона категории templates/example.txt, однако на месте соответствующих полей содержащий конкретный текст карточки. В файле карточки допустимы особые конструкции вида {вариант 1|вариант 2|вариант 3}. При генерации карточек каждый экземпляр будет содержать один из указанных вариантов. Какой - выбирается случайным, но воспроизводимым образом (при перегенерации того же файла заказов результат будет тем же).
    
Заказ - это набор карточек из одной категории с указанием их количеств. Карточки из заказа подлежат печати за один раз.
Заказ задаётся текстовым файлом, содержащим
    в первой строчке - количество карточек, помещающихся на листе, и название категории,
    в каждой последующей строчке - путь к файлу карточки и требуемое количество экземпляров.

Разделяется пробелами. Заметим, что количество карточек, помещающихся на листе, избыточно, т.к. определяется размерами карточки и листа, однако для упрощения реализации его требуется задавать явно.

Для работы программы требуется python 2.7.*.

Использование программы:
    python gen.py order.txt
где order.txt - файл заказа.
  
Если файлы заказа и карточек не содержали ошибок, будут созданы два файла results/order_front.html и results/order_back.html, содержащие лицевые и обратные стороны экземпляров карточек из заказа, сгруппированные по листам. Их и нужно печатать.

  
   
   
   
   
Примечания.

1) Если были ошибки, в results останутся старые файлы. Смотрите за сообщениями об ошибках.

2) Шаблон и текст карточки должны соответствовать друг другу с точностью до пробелов. 
Например, если шаблон имеет вид
    --- 8< ------------
    {field1}
    ---
    {field2}
    ------------ >8 ---,
а файл карточки - вид
    --- 8< ------------
    Конкретное содержимое первого поля
    ---<лишний пробел>
    Конкретное содержимое второго поля
    ------------ >8 ---,
то генерация не пройдёт.

3) Если требуется портретная ориентация, надо поменять местами высоту и ширину для классов front и back в styles/example.css.
Если нужны односторонние карточки, файл templates/example_back.html можно оставить пустым.

4) Если элемент карточки вылазит за отведённое ему место, при просмотре результата в браузере он будет подсвечен красным. При печати не будет.

5) gen.bat генерирует карточки по всем файлам вида *order*.txt в корневом каталоге.

6) Файлы шаблонов и стилей новой категории должен создавать человек, разбирающийся в вёрстке вёб-страниц. Прилагающийся в качестве примера файл стилей довольно грязный. Файлы карточек и заказов может писать любой.

7) Инструкции по форматированию (например, центрировать ли такой-то текст) могут находиться в одном из трёх мест: в тексте карточек, в шаблонах или в стилях. Если инструкция является общей для всех карточек в данной категории, подойдёт второй или третий вариант (какой именно - на усмотрение верстальщика); первый вариант рекомендуется только если инструкция специфична для данной конкретной карточки. В идеале должен выдерживаться принцип разделения формы и содержания. Это позволит менять дизайн всех карточек в категории разом, редактируя только шаблоны и стили.

8) Перед массовым написанием текстов карточек следует убедиться, что шаблоны свёрстаны верно. Для этого нужно попробовать напечатать пару листов пробных карточек в каждой категории. Чтобы карточки поместились на листы, может потребоваться поиграться с размерами полей в настройках печати. При финальной печати рекомендуется пользоваться тем же браузером и тем же набором настроек, что и при пробной.

9) Для предварительного просмотра карточек удобно использовать ключ --once:
    python gen.py order.txt --once
Каждая карточка из заказа будет сгенерирована в одном экземпляре, вне зависимости от указанного количества.

10) Редактирование автоматически генерируемых файлов (в данном случае - тех, что лежат в каталоге results) приводит к страданиям.  
  
11) Рекомендуемая структура каталогов:
my_game/
    gen.py
    metalang.py     
    unformat.py
    checkOverflow.js
    replacements.txt
    order1.txt
    order2.txt
    ...
    styles/
        category1.css
        category2.css
        ...
    templates/
        category1.txt
        category1_front.html
        category1_back.html
        category2.txt
        category2_front.html
        category2_back.html
        ...
    images/
        ...
    some_cards/
        card1.txt
        card2.txt
        ...
    some_other_cards/
        whatever_card.txt
        ...
    results/
        order1_front.html
        order1_back.html
        ...
    ...
(разумеется, названия order1, category1, card1 и т.п. условные - содержательные названия не возбраняются!)
    
12) Если вы используете мой инструмент и вам он нравится, напишите об этом маленькими буквами где-нибудь в правилах.