@airmark/quiver 0.32.1 → 0.33.0
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/README.md +54 -18
- package/package.json +8 -6
- package/quills/af4141/0.1.0/Quill.yaml +1 -1
- package/quills/afmc_moa/0.0.1/Quill.yaml +10 -17
- package/quills/classic_resume/0.0.1/Quill.yaml +361 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/LICENSE +21 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/fonts/EBGaramond/EBGaramond-Bold.ttf +0 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/fonts/EBGaramond/EBGaramond-BoldItalic.ttf +0 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/fonts/EBGaramond/EBGaramond-Italic.ttf +0 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/fonts/EBGaramond/EBGaramond-Regular.ttf +0 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/fonts/EBGaramond/OFL.txt +94 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/components.typ +181 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/config.typ +53 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/layout.typ +57 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/lib.typ +6 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/util.typ +32 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/typst.toml +26 -0
- package/quills/classic_resume/0.0.1/plate.typ +143 -0
- package/quills/cyber_ribbon_chart/0.0.1/Quill.yaml +320 -0
- package/quills/cyber_ribbon_chart/0.0.1/plate.typ +428 -0
- package/quills/daf1206/0.1.0/Quill.yaml +1 -2
- package/quills/daf4392/0.1.0/Quill.yaml +15 -1
- package/quills/daf4392/0.1.0/plate.typ +2 -2
- package/quills/usaf_letter/0.1.0/Quill.yaml +214 -0
- package/quills/usaf_letter/0.1.0/assets/dod_seal.png +0 -0
- package/quills/usaf_letter/0.1.0/assets/dow_seal.png +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/.gitignore +7 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/LICENSE +201 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/Cinzel/Cinzel-Regular.ttf +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/Cinzel/LICENSE +93 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/CopperplateCC/CopperplateCC-Bold.otf +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/CopperplateCC/CopperplateCC-Heavy.otf +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/CopperplateCC/LICENSE.md +79 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/LiberationMono/LICENSE +102 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/LiberationMono/LiberationMono-Regular.ttf +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/NimbusRomanNo9L/GNU General Public License.txt +340 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/NimbusRomanNo9L/NimbusRomNo9L-Med.otf +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/NimbusRomanNo9L/NimbusRomNo9L-MedIta.otf +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/NimbusRomanNo9L/NimbusRomNo9L-Reg.otf +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/NimbusRomanNo9L/NimbusRomNo9L-RegIta.otf +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/backmatter.typ +32 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/config.typ +45 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/frontmatter.typ +226 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/lib.typ +35 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/mainmatter.typ +140 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/primitives.typ +544 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/utils.typ +334 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/typst.toml +22 -0
- package/quills/usaf_letter/0.1.0/plate.typ +124 -0
- package/quills/usaf_memo/0.2.0/Quill.yaml +1 -1
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/LICENSE +201 -21
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/typst.toml +1 -1
- package/quills/usaf_memo/0.3.0/Quill.yaml +75 -56
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/LICENSE +201 -21
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/Cinzel/Cinzel-Regular.ttf +0 -0
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/backmatter.typ +29 -17
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/body.typ +97 -126
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/config.typ +12 -45
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/frontmatter.typ +81 -87
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/indorsement.typ +58 -66
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/lib.typ +14 -36
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/mainmatter.typ +47 -19
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/primitives.typ +178 -121
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/utils.typ +41 -141
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/typst.toml +3 -8
- package/quills/usaf_memo/0.3.0/plate.typ +89 -85
- package/templates/af4141.md +23 -0
- package/templates/appointment_letter.md +58 -0
- package/templates/daf1206.md +23 -0
- package/templates/daf4392.md +34 -0
- package/templates/pass_request.md +48 -0
- package/templates/rebuttal.md +63 -0
- package/templates/templates.json +58 -0
- package/templates/usaf_template.md +30 -0
- package/templates/ussf_template.md +30 -0
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/Cinzel/Cinzel[wght].ttf +0 -0
package/README.md
CHANGED
|
@@ -7,14 +7,17 @@ and aligned to the current Quillmark spec.
|
|
|
7
7
|
|
|
8
8
|
## Contents
|
|
9
9
|
|
|
10
|
-
| Quill
|
|
11
|
-
|
|
12
|
-
| `usaf_memo`
|
|
13
|
-
| `usaf_memo`
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
10
|
+
| Quill | Version | Description |
|
|
11
|
+
|----------------------|---------|----------------------------------------------------------------------------------|
|
|
12
|
+
| `usaf_memo` | 0.3.0 | USAF / DAF Official Memorandum (AFH 33-337) |
|
|
13
|
+
| `usaf_memo` | 0.2.0 | Previous release, retained so documents pinned to `@0.2` keep resolving |
|
|
14
|
+
| `usaf_letter` | 0.1.0 | USAF / DAF Personal Letter (AFH 33-337) |
|
|
15
|
+
| `af4141` | 0.1.0 | AF Form 4141 — Individual's Record of Duties and Experience (Ground Environment) |
|
|
16
|
+
| `daf1206` | 0.1.0 | DAF Form 1206 — Nomination for Award |
|
|
17
|
+
| `daf4392` | 0.1.0 | DAF Form 4392 — Pre-Departure Safety Briefing (Page 2) |
|
|
18
|
+
| `afmc_moa` | 0.0.1 | DoD Memorandum of Agreement (DoDI 4000.19) |
|
|
19
|
+
| `classic_resume` | 0.0.1 | Classic single-page resume |
|
|
20
|
+
| `cyber_ribbon_chart` | 0.0.1 | 17X Cyber Operations Officer ribbon chart and career vector planner |
|
|
18
21
|
|
|
19
22
|
## Install
|
|
20
23
|
|
|
@@ -22,8 +25,8 @@ and aligned to the current Quillmark spec.
|
|
|
22
25
|
npm install @airmark/quiver @quillmark/quiver @quillmark/wasm
|
|
23
26
|
```
|
|
24
27
|
|
|
25
|
-
This package ships
|
|
26
|
-
exposes no JavaScript API. Loading is `@quillmark/quiver`'s, rendering is
|
|
28
|
+
This package ships the source-quiver assets (`Quiver.yaml` + `quills/`) and the
|
|
29
|
+
official [templates](#templates), and exposes no JavaScript API. Loading is `@quillmark/quiver`'s, rendering is
|
|
27
30
|
`@quillmark/wasm`'s.
|
|
28
31
|
|
|
29
32
|
## Usage
|
|
@@ -94,8 +97,28 @@ quills/
|
|
|
94
97
|
plate.typ
|
|
95
98
|
assets/
|
|
96
99
|
packages/
|
|
100
|
+
templates/
|
|
101
|
+
templates.json
|
|
102
|
+
<file>.md
|
|
97
103
|
```
|
|
98
104
|
|
|
105
|
+
## Templates
|
|
106
|
+
|
|
107
|
+
`templates/` holds the official starter documents Tongue to Quill offers in its
|
|
108
|
+
template library. They sit beside the quiver rather than inside it: the quiver
|
|
109
|
+
loaders never read them, and a consumer reaches them as files, through
|
|
110
|
+
`@airmark/quiver/templates/templates.json` and the Markdown it names. Each entry
|
|
111
|
+
is `{ id, name, description, file, tags }`, and every listed template is live.
|
|
112
|
+
|
|
113
|
+
An entry's `id` is permanent. Tongue to Quill derives the template's row id and
|
|
114
|
+
its shareable short code from it, so renaming one retires the old template (its
|
|
115
|
+
stars and its short code with it) and publishes a new one. Removing an entry
|
|
116
|
+
retires it the same way.
|
|
117
|
+
|
|
118
|
+
`npm test` renders every template against this quiver after `quillkit test`, and
|
|
119
|
+
a warning fails it as an error does, so a quill change that breaks a template
|
|
120
|
+
fails here rather than on the app's build.
|
|
121
|
+
|
|
99
122
|
## Working on a quill
|
|
100
123
|
|
|
101
124
|
Two verbs, and they answer different questions.
|
|
@@ -106,17 +129,17 @@ this collection's own `node_modules`, so the versions pinned here are the format
|
|
|
106
129
|
the quiver is packed in and the wasm the gate renders through.
|
|
107
130
|
|
|
108
131
|
**Does it work?** `quillkit test` loads the collection with `fromDir`, compiles
|
|
109
|
-
every quill, and renders each one's
|
|
110
|
-
|
|
111
|
-
|
|
132
|
+
every quill, and renders each one's seed: every field absent, rendering its
|
|
133
|
+
`default:` or its blank. It is the gate CI runs, so a validation failure
|
|
134
|
+
surfaces here rather than on a consumer's build:
|
|
112
135
|
|
|
113
136
|
```bash
|
|
114
137
|
npm install
|
|
115
138
|
npm test
|
|
116
139
|
```
|
|
117
140
|
|
|
118
|
-
The gate renders
|
|
119
|
-
|
|
141
|
+
The gate renders no answer, so a page with a long list or a wrapping value in
|
|
142
|
+
it is a design fixture's to exercise (`design/`), not the gate's.
|
|
120
143
|
|
|
121
144
|
**What is it like to use?** `npm run dev` is `quillkit studio`: it packs this
|
|
122
145
|
quiver, serves the studio client over it, and repacks on every save — pick a
|
|
@@ -134,7 +157,9 @@ wasm it was built against, and nothing at runtime reconciles the two. The gate
|
|
|
134
157
|
is authoritative, studio is advisory.
|
|
135
158
|
|
|
136
159
|
`npm run site` writes the arrangement a deploy serves into `site/` — the client
|
|
137
|
-
at the root, a built quiver at `quiver/` beneath it — without serving it.
|
|
160
|
+
at the root, a built quiver at `quiver/` beneath it — without serving it. It
|
|
161
|
+
passes `--drafts`, so the `0.0.x` prototypes are packed beside the releases and
|
|
162
|
+
every deploy previews them as `npm run dev` does. CI
|
|
138
163
|
uploads that on every run, so a pull request — a fork's included — is reviewed
|
|
139
164
|
by downloading the artifact and serving the directory.
|
|
140
165
|
|
|
@@ -142,7 +167,18 @@ by downloading the artifact and serving the directory.
|
|
|
142
167
|
that same command and keeps the deploy here: nothing outside this repository
|
|
143
168
|
holds `pages: write`.
|
|
144
169
|
|
|
170
|
+
`vercel.json` deploys the same layout to Vercel, where a pull request gets a
|
|
171
|
+
preview URL instead of an artifact to download. It carries the build, the output
|
|
172
|
+
directory and the one cache rule a host owes this layout — `assets/*` immutable,
|
|
173
|
+
which is the engine, and everything else already right by default. Importing the
|
|
174
|
+
repository is the rest of the setup. Both deploys run off `main` and neither
|
|
175
|
+
knows about the other.
|
|
176
|
+
|
|
145
177
|
## License
|
|
146
178
|
|
|
147
|
-
Apache-2.0
|
|
148
|
-
`
|
|
179
|
+
Apache-2.0, the quill packages under `quills/` included, except
|
|
180
|
+
`classic_resume`'s `ttq-classic-resume`, which is MIT. Two things a quill
|
|
181
|
+
carries are not the project's to license: the fonts its package bundles, which
|
|
182
|
+
keep their own upstream terms — see the `packages/` directory inside each quill
|
|
183
|
+
— and the DoD and DoW seals under `quills/*/*/assets/`, which are US
|
|
184
|
+
Government insignia and whose use is governed as such.
|
package/package.json
CHANGED
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@airmark/quiver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.0",
|
|
4
4
|
"description": "Airmark Quiver — Air Force and DAF document Quills for Quillmark.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
"./Quiver.yaml": "./Quiver.yaml",
|
|
8
8
|
"./quills/*": "./quills/*",
|
|
9
|
+
"./templates/*": "./templates/*",
|
|
9
10
|
"./package.json": "./package.json"
|
|
10
11
|
},
|
|
11
12
|
"files": [
|
|
12
13
|
"quills",
|
|
14
|
+
"templates",
|
|
13
15
|
"Quiver.yaml"
|
|
14
16
|
],
|
|
15
17
|
"engines": {
|
|
16
18
|
"node": ">=24"
|
|
17
19
|
},
|
|
18
20
|
"devDependencies": {
|
|
19
|
-
"@quillmark/quiver": "0.
|
|
20
|
-
"@quillmark/wasm": "^0.
|
|
21
|
-
"quillkit": "0.
|
|
21
|
+
"@quillmark/quiver": "0.30.0",
|
|
22
|
+
"@quillmark/wasm": "^0.116.0",
|
|
23
|
+
"quillkit": "0.9.0"
|
|
22
24
|
},
|
|
23
25
|
"scripts": {
|
|
24
|
-
"test": "quillkit test",
|
|
25
|
-
"site": "quillkit site --out site",
|
|
26
|
+
"test": "quillkit test && node scripts/check-templates.mjs",
|
|
27
|
+
"site": "quillkit site --out site --drafts",
|
|
26
28
|
"dev": "quillkit studio"
|
|
27
29
|
},
|
|
28
30
|
"keywords": [
|
|
@@ -35,9 +35,9 @@ main:
|
|
|
35
35
|
|
|
36
36
|
card_kinds:
|
|
37
37
|
experience:
|
|
38
|
+
title: Record of Experience
|
|
38
39
|
description: Each card represents one row in the Record of Experience table. Rows fill page 1 (up to 16 rows) then page 2 (up to 21 rows), for a maximum of 37 rows.
|
|
39
40
|
ui:
|
|
40
|
-
title: Record of Experience
|
|
41
41
|
groups: [record]
|
|
42
42
|
body:
|
|
43
43
|
enabled: false
|
|
@@ -173,33 +173,29 @@ main:
|
|
|
173
173
|
|
|
174
174
|
card_kinds:
|
|
175
175
|
background:
|
|
176
|
+
title: Background
|
|
176
177
|
description: "Background section (DoDI 4000.19 paragraph 1) explaining the circumstances leading to this MOA. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders before authorities."
|
|
177
|
-
ui:
|
|
178
|
-
title: Background
|
|
179
178
|
body:
|
|
180
179
|
example: |
|
|
181
180
|
BACKGROUND: [If there is a need to discuss background, do so here. Normally, there is no need to discuss the background or provide justification for the MOA, particularly if between OSD or DoD Components. Occasionally, however, there is a desire to explain the need for the MOA; particularly where it is not self-evident from the purpose or it is with another federal agency.]
|
|
182
181
|
|
|
183
182
|
authorities:
|
|
183
|
+
title: Authorities
|
|
184
184
|
description: "Authorities section citing the legal basis for this MOA. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after background, before purpose_and_scope."
|
|
185
|
-
ui:
|
|
186
|
-
title: Authorities
|
|
187
185
|
body:
|
|
188
186
|
example: |
|
|
189
187
|
AUTHORITIES: [State the legal authority upon which the reimbursable MOA is based, such as the Economy Act, or any other legal or significant authority that authorizes any such actions associated with this MOA. Discuss the authorities of the Parties here. If the other Party is another federal agency and insists on stating what it believes to be its own authority, preface that assertion with "The [Party] asserts the following authority:" The DoD has no obligation to agree with such assertions of authority by other federal agencies.]
|
|
190
188
|
|
|
191
189
|
purpose_and_scope:
|
|
190
|
+
title: Purpose and Scope
|
|
192
191
|
description: "Purpose and Scope section describing what this MOA establishes. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after authorities, before responsibilities_of_the_parties."
|
|
193
|
-
ui:
|
|
194
|
-
title: Purpose and Scope
|
|
195
192
|
body:
|
|
196
193
|
example: |
|
|
197
194
|
PURPOSE AND SCOPE: [State the purpose and the scope of the MOA here. Always use this paragraph.]
|
|
198
195
|
|
|
199
196
|
responsibilities_of_the_parties:
|
|
197
|
+
title: Responsibilities of the Parties
|
|
200
198
|
description: "Responsibilities of the Parties section listing each party's obligations under this MOA. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after purpose_and_scope, before personnel."
|
|
201
|
-
ui:
|
|
202
|
-
title: Responsibilities of the Parties
|
|
203
199
|
body:
|
|
204
200
|
example: |
|
|
205
201
|
RESPONSIBILITIES OF THE PARTIES:
|
|
@@ -212,17 +208,15 @@ card_kinds:
|
|
|
212
208
|
- [insert as many responsibilities as necessary but ensure that they apply to both Parties]
|
|
213
209
|
|
|
214
210
|
personnel:
|
|
211
|
+
title: Personnel
|
|
215
212
|
description: "Personnel section describing each party's responsibility for its own personnel costs. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after responsibilities_of_the_parties, before general_provisions."
|
|
216
|
-
ui:
|
|
217
|
-
title: Personnel
|
|
218
213
|
body:
|
|
219
214
|
example: |
|
|
220
215
|
PERSONNEL: [Explain each Party's responsibility for all costs of its personnel, including pay and benefits, support, and travel, if applicable to the agreement. Each Party is responsible for supervision and management of its personnel. For shared supervision or management, explain the process to accomplish that.]
|
|
221
216
|
|
|
222
217
|
general_provisions:
|
|
218
|
+
title: General Provisions
|
|
223
219
|
description: "General Provisions section covering points of contact, termination, expiration, and other standard MOA terms. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after personnel, before financial_details."
|
|
224
|
-
ui:
|
|
225
|
-
title: General Provisions
|
|
226
220
|
body:
|
|
227
221
|
example: |
|
|
228
222
|
GENERAL PROVISIONS:
|
|
@@ -249,9 +243,8 @@ card_kinds:
|
|
|
249
243
|
- OTHER FEDERAL AGENCIES. This MOA does not bind any federal agency, other than the Parties, nor waive required compliance with any law or regulation.
|
|
250
244
|
|
|
251
245
|
financial_details:
|
|
246
|
+
title: Financial Details
|
|
252
247
|
description: "Financial Details section (DoDI 4000.19 paragraph 7) covering availability of funds, billing, payment, and Economy Act determination. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after general_provisions, before list_of_attachments."
|
|
253
|
-
ui:
|
|
254
|
-
title: Financial Details
|
|
255
248
|
body:
|
|
256
249
|
example: |
|
|
257
250
|
FINANCIAL DETAILS [include Attachment A in all reimbursable MOAs; if the MOA is not reimbursable add, "This MOA does not provide for reimbursement between the Parties"]:
|
|
@@ -263,9 +256,8 @@ card_kinds:
|
|
|
263
256
|
- ECONOMY ACT DETERMINATION AND FINDINGS (D&F). If the MOA is being entered into in accordance with Section 1535 of Title 31, United States Code (the Economy Act), both Parties agree that the requirements listed in Paragraph (a) of the Economy Act have been met. [Add the following sentence if the provider is an OSD or DoD Component] The provider has determined that the capabilities exist to render the requested support without jeopardizing its assigned missions. [Add the following sentence only if a separate, written Economy Act D&F is required.] Any required Economy Act D&F has been completed.
|
|
264
257
|
|
|
265
258
|
list_of_attachments:
|
|
259
|
+
title: List of Attachments
|
|
266
260
|
description: "List of Attachments section enumerating this MOA's attachments. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders last, after financial_details, immediately before the signature blocks."
|
|
267
|
-
ui:
|
|
268
|
-
title: List of Attachments
|
|
269
261
|
body:
|
|
270
262
|
example: |
|
|
271
263
|
LIST OF ATTACHMENTS:
|
|
@@ -273,9 +265,10 @@ card_kinds:
|
|
|
273
265
|
- [List each attachment here, e.g. "Attachment A, Financial Details".]
|
|
274
266
|
|
|
275
267
|
attachment:
|
|
268
|
+
title: Attachment
|
|
276
269
|
description: "A lettered attachment to the MOA, starting at Attachment B (Attachment A is reserved for the reimbursable financial-details page and is generated automatically when 'reimbursable' is true). Each card starts on its own page."
|
|
277
270
|
ui:
|
|
278
|
-
|
|
271
|
+
groups: [attachment]
|
|
279
272
|
body:
|
|
280
273
|
example: |
|
|
281
274
|
[Describe the attachment's content here.]
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
quill:
|
|
2
|
+
name: classic_resume
|
|
3
|
+
version: 0.0.1
|
|
4
|
+
backend: typst
|
|
5
|
+
description: Classic single-page resume
|
|
6
|
+
|
|
7
|
+
typst:
|
|
8
|
+
plate_file: plate.typ
|
|
9
|
+
|
|
10
|
+
# A resume is a stack of sections, and each kind of section is a card kind: a
|
|
11
|
+
# heading, optional prose under it, and the rows that section holds. The rows
|
|
12
|
+
# are the section's own, so an entry cannot land under the wrong heading.
|
|
13
|
+
main:
|
|
14
|
+
ui:
|
|
15
|
+
groups: [identity, page]
|
|
16
|
+
# Everything prints under a section heading, so main carries no body: a
|
|
17
|
+
# summary is a Summary card.
|
|
18
|
+
body:
|
|
19
|
+
enabled: false
|
|
20
|
+
fields:
|
|
21
|
+
name:
|
|
22
|
+
type: string
|
|
23
|
+
example: John Doe
|
|
24
|
+
ui:
|
|
25
|
+
group: identity
|
|
26
|
+
description: "Your name, set large at the top. It is the document's level 1 heading, and becomes the exported PDF's title and author."
|
|
27
|
+
|
|
28
|
+
contacts:
|
|
29
|
+
type: array
|
|
30
|
+
items:
|
|
31
|
+
type: string
|
|
32
|
+
example:
|
|
33
|
+
- john.doe@example.com
|
|
34
|
+
- (555) 123-4567
|
|
35
|
+
- github.com/johndoe
|
|
36
|
+
- linkedin.com/in/johndoe
|
|
37
|
+
- Pittsburgh, PA
|
|
38
|
+
ui:
|
|
39
|
+
group: identity
|
|
40
|
+
description: "The line under your name, one contact per line here, printed across the page separated by a diamond. Order them by how much you want them used."
|
|
41
|
+
|
|
42
|
+
link_contacts:
|
|
43
|
+
type: boolean
|
|
44
|
+
default: true
|
|
45
|
+
ui:
|
|
46
|
+
group: identity
|
|
47
|
+
compact: true
|
|
48
|
+
description: "Turn contacts that look like an email address, a web address or a phone number into live links in the PDF. Anything else — a city, a clearance level — is printed as written."
|
|
49
|
+
|
|
50
|
+
paper:
|
|
51
|
+
type: enum
|
|
52
|
+
values:
|
|
53
|
+
- us-letter
|
|
54
|
+
- a4
|
|
55
|
+
default: us-letter
|
|
56
|
+
ui:
|
|
57
|
+
group: page
|
|
58
|
+
compact: true
|
|
59
|
+
description: "Page size."
|
|
60
|
+
|
|
61
|
+
font_size:
|
|
62
|
+
type: number
|
|
63
|
+
default: 12
|
|
64
|
+
ui:
|
|
65
|
+
group: page
|
|
66
|
+
compact: true
|
|
67
|
+
description: "Body text size in points; decimals allowed, such as 11.5. Along with the margin, this is the lever for fitting a resume onto one page — drop a half point before you drop a bullet."
|
|
68
|
+
|
|
69
|
+
margin:
|
|
70
|
+
type: number
|
|
71
|
+
default: 0.5
|
|
72
|
+
ui:
|
|
73
|
+
group: page
|
|
74
|
+
compact: true
|
|
75
|
+
description: "Page margin in inches, the same on all four sides. The layout is dense by design; below about 0.4 a printer starts clipping."
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
# Each kind carries the same heading pair and optional prose under it. A blank
|
|
79
|
+
# title prints the kind's usual heading, which the plate holds.
|
|
80
|
+
card_kinds:
|
|
81
|
+
summary:
|
|
82
|
+
title: Summary
|
|
83
|
+
description: "A heading and prose under it. With a title of its own it is any section that is only prose — an objective, a statement of interest."
|
|
84
|
+
ui:
|
|
85
|
+
groups: [heading]
|
|
86
|
+
body:
|
|
87
|
+
example: |
|
|
88
|
+
Security engineer of eight years, most of it on detection pipelines other people have to keep running.
|
|
89
|
+
fields:
|
|
90
|
+
title:
|
|
91
|
+
type: plaintext
|
|
92
|
+
inline: true
|
|
93
|
+
default: ""
|
|
94
|
+
ui:
|
|
95
|
+
group: heading
|
|
96
|
+
description: &title_description "Printed in uppercase over a rule. Leave blank for the usual heading: Summary, Work Experience, Education, Projects, Skills or Certifications."
|
|
97
|
+
extra: &extra
|
|
98
|
+
type: richtext
|
|
99
|
+
inline: true
|
|
100
|
+
default: ""
|
|
101
|
+
ui:
|
|
102
|
+
group: heading
|
|
103
|
+
compact: true
|
|
104
|
+
description: "Qualifier set after the title in the same style, such as a date range or a clarifier. Italicize with *asterisks*. Leave blank for the usual case."
|
|
105
|
+
|
|
106
|
+
experience:
|
|
107
|
+
title: Experience
|
|
108
|
+
description: "Jobs, most recent first: employer and dates on the first line, role and location on the second, details under them."
|
|
109
|
+
ui:
|
|
110
|
+
groups: [heading]
|
|
111
|
+
body: §ion_body
|
|
112
|
+
# Empty is a heading straight over its rows, which is the usual section.
|
|
113
|
+
example: ""
|
|
114
|
+
fields:
|
|
115
|
+
title:
|
|
116
|
+
type: plaintext
|
|
117
|
+
inline: true
|
|
118
|
+
default: ""
|
|
119
|
+
ui:
|
|
120
|
+
group: heading
|
|
121
|
+
description: *title_description
|
|
122
|
+
extra: *extra
|
|
123
|
+
jobs:
|
|
124
|
+
type: array
|
|
125
|
+
items:
|
|
126
|
+
type: object
|
|
127
|
+
properties:
|
|
128
|
+
company:
|
|
129
|
+
type: plaintext
|
|
130
|
+
inline: true
|
|
131
|
+
example: Templar Archives Research Division
|
|
132
|
+
description: "Set in bold at the left of the first line."
|
|
133
|
+
dates: &dates
|
|
134
|
+
type: plaintext
|
|
135
|
+
inline: true
|
|
136
|
+
default: ""
|
|
137
|
+
example: August 2024 – Present
|
|
138
|
+
description: "Set in bold at the right, opposite the name. Free text rather than a date, so a range reads as you write it: 'August 2024 – Present', 'December 2025'. Keep the form the same down the page."
|
|
139
|
+
role:
|
|
140
|
+
type: plaintext
|
|
141
|
+
inline: true
|
|
142
|
+
default: ""
|
|
143
|
+
example: Psionic Research Analyst
|
|
144
|
+
description: "Your title, set in italics under the employer. Leave blank to omit."
|
|
145
|
+
location: &location
|
|
146
|
+
type: plaintext
|
|
147
|
+
inline: true
|
|
148
|
+
default: ""
|
|
149
|
+
example: Pittsburgh, PA
|
|
150
|
+
description: "Set in italics at the right of the second line. 'Pittsburgh, PA', 'Remote'. Leave blank to omit; with the line's other half blank too, the second line is not printed."
|
|
151
|
+
details: &details
|
|
152
|
+
type: richtext
|
|
153
|
+
default: ""
|
|
154
|
+
example: |
|
|
155
|
+
- What you did, and what came of it.
|
|
156
|
+
description: "Set under the entry. Usually a bulleted list, one line each and strongest first; a sentence, *italics* and **bold** set as well, and a heading sets as a bold line. Leave blank for nothing under the entry."
|
|
157
|
+
example:
|
|
158
|
+
- company: Templar Archives Research Division
|
|
159
|
+
dates: August 2024 – Present
|
|
160
|
+
role: Psionic Research Analyst
|
|
161
|
+
location: Aiur
|
|
162
|
+
details: |
|
|
163
|
+
- Analyzed Khala disruption patterns, developing countermeasures to protect neural link infrastructure.
|
|
164
|
+
description: "One row per job. A row is never split across a page break."
|
|
165
|
+
|
|
166
|
+
education:
|
|
167
|
+
title: Education
|
|
168
|
+
description: "Schools, most recent first: school and date on the first line, degree and location on the second."
|
|
169
|
+
ui:
|
|
170
|
+
groups: [heading]
|
|
171
|
+
body: *section_body
|
|
172
|
+
fields:
|
|
173
|
+
title:
|
|
174
|
+
type: plaintext
|
|
175
|
+
inline: true
|
|
176
|
+
default: ""
|
|
177
|
+
ui:
|
|
178
|
+
group: heading
|
|
179
|
+
description: *title_description
|
|
180
|
+
extra: *extra
|
|
181
|
+
schools:
|
|
182
|
+
type: array
|
|
183
|
+
items:
|
|
184
|
+
type: object
|
|
185
|
+
properties:
|
|
186
|
+
school:
|
|
187
|
+
type: plaintext
|
|
188
|
+
inline: true
|
|
189
|
+
example: Carnegie Mellon University
|
|
190
|
+
description: "Set in bold at the left of the first line."
|
|
191
|
+
dates:
|
|
192
|
+
<<: *dates
|
|
193
|
+
example: May 2024
|
|
194
|
+
degree:
|
|
195
|
+
type: plaintext
|
|
196
|
+
inline: true
|
|
197
|
+
default: ""
|
|
198
|
+
example: BS, Data Science
|
|
199
|
+
description: "Degree and field, set in italics under the school. Leave blank to omit."
|
|
200
|
+
location: *location
|
|
201
|
+
details:
|
|
202
|
+
<<: *details
|
|
203
|
+
example: |
|
|
204
|
+
- Distinguished Graduate (top 10%).
|
|
205
|
+
description: "Honors, activities, coursework, set under the entry. Most degrees need none."
|
|
206
|
+
example:
|
|
207
|
+
- school: Carnegie Mellon University
|
|
208
|
+
dates: December 2025
|
|
209
|
+
degree: Master of Information Technology Strategy
|
|
210
|
+
location: Pittsburgh, PA
|
|
211
|
+
description: "One row per school or degree."
|
|
212
|
+
|
|
213
|
+
projects:
|
|
214
|
+
title: Projects
|
|
215
|
+
description: "Projects: name and link on the first line, details under them."
|
|
216
|
+
ui:
|
|
217
|
+
groups: [heading]
|
|
218
|
+
body: *section_body
|
|
219
|
+
fields:
|
|
220
|
+
title:
|
|
221
|
+
type: plaintext
|
|
222
|
+
inline: true
|
|
223
|
+
default: ""
|
|
224
|
+
ui:
|
|
225
|
+
group: heading
|
|
226
|
+
description: *title_description
|
|
227
|
+
extra: *extra
|
|
228
|
+
projects:
|
|
229
|
+
type: array
|
|
230
|
+
items:
|
|
231
|
+
type: object
|
|
232
|
+
properties:
|
|
233
|
+
name:
|
|
234
|
+
type: plaintext
|
|
235
|
+
inline: true
|
|
236
|
+
example: Quillmark
|
|
237
|
+
description: "Set in bold at the left."
|
|
238
|
+
url:
|
|
239
|
+
type: string
|
|
240
|
+
default: ""
|
|
241
|
+
example: https://github.com/nibsbin/quillmark
|
|
242
|
+
description: "Set small and italic at the right, and made a live link when it starts with http. Anything else is printed as written, so '<closed source>' stands in for a project with nothing to link. Leave blank to omit."
|
|
243
|
+
details: *details
|
|
244
|
+
example:
|
|
245
|
+
- name: Quillmark
|
|
246
|
+
url: https://github.com/nibsbin/quillmark
|
|
247
|
+
details: |
|
|
248
|
+
- Parameterization engine for typesetting documents from markdown.
|
|
249
|
+
description: "One row per project."
|
|
250
|
+
|
|
251
|
+
skills:
|
|
252
|
+
title: Skills
|
|
253
|
+
description: "Labelled lists of skills, filled across the columns and then down."
|
|
254
|
+
ui:
|
|
255
|
+
groups: [heading]
|
|
256
|
+
body: *section_body
|
|
257
|
+
fields:
|
|
258
|
+
title:
|
|
259
|
+
type: plaintext
|
|
260
|
+
inline: true
|
|
261
|
+
default: ""
|
|
262
|
+
ui:
|
|
263
|
+
group: heading
|
|
264
|
+
description: *title_description
|
|
265
|
+
extra: *extra
|
|
266
|
+
skills:
|
|
267
|
+
type: array
|
|
268
|
+
ui:
|
|
269
|
+
layout: table
|
|
270
|
+
items:
|
|
271
|
+
type: object
|
|
272
|
+
properties:
|
|
273
|
+
label:
|
|
274
|
+
type: plaintext
|
|
275
|
+
inline: true
|
|
276
|
+
example: Programming
|
|
277
|
+
description: "Set in bold on its own line above the text."
|
|
278
|
+
text:
|
|
279
|
+
type: plaintext
|
|
280
|
+
inline: true
|
|
281
|
+
example: Python, R, JS, Rust, PowerShell, CI/CD
|
|
282
|
+
title: Items
|
|
283
|
+
description: "The items under that label, usually comma separated. Printed as written — markup is the one thing a labeled row does not carry."
|
|
284
|
+
example:
|
|
285
|
+
- label: Programming
|
|
286
|
+
text: "Python, R, JS, C#, Rust, PowerShell, CI/CD"
|
|
287
|
+
- label: Cloud
|
|
288
|
+
text: "AWS EC2/S3, Helm, Docker, Serverless"
|
|
289
|
+
description: "One label and its items per row."
|
|
290
|
+
columns: &columns
|
|
291
|
+
type: integer
|
|
292
|
+
default: 2
|
|
293
|
+
ui:
|
|
294
|
+
compact: true
|
|
295
|
+
description: "Number of columns. Two suits items that run most of a line; three suits single words."
|
|
296
|
+
|
|
297
|
+
certifications:
|
|
298
|
+
title: Certifications
|
|
299
|
+
description: "A list of certifications, filled across the columns and then down."
|
|
300
|
+
ui:
|
|
301
|
+
groups: [heading]
|
|
302
|
+
body: *section_body
|
|
303
|
+
fields:
|
|
304
|
+
title:
|
|
305
|
+
type: plaintext
|
|
306
|
+
inline: true
|
|
307
|
+
default: ""
|
|
308
|
+
ui:
|
|
309
|
+
group: heading
|
|
310
|
+
description: *title_description
|
|
311
|
+
extra: *extra
|
|
312
|
+
items:
|
|
313
|
+
type: array
|
|
314
|
+
items:
|
|
315
|
+
type: richtext
|
|
316
|
+
inline: true
|
|
317
|
+
example:
|
|
318
|
+
- Offensive Security Certified Professional (OSCP)
|
|
319
|
+
- GIAC Cyber Threat Intelligence (GCTI)
|
|
320
|
+
description: "One item per line. Keep each to a line at the column width. Italicize with *asterisks*."
|
|
321
|
+
columns: *columns
|
|
322
|
+
|
|
323
|
+
other:
|
|
324
|
+
title: Other section
|
|
325
|
+
description: "A section the kinds above do not name — volunteer work, military service, publications, a competition. Rows take the Experience shape with neutral names."
|
|
326
|
+
ui:
|
|
327
|
+
groups: [heading]
|
|
328
|
+
body: *section_body
|
|
329
|
+
fields:
|
|
330
|
+
title:
|
|
331
|
+
type: plaintext
|
|
332
|
+
inline: true
|
|
333
|
+
example: Cyber Competition
|
|
334
|
+
ui:
|
|
335
|
+
group: heading
|
|
336
|
+
description: "Printed in uppercase over a rule. Other has no usual heading, so this one is yours to write."
|
|
337
|
+
extra: *extra
|
|
338
|
+
entries:
|
|
339
|
+
type: array
|
|
340
|
+
default: []
|
|
341
|
+
items:
|
|
342
|
+
type: object
|
|
343
|
+
properties:
|
|
344
|
+
heading:
|
|
345
|
+
type: plaintext
|
|
346
|
+
inline: true
|
|
347
|
+
example: 1st in NCX 2023
|
|
348
|
+
description: "Set in bold at the left of the first line."
|
|
349
|
+
dates: *dates
|
|
350
|
+
subtitle:
|
|
351
|
+
type: plaintext
|
|
352
|
+
inline: true
|
|
353
|
+
default: ""
|
|
354
|
+
description: "Set in italics under the heading. Leave blank to omit."
|
|
355
|
+
location: *location
|
|
356
|
+
details: *details
|
|
357
|
+
example:
|
|
358
|
+
- heading: 1st in NCX 2023
|
|
359
|
+
details: |
|
|
360
|
+
- Developed strategies, defensive scripts, and exploits for the Cyber Combat event.
|
|
361
|
+
description: "One row per item. A section that is only prose is a Summary with a title of its own."
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Nibs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/fonts/EBGaramond/EBGaramond-Bold.ttf
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|