@airmark/quiver 0.35.7 → 0.35.8
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 +4 -4
- package/quills/af4141/0.1.0/Quill.yaml +39 -49
- package/quills/af4141/0.1.0/plate.typ +7 -7
- package/quills/afmc_moa/0.0.1/Quill.yaml +126 -153
- package/quills/afmc_moa/0.0.1/plate.typ +11 -11
- package/quills/classic_resume/0.1.0/Quill.yaml +34 -40
- package/quills/classic_resume/0.1.0/plate.typ +11 -11
- package/quills/cyber_career_plan/0.1.0/Quill.yaml +258 -287
- package/quills/cyber_career_plan/0.1.0/plate.typ +92 -70
- package/quills/daf1206/0.1.0/plate.typ +18 -18
- package/quills/daf4392/0.1.0/Quill.yaml +33 -38
- package/quills/daf4392/0.1.0/plate.typ +16 -16
- package/quills/usaf_letter/0.1.0/Quill.yaml +143 -158
- package/quills/usaf_letter/0.1.0/plate.typ +26 -28
- package/quills/usaf_memo/0.2.0/Quill.yaml +217 -247
- package/quills/usaf_memo/0.2.0/plate.typ +28 -28
- package/quills/usaf_memo/0.3.0/Quill.yaml +219 -245
- package/quills/usaf_memo/0.3.0/plate.typ +35 -36
- package/templates/cyber_career_plan.md +56 -0
- package/templates/templates.json +7 -0
|
@@ -9,260 +9,230 @@ typst:
|
|
|
9
9
|
|
|
10
10
|
main:
|
|
11
11
|
description: Top-level body paragraphs are numbered and nested bullets lettered automatically; do not number them by hand.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
compact: true
|
|
81
|
-
description: Bold-caps line below the seal; blank to omit.
|
|
82
|
-
|
|
83
|
-
tag_line:
|
|
84
|
-
type: richtext
|
|
85
|
-
inline: true
|
|
86
|
-
default: ""
|
|
87
|
-
ui:
|
|
88
|
-
group: letterhead
|
|
89
|
-
compact: true
|
|
90
|
-
description: "Organizational motto at the bottom of the page. Supports Markdown emphasis (e.g. *italics*, **bold**)."
|
|
91
|
-
|
|
12
|
+
sections:
|
|
13
|
+
addressing:
|
|
14
|
+
fields:
|
|
15
|
+
memo_for:
|
|
16
|
+
type: array
|
|
17
|
+
items:
|
|
18
|
+
type: string
|
|
19
|
+
ui:
|
|
20
|
+
compact: true
|
|
21
|
+
description: "Organization/office symbol in UPPERCASE. To address a specific person, add their rank and name in parentheses (e.g., 'ORG/SYMBOL (LT COL JANE DOE)'). For many recipients, enter 'SEE DISTRIBUTION' and list them in the Distribution field."
|
|
22
|
+
|
|
23
|
+
memo_from:
|
|
24
|
+
type: array
|
|
25
|
+
items:
|
|
26
|
+
type: string
|
|
27
|
+
default: []
|
|
28
|
+
ui:
|
|
29
|
+
compact: true
|
|
30
|
+
description: "If recipients are on the same installation, use only the office symbol. For recipients on other installations, include the full mailing address, one line each, ending 'City ST 12345-6789', to enable return correspondence. Omit entirely to produce a Memorandum for Record (no MEMO FROM line)."
|
|
31
|
+
|
|
32
|
+
subject:
|
|
33
|
+
type: string
|
|
34
|
+
description: Be brief and clear. Capitalize the first letter of each word except articles, prepositions, and conjunctions. Include suspense dates in parentheses if applicable.
|
|
35
|
+
|
|
36
|
+
signature_block:
|
|
37
|
+
type: array
|
|
38
|
+
items:
|
|
39
|
+
type: string
|
|
40
|
+
ui:
|
|
41
|
+
compact: true
|
|
42
|
+
description: "Line 1: Name in UPPERCASE as signed, grade, and service, as in 'FIRST M. LAST, Capt, USAF'. Line 2: Duty title."
|
|
43
|
+
letterhead:
|
|
44
|
+
fields:
|
|
45
|
+
letterhead_title:
|
|
46
|
+
type: string
|
|
47
|
+
default: DEPARTMENT OF THE AIR FORCE
|
|
48
|
+
description: Change only for Joint Commands or DoW agencies.
|
|
49
|
+
|
|
50
|
+
letterhead_caption:
|
|
51
|
+
type: array
|
|
52
|
+
items:
|
|
53
|
+
type: string
|
|
54
|
+
description: The full organization name of your unit, as in HEADQUARTERS 123D EXAMPLE WING.
|
|
55
|
+
|
|
56
|
+
letterhead_seal:
|
|
57
|
+
type: enum
|
|
58
|
+
values:
|
|
59
|
+
- dow
|
|
60
|
+
- dod
|
|
61
|
+
default: dow
|
|
62
|
+
ui:
|
|
63
|
+
compact: true
|
|
64
|
+
description: Department of War (DoW) or Department of Defense (DoD) seal shown in the letterhead.
|
|
65
|
+
|
|
66
|
+
letterhead_seal_subtitle:
|
|
67
|
+
type: string
|
|
68
|
+
default: ""
|
|
69
|
+
ui:
|
|
70
|
+
compact: true
|
|
71
|
+
description: Bold-caps line below the seal; blank to omit.
|
|
72
|
+
|
|
73
|
+
tag_line:
|
|
74
|
+
type: richtext
|
|
75
|
+
inline: true
|
|
76
|
+
default: ""
|
|
77
|
+
ui:
|
|
78
|
+
compact: true
|
|
79
|
+
description: "Organizational motto at the bottom of the page. Supports Markdown emphasis (e.g. *italics*, **bold**)."
|
|
92
80
|
classification:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
cui_controlled_by:
|
|
115
|
-
type: string
|
|
116
|
-
default: ""
|
|
117
|
-
ui:
|
|
118
|
-
group: classification
|
|
119
|
-
compact: true
|
|
120
|
-
description: "Office or organization that designated this information as CUI (e.g., 'SAF/AA'). Required by DoDM 5200.48 when classification is CUI."
|
|
121
|
-
|
|
122
|
-
cui_category:
|
|
123
|
-
type: string
|
|
124
|
-
default: ""
|
|
125
|
-
ui:
|
|
126
|
-
group: classification
|
|
127
|
-
compact: true
|
|
128
|
-
description: "CUI category from the DoD CUI Registry (e.g., 'Privacy/MED', 'CTI', 'PRVCY'). Leave blank to omit."
|
|
129
|
-
|
|
130
|
-
cui_limited_dissemination:
|
|
131
|
-
type: string
|
|
132
|
-
default: ""
|
|
133
|
-
ui:
|
|
134
|
-
group: classification
|
|
135
|
-
compact: true
|
|
136
|
-
description: "Limited dissemination control shown in the indicator block (e.g., 'FEDONLY', 'NOFORN'). Independent from the banner suffix above."
|
|
137
|
-
|
|
138
|
-
cui_poc:
|
|
139
|
-
type: string
|
|
140
|
-
default: ""
|
|
141
|
-
ui:
|
|
142
|
-
group: classification
|
|
143
|
-
compact: true
|
|
144
|
-
description: "Point of contact for CUI questions (e.g., 'Capt J. Smith, DSN 555-1234, john.smith@us.af.mil'). Required by DoDM 5200.48 when classification is CUI."
|
|
145
|
-
|
|
146
|
-
references:
|
|
147
|
-
type: array
|
|
148
|
-
items:
|
|
149
|
-
type: richtext
|
|
150
|
-
inline: true
|
|
151
|
-
default: []
|
|
152
|
-
ui:
|
|
153
|
-
group: additional
|
|
154
|
-
description: "References, auto-lettered (a), (b), (c) per AFH 33-337. Cite each by organization, type, date, and title; italicize publication titles with *asterisks* (standard Markdown emphasis)."
|
|
155
|
-
|
|
156
|
-
cc:
|
|
157
|
-
type: array
|
|
158
|
-
items:
|
|
159
|
-
type: string
|
|
160
|
-
default: []
|
|
161
|
-
ui:
|
|
162
|
-
group: additional
|
|
163
|
-
description: List office symbols of recipients to receive copies; for a person, 'Rank and Name, ORG/SYMBOL'.
|
|
164
|
-
|
|
165
|
-
distribution:
|
|
166
|
-
type: array
|
|
167
|
-
items:
|
|
168
|
-
type: string
|
|
169
|
-
default: []
|
|
170
|
-
ui:
|
|
171
|
-
group: additional
|
|
172
|
-
description: Complete list of recipients if 'SEE DISTRIBUTION' is used in the 'Memo For' field.
|
|
81
|
+
fields:
|
|
82
|
+
classification:
|
|
83
|
+
type: enum
|
|
84
|
+
values:
|
|
85
|
+
- UNCLASSIFIED
|
|
86
|
+
- CUI
|
|
87
|
+
- CONFIDENTIAL
|
|
88
|
+
- SECRET
|
|
89
|
+
- TOP SECRET
|
|
90
|
+
default: ""
|
|
91
|
+
ui:
|
|
92
|
+
compact: true
|
|
93
|
+
description: "Select the classification marking shown in the header and footer banner. Unclassified documents typically omit this banner entirely — leave blank unless the document is CUI or classified. Mark per DAFI 16-1404 (DoDM 5200.48 for CUI) and applicable DoD guidance."
|
|
94
|
+
|
|
95
|
+
dissemination:
|
|
96
|
+
type: string
|
|
97
|
+
default: ""
|
|
98
|
+
ui:
|
|
99
|
+
compact: true
|
|
100
|
+
description: "Banner dissemination suffix appended after double slash (e.g. 'NF' renders as CUI//NF in the header/footer). Leave blank for no suffix."
|
|
173
101
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
group: additional
|
|
181
|
-
description: List attachments in the order they are mentioned in the memo. Briefly describe each and give its date; do not use 'as stated' or abbreviations.
|
|
102
|
+
cui_controlled_by:
|
|
103
|
+
type: string
|
|
104
|
+
default: ""
|
|
105
|
+
ui:
|
|
106
|
+
compact: true
|
|
107
|
+
description: "Office or organization that designated this information as CUI (e.g., 'SAF/AA'). Required by DoDM 5200.48 when classification is CUI."
|
|
182
108
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
ui:
|
|
190
|
-
group: additional
|
|
191
|
-
compact: true
|
|
192
|
-
description: "USAF memorandum or DAF headquarters memorandum; DAF changes date format and body paragraph layout per AFH 33-337."
|
|
109
|
+
cui_category:
|
|
110
|
+
type: string
|
|
111
|
+
default: ""
|
|
112
|
+
ui:
|
|
113
|
+
compact: true
|
|
114
|
+
description: "CUI category from the DoD CUI Registry (e.g., 'Privacy/MED', 'CTI', 'PRVCY'). Leave blank to omit."
|
|
193
115
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
description: Body text size in points; decimals allowed (e.g. 11.5).
|
|
116
|
+
cui_limited_dissemination:
|
|
117
|
+
type: string
|
|
118
|
+
default: ""
|
|
119
|
+
ui:
|
|
120
|
+
compact: true
|
|
121
|
+
description: "Limited dissemination control shown in the indicator block (e.g., 'FEDONLY', 'NOFORN'). Independent from the banner suffix above."
|
|
201
122
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
123
|
+
cui_poc:
|
|
124
|
+
type: string
|
|
125
|
+
default: ""
|
|
126
|
+
ui:
|
|
127
|
+
compact: true
|
|
128
|
+
description: "Point of contact for CUI questions (e.g., 'Capt J. Smith, DSN 555-1234, john.smith@us.af.mil'). Required by DoDM 5200.48 when classification is CUI."
|
|
129
|
+
additional:
|
|
130
|
+
fields:
|
|
131
|
+
references:
|
|
132
|
+
type: array
|
|
133
|
+
items:
|
|
134
|
+
type: richtext
|
|
135
|
+
inline: true
|
|
136
|
+
default: []
|
|
137
|
+
description: "References, auto-lettered (a), (b), (c) per AFH 33-337. Cite each by organization, type, date, and title; italicize publication titles with *asterisks* (standard Markdown emphasis)."
|
|
138
|
+
|
|
139
|
+
cc:
|
|
140
|
+
type: array
|
|
141
|
+
items:
|
|
142
|
+
type: string
|
|
143
|
+
default: []
|
|
144
|
+
description: List office symbols of recipients to receive copies; for a person, 'Rank and Name, ORG/SYMBOL'.
|
|
145
|
+
|
|
146
|
+
distribution:
|
|
147
|
+
type: array
|
|
148
|
+
items:
|
|
149
|
+
type: string
|
|
150
|
+
default: []
|
|
151
|
+
description: Complete list of recipients if 'SEE DISTRIBUTION' is used in the 'Memo For' field.
|
|
152
|
+
|
|
153
|
+
attachments:
|
|
154
|
+
type: array
|
|
155
|
+
items:
|
|
156
|
+
type: string
|
|
157
|
+
default: []
|
|
158
|
+
description: List attachments in the order they are mentioned in the memo. Briefly describe each and give its date; do not use 'as stated' or abbreviations.
|
|
159
|
+
|
|
160
|
+
memo_style:
|
|
161
|
+
type: enum
|
|
162
|
+
values:
|
|
163
|
+
- usaf
|
|
164
|
+
- daf
|
|
165
|
+
default: usaf
|
|
166
|
+
ui:
|
|
167
|
+
compact: true
|
|
168
|
+
description: "USAF memorandum or DAF headquarters memorandum; DAF changes date format and body paragraph layout per AFH 33-337."
|
|
169
|
+
|
|
170
|
+
font_size:
|
|
171
|
+
type: number
|
|
172
|
+
default: 12
|
|
173
|
+
ui:
|
|
174
|
+
compact: true
|
|
175
|
+
description: Body text size in points; decimals allowed (e.g. 11.5).
|
|
176
|
+
|
|
177
|
+
date:
|
|
178
|
+
type: date
|
|
179
|
+
default: ""
|
|
180
|
+
ui:
|
|
181
|
+
compact: true
|
|
182
|
+
description: YYYY-MM-DD. Leave blank to use today's date.
|
|
209
183
|
|
|
210
184
|
card_kinds:
|
|
211
185
|
indorsement:
|
|
212
186
|
title: Routing indorsement
|
|
213
187
|
description: Chain of routing endorsements. Each endorsement block adds an official response or forwarding action to the original memo.
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
ui:
|
|
266
|
-
group: additional
|
|
267
|
-
compact: true
|
|
268
|
-
description: "YYYY-MM-DD. Date the endorser signs/forwards the memo (per AFH 33-337 Ch. 14, this is distinct from the originating memo's date). Leave blank to render a fill-in line for the endorser to date by hand when signing."
|
|
188
|
+
sections:
|
|
189
|
+
addressing:
|
|
190
|
+
fields:
|
|
191
|
+
from:
|
|
192
|
+
type: string
|
|
193
|
+
ui:
|
|
194
|
+
compact: true
|
|
195
|
+
description: Office symbol or Rank Name of the endorsing official.
|
|
196
|
+
for:
|
|
197
|
+
type: string
|
|
198
|
+
ui:
|
|
199
|
+
compact: true
|
|
200
|
+
description: Office symbol or organization receiving the endorsed memo.
|
|
201
|
+
signature_block:
|
|
202
|
+
type: array
|
|
203
|
+
items:
|
|
204
|
+
type: string
|
|
205
|
+
ui:
|
|
206
|
+
compact: true
|
|
207
|
+
description: "Line 1: Name in UPPERCASE as signed, grade, and service, as in 'FIRST M. LAST, Capt, USAF'. Line 2: Duty title."
|
|
208
|
+
additional:
|
|
209
|
+
fields:
|
|
210
|
+
format:
|
|
211
|
+
type: enum
|
|
212
|
+
values:
|
|
213
|
+
- standard
|
|
214
|
+
- informal
|
|
215
|
+
- separate_page
|
|
216
|
+
default: standard
|
|
217
|
+
ui:
|
|
218
|
+
compact: true
|
|
219
|
+
description: "'standard' (formal, same page), 'informal' (less formal routing), or 'separate_page' (begins on a new page)."
|
|
220
|
+
action:
|
|
221
|
+
type: enum
|
|
222
|
+
values:
|
|
223
|
+
- undecided
|
|
224
|
+
- approve
|
|
225
|
+
- disapprove
|
|
226
|
+
- undecided_concur
|
|
227
|
+
- concur
|
|
228
|
+
- nonconcur
|
|
229
|
+
default: ""
|
|
230
|
+
ui:
|
|
231
|
+
compact: true
|
|
232
|
+
description: "Decision taken by the endorser, shown as an either/or line with the choice circled. Leave blank to hide the line entirely. Approval authority: 'approve' or 'disapprove' (use 'undecided' to print Approve/Disapprove for the endorser to circle by hand). Coordinating official: 'concur' or 'nonconcur' (use 'undecided_concur' to print Concur/Nonconcur unmarked)."
|
|
233
|
+
date:
|
|
234
|
+
type: date
|
|
235
|
+
default: ""
|
|
236
|
+
ui:
|
|
237
|
+
compact: true
|
|
238
|
+
description: "YYYY-MM-DD. Date the endorser signs/forwards the memo (per AFH 33-337 Ch. 14, this is distinct from the originating memo's date). Leave blank to render a fill-in line for the endorser to date by hand when signing."
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
#import "@local/quillmark-helper:0.
|
|
1
|
+
#import "@local/quillmark-helper:0.2.0" as qm
|
|
2
2
|
#import "@local/tonguetoquill-usaf-memo:3.0.0": backmatter, frontmatter, indorsement, mainmatter
|
|
3
3
|
|
|
4
4
|
// Frontmatter configuration
|
|
5
5
|
#show: frontmatter.with(
|
|
6
6
|
// Letterhead configuration
|
|
7
|
-
letterhead_title: data.letterhead_title,
|
|
8
|
-
letterhead_caption: data.letterhead_caption,
|
|
9
|
-
letterhead_seal_subtitle: data.letterhead_seal_subtitle,
|
|
7
|
+
letterhead_title: qm.data.letterhead_title,
|
|
8
|
+
letterhead_caption: qm.data.letterhead_caption,
|
|
9
|
+
letterhead_seal_subtitle: qm.data.letterhead_seal_subtitle,
|
|
10
10
|
// Enum blank is `""`, not a seal. Omit so the package renders none rather
|
|
11
11
|
// than treating the blank as DoW.
|
|
12
|
-
..if data.letterhead_seal != "" {
|
|
12
|
+
..if qm.data.letterhead_seal != "" {
|
|
13
13
|
(letterhead_seal: image(
|
|
14
|
-
if data.letterhead_seal == "dod" {
|
|
14
|
+
if qm.data.letterhead_seal == "dod" {
|
|
15
15
|
"assets/dod_seal.png"
|
|
16
16
|
} else {
|
|
17
17
|
"assets/dow_seal.png"
|
|
@@ -20,40 +20,40 @@
|
|
|
20
20
|
},
|
|
21
21
|
|
|
22
22
|
// Date
|
|
23
|
-
date: data.date,
|
|
23
|
+
date: qm.data.date,
|
|
24
24
|
|
|
25
25
|
// Receiver information
|
|
26
|
-
memo_for: data.memo_for,
|
|
26
|
+
memo_for: qm.data.memo_for,
|
|
27
27
|
|
|
28
28
|
// Sender information (omitted for Memorandum for Record)
|
|
29
|
-
..if data.memo_from.len() > 0 { (memo_from: data.memo_from) },
|
|
29
|
+
..if qm.data.memo_from.len() > 0 { (memo_from: qm.data.memo_from) },
|
|
30
30
|
|
|
31
31
|
// Subject line
|
|
32
|
-
subject: data.subject,
|
|
32
|
+
subject: qm.data.subject,
|
|
33
33
|
|
|
34
34
|
// Optional references
|
|
35
|
-
..if data.references.len() > 0 { (references: data.references) },
|
|
35
|
+
..if qm.data.references.len() > 0 { (references: qm.data.references) },
|
|
36
36
|
|
|
37
37
|
// Optional footer tag line
|
|
38
|
-
footer_tag_line: data.tag_line,
|
|
38
|
+
footer_tag_line: qm.data.tag_line,
|
|
39
39
|
|
|
40
40
|
// Optional classification level
|
|
41
|
-
..if data.classification != "" { (classification_level: data.classification) },
|
|
41
|
+
..if qm.data.classification != "" { (classification_level: qm.data.classification) },
|
|
42
42
|
|
|
43
|
-
..if data.dissemination != "" { (dissemination: data.dissemination) },
|
|
43
|
+
..if qm.data.dissemination != "" { (dissemination: qm.data.dissemination) },
|
|
44
44
|
|
|
45
45
|
// CUI designation indicator block fields (DoDM 5200.48)
|
|
46
|
-
..if data.cui_controlled_by != "" { (cui_controlled_by: data.cui_controlled_by) },
|
|
47
|
-
..if data.cui_category != "" { (cui_category: data.cui_category) },
|
|
48
|
-
..if data.cui_limited_dissemination != "" { (cui_limited_dissemination: data.cui_limited_dissemination) },
|
|
49
|
-
..if data.cui_poc != "" { (cui_poc: data.cui_poc) },
|
|
46
|
+
..if qm.data.cui_controlled_by != "" { (cui_controlled_by: qm.data.cui_controlled_by) },
|
|
47
|
+
..if qm.data.cui_category != "" { (cui_category: qm.data.cui_category) },
|
|
48
|
+
..if qm.data.cui_limited_dissemination != "" { (cui_limited_dissemination: qm.data.cui_limited_dissemination) },
|
|
49
|
+
..if qm.data.cui_poc != "" { (cui_poc: qm.data.cui_poc) },
|
|
50
50
|
|
|
51
51
|
// USAF vs DAF memorandum style (date format, body indentation). Blank
|
|
52
52
|
// falls through to the package's `"usaf"` default.
|
|
53
|
-
..if data.memo_style != "" { (memo_style: data.memo_style) },
|
|
53
|
+
..if qm.data.memo_style != "" { (memo_style: qm.data.memo_style) },
|
|
54
54
|
|
|
55
55
|
// Font size
|
|
56
|
-
font_size: data.font_size * 1pt,
|
|
56
|
+
font_size: qm.data.font_size * 1pt,
|
|
57
57
|
|
|
58
58
|
// List recipients in vertical list
|
|
59
59
|
memo_for_cols: 1,
|
|
@@ -64,27 +64,27 @@
|
|
|
64
64
|
// auto-numbering), but the rebuilt glyphs keep their spans, which is what
|
|
65
65
|
// the backend reads regions from.
|
|
66
66
|
#mainmatter[
|
|
67
|
-
#data.at("$body")
|
|
67
|
+
#qm.data.at("$body")
|
|
68
68
|
]
|
|
69
69
|
|
|
70
70
|
// Backmatter
|
|
71
71
|
#backmatter(
|
|
72
72
|
// Signature block
|
|
73
|
-
signature_block: data.signature_block,
|
|
74
|
-
signing_field: signature-field("Signature", field: "signature_block"),
|
|
73
|
+
signature_block: qm.data.signature_block,
|
|
74
|
+
signing_field: qm.signature-field("Signature", field: "signature_block"),
|
|
75
75
|
|
|
76
76
|
// Optional cc
|
|
77
|
-
..if data.cc.len() > 0 { (cc: data.cc) },
|
|
77
|
+
..if qm.data.cc.len() > 0 { (cc: qm.data.cc) },
|
|
78
78
|
|
|
79
79
|
// Optional distribution
|
|
80
|
-
..if data.distribution.len() > 0 { (distribution: data.distribution) },
|
|
80
|
+
..if qm.data.distribution.len() > 0 { (distribution: qm.data.distribution) },
|
|
81
81
|
|
|
82
82
|
// Optional attachments
|
|
83
|
-
..if data.attachments.len() > 0 { (attachments: data.attachments) },
|
|
83
|
+
..if qm.data.attachments.len() > 0 { (attachments: qm.data.attachments) },
|
|
84
84
|
)
|
|
85
85
|
|
|
86
86
|
// Indorsements - iterate through CARDS array and filter by CARD tag
|
|
87
|
-
#for (i, card) in data.at("$cards").enumerate() {
|
|
87
|
+
#for (i, card) in qm.data.at("$cards").enumerate() {
|
|
88
88
|
if card.at("$kind", default: none) == "indorsement" {
|
|
89
89
|
// The quillmark helper leaves an unset/whitespace-only markdown body as
|
|
90
90
|
// the empty string `""`; only non-empty bodies are eval'd into content.
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
from: card.at("from", default: ""),
|
|
113
113
|
to: card.at("for", default: ""),
|
|
114
114
|
signature_block: card.signature_block,
|
|
115
|
-
signing_field: signature-field(
|
|
115
|
+
signing_field: qm.signature-field(
|
|
116
116
|
"Ind_" + str(i) + "_Signature",
|
|
117
117
|
field: card.at("$path") + "signature_block",
|
|
118
118
|
),
|