浏览代码

Update generator

crobi 10 年前
父节点
当前提交
50de736478
共有 5 个文件被更改,包括 107 次插入36 次删除
  1. 21
    0
      generator/css/card-size.css
  2. 15
    16
      generator/css/cards.css
  3. 15
    2
      generator/generate.html
  4. 51
    17
      generator/js/cards.js
  5. 5
    1
      generator/js/ui.js

+ 21
- 0
generator/css/card-size.css 查看文件

@@ -41,6 +41,11 @@ page[size="Letter"] {
41 41
     height: 278mm; /* full: 279.4mm (11.0in) */
42 42
 }
43 43
 
44
+page[size="25x35"] {
45
+    width: 63.6mm;
46
+    height: 89.0mm;
47
+}
48
+
44 49
 /* Default card size */
45 50
 .card {
46 51
     width:2.5in;
@@ -54,6 +59,10 @@ page[size="Letter"] {
54 59
     min-width:2.25in;
55 60
     height:3.5in;
56 61
 }
62
+.card-size-225x35 .card-back-icon {
63
+    width: 1in;
64
+    height: 1in;
65
+}
57 66
 
58 67
 /* Poker / Magic card size */
59 68
 .card-size-25x35 {
@@ -61,6 +70,10 @@ page[size="Letter"] {
61 70
     min-width:2.5in;
62 71
     height:3.5in;
63 72
 }
73
+.card-size-25x35 .card-back-icon {
74
+    width: 1in;
75
+    height: 1in;
76
+}
64 77
 
65 78
 /* Poker / Magic card size */
66 79
 .card-size-35x50 {
@@ -68,6 +81,10 @@ page[size="Letter"] {
68 81
     min-width:3.5in;
69 82
     height:5.0in;
70 83
 }
84
+.card-size-35x50 .card-back-icon {
85
+    width: 1.5in;
86
+    height: 1.5in;
87
+}
71 88
 
72 89
 /* Landscape big card */
73 90
 .card-size-75x50 {
@@ -75,6 +92,10 @@ page[size="Letter"] {
75 92
     min-width:7.5in;
76 93
     height:5.0in;
77 94
 }
95
+.card-size-75x50 .card-back-icon {
96
+    width: 2in;
97
+    height: 2in;
98
+}
78 99
 
79 100
 .page[size="A4"] .card-size-full3x3 {
80 101
     width:69mm;

+ 15
- 16
generator/css/cards.css 查看文件

@@ -26,13 +26,13 @@
26 26
     background-color: white;
27 27
     border-radius: 4mm;
28 28
     border-color: inherit;
29
-    margin: 2mm;
29
+    margin: 1mm;
30 30
     flex: 1;
31 31
     display: flex;
32 32
 }
33 33
 
34 34
 .card-back-inner {
35
-    margin: 2mm;
35
+    margin: 3mm;
36 36
     border: 1mm solid;
37 37
     border-color: inherit;
38 38
     border-radius: 4mm;
@@ -45,8 +45,8 @@
45 45
 }
46 46
 
47 47
 .card-back-icon {
48
-    width: 30mm;
49
-    height: 30mm;
48
+    width: 1in;
49
+    height: 1in;
50 50
     border: 4mm solid;
51 51
     border-color: inherit;
52 52
     border-radius: 4mm;
@@ -130,7 +130,7 @@
130 130
 .card-subtitle {
131 131
     height: 18px;
132 132
     line-height: 18px;
133
-    margin-bottom: 1mm;
133
+    margin-bottom: 0.0em;
134 134
     font-family: 'Noto Sans', 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif;
135 135
     font-size: 10pt;
136 136
     font-style: italic;
@@ -158,26 +158,29 @@
158 158
     font-weight: normal;
159 159
     letter-spacing: 1px;
160 160
     margin: 0;
161
-    margin-bottom: 0.3em;
161
+    margin-bottom: -0.2em;
162 162
     border-color: inherit;
163 163
 }
164 164
 
165 165
 .card-p {
166
-    margin-top: 0.0em;
167
-    margin-bottom: 0.5em;
168
-    font-size: inherit;
166
+
169 167
 }
170 168
 
171 169
 .card-fill {flex:1;}
172 170
 
173 171
 .card-description-line {
174
-    margin-bottom: 0.5em;
172
+    margin-top: 0.5em;
173
+    margin-bottom: 0.0em;
175 174
     font-size: inherit;
176 175
     color: black;
177 176
 }
178 177
 .card-description-name {
179 178
     display: inline;
180 179
     font-size: inherit;
180
+    font-style: italic;
181
+}
182
+.card-description-name::after {
183
+    content: ".";
181 184
 }
182 185
 .card-description-text {
183 186
     display: inline;
@@ -186,8 +189,8 @@
186 189
 .card-ruler {
187 190
     width: 100%;
188 191
     height: 1.0mm;
189
-    margin-top: 0.5em;
190
-    margin-bottom: 0.2em;
192
+    margin-top: 0.3em;
193
+    margin-bottom: 0.3em;
191 194
 }
192 195
 
193 196
 .card-bullet-line {
@@ -203,8 +206,4 @@
203 206
     margin-bottom: 0;
204 207
     margin-top: 0;
205 208
     font-size: inherit;
206
-}
207
-
208
-.card-element:last-of-type{
209
-    margin-bottom: 0;
210 209
 }

+ 15
- 2
generator/generate.html 查看文件

@@ -45,8 +45,10 @@
45 45
         <div class="row">
46 46
             <div class="col-md-12 col-lg-3">
47 47
                 <!--<h3>Menu</h3>-->
48
-                <form role="form" class="form-horizontal">
48
+                <form style="display:none" id="file-load-form">
49 49
                     <input type="file" id="file-load" name="files[]" multiple class="form-control" style="display:none" />
50
+                </form>
51
+                <form role="form" class="form-horizontal">
50 52
                     <div class="form-group">
51 53
                         <div class="col-sm-6">
52 54
                             <button type="button" class="btn btn-info btn-block" id="button-help">Open Help</button>
@@ -90,6 +92,7 @@
90 92
                             <select class="form-control" id="page-size" data-option="page_size">
91 93
                                 <option value="A4" selected>A4</option>
92 94
                                 <option value="Letter">US letter</option>
95
+                                <option value="25x35">2.5&quot; x 3.5&quot;</option>
93 96
                             </select>
94 97
                         </div>
95 98
                     </div>
@@ -116,6 +119,16 @@
116 119
                             <input type="text" id="page-columns" class="form-control" data-option="page_columns" value="3">
117 120
                         </div>
118 121
                     </div>
122
+                    <div class="form-group">
123
+                        <label for="card-arrangement" class="col-sm-4 control-label">Arrangement</label>
124
+                        <div class="col-sm-8">
125
+                            <select class="form-control" id="card-arrangement" data-option="card_arrangement">
126
+                                <option value="doublesided" selected>Double sided printing</option>
127
+                                <option value="front_only">Front side only</option>
128
+                                <option value="side_by_side">Side by side</option>
129
+                            </select>
130
+                        </div>
131
+                    </div>
119 132
                 </form>
120 133
                 <h3>Default values</h3>
121 134
                 <form role="form" class="form-horizontal">
@@ -134,7 +147,7 @@
134 147
                         <div class="col-sm-10">
135 148
                             <div class="input-group">
136 149
                                 <select id="default_color_selector" class="colorselector-data"></select>
137
-                                <input type="text" id="default-color" class="form-control" placeholder="Card color" data-property="color">
150
+                                <input type="text" id="default-color" class="form-control" placeholder="Card color" data-property="color" value="black">
138 151
                             </div>
139 152
                         </div>
140 153
                     </div>

+ 51
- 17
generator/js/cards.js 查看文件

@@ -9,6 +9,7 @@ function card_default_options() {
9 9
         page_size: "A4",
10 10
         page_rows: 3,
11 11
         page_columns: 3,
12
+        card_arrangement: "doublesided",
12 13
         card_size: "25x35",
13 14
         icon_inline: true
14 15
     }
@@ -137,6 +138,10 @@ function card_element_unknown(params, card_data, options) {
137 138
     return '<div>Unknown element: ' + params.join('<br />') + '</div>';
138 139
 }
139 140
 
141
+function card_element_empty(params, card_data, options) {
142
+    return '';
143
+}
144
+
140 145
 var card_element_generators = {
141 146
     subtitle: card_element_subtitle,
142 147
     property: card_element_property,
@@ -146,7 +151,8 @@ var card_element_generators = {
146 151
     text: card_element_text,
147 152
     bullet: card_element_bullet,
148 153
     fill: card_element_fill,
149
-    section: card_element_section
154
+    section: card_element_section,
155
+    disabled: card_element_empty
150 156
 };
151 157
 
152 158
 // ============================================================================
@@ -273,12 +279,30 @@ function card_pages_add_padding(cards, options) {
273 279
     }
274 280
 }
275 281
 
282
+function card_pages_interleave_cards(front_cards, back_cards, options) {
283
+    var result = [];
284
+    var i = 0;
285
+    while (i < front_cards.length) {
286
+        result.push(front_cards[i]);
287
+        result.push(back_cards[i]);
288
+        if (options.page_columns > 2) {
289
+            result.push(card_generate_empty(options.page_columns - 2, options));
290
+        }
291
+        ++i;
292
+    }
293
+    return result;
294
+}
295
+
276 296
 function card_pages_wrap(pages, options) {
277 297
     var size = options.page_size || "A4";
278 298
 
279 299
     var result = "";
280 300
     for (var i = 0; i < pages.length; ++i) {
281
-        result += '<page class="page page-preview" size="' + size + '">\n';
301
+        var style = "";
302
+        if ((options.card_arrangement == "doublesided") &&  (i % 2 == 1)) {
303
+            style += 'style="background-color:'+options.default_color+'"';
304
+        }
305
+        result += '<page class="page page-preview" size="' + size + '" ' + style + '>\n';
282 306
         result += pages[i].join("\n");
283 307
         result += '</page>\n';
284 308
     }
@@ -301,21 +325,31 @@ function card_pages_generate_html(card_data, options) {
301 325
         back_cards = back_cards.concat(card_repeat(back, count));
302 326
     });
303 327
 
304
-    // Add padding cards so that the last page is full of cards
305
-    front_cards = card_pages_add_padding(front_cards, options);
306
-    back_cards = card_pages_add_padding(back_cards, options);
307
-
308
-    // Split cards to pages
309
-    var front_pages = card_pages_split(front_cards, rows, cols);
310
-    var back_pages = card_pages_split(back_cards, rows, cols);
311
-
312
-    // Shuffle back cards so that they line up with their corresponding front cards
313
-    back_pages = back_pages.map(function (page) {
314
-        return cards_pages_flip_left_right(page, rows, cols);
315
-    });
316
-
317
-    // Interleave front and back pages so that we can print double-sided
318
-    var pages = card_pages_merge(front_pages, back_pages);
328
+    var pages = [];
329
+    if (options.card_arrangement == "doublesided") {
330
+        // Add padding cards so that the last page is full of cards
331
+        front_cards = card_pages_add_padding(front_cards, options);
332
+        back_cards = card_pages_add_padding(back_cards, options);
333
+
334
+        // Split cards to pages
335
+        var front_pages = card_pages_split(front_cards, rows, cols);
336
+        var back_pages = card_pages_split(back_cards, rows, cols);
337
+
338
+        // Shuffle back cards so that they line up with their corresponding front cards
339
+        back_pages = back_pages.map(function (page) {
340
+            return cards_pages_flip_left_right(page, rows, cols);
341
+        });
342
+
343
+        // Interleave front and back pages so that we can print double-sided
344
+        pages = card_pages_merge(front_pages, back_pages);
345
+    } else if (options.card_arrangement == "front_only") {
346
+        var cards = card_pages_add_padding(front_cards, options);
347
+        pages = card_pages_split(cards, rows, cols);
348
+    } else if (options.card_arrangement == "side_by_side") {
349
+        var cards = card_pages_interleave_cards(front_cards, back_cards, options);
350
+        cards = card_pages_add_padding(cards, options);
351
+        pages = card_pages_split(cards, rows, cols);
352
+    }
319 353
 
320 354
     // Wrap all pages in a <page> element
321 355
     return card_pages_wrap(pages, options);

+ 5
- 1
generator/js/ui.js 查看文件

@@ -63,7 +63,7 @@ function ui_clear_all() {
63 63
 }
64 64
 
65 65
 function ui_load_files(evt) {
66
-    ui_clear_all();
66
+    // ui_clear_all();
67 67
 
68 68
     var files = evt.target.files;
69 69
 
@@ -77,6 +77,9 @@ function ui_load_files(evt) {
77 77
 
78 78
         reader.readAsText(f);
79 79
     }
80
+
81
+    // Reset file input
82
+    $("#file-load-form")[0].reset();
80 83
 }
81 84
 
82 85
 function ui_add_cards(data) {
@@ -385,6 +388,7 @@ $(document).ready(function () {
385 388
     $("#page-size").change(ui_change_option);
386 389
     $("#page-rows").change(ui_change_option);
387 390
     $("#page-columns").change(ui_change_option);
391
+    $("#card-arrangement").change(ui_change_option);
388 392
     $("#card-size").change(ui_change_option);
389 393
 
390 394
     $("#default-color").change(ui_change_default_color);

正在加载...
取消
保存