@airmark/quiver 0.35.6 → 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/example.md +53 -59
- 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/packages/tonguetoquill-usaf-letter/src/frontmatter.typ +34 -19
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/mainmatter.typ +1 -1
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/primitives.typ +27 -9
- 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/packages/tonguetoquill-usaf-memo/src/body.typ +15 -1
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/frontmatter.typ +34 -19
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/primitives.typ +5 -1
- 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/packages/tonguetoquill-usaf-memo/src/body.typ +47 -15
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/frontmatter.typ +34 -19
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/primitives.typ +27 -9
- package/quills/usaf_memo/0.3.0/plate.typ +35 -36
- package/templates/classic_resume.md +53 -59
- package/templates/cyber_career_plan.md +56 -0
- package/templates/templates.json +7 -0
|
@@ -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
|
),
|
|
@@ -9,276 +9,250 @@ typst:
|
|
|
9
9
|
|
|
10
10
|
main:
|
|
11
11
|
description: "Write the body as plain paragraphs. They're numbered for you, and bullets become lettered subparagraphs. Use a block quote for lines that shouldn't be numbered, like a list of names."
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
description: "Each recipient's office symbol, one per line. To address a person, add their rank and name in parentheses, for example 'ORG/SYMBOL (LT COL JANE DOE)'. For a long list, enter 'SEE DISTRIBUTION' and list everyone under Distribution."
|
|
12
|
+
sections:
|
|
13
|
+
addressing:
|
|
14
|
+
fields:
|
|
15
|
+
memo_for:
|
|
16
|
+
type: array
|
|
17
|
+
items:
|
|
18
|
+
type: plaintext
|
|
19
|
+
inline: true
|
|
20
|
+
ui:
|
|
21
|
+
compact: true
|
|
22
|
+
description: "Each recipient's office symbol, one per line. To address a person, add their rank and name in parentheses, for example 'ORG/SYMBOL (LT COL JANE DOE)'. For a long list, enter 'SEE DISTRIBUTION' and list everyone under Distribution."
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
description: "Your office symbol. If any recipient is off your installation, add your full mailing address below it. Leave blank for a memorandum for record."
|
|
24
|
+
memo_from:
|
|
25
|
+
type: array
|
|
26
|
+
items:
|
|
27
|
+
type: plaintext
|
|
28
|
+
inline: true
|
|
29
|
+
default: []
|
|
30
|
+
ui:
|
|
31
|
+
compact: true
|
|
32
|
+
description: "Your office symbol. If any recipient is off your installation, add your full mailing address below it. Leave blank for a memorandum for record."
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
group: addressing
|
|
41
|
-
description: "A brief subject in title case. Put any suspense date in parentheses at the end."
|
|
34
|
+
subject:
|
|
35
|
+
type: richtext
|
|
36
|
+
inline: true
|
|
37
|
+
description: "A brief subject in title case. Put any suspense date in parentheses at the end."
|
|
42
38
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
description: "The date you sign. Leave blank to add a fillable date field to the PDF instead."
|
|
39
|
+
date:
|
|
40
|
+
type: date
|
|
41
|
+
default: ""
|
|
42
|
+
ui:
|
|
43
|
+
compact: true
|
|
44
|
+
description: "The date you sign. Leave blank to add a fillable date field to the PDF instead."
|
|
50
45
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
description: "Usually blank. When you sign on the commander's behalf or state the headquarters' position, enter 'FOR THE COMMANDER'. It prints above the signature block."
|
|
59
|
-
|
|
60
|
-
signature_block:
|
|
61
|
-
type: array
|
|
62
|
-
items:
|
|
63
|
-
type: plaintext
|
|
64
|
-
inline: true
|
|
65
|
-
ui:
|
|
66
|
-
group: addressing
|
|
67
|
-
compact: true
|
|
68
|
-
description: "Your name in uppercase, grade, and service on the first line, for example 'FIRST M. LAST, Capt, USAF'. Your duty title on the second."
|
|
69
|
-
|
|
70
|
-
letterhead_title:
|
|
71
|
-
type: array
|
|
72
|
-
items:
|
|
73
|
-
type: plaintext
|
|
74
|
-
inline: true
|
|
75
|
-
default:
|
|
76
|
-
- DEPARTMENT OF THE AIR FORCE
|
|
77
|
-
ui:
|
|
78
|
-
group: letterhead
|
|
79
|
-
description: "The letterhead, in uppercase. Keep the first line unless you work for a joint command or a DoW agency, and add your unit's full name on the lines below it."
|
|
46
|
+
authority_line:
|
|
47
|
+
type: plaintext
|
|
48
|
+
inline: true
|
|
49
|
+
default: ""
|
|
50
|
+
ui:
|
|
51
|
+
compact: true
|
|
52
|
+
description: "Usually blank. When you sign on the commander's behalf or state the headquarters' position, enter 'FOR THE COMMANDER'. It prints above the signature block."
|
|
80
53
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
54
|
+
signature_block:
|
|
55
|
+
type: array
|
|
56
|
+
items:
|
|
57
|
+
type: plaintext
|
|
58
|
+
inline: true
|
|
59
|
+
ui:
|
|
60
|
+
compact: true
|
|
61
|
+
description: "Your name in uppercase, grade, and service on the first line, for example 'FIRST M. LAST, Capt, USAF'. Your duty title on the second."
|
|
62
|
+
letterhead:
|
|
63
|
+
fields:
|
|
64
|
+
letterhead_title:
|
|
65
|
+
type: array
|
|
66
|
+
items:
|
|
67
|
+
type: plaintext
|
|
68
|
+
inline: true
|
|
69
|
+
default:
|
|
70
|
+
- DEPARTMENT OF THE AIR FORCE
|
|
71
|
+
description: "The letterhead, in uppercase. Keep the first line unless you work for a joint command or a DoW agency, and add your unit's full name on the lines below it."
|
|
91
72
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
73
|
+
letterhead_seal:
|
|
74
|
+
type: enum
|
|
75
|
+
values:
|
|
76
|
+
- dow
|
|
77
|
+
- dod
|
|
78
|
+
default: dow
|
|
79
|
+
ui:
|
|
80
|
+
compact: true
|
|
81
|
+
description: "The seal at the top left of the letterhead: Department of War or Department of Defense."
|
|
100
82
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
description: "Your unit's motto, centered at the bottom of every page."
|
|
83
|
+
letterhead_seal_subtitle:
|
|
84
|
+
type: plaintext
|
|
85
|
+
inline: true
|
|
86
|
+
default: ""
|
|
87
|
+
ui:
|
|
88
|
+
compact: true
|
|
89
|
+
description: "An optional line in bold capitals under the seal."
|
|
109
90
|
|
|
91
|
+
tag_line:
|
|
92
|
+
type: richtext
|
|
93
|
+
inline: true
|
|
94
|
+
default: ""
|
|
95
|
+
ui:
|
|
96
|
+
compact: true
|
|
97
|
+
description: "Your unit's motto, centered at the bottom of every page."
|
|
110
98
|
classification:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
99
|
+
fields:
|
|
100
|
+
classification:
|
|
101
|
+
type: enum
|
|
102
|
+
values:
|
|
103
|
+
- UNCLASSIFIED
|
|
104
|
+
- CUI
|
|
105
|
+
- CONFIDENTIAL
|
|
106
|
+
- SECRET
|
|
107
|
+
- TOP SECRET
|
|
108
|
+
default: ""
|
|
109
|
+
ui:
|
|
110
|
+
compact: true
|
|
111
|
+
description: "The classification banner at the top and bottom of every page. Leave blank for an unclassified document."
|
|
112
|
+
variants:
|
|
113
|
+
CUI:
|
|
114
|
+
controlled_by:
|
|
115
|
+
type: plaintext
|
|
116
|
+
inline: true
|
|
117
|
+
description: "The office that designated this information as CUI, for example 'SAF/AA'."
|
|
118
|
+
poc:
|
|
119
|
+
type: plaintext
|
|
120
|
+
inline: true
|
|
121
|
+
description: "Who to contact with questions about this CUI, with phone and email, for example 'Capt J. Smith, DSN 555-1234, john.smith@us.af.mil'."
|
|
122
|
+
category:
|
|
123
|
+
type: plaintext
|
|
124
|
+
inline: true
|
|
125
|
+
default: ""
|
|
126
|
+
description: "The category from the DoD CUI Registry, for example 'CTI' or 'PRVCY'."
|
|
127
|
+
limited_dissemination:
|
|
128
|
+
type: plaintext
|
|
129
|
+
inline: true
|
|
130
|
+
default: ""
|
|
131
|
+
description: "A dissemination control for the CUI block, for example 'FEDONLY' or 'NOFORN'. To add one to the banner, use Dissemination."
|
|
132
|
+
|
|
133
|
+
dissemination:
|
|
134
|
+
type: plaintext
|
|
135
|
+
inline: true
|
|
136
|
+
default: ""
|
|
137
|
+
ui:
|
|
138
|
+
compact: true
|
|
139
|
+
description: "A control added to the end of the banner. For example, 'NF' prints as CUI//NF."
|
|
140
|
+
additional:
|
|
141
|
+
fields:
|
|
142
|
+
references:
|
|
143
|
+
type: array
|
|
144
|
+
items:
|
|
145
|
+
type: richtext
|
|
131
146
|
inline: true
|
|
132
|
-
|
|
133
|
-
|
|
147
|
+
default: []
|
|
148
|
+
description: "Cite each by organization, type, date, and title. One reference prints after the subject; two or more print as a lettered list."
|
|
149
|
+
|
|
150
|
+
cc:
|
|
151
|
+
type: array
|
|
152
|
+
items:
|
|
134
153
|
type: plaintext
|
|
135
154
|
inline: true
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
155
|
+
default: []
|
|
156
|
+
description: Offices or people receiving a courtesy copy, one per line.
|
|
157
|
+
|
|
158
|
+
distribution:
|
|
159
|
+
type: array
|
|
160
|
+
items:
|
|
139
161
|
type: plaintext
|
|
140
162
|
inline: true
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
dissemination:
|
|
145
|
-
type: plaintext
|
|
146
|
-
inline: true
|
|
147
|
-
default: ""
|
|
148
|
-
ui:
|
|
149
|
-
group: classification
|
|
150
|
-
compact: true
|
|
151
|
-
description: "A control added to the end of the banner. For example, 'NF' prints as CUI//NF."
|
|
152
|
-
|
|
153
|
-
references:
|
|
154
|
-
type: array
|
|
155
|
-
items:
|
|
156
|
-
type: richtext
|
|
157
|
-
inline: true
|
|
158
|
-
default: []
|
|
159
|
-
ui:
|
|
160
|
-
group: additional
|
|
161
|
-
description: "Cite each by organization, type, date, and title. One reference prints after the subject; two or more print as a lettered list."
|
|
163
|
+
default: []
|
|
164
|
+
description: "Everyone the memo goes to, when Memo For says 'SEE DISTRIBUTION'."
|
|
162
165
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
group: additional
|
|
171
|
-
description: Offices or people receiving a courtesy copy, one per line.
|
|
172
|
-
|
|
173
|
-
distribution:
|
|
174
|
-
type: array
|
|
175
|
-
items:
|
|
176
|
-
type: plaintext
|
|
177
|
-
inline: true
|
|
178
|
-
default: []
|
|
179
|
-
ui:
|
|
180
|
-
group: additional
|
|
181
|
-
description: "Everyone the memo goes to, when Memo For says 'SEE DISTRIBUTION'."
|
|
182
|
-
|
|
183
|
-
attachments:
|
|
184
|
-
type: array
|
|
185
|
-
items:
|
|
186
|
-
type: richtext
|
|
187
|
-
inline: true
|
|
188
|
-
default: []
|
|
189
|
-
ui:
|
|
190
|
-
group: additional
|
|
191
|
-
description: "Attachments in the order the memo mentions them. Describe each briefly and include its date. Don't write 'as stated'."
|
|
166
|
+
attachments:
|
|
167
|
+
type: array
|
|
168
|
+
items:
|
|
169
|
+
type: richtext
|
|
170
|
+
inline: true
|
|
171
|
+
default: []
|
|
172
|
+
description: "Attachments in the order the memo mentions them. Describe each briefly and include its date. Don't write 'as stated'."
|
|
192
173
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
description: "USAF for most memos, DAF for headquarters memos. DAF style dates as 'September 15, 2026' and indents paragraphs instead of numbering them."
|
|
174
|
+
memo_style:
|
|
175
|
+
type: enum
|
|
176
|
+
values:
|
|
177
|
+
- usaf
|
|
178
|
+
- daf
|
|
179
|
+
default: usaf
|
|
180
|
+
ui:
|
|
181
|
+
compact: true
|
|
182
|
+
description: "USAF for most memos, DAF for headquarters memos. DAF style dates as 'September 15, 2026' and indents paragraphs instead of numbering them."
|
|
203
183
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
description: "Body text size in points. The standard is 12."
|
|
184
|
+
font_size:
|
|
185
|
+
type: number
|
|
186
|
+
default: 12
|
|
187
|
+
ui:
|
|
188
|
+
compact: true
|
|
189
|
+
description: "Body text size in points. The standard is 12."
|
|
211
190
|
|
|
212
191
|
card_kinds:
|
|
213
192
|
indorsement:
|
|
214
193
|
title: Routing indorsement
|
|
215
194
|
description: "A reply to the memo, or a forward to the next office. Indorsements are numbered in order: 1st Ind, 2d Ind, and so on."
|
|
216
|
-
ui:
|
|
217
|
-
groups: [addressing, additional]
|
|
218
195
|
seed:
|
|
219
196
|
from: ORG/SYMBOL
|
|
220
197
|
for: ORG/SYMBOL
|
|
221
198
|
signature_block:
|
|
222
199
|
- FIRST M. LAST, Rank, USAF
|
|
223
200
|
- Duty Title
|
|
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
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
group: additional
|
|
283
|
-
compact: true
|
|
284
|
-
description: "The endorser's decision. The last indorsement prints Approve/Disapprove and earlier ones print Concur/Nonconcur, with the choice underlined. Choose undecided to mark it by hand, or leave blank to omit."
|
|
201
|
+
sections:
|
|
202
|
+
addressing:
|
|
203
|
+
fields:
|
|
204
|
+
from:
|
|
205
|
+
type: plaintext
|
|
206
|
+
inline: true
|
|
207
|
+
ui:
|
|
208
|
+
compact: true
|
|
209
|
+
description: "The endorser's office symbol."
|
|
210
|
+
for:
|
|
211
|
+
type: plaintext
|
|
212
|
+
inline: true
|
|
213
|
+
ui:
|
|
214
|
+
compact: true
|
|
215
|
+
description: "The office the indorsement goes to."
|
|
216
|
+
date:
|
|
217
|
+
type: date
|
|
218
|
+
default: ""
|
|
219
|
+
ui:
|
|
220
|
+
compact: true
|
|
221
|
+
description: "The date the endorser signs. Leave blank to add a fillable date field to the PDF instead."
|
|
222
|
+
authority_line:
|
|
223
|
+
type: plaintext
|
|
224
|
+
inline: true
|
|
225
|
+
default: ""
|
|
226
|
+
ui:
|
|
227
|
+
compact: true
|
|
228
|
+
description: "Usually blank. When the endorser signs on the commander's behalf, enter 'FOR THE COMMANDER'."
|
|
229
|
+
signature_block:
|
|
230
|
+
type: array
|
|
231
|
+
items:
|
|
232
|
+
type: plaintext
|
|
233
|
+
inline: true
|
|
234
|
+
ui:
|
|
235
|
+
compact: true
|
|
236
|
+
description: "The endorser's name in uppercase, grade, and service on the first line, for example 'FIRST M. LAST, Capt, USAF'. Their duty title on the second."
|
|
237
|
+
additional:
|
|
238
|
+
fields:
|
|
239
|
+
format:
|
|
240
|
+
type: enum
|
|
241
|
+
values:
|
|
242
|
+
- standard
|
|
243
|
+
- informal
|
|
244
|
+
- separate_page
|
|
245
|
+
default: standard
|
|
246
|
+
ui:
|
|
247
|
+
compact: true
|
|
248
|
+
description: "Standard continues on the same page and moves to a new one if it doesn't fit. Separate page always starts a new page. Informal leaves out the header."
|
|
249
|
+
action:
|
|
250
|
+
type: enum
|
|
251
|
+
values:
|
|
252
|
+
- undecided
|
|
253
|
+
- approve
|
|
254
|
+
- disapprove
|
|
255
|
+
default: ""
|
|
256
|
+
ui:
|
|
257
|
+
compact: true
|
|
258
|
+
description: "The endorser's decision. The last indorsement prints Approve/Disapprove and earlier ones print Concur/Nonconcur, with the choice underlined. Choose undecided to mark it by hand, or leave blank to omit."
|