Vlad-Shcherbina / card_gen

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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


Категория - это множество карточек одного формата. 
Формат карточек категории 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) Если вы используете мой инструмент и вам он нравится, напишите об этом маленькими буквами где-нибудь в правилах.

About

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


Languages

Language:Python 90.9%Language:JavaScript 9.1%