@thegetty/quire-cli 1.0.0-pre-release.10 → 1.0.0-pre-release.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@thegetty/quire-cli",
3
3
  "description": "Quire command-line interface",
4
- "version": "1.0.0-pre-release.10",
4
+ "version": "1.0.0-pre-release.12",
5
5
  "author": "Getty Digital",
6
6
  "license": "J Paul Getty Trust",
7
7
  "bugs": {
@@ -52,7 +52,7 @@
52
52
  "cross-env": "^7.0.3",
53
53
  "del": "^7.0.0",
54
54
  "execa": "^6.1.0",
55
- "fs-extra": "^10.1.0",
55
+ "fs-extra": "^11.0.0",
56
56
  "hosted-git-info": "^6.1.1",
57
57
  "i18next": "^22.0.4",
58
58
  "inquirer": "^9.1.4",
@@ -0,0 +1,1089 @@
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><style>body {
2
+ max-width: 980px;
3
+ outline: 1300px solid #fff;
4
+ margin: 16px auto;
5
+ }
6
+
7
+ body .markdown-body
8
+ {
9
+ padding: 45px;
10
+ }
11
+
12
+ @font-face {
13
+ font-family: fontawesome-mini;
14
+ src: url(data:font/woff;charset=utf-8;base64,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) format('woff');
15
+ }
16
+
17
+ .markdown-body {
18
+ font-family: sans-serif;
19
+ -ms-text-size-adjust: 100%;
20
+ -webkit-text-size-adjust: 100%;
21
+ color: #333333;
22
+ overflow: hidden;
23
+ font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;
24
+ font-size: 16px;
25
+ line-height: 1.6;
26
+ word-wrap: break-word;
27
+ }
28
+
29
+ .markdown-body a {
30
+ background: transparent;
31
+ }
32
+
33
+ .markdown-body a:active,
34
+ .markdown-body a:hover {
35
+ outline: 0;
36
+ }
37
+
38
+ .markdown-body b,
39
+ .markdown-body strong {
40
+ font-weight: bold;
41
+ }
42
+
43
+ .markdown-body mark {
44
+ background: #ff0;
45
+ color: #000;
46
+ font-style: italic;
47
+ font-weight: bold;
48
+ }
49
+
50
+ .markdown-body sub,
51
+ .markdown-body sup {
52
+ font-size: 75%;
53
+ line-height: 0;
54
+ position: relative;
55
+ vertical-align: baseline;
56
+ }
57
+ .markdown-body sup {
58
+ top: -0.5em;
59
+ }
60
+ .markdown-body sub {
61
+ bottom: -0.25em;
62
+ }
63
+
64
+ .markdown-body h1 {
65
+ font-size: 2em;
66
+ margin: 0.67em 0;
67
+ }
68
+
69
+ .markdown-body img {
70
+ border: 0;
71
+ }
72
+
73
+ .markdown-body hr {
74
+ -moz-box-sizing: content-box;
75
+ box-sizing: content-box;
76
+ height: 0;
77
+ }
78
+
79
+ .markdown-body pre {
80
+ overflow: auto;
81
+ }
82
+
83
+ .markdown-body code,
84
+ .markdown-body kbd,
85
+ .markdown-body pre,
86
+ .markdown-body samp {
87
+ font-family: monospace, monospace;
88
+ font-size: 1em;
89
+ }
90
+
91
+ .markdown-body input {
92
+ color: inherit;
93
+ font: inherit;
94
+ margin: 0;
95
+ }
96
+
97
+ .markdown-body html input[disabled] {
98
+ cursor: default;
99
+ }
100
+
101
+ .markdown-body input {
102
+ line-height: normal;
103
+ }
104
+
105
+ .markdown-body input[type="checkbox"] {
106
+ box-sizing: border-box;
107
+ padding: 0;
108
+ }
109
+
110
+ .markdown-body table {
111
+ border-collapse: collapse;
112
+ border-spacing: 0;
113
+ }
114
+
115
+ .markdown-body td,
116
+ .markdown-body th {
117
+ padding: 0;
118
+ }
119
+
120
+ .markdown-body .codehilitetable,
121
+ .markdown-body .highlighttable {
122
+ border: 0;
123
+ border-spacing: 0;
124
+ }
125
+
126
+ .markdown-body .codehilitetable tr,
127
+ .markdown-body .highlighttable {
128
+ border: 0;
129
+ }
130
+
131
+ .markdown-body .codehilitetable pre,
132
+ .markdown-body .codehilitetable div.codehilite,
133
+ .markdown-body .highlighttable pre,
134
+ .markdown-body .highlighttable div.highlight {
135
+ margin: 0;
136
+ }
137
+
138
+ .markdown-body .linenos,
139
+ .markdown-body .code,
140
+ .markdown-body .codehilitetable td,
141
+ .markdown-body .highlighttable td {
142
+ border: 0;
143
+ padding: 0;
144
+ }
145
+
146
+ .markdown-body td:not(.linenos) .linenodiv {
147
+ padding: 0 !important;
148
+ }
149
+
150
+ .markdown-body .code {
151
+ width: 100%;
152
+ }
153
+
154
+ .markdown-body .linenos div pre,
155
+ .markdown-body .linenodiv pre,
156
+ .markdown-body .linenodiv {
157
+ border: 0;
158
+ -webkit-border-radius: 0;
159
+ -moz-border-radius: 0;
160
+ border-radius: 0;
161
+ -webkit-border-top-left-radius: 3px;
162
+ -webkit-border-bottom-left-radius: 3px;
163
+ -moz-border-radius-topleft: 3px;
164
+ -moz-border-radius-bottomleft: 3px;
165
+ border-top-left-radius: 3px;
166
+ border-bottom-left-radius: 3px;
167
+ }
168
+
169
+ .markdown-body .code div pre,
170
+ .markdown-body .code div {
171
+ border: 0;
172
+ -webkit-border-radius: 0;
173
+ -moz-border-radius: 0;
174
+ border-radius: 0;
175
+ -webkit-border-top-right-radius: 3px;
176
+ -webkit-border-bottom-right-radius: 3px;
177
+ -moz-border-radius-topright: 3px;
178
+ -moz-border-radius-bottomright: 3px;
179
+ border-top-right-radius: 3px;
180
+ border-bottom-right-radius: 3px;
181
+ }
182
+
183
+ .markdown-body * {
184
+ -moz-box-sizing: border-box;
185
+ box-sizing: border-box;
186
+ }
187
+
188
+ .markdown-body input {
189
+ font: 13px Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";
190
+ line-height: 1.4;
191
+ }
192
+
193
+ .markdown-body a {
194
+ color: #4183c4;
195
+ text-decoration: none;
196
+ }
197
+
198
+ .markdown-body a:hover,
199
+ .markdown-body a:focus,
200
+ .markdown-body a:active {
201
+ text-decoration: underline;
202
+ }
203
+
204
+ .markdown-body hr {
205
+ height: 0;
206
+ margin: 15px 0;
207
+ overflow: hidden;
208
+ background: transparent;
209
+ border: 0;
210
+ border-bottom: 1px solid #ddd;
211
+ }
212
+
213
+ .markdown-body hr:before,
214
+ .markdown-body hr:after {
215
+ display: table;
216
+ content: " ";
217
+ }
218
+
219
+ .markdown-body hr:after {
220
+ clear: both;
221
+ }
222
+
223
+ .markdown-body h1,
224
+ .markdown-body h2,
225
+ .markdown-body h3,
226
+ .markdown-body h4,
227
+ .markdown-body h5,
228
+ .markdown-body h6 {
229
+ margin-top: 15px;
230
+ margin-bottom: 15px;
231
+ line-height: 1.1;
232
+ }
233
+
234
+ .markdown-body h1 {
235
+ font-size: 30px;
236
+ }
237
+
238
+ .markdown-body h2 {
239
+ font-size: 21px;
240
+ }
241
+
242
+ .markdown-body h3 {
243
+ font-size: 16px;
244
+ }
245
+
246
+ .markdown-body h4 {
247
+ font-size: 14px;
248
+ }
249
+
250
+ .markdown-body h5 {
251
+ font-size: 12px;
252
+ }
253
+
254
+ .markdown-body h6 {
255
+ font-size: 11px;
256
+ }
257
+
258
+ .markdown-body blockquote {
259
+ margin: 0;
260
+ }
261
+
262
+ .markdown-body ul,
263
+ .markdown-body ol {
264
+ padding: 0;
265
+ margin-top: 0;
266
+ margin-bottom: 0;
267
+ }
268
+
269
+ .markdown-body ol ol,
270
+ .markdown-body ul ol {
271
+ list-style-type: lower-roman;
272
+ }
273
+
274
+ .markdown-body ul ul ol,
275
+ .markdown-body ul ol ol,
276
+ .markdown-body ol ul ol,
277
+ .markdown-body ol ol ol {
278
+ list-style-type: lower-alpha;
279
+ }
280
+
281
+ .markdown-body dd {
282
+ margin-left: 0;
283
+ }
284
+
285
+ .markdown-body code,
286
+ .markdown-body pre,
287
+ .markdown-body samp {
288
+ font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
289
+ font-size: 12px;
290
+ }
291
+
292
+ .markdown-body pre {
293
+ margin-top: 0;
294
+ margin-bottom: 0;
295
+ }
296
+
297
+ .markdown-body kbd {
298
+ background-color: #e7e7e7;
299
+ background-image: -moz-linear-gradient(#fefefe, #e7e7e7);
300
+ background-image: -webkit-linear-gradient(#fefefe, #e7e7e7);
301
+ background-image: linear-gradient(#fefefe, #e7e7e7);
302
+ background-repeat: repeat-x;
303
+ border-radius: 2px;
304
+ border: 1px solid #cfcfcf;
305
+ color: #000;
306
+ padding: 3px 5px;
307
+ line-height: 10px;
308
+ font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
309
+ display: inline-block;
310
+ }
311
+
312
+ .markdown-body>*:first-child {
313
+ margin-top: 0 !important;
314
+ }
315
+
316
+ .markdown-body>*:last-child {
317
+ margin-bottom: 0 !important;
318
+ }
319
+
320
+ .markdown-body .headerlink {
321
+ font: normal 400 16px fontawesome-mini;
322
+ vertical-align: middle;
323
+ margin-left: -16px;
324
+ float: left;
325
+ display: inline-block;
326
+ text-decoration: none;
327
+ opacity: 0;
328
+ color: #333;
329
+ }
330
+
331
+ .markdown-body .headerlink:focus {
332
+ outline: none;
333
+ }
334
+
335
+ .markdown-body h1 .headerlink {
336
+ margin-top: 0.8rem;
337
+ }
338
+
339
+ .markdown-body h2 .headerlink,
340
+ .markdown-body h3 .headerlink {
341
+ margin-top: 0.6rem;
342
+ }
343
+
344
+ .markdown-body h4 .headerlink {
345
+ margin-top: 0.2rem;
346
+ }
347
+
348
+ .markdown-body h5 .headerlink,
349
+ .markdown-body h6 .headerlink {
350
+ margin-top: 0;
351
+ }
352
+
353
+ .markdown-body .headerlink:hover,
354
+ .markdown-body h1:hover .headerlink,
355
+ .markdown-body h2:hover .headerlink,
356
+ .markdown-body h3:hover .headerlink,
357
+ .markdown-body h4:hover .headerlink,
358
+ .markdown-body h5:hover .headerlink,
359
+ .markdown-body h6:hover .headerlink {
360
+ opacity: 1;
361
+ text-decoration: none;
362
+ }
363
+
364
+ .markdown-body h1 {
365
+ padding-bottom: 0.3em;
366
+ font-size: 2.25em;
367
+ line-height: 1.2;
368
+ border-bottom: 1px solid #eee;
369
+ }
370
+
371
+ .markdown-body h2 {
372
+ padding-bottom: 0.3em;
373
+ font-size: 1.75em;
374
+ line-height: 1.225;
375
+ border-bottom: 1px solid #eee;
376
+ }
377
+
378
+ .markdown-body h3 {
379
+ font-size: 1.5em;
380
+ line-height: 1.43;
381
+ }
382
+
383
+ .markdown-body h4 {
384
+ font-size: 1.25em;
385
+ }
386
+
387
+ .markdown-body h5 {
388
+ font-size: 1em;
389
+ }
390
+
391
+ .markdown-body h6 {
392
+ font-size: 1em;
393
+ color: #777;
394
+ }
395
+
396
+ .markdown-body p,
397
+ .markdown-body blockquote,
398
+ .markdown-body ul,
399
+ .markdown-body ol,
400
+ .markdown-body dl,
401
+ .markdown-body table,
402
+ .markdown-body pre,
403
+ .markdown-body .admonition {
404
+ margin-top: 0;
405
+ margin-bottom: 16px;
406
+ }
407
+
408
+ .markdown-body hr {
409
+ height: 4px;
410
+ padding: 0;
411
+ margin: 16px 0;
412
+ background-color: #e7e7e7;
413
+ border: 0 none;
414
+ }
415
+
416
+ .markdown-body ul,
417
+ .markdown-body ol {
418
+ padding-left: 2em;
419
+ }
420
+
421
+ .markdown-body ul ul,
422
+ .markdown-body ul ol,
423
+ .markdown-body ol ol,
424
+ .markdown-body ol ul {
425
+ margin-top: 0;
426
+ margin-bottom: 0;
427
+ }
428
+
429
+ .markdown-body li>p {
430
+ margin-top: 16px;
431
+ }
432
+
433
+ .markdown-body dl {
434
+ padding: 0;
435
+ }
436
+
437
+ .markdown-body dl dt {
438
+ padding: 0;
439
+ margin-top: 16px;
440
+ font-size: 1em;
441
+ font-style: italic;
442
+ font-weight: bold;
443
+ }
444
+
445
+ .markdown-body dl dd {
446
+ padding: 0 16px;
447
+ margin-bottom: 16px;
448
+ }
449
+
450
+ .markdown-body blockquote {
451
+ padding: 0 15px;
452
+ color: #777;
453
+ border-left: 4px solid #ddd;
454
+ }
455
+
456
+ .markdown-body blockquote>:first-child {
457
+ margin-top: 0;
458
+ }
459
+
460
+ .markdown-body blockquote>:last-child {
461
+ margin-bottom: 0;
462
+ }
463
+
464
+ .markdown-body table {
465
+ display: block;
466
+ width: 100%;
467
+ overflow: auto;
468
+ word-break: normal;
469
+ word-break: keep-all;
470
+ }
471
+
472
+ .markdown-body table th {
473
+ font-weight: bold;
474
+ }
475
+
476
+ .markdown-body table th,
477
+ .markdown-body table td {
478
+ padding: 6px 13px;
479
+ border: 1px solid #ddd;
480
+ }
481
+
482
+ .markdown-body table tr {
483
+ background-color: #fff;
484
+ border-top: 1px solid #ccc;
485
+ }
486
+
487
+ .markdown-body table tr:nth-child(2n) {
488
+ background-color: #f8f8f8;
489
+ }
490
+
491
+ .markdown-body img {
492
+ max-width: 100%;
493
+ -moz-box-sizing: border-box;
494
+ box-sizing: border-box;
495
+ }
496
+
497
+ .markdown-body code,
498
+ .markdown-body samp {
499
+ padding: 0;
500
+ padding-top: 0.2em;
501
+ padding-bottom: 0.2em;
502
+ margin: 0;
503
+ font-size: 85%;
504
+ background-color: rgba(0,0,0,0.04);
505
+ border-radius: 3px;
506
+ }
507
+
508
+ .markdown-body code:before,
509
+ .markdown-body code:after {
510
+ letter-spacing: -0.2em;
511
+ content: "\00a0";
512
+ }
513
+
514
+ .markdown-body pre>code {
515
+ padding: 0;
516
+ margin: 0;
517
+ font-size: 100%;
518
+ word-break: normal;
519
+ white-space: pre;
520
+ background: transparent;
521
+ border: 0;
522
+ }
523
+
524
+ .markdown-body .codehilite,
525
+ .markdown-body .highlight {
526
+ margin-bottom: 16px;
527
+ }
528
+
529
+ .markdown-body .codehilite pre,
530
+ .markdown-body .highlight pre,
531
+ .markdown-body pre {
532
+ padding: 16px;
533
+ overflow: auto;
534
+ font-size: 85%;
535
+ line-height: 1.45;
536
+ background-color: #f7f7f7;
537
+ border-radius: 3px;
538
+ }
539
+
540
+ .markdown-body .codehilite pre,
541
+ .markdown-body .highlight pre {
542
+ margin-bottom: 0;
543
+ word-break: normal;
544
+ }
545
+
546
+ .markdown-body pre {
547
+ word-wrap: normal;
548
+ }
549
+
550
+ .markdown-body pre code {
551
+ display: inline;
552
+ max-width: initial;
553
+ padding: 0;
554
+ margin: 0;
555
+ overflow: initial;
556
+ line-height: inherit;
557
+ word-wrap: normal;
558
+ background-color: transparent;
559
+ border: 0;
560
+ }
561
+
562
+ .markdown-body pre code:before,
563
+ .markdown-body pre code:after {
564
+ content: normal;
565
+ }
566
+
567
+ /* Admonition */
568
+ .markdown-body .admonition {
569
+ -webkit-border-radius: 3px;
570
+ -moz-border-radius: 3px;
571
+ position: relative;
572
+ border-radius: 3px;
573
+ border: 1px solid #e0e0e0;
574
+ border-left: 6px solid #333;
575
+ padding: 10px 10px 10px 30px;
576
+ }
577
+
578
+ .markdown-body .admonition table {
579
+ color: #333;
580
+ }
581
+
582
+ .markdown-body .admonition p {
583
+ padding: 0;
584
+ }
585
+
586
+ .markdown-body .admonition-title {
587
+ font-weight: bold;
588
+ margin: 0;
589
+ }
590
+
591
+ .markdown-body .admonition>.admonition-title {
592
+ color: #333;
593
+ }
594
+
595
+ .markdown-body .attention>.admonition-title {
596
+ color: #a6d796;
597
+ }
598
+
599
+ .markdown-body .caution>.admonition-title {
600
+ color: #d7a796;
601
+ }
602
+
603
+ .markdown-body .hint>.admonition-title {
604
+ color: #96c6d7;
605
+ }
606
+
607
+ .markdown-body .danger>.admonition-title {
608
+ color: #c25f77;
609
+ }
610
+
611
+ .markdown-body .question>.admonition-title {
612
+ color: #96a6d7;
613
+ }
614
+
615
+ .markdown-body .note>.admonition-title {
616
+ color: #d7c896;
617
+ }
618
+
619
+ .markdown-body .admonition:before,
620
+ .markdown-body .attention:before,
621
+ .markdown-body .caution:before,
622
+ .markdown-body .hint:before,
623
+ .markdown-body .danger:before,
624
+ .markdown-body .question:before,
625
+ .markdown-body .note:before {
626
+ font: normal normal 16px fontawesome-mini;
627
+ -moz-osx-font-smoothing: grayscale;
628
+ -webkit-user-select: none;
629
+ -moz-user-select: none;
630
+ -ms-user-select: none;
631
+ user-select: none;
632
+ line-height: 1.5;
633
+ color: #333;
634
+ position: absolute;
635
+ left: 0;
636
+ top: 0;
637
+ padding-top: 10px;
638
+ padding-left: 10px;
639
+ }
640
+
641
+ .markdown-body .admonition:before {
642
+ content: "\f056\00a0";
643
+ color: 333;
644
+ }
645
+
646
+ .markdown-body .attention:before {
647
+ content: "\f058\00a0";
648
+ color: #a6d796;
649
+ }
650
+
651
+ .markdown-body .caution:before {
652
+ content: "\f06a\00a0";
653
+ color: #d7a796;
654
+ }
655
+
656
+ .markdown-body .hint:before {
657
+ content: "\f05a\00a0";
658
+ color: #96c6d7;
659
+ }
660
+
661
+ .markdown-body .danger:before {
662
+ content: "\f057\00a0";
663
+ color: #c25f77;
664
+ }
665
+
666
+ .markdown-body .question:before {
667
+ content: "\f059\00a0";
668
+ color: #96a6d7;
669
+ }
670
+
671
+ .markdown-body .note:before {
672
+ content: "\f040\00a0";
673
+ color: #d7c896;
674
+ }
675
+
676
+ .markdown-body .admonition::after {
677
+ content: normal;
678
+ }
679
+
680
+ .markdown-body .attention {
681
+ border-left: 6px solid #a6d796;
682
+ }
683
+
684
+ .markdown-body .caution {
685
+ border-left: 6px solid #d7a796;
686
+ }
687
+
688
+ .markdown-body .hint {
689
+ border-left: 6px solid #96c6d7;
690
+ }
691
+
692
+ .markdown-body .danger {
693
+ border-left: 6px solid #c25f77;
694
+ }
695
+
696
+ .markdown-body .question {
697
+ border-left: 6px solid #96a6d7;
698
+ }
699
+
700
+ .markdown-body .note {
701
+ border-left: 6px solid #d7c896;
702
+ }
703
+
704
+ .markdown-body .admonition>*:first-child {
705
+ margin-top: 0 !important;
706
+ }
707
+
708
+ .markdown-body .admonition>*:last-child {
709
+ margin-bottom: 0 !important;
710
+ }
711
+
712
+ /* progress bar*/
713
+ .markdown-body .progress {
714
+ display: block;
715
+ width: 300px;
716
+ margin: 10px 0;
717
+ height: 24px;
718
+ -webkit-border-radius: 3px;
719
+ -moz-border-radius: 3px;
720
+ border-radius: 3px;
721
+ background-color: #ededed;
722
+ position: relative;
723
+ box-shadow: inset -1px 1px 3px rgba(0, 0, 0, .1);
724
+ }
725
+
726
+ .markdown-body .progress-label {
727
+ position: absolute;
728
+ text-align: center;
729
+ font-weight: bold;
730
+ width: 100%; margin: 0;
731
+ line-height: 24px;
732
+ color: #333;
733
+ text-shadow: 1px 1px 0 #fefefe, -1px -1px 0 #fefefe, -1px 1px 0 #fefefe, 1px -1px 0 #fefefe, 0 1px 0 #fefefe, 0 -1px 0 #fefefe, 1px 0 0 #fefefe, -1px 0 0 #fefefe, 1px 1px 2px #000;
734
+ -webkit-font-smoothing: antialiased !important;
735
+ white-space: nowrap;
736
+ overflow: hidden;
737
+ }
738
+
739
+ .markdown-body .progress-bar {
740
+ height: 24px;
741
+ float: left;
742
+ -webkit-border-radius: 3px;
743
+ -moz-border-radius: 3px;
744
+ border-radius: 3px;
745
+ background-color: #96c6d7;
746
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), inset 0 -1px 0 rgba(0, 0, 0, .1);
747
+ background-size: 30px 30px;
748
+ background-image: -webkit-linear-gradient(
749
+ 135deg, rgba(255, 255, 255, .4) 27%,
750
+ transparent 27%,
751
+ transparent 52%, rgba(255, 255, 255, .4) 52%,
752
+ rgba(255, 255, 255, .4) 77%,
753
+ transparent 77%, transparent
754
+ );
755
+ background-image: -moz-linear-gradient(
756
+ 135deg,
757
+ rgba(255, 255, 255, .4) 27%, transparent 27%,
758
+ transparent 52%, rgba(255, 255, 255, .4) 52%,
759
+ rgba(255, 255, 255, .4) 77%, transparent 77%,
760
+ transparent
761
+ );
762
+ background-image: -ms-linear-gradient(
763
+ 135deg,
764
+ rgba(255, 255, 255, .4) 27%, transparent 27%,
765
+ transparent 52%, rgba(255, 255, 255, .4) 52%,
766
+ rgba(255, 255, 255, .4) 77%, transparent 77%,
767
+ transparent
768
+ );
769
+ background-image: -o-linear-gradient(
770
+ 135deg,
771
+ rgba(255, 255, 255, .4) 27%, transparent 27%,
772
+ transparent 52%, rgba(255, 255, 255, .4) 52%,
773
+ rgba(255, 255, 255, .4) 77%, transparent 77%,
774
+ transparent
775
+ );
776
+ background-image: linear-gradient(
777
+ 135deg,
778
+ rgba(255, 255, 255, .4) 27%, transparent 27%,
779
+ transparent 52%, rgba(255, 255, 255, .4) 52%,
780
+ rgba(255, 255, 255, .4) 77%, transparent 77%,
781
+ transparent
782
+ );
783
+ }
784
+
785
+ .markdown-body .progress-100plus .progress-bar {
786
+ background-color: #a6d796;
787
+ }
788
+
789
+ .markdown-body .progress-80plus .progress-bar {
790
+ background-color: #c6d796;
791
+ }
792
+
793
+ .markdown-body .progress-60plus .progress-bar {
794
+ background-color: #d7c896;
795
+ }
796
+
797
+ .markdown-body .progress-40plus .progress-bar {
798
+ background-color: #d7a796;
799
+ }
800
+
801
+ .markdown-body .progress-20plus .progress-bar {
802
+ background-color: #d796a6;
803
+ }
804
+
805
+ .markdown-body .progress-0plus .progress-bar {
806
+ background-color: #c25f77;
807
+ }
808
+
809
+ .markdown-body .candystripe-animate .progress-bar{
810
+ -webkit-animation: animate-stripes 3s linear infinite;
811
+ -moz-animation: animate-stripes 3s linear infinite;
812
+ animation: animate-stripes 3s linear infinite;
813
+ }
814
+
815
+ @-webkit-keyframes animate-stripes {
816
+ 0% {
817
+ background-position: 0 0;
818
+ }
819
+
820
+ 100% {
821
+ background-position: 60px 0;
822
+ }
823
+ }
824
+
825
+ @-moz-keyframes animate-stripes {
826
+ 0% {
827
+ background-position: 0 0;
828
+ }
829
+
830
+ 100% {
831
+ background-position: 60px 0;
832
+ }
833
+ }
834
+
835
+ @keyframes animate-stripes {
836
+ 0% {
837
+ background-position: 0 0;
838
+ }
839
+
840
+ 100% {
841
+ background-position: 60px 0;
842
+ }
843
+ }
844
+
845
+ .markdown-body .gloss .progress-bar {
846
+ box-shadow:
847
+ inset 0 4px 12px rgba(255, 255, 255, .7),
848
+ inset 0 -12px 0 rgba(0, 0, 0, .05);
849
+ }
850
+
851
+ /* MultiMarkdown Critic Blocks */
852
+ .markdown-body .critic_mark {
853
+ background: #ff0;
854
+ }
855
+
856
+ .markdown-body .critic_delete {
857
+ color: #c82829;
858
+ text-decoration: line-through;
859
+ }
860
+
861
+ .markdown-body .critic_insert {
862
+ color: #718c00 ;
863
+ text-decoration: underline;
864
+ }
865
+
866
+ .markdown-body .critic_comment {
867
+ color: #8e908c;
868
+ font-style: italic;
869
+ }
870
+
871
+ .markdown-body .headeranchor {
872
+ font: normal normal 16px fontawesome-mini;
873
+ line-height: 1;
874
+ display: inline-block;
875
+ text-decoration: none;
876
+ -webkit-font-smoothing: antialiased;
877
+ -moz-osx-font-smoothing: grayscale;
878
+ -webkit-user-select: none;
879
+ -moz-user-select: none;
880
+ -ms-user-select: none;
881
+ user-select: none;
882
+ }
883
+
884
+ .headeranchor:before {
885
+ content: '\e157';
886
+ }
887
+
888
+ .markdown-body .task-list-item {
889
+ list-style-type: none;
890
+ }
891
+
892
+ .markdown-body .task-list-item+.task-list-item {
893
+ margin-top: 3px;
894
+ }
895
+
896
+ .markdown-body .task-list-item input {
897
+ margin: 0 4px 0.25em -20px;
898
+ vertical-align: middle;
899
+ }
900
+
901
+ .markdown-body diagram-div, .markdown-body div.uml-sequence-diagram, .markdown-body, div.uml-flowchart {
902
+ overflow: auto;
903
+ }
904
+
905
+ /* Media */
906
+ @media only screen and (min-width: 480px) {
907
+ .markdown-body {
908
+ font-size:14px;
909
+ }
910
+ }
911
+
912
+ @media only screen and (min-width: 768px) {
913
+ .markdown-body {
914
+ font-size:16px;
915
+ }
916
+ }
917
+
918
+ @media print {
919
+ .markdown-body * {
920
+ background: transparent !important;
921
+ color: black !important;
922
+ filter:none !important;
923
+ -ms-filter: none !important;
924
+ }
925
+
926
+ .markdown-body {
927
+ font-size:12pt;
928
+ max-width:100%;
929
+ outline:none;
930
+ border: 0;
931
+ }
932
+
933
+ .markdown-body a,
934
+ .markdown-body a:visited {
935
+ text-decoration: underline;
936
+ }
937
+
938
+ .markdown-body .headeranchor-link {
939
+ display: none;
940
+ }
941
+
942
+ .markdown-body a[href]:after {
943
+ content: " (" attr(href) ")";
944
+ }
945
+
946
+ .markdown-body abbr[title]:after {
947
+ content: " (" attr(title) ")";
948
+ }
949
+
950
+ .markdown-body .ir a:after,
951
+ .markdown-body a[href^="javascript:"]:after,
952
+ .markdown-body a[href^="#"]:after {
953
+ content: "";
954
+ }
955
+
956
+ .markdown-body pre {
957
+ white-space: pre;
958
+ white-space: pre-wrap;
959
+ word-wrap: break-word;
960
+ }
961
+
962
+ .markdown-body pre,
963
+ .markdown-body blockquote {
964
+ border: 1px solid #999;
965
+ padding-right: 1em;
966
+ page-break-inside: avoid;
967
+ }
968
+
969
+ .markdown-body .progress,
970
+ .markdown-body .progress-bar {
971
+ -moz-box-shadow: none;
972
+ -webkit-box-shadow: none;
973
+ box-shadow: none;
974
+ }
975
+
976
+ .markdown-body .progress {
977
+ border: 1px solid #ddd;
978
+ }
979
+
980
+ .markdown-body .progress-bar {
981
+ height: 22px;
982
+ border-right: 1px solid #ddd;
983
+ }
984
+
985
+ .markdown-body tr,
986
+ .markdown-body img {
987
+ page-break-inside: avoid;
988
+ }
989
+
990
+ .markdown-body img {
991
+ max-width: 100% !important;
992
+ }
993
+
994
+ .markdown-body p,
995
+ .markdown-body h2,
996
+ .markdown-body h3 {
997
+ orphans: 3;
998
+ widows: 3;
999
+ }
1000
+
1001
+ .markdown-body h2,
1002
+ .markdown-body h3 {
1003
+ page-break-after: avoid;
1004
+ }
1005
+ }
1006
+ </style><style>/*GitHub*/
1007
+ .highlight {background-color:#fff;color:#333333;}
1008
+ .highlight .hll {background-color:#ffffcc;}
1009
+ .highlight .c{color:#999988;font-style:italic}
1010
+ .highlight .err{color:#a61717;background-color:#e3d2d2}
1011
+ .highlight .k{font-weight:bold}
1012
+ .highlight .o{font-weight:bold}
1013
+ .highlight .cm{color:#999988;font-style:italic}
1014
+ .highlight .cp{color:#999999;font-weight:bold}
1015
+ .highlight .c1{color:#999988;font-style:italic}
1016
+ .highlight .cs{color:#999999;font-weight:bold;font-style:italic}
1017
+ .highlight .gd{color:#000000;background-color:#ffdddd}
1018
+ .highlight .ge{font-style:italic}
1019
+ .highlight .gr{color:#aa0000}
1020
+ .highlight .gh{color:#999999}
1021
+ .highlight .gi{color:#000000;background-color:#ddffdd}
1022
+ .highlight .go{color:#888888}
1023
+ .highlight .gp{color:#555555}
1024
+ .highlight .gs{font-weight:bold}
1025
+ .highlight .gu{color:#800080;font-weight:bold}
1026
+ .highlight .gt{color:#aa0000}
1027
+ .highlight .kc{font-weight:bold}
1028
+ .highlight .kd{font-weight:bold}
1029
+ .highlight .kn{font-weight:bold}
1030
+ .highlight .kp{font-weight:bold}
1031
+ .highlight .kr{font-weight:bold}
1032
+ .highlight .kt{color:#445588;font-weight:bold}
1033
+ .highlight .m{color:#009999}
1034
+ .highlight .s{color:#dd1144}
1035
+ .highlight .n{color:#333333}
1036
+ .highlight .na{color:teal}
1037
+ .highlight .nb{color:#0086b3}
1038
+ .highlight .nc{color:#445588;font-weight:bold}
1039
+ .highlight .no{color:teal}
1040
+ .highlight .ni{color:purple}
1041
+ .highlight .ne{color:#990000;font-weight:bold}
1042
+ .highlight .nf{color:#990000;font-weight:bold}
1043
+ .highlight .nn{color:#555555}
1044
+ .highlight .nt{color:navy}
1045
+ .highlight .nv{color:teal}
1046
+ .highlight .ow{font-weight:bold}
1047
+ .highlight .w{color:#bbbbbb}
1048
+ .highlight .mf{color:#009999}
1049
+ .highlight .mh{color:#009999}
1050
+ .highlight .mi{color:#009999}
1051
+ .highlight .mo{color:#009999}
1052
+ .highlight .sb{color:#dd1144}
1053
+ .highlight .sc{color:#dd1144}
1054
+ .highlight .sd{color:#dd1144}
1055
+ .highlight .s2{color:#dd1144}
1056
+ .highlight .se{color:#dd1144}
1057
+ .highlight .sh{color:#dd1144}
1058
+ .highlight .si{color:#dd1144}
1059
+ .highlight .sx{color:#dd1144}
1060
+ .highlight .sr{color:#009926}
1061
+ .highlight .s1{color:#dd1144}
1062
+ .highlight .ss{color:#990073}
1063
+ .highlight .bp{color:#999999}
1064
+ .highlight .vc{color:teal}
1065
+ .highlight .vg{color:teal}
1066
+ .highlight .vi{color:teal}
1067
+ .highlight .il{color:#009999}
1068
+ .highlight .gc{color:#999;background-color:#EAF2F5}
1069
+ </style><title>README</title></head><body><article class="markdown-body"><h2 id="cli-11ty-module">CLI 11ty Module<a class="headerlink" href="#cli-11ty-module" title="Permanent link"></a></h2>
1070
+ <p>The <code>quire-cli/lib/11ty</code> module is a façade for interacting with Eleventy, the static site generator for Quire projects.</p>
1071
+ <h3 id="11tyapi-module">11ty/API module<a class="headerlink" href="#11tyapi-module" title="Permanent link"></a></h3>
1072
+ <p>The <code>api</code> module allows the Quire CLI to programmatical configure an instance of Eleventy on which it can call methods.</p>
1073
+ <p>See <a href="https://www.11ty.dev/docs/programmatic/">Eleventy Documentation: Programmatic API</a></p>
1074
+ <h3 id="11tycli-module">11ty/CLI module<a class="headerlink" href="#11tycli-module" title="Permanent link"></a></h3>
1075
+ <p>The <code>cli</code> module is a wrapper around the Eleventy CLI to run <code>@11ty/eleventy</code> commands.</p>
1076
+ <p>See <a href="https://www.11ty.dev/docs/usage/#command-line-usage">Eleventy Documentation: Command Line Usage</a></p>
1077
+ <h3 id="paths-module">Paths module<a class="headerlink" href="#paths-module" title="Permanent link"></a></h3>
1078
+ <p>The <code>paths</code> module returns paths for a Quire project to configure the Eleventy instance:</p>
1079
+ <ul>
1080
+ <li><em>absolute</em> path to the <a href="https://www.11ty.dev/docs/config/">Eleventy configuration</a> file</li>
1081
+ <li><em>relative</em> path <em>from</em> the <code>quire-11ty</code> source <em>to</em> the <code>input</code> and <code>output</code> directories for the project</li>
1082
+ <li><em>relative</em> path <em>from</em> the project <code>input</code> <em>to</em> the Eleventy <code>includes</code> and <code>layouts</code> directories</li>
1083
+ </ul>
1084
+ <p>Set environment variables for paths relative to eleventy <code>input</code> dir,
1085
+ * allowing a project agnostic <code>quire-11ty</code> eleventy configuration file.
1086
+ * Nota bene: environment variables read into the eleventy configuration
1087
+ * file <em>must</em> be set before the eleventy configuration file is parsed.</p>
1088
+ <p><code>Eleventy</code> does not expose an API to set the relative <code>includes</code> and <code>layouts</code> paths on the instance. In order to decouple the Eleventy configuration file from a specific project and its path on the system the exported <code>paths</code> are used by the <code>api</code> and <code>cli</code> modules to set environment variables that can be used in the <code>.eleventy.js</code> configuration.</p>
1089
+ <p>Nota bene: these environment variables <strong>must be set before</strong> the <code>Eleventy</code> instance is created and the <code>.eleventy.js</code> configuration is parsed.</p></article></body></html>
@@ -2,14 +2,34 @@
2
2
 
3
3
  The `quire-cli/lib/11ty` module is a façade for interacting with Eleventy, the static site generator for Quire projects.
4
4
 
5
+ ### 11ty/API module
6
+
7
+ The `api` module allows the Quire CLI to programmatical configure an instance of Eleventy on which it can call methods.
8
+
9
+ See [Eleventy Documentation: Programmatic API](https://www.11ty.dev/docs/programmatic/)
10
+
5
11
  ### 11ty/CLI module
6
12
 
7
13
  The `cli` module is a wrapper around the Eleventy CLI to run `@11ty/eleventy` commands.
8
14
 
9
15
  See [Eleventy Documentation: Command Line Usage](https://www.11ty.dev/docs/usage/#command-line-usage)
10
16
 
11
- ### 11ty/Eleventy module
17
+ ### Paths module
12
18
 
13
- The `eleventy` module allows the Quire CLI to programmatical configure an instance of Eleventy on which it can call methods.
19
+ The `paths` module returns paths for a Quire project to configure the Eleventy instance:
14
20
 
15
- See [Eleventy Documentation: Programmatic API](https://www.11ty.dev/docs/programmatic/)
21
+ - _absolute_ path to the [Eleventy configuration](https://www.11ty.dev/docs/config/) file
22
+ - _relative_ path *from* the `quire-11ty` source *to* the `input` and `output` directories for the project
23
+ - _relative_ path *from* the project `input` *to* the Eleventy `includes` and `layouts` directories
24
+
25
+
26
+ Set environment variables for paths relative to eleventy `input` dir,
27
+ * allowing a project agnostic `quire-11ty` eleventy configuration file.
28
+ * Nota bene: environment variables read into the eleventy configuration
29
+ * file _must_ be set before the eleventy configuration file is parsed.
30
+
31
+ `Eleventy` does not expose an API to set the relative `includes` and `layouts` paths on the instance. In order to decouple the Eleventy configuration file from a specific project and its path on the system the exported `paths` are used by the `api` and `cli` modules to set environment variables that can be used in the `.eleventy.js` configuration.
32
+
33
+ These environment variables **must be set before** the `Eleventy` instance is created and the `.eleventy.js` configuration is parsed.
34
+
35
+ **Nota bene** The current implementation of the `Eleventy` `TemplatePathResolver` assumes that the `layouts` directory is a child of the `input` directory and prevents decoupling the Quire project content from the `quire-11ty` code; see [eleventy#2655](https://github.com/11ty/eleventy/issues/2655).
@@ -35,6 +35,17 @@ const factory = async (options = {}) => {
35
35
  expand: true,
36
36
  }
37
37
 
38
+ /**
39
+ * Set environment variables for paths relative to eleventy `input` dir,
40
+ * to allow `quire-11ty` to be decouple from the project input directory.
41
+ * Nota bene: environment variables read into the eleventy configuration
42
+ * file _must_ be set before the eleventy configuration file is parsed.
43
+ * @see https://github.com/11ty/eleventy/issues/2655
44
+ */
45
+ process.env.ELEVENTY_DATA = paths.data
46
+ process.env.ELEVENTY_INCLUDES = paths.includes
47
+ process.env.ELEVENTY_LAYOUTS = paths.layouts
48
+
38
49
  /**
39
50
  * Get an instance of the runtime of eleventy.
40
51
  * @see https://github.com/11ty/eleventy/blob/src/Eleventy.js
@@ -92,7 +103,6 @@ export default {
92
103
  process.cwd(projectRoot)
93
104
 
94
105
  console.info('[CLI:11ty] running eleventy build')
95
- console.info(`[CLI:11ty] projectRoot ${projectRoot}`)
96
106
 
97
107
  process.env.ELEVENTY_ENV = 'production'
98
108
  if (options.debug) process.env.DEBUG = 'Eleventy*'
@@ -32,7 +32,25 @@ const factory = (options = {}) => {
32
32
  if (options.quiet) command.push('--quiet')
33
33
  if (options.verbose) command.push('--verbose')
34
34
 
35
- return command
35
+ /**
36
+ * Set execa environment variables
37
+ * @see https://github.com/sindresorhus/execa#env
38
+ *
39
+ * Set environment variables for paths relative to eleventy `input` dir,
40
+ * to allow `quire-11ty` to be decouple from the project input directory.
41
+ * Nota bene: environment variables read into the eleventy configuration
42
+ * file _must_ be set before the eleventy configuration file is parsed.
43
+ * @see https://github.com/11ty/eleventy/issues/2655
44
+ */
45
+ const env = {
46
+ ELEVENTY_DATA: paths.data,
47
+ ELEVENTY_INCLUDES: paths.includes,
48
+ ELEVENTY_LAYOUTS: paths.layouts,
49
+ }
50
+
51
+ if (options.debug) env.DEBUG = 'Eleventy*'
52
+
53
+ return { command, env }
36
54
  }
37
55
 
38
56
  /**
@@ -43,24 +61,16 @@ export default {
43
61
  build: async (options = {}) => {
44
62
  console.info('[CLI:11ty] running eleventy build')
45
63
 
46
- const eleventyCommand = factory(options)
47
-
48
- /**
49
- * Set execa environment variables
50
- * @see https://github.com/sindresorhus/execa#env
51
- */
52
- const execaEnv = {
53
- ELEVENTY_ENV: 'production'
54
- }
64
+ const { command, env } = factory(options)
55
65
 
56
- if (options.debug) execaEnv.DEBUG = 'Eleventy*'
66
+ if (options.dryRun) command.push('--dryrun')
57
67
 
58
- if (options.dryRun) eleventyCommand.push('--dryrun')
68
+ env.ELEVENTY_ENV = 'production'
59
69
 
60
- await execa('node', eleventyCommand, {
70
+ await execa('node', command, {
61
71
  all: true,
62
72
  cwd: projectRoot,
63
- env: execaEnv,
73
+ env,
64
74
  execPath: process.execPath
65
75
  }).all.pipe(process.stdout)
66
76
  },
@@ -68,26 +78,18 @@ export default {
68
78
  serve: async (options = {}) => {
69
79
  console.info(`[CLI:11ty] running eleventy serve`)
70
80
 
71
- const eleventyCommand = factory(options)
72
-
73
- eleventyCommand.push('--serve')
81
+ const { command, env } = factory(options)
74
82
 
75
- /**
76
- * Set execa environment variables
77
- * @see https://github.com/sindresorhus/execa#env
78
- */
79
- const execaEnv = {
80
- ELEVENTY_ENV: 'development'
81
- }
83
+ command.push('--serve')
82
84
 
83
- if (options.debug) execaEnv.DEBUG = 'Eleventy*'
85
+ env.ELEVENTY_ENV = 'development'
84
86
 
85
- if (options.port) eleventyCommand.push(`--port=${options.port}`)
87
+ if (options.port) command.push(`--port=${options.port}`)
86
88
 
87
- await execa('node', eleventyCommand, {
89
+ await execa('node', command, {
88
90
  all: true,
89
91
  cwd: projectRoot,
90
- env: execaEnv,
92
+ env,
91
93
  execPath: process.execPath
92
94
  }).all.pipe(process.stdout)
93
95
  }
@@ -34,14 +34,30 @@ const hasEleventyConfig = (dir) => {
34
34
 
35
35
  export const projectRoot = process.cwd()
36
36
 
37
- // Absolute path to the current version of quire-11ty
37
+ const inputDir = path.join(projectRoot, 'content')
38
+
39
+ /**
40
+ * Absolute path to the latest installed version of `quire-11ty`
41
+ * @todo use version read from the project `.quire-version` file
42
+ */
43
+ const libQuirePath = path.resolve(__dirname, path.join(cliRoot, 'lib', 'quire', 'versions', version))
44
+
45
+ /**
46
+ * Absolute path to the current version of `quire-11ty`
47
+ * Nota bene: to get a relative path to the `eleventyRoot`,
48
+ * for example when the version is specified is 'latest',
49
+ * it must be set to the real path to the symlink target.
50
+ */
38
51
  export const eleventyRoot = hasEleventyConfig(projectRoot)
39
52
  ? projectRoot
40
- : path.resolve(__dirname, path.join(cliRoot, 'lib', 'quire', 'versions', version))
53
+ : fs.realpathSync(libQuirePath)
41
54
 
42
55
  export default {
43
56
  config: path.join(eleventyRoot, '.eleventy.js'),
44
- input: path.relative(eleventyRoot, path.join(projectRoot, 'content')),
57
+ input: path.relative(eleventyRoot, inputDir),
45
58
  output: path.relative(eleventyRoot, path.join(projectRoot, '_site')),
59
+ data: path.relative(inputDir, path.join(eleventyRoot, '_computed')),
60
+ includes: path.relative(inputDir, path.join(eleventyRoot, '_includes')),
61
+ layouts: path.relative(inputDir, path.join(eleventyRoot, '_layouts')),
46
62
  public: './public',
47
63
  }