@tonguetoquill/collection 0.2.5-beta.1 → 0.2.5

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.
Files changed (107) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +39 -39
  3. package/index.d.ts +2 -2
  4. package/index.js +8 -8
  5. package/package.json +41 -41
  6. package/quills/af4141/0.1.0/Quill.yaml +92 -88
  7. package/quills/af4141/0.1.0/assets/GNU General Public License.txt +340 -0
  8. package/quills/af4141/0.1.0/assets/NimbusRomNo9L-Med.otf +0 -0
  9. package/quills/af4141/0.1.0/assets/NimbusRomNo9L-MedIta.otf +0 -0
  10. package/quills/af4141/0.1.0/assets/NimbusRomNo9L-Reg.otf +0 -0
  11. package/quills/af4141/0.1.0/assets/NimbusRomNo9L-RegIta.otf +0 -0
  12. package/quills/af4141/0.1.0/design/TASK.md +19 -19
  13. package/quills/af4141/0.1.0/example.md +35 -35
  14. package/quills/af4141/0.1.0/packages/typst-af4141/FIELDS.json +3169 -3169
  15. package/quills/af4141/0.1.0/packages/typst-af4141/form.typ +538 -538
  16. package/quills/af4141/0.1.0/packages/typst-af4141/lib.typ +227 -227
  17. package/quills/af4141/0.1.0/packages/typst-af4141/typst.toml +7 -7
  18. package/quills/af4141/0.1.0/plate.typ +50 -48
  19. package/quills/classic_resume/0.1.0/Quill.yaml +118 -118
  20. package/quills/classic_resume/0.1.0/example.md +232 -232
  21. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/LICENSE +21 -21
  22. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/README.md +38 -38
  23. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/src/components.typ +184 -184
  24. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/src/layout.typ +42 -42
  25. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/src/lib.typ +5 -5
  26. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/typst.toml +26 -26
  27. package/quills/classic_resume/0.1.0/plate.typ +44 -44
  28. package/quills/cmu_letter/0.1.0/.quillignore +30 -30
  29. package/quills/cmu_letter/0.1.0/Quill.yaml +64 -64
  30. package/quills/cmu_letter/0.1.0/assets/cmu-wordmark.svg +174 -174
  31. package/quills/cmu_letter/0.1.0/example.md +30 -30
  32. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/LICENSE +21 -21
  33. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/fonts/README.txt +100 -100
  34. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/backmatter.typ +13 -13
  35. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/config.typ +39 -39
  36. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/frontmatter.typ +72 -72
  37. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/lib.typ +47 -47
  38. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/mainmatter.typ +42 -42
  39. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/primitives.typ +70 -70
  40. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/utils.typ +85 -85
  41. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/typst.toml +17 -17
  42. package/quills/cmu_letter/0.1.0/plate.typ +19 -19
  43. package/quills/taro/0.1.0/Quill.yaml +29 -29
  44. package/quills/taro/0.1.0/example.md +26 -26
  45. package/quills/taro/0.1.0/plate.typ +31 -31
  46. package/quills/usaf_memo/0.1.0/.quillignore +30 -30
  47. package/quills/usaf_memo/0.1.0/Quill.yaml +209 -209
  48. package/quills/usaf_memo/0.1.0/example.md +54 -54
  49. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/LICENSE +21 -21
  50. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/fonts/Cinzel/LICENSE +93 -93
  51. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/fonts/CopperplateCC/LICENSE.md +79 -79
  52. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/fonts/NimbusRomanNo9L/GNU General Public License.txt +339 -339
  53. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/backmatter.typ +28 -28
  54. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/body.typ +332 -332
  55. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/config.typ +63 -63
  56. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/frontmatter.typ +114 -114
  57. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/indorsement.typ +118 -118
  58. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/lib.typ +55 -55
  59. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/mainmatter.typ +32 -32
  60. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/primitives.typ +272 -272
  61. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/utils.typ +377 -377
  62. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/typst.toml +16 -16
  63. package/quills/usaf_memo/0.1.0/plate.typ +74 -74
  64. package/quills/usaf_memo/0.2.0/.quillignore +30 -30
  65. package/quills/usaf_memo/0.2.0/Quill.yaml +219 -219
  66. package/quills/usaf_memo/0.2.0/example.md +55 -55
  67. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/.gitignore +6 -6
  68. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/LICENSE +21 -21
  69. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/fonts/Cinzel/LICENSE +93 -93
  70. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/fonts/CopperplateCC/LICENSE.md +79 -79
  71. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/fonts/NimbusRomanNo9L/GNU General Public License.txt +339 -339
  72. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/backmatter.typ +28 -28
  73. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/body.typ +333 -333
  74. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/config.typ +64 -64
  75. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/frontmatter.typ +114 -114
  76. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/indorsement.typ +118 -118
  77. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/lib.typ +55 -55
  78. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/mainmatter.typ +32 -32
  79. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/primitives.typ +293 -293
  80. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/utils.typ +374 -374
  81. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/typst.toml +27 -27
  82. package/quills/usaf_memo/0.2.0/plate.typ +75 -75
  83. package/templates/af4141.md +88 -88
  84. package/templates/cmu_letter_template.md +37 -37
  85. package/templates/loc.md +78 -78
  86. package/templates/pass_request.md +43 -43
  87. package/templates/rebuttal.md +55 -55
  88. package/templates/taro.md +26 -26
  89. package/templates/templates.json +49 -55
  90. package/templates/usaf_template.md +23 -23
  91. package/templates/ussf_template.md +29 -29
  92. package/quills/daf4392/0.1.0/Quill.yaml +0 -110
  93. package/quills/daf4392/0.1.0/assets/arimo-v35-latin-700.ttf +0 -0
  94. package/quills/daf4392/0.1.0/assets/arimo-v35-latin-700italic.ttf +0 -0
  95. package/quills/daf4392/0.1.0/assets/arimo-v35-latin-italic.ttf +0 -0
  96. package/quills/daf4392/0.1.0/assets/arimo-v35-latin-regular.ttf +0 -0
  97. package/quills/daf4392/0.1.0/assets/page1.png +0 -0
  98. package/quills/daf4392/0.1.0/example.md +0 -33
  99. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/FIELDS.json +0 -9
  100. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/form.typ +0 -14
  101. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/lib.typ +0 -227
  102. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/out/debug.typ +0 -4
  103. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/out/example.typ +0 -4
  104. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/page1.png +0 -0
  105. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/typst.toml +0 -7
  106. package/quills/daf4392/0.1.0/plate.typ +0 -60
  107. package/templates/daf4392.md +0 -33
@@ -1,70 +1,70 @@
1
- // primitives.typ: Reusable rendering primitives for CMU letterhead sections
2
- //
3
- // This module implements the visual rendering functions for all sections
4
- // of a CMU letterhead letter following the official guidelines.
5
-
6
- #import "config.typ": *
7
- #import "utils.typ": *
8
-
9
- // =============================================================================
10
- // HEADER RENDERING
11
- // =============================================================================
12
- // Guidelines section 4: Header Composition
13
- // - Wordmark (Top-Left)
14
- // - Sender's Address Block (Immediately below wordmark)
15
-
16
- #let render-header(
17
- wordmark,
18
- department: none,
19
- address: none,
20
- url: none,
21
- ) = {
22
- // CMU Wordmark
23
- // Guidelines 4.1: Width approx 2.25" to 2.5"
24
- if wordmark != none {
25
- let wordmark_content = box(width: 2.5in)[
26
- #set image(width: 100%)
27
- #wordmark
28
- ]
29
-
30
- // Hyperlink wordmark to URL if provided
31
- if url != none {
32
- link("https://" + url)[#wordmark_content]
33
- } else {
34
- wordmark_content
35
- }
36
- linebreak()
37
- }
38
-
39
-
40
- // Sender's Address Block
41
- // Guidelines 4.2: Flush Left
42
-
43
- // Department Name: Bold and darker
44
- if department != none {
45
- text(weight: "bold", fill: black)[#department]
46
- linebreak()
47
- }
48
-
49
- set text(fill: CMU_IRON_GRAY)
50
-
51
- // University Name: Regular
52
- [Carnegie Mellon University]
53
- linebreak()
54
-
55
- // Address Lines: Regular
56
- if address != none {
57
- let address_lines = if type(address) == "string" {
58
- (address,)
59
- } else {
60
- address
61
- }
62
-
63
- for line in address_lines {
64
- [#line]
65
- linebreak()
66
- }
67
- }
68
-
69
- // URL is now hyperlinked to wordmark, not displayed as text
70
- }
1
+ // primitives.typ: Reusable rendering primitives for CMU letterhead sections
2
+ //
3
+ // This module implements the visual rendering functions for all sections
4
+ // of a CMU letterhead letter following the official guidelines.
5
+
6
+ #import "config.typ": *
7
+ #import "utils.typ": *
8
+
9
+ // =============================================================================
10
+ // HEADER RENDERING
11
+ // =============================================================================
12
+ // Guidelines section 4: Header Composition
13
+ // - Wordmark (Top-Left)
14
+ // - Sender's Address Block (Immediately below wordmark)
15
+
16
+ #let render-header(
17
+ wordmark,
18
+ department: none,
19
+ address: none,
20
+ url: none,
21
+ ) = {
22
+ // CMU Wordmark
23
+ // Guidelines 4.1: Width approx 2.25" to 2.5"
24
+ if wordmark != none {
25
+ let wordmark_content = box(width: 2.5in)[
26
+ #set image(width: 100%)
27
+ #wordmark
28
+ ]
29
+
30
+ // Hyperlink wordmark to URL if provided
31
+ if url != none {
32
+ link("https://" + url)[#wordmark_content]
33
+ } else {
34
+ wordmark_content
35
+ }
36
+ linebreak()
37
+ }
38
+
39
+
40
+ // Sender's Address Block
41
+ // Guidelines 4.2: Flush Left
42
+
43
+ // Department Name: Bold and darker
44
+ if department != none {
45
+ text(weight: "bold", fill: black)[#department]
46
+ linebreak()
47
+ }
48
+
49
+ set text(fill: CMU_IRON_GRAY)
50
+
51
+ // University Name: Regular
52
+ [Carnegie Mellon University]
53
+ linebreak()
54
+
55
+ // Address Lines: Regular
56
+ if address != none {
57
+ let address_lines = if type(address) == "string" {
58
+ (address,)
59
+ } else {
60
+ address
61
+ }
62
+
63
+ for line in address_lines {
64
+ [#line]
65
+ linebreak()
66
+ }
67
+ }
68
+
69
+ // URL is now hyperlinked to wordmark, not displayed as text
70
+ }
@@ -1,85 +1,85 @@
1
- // utils.typ: Utility functions for CMU letterhead template
2
- //
3
- // This module provides core utility functions used by the main letterhead template.
4
-
5
- #import "config.typ": *
6
-
7
- // =============================================================================
8
- // SPACING UTILITIES
9
- // =============================================================================
10
-
11
- /// Creates vertical spacing equivalent to multiple blank lines.
12
- ///
13
- /// - count (int): Number of blank lines to create
14
- /// - weak (bool): Whether spacing can be compressed at page breaks
15
- /// -> content
16
- #let blank-lines(count, weak: true) = {
17
- for i in range(0, count) {
18
- v(1.4em)
19
- }
20
- }
21
-
22
- /// Creates vertical spacing equivalent to one blank line.
23
- /// -> content
24
- #let blank-line(weak: true) = blank-lines(1, weak: weak)
25
-
26
- // =============================================================================
27
- // GENERAL UTILITIES
28
- // =============================================================================
29
-
30
- /// Checks if a value is "falsey" (none, false, empty array, or empty string).
31
- ///
32
- /// - value (any): The value to check
33
- /// -> bool
34
- #let falsey(value) = {
35
- value == none or value == false or (type(value) == array and value.len() == 0) or (type(value) == str and value == "")
36
- }
37
-
38
- /// Ensures the input is a string. If an array, joins elements with separator.
39
- ///
40
- /// - value: Any value to normalize to string form
41
- /// - separator: String to use when joining array elements (default: "\n")
42
- /// -> str
43
- #let ensure-string(value, separator: "\n") = {
44
- if value == none {
45
- ""
46
- } else if type(value) == array {
47
- value.join(separator)
48
- } else {
49
- str(value)
50
- }
51
- }
52
-
53
- /// Scales content to fit within a specified box while maintaining aspect ratio.
54
- ///
55
- /// - width (length): Maximum width for the content
56
- /// - height (length): Maximum height for the content
57
- /// - alignment (alignment): Content alignment within the box
58
- /// - body (content): Content to scale and fit
59
- /// -> content
60
- #let fit-box(width: 2in, height: 1in, alignment: left + horizon, body) = context {
61
- let s = measure(body)
62
- let f = calc.min(width / s.width, height / s.height) * 100%
63
- box(width: width, height: height, clip: true)[
64
- #align(alignment)[
65
- #scale(f, reflow: true)[#body]
66
- ]
67
- ]
68
- }
69
-
70
- // =============================================================================
71
- // DATE FORMATTING
72
- // =============================================================================
73
-
74
- /// Formats a date in CMU civilian format: "Month Day, Year"
75
- /// Guidelines section 3.2: Date format is "Month Day, Year" (e.g., November 29, 2025)
76
- ///
77
- /// - date (str|datetime): Date to format
78
- /// -> str
79
- #let display-date(date) = {
80
- if type(date) == str {
81
- date
82
- } else {
83
- date.display("[month repr:long] [day padding:none], [year]")
84
- }
85
- }
1
+ // utils.typ: Utility functions for CMU letterhead template
2
+ //
3
+ // This module provides core utility functions used by the main letterhead template.
4
+
5
+ #import "config.typ": *
6
+
7
+ // =============================================================================
8
+ // SPACING UTILITIES
9
+ // =============================================================================
10
+
11
+ /// Creates vertical spacing equivalent to multiple blank lines.
12
+ ///
13
+ /// - count (int): Number of blank lines to create
14
+ /// - weak (bool): Whether spacing can be compressed at page breaks
15
+ /// -> content
16
+ #let blank-lines(count, weak: true) = {
17
+ for i in range(0, count) {
18
+ v(1.4em)
19
+ }
20
+ }
21
+
22
+ /// Creates vertical spacing equivalent to one blank line.
23
+ /// -> content
24
+ #let blank-line(weak: true) = blank-lines(1, weak: weak)
25
+
26
+ // =============================================================================
27
+ // GENERAL UTILITIES
28
+ // =============================================================================
29
+
30
+ /// Checks if a value is "falsey" (none, false, empty array, or empty string).
31
+ ///
32
+ /// - value (any): The value to check
33
+ /// -> bool
34
+ #let falsey(value) = {
35
+ value == none or value == false or (type(value) == array and value.len() == 0) or (type(value) == str and value == "")
36
+ }
37
+
38
+ /// Ensures the input is a string. If an array, joins elements with separator.
39
+ ///
40
+ /// - value: Any value to normalize to string form
41
+ /// - separator: String to use when joining array elements (default: "\n")
42
+ /// -> str
43
+ #let ensure-string(value, separator: "\n") = {
44
+ if value == none {
45
+ ""
46
+ } else if type(value) == array {
47
+ value.join(separator)
48
+ } else {
49
+ str(value)
50
+ }
51
+ }
52
+
53
+ /// Scales content to fit within a specified box while maintaining aspect ratio.
54
+ ///
55
+ /// - width (length): Maximum width for the content
56
+ /// - height (length): Maximum height for the content
57
+ /// - alignment (alignment): Content alignment within the box
58
+ /// - body (content): Content to scale and fit
59
+ /// -> content
60
+ #let fit-box(width: 2in, height: 1in, alignment: left + horizon, body) = context {
61
+ let s = measure(body)
62
+ let f = calc.min(width / s.width, height / s.height) * 100%
63
+ box(width: width, height: height, clip: true)[
64
+ #align(alignment)[
65
+ #scale(f, reflow: true)[#body]
66
+ ]
67
+ ]
68
+ }
69
+
70
+ // =============================================================================
71
+ // DATE FORMATTING
72
+ // =============================================================================
73
+
74
+ /// Formats a date in CMU civilian format: "Month Day, Year"
75
+ /// Guidelines section 3.2: Date format is "Month Day, Year" (e.g., November 29, 2025)
76
+ ///
77
+ /// - date (str|datetime): Date to format
78
+ /// -> str
79
+ #let display-date(date) = {
80
+ if type(date) == str {
81
+ date
82
+ } else {
83
+ date.display("[month repr:long] [day padding:none], [year]")
84
+ }
85
+ }
@@ -1,17 +1,17 @@
1
- [package]
2
- name = "tonguetoquill-cmu-letter"
3
- version = "0.1.0"
4
- compiler = "0.14.0"
5
- entrypoint = "src/lib.typ"
6
- repository = "https://github.com/nibsbin/tonguetoquill-cmu-letter"
7
- authors = ["Nibs"]
8
- license = "MIT"
9
- description = "Typeset letters that comply with Carnegie Mellon University letterhead standards."
10
- keywords = ["CMU", "Carnegie Mellon", "letterhead", "letter", "university", "official", "correspondence", "formatting"]
11
- categories = ["office", "report"]
12
- disciplines = ["business", "engineering", "education"]
13
-
14
- [template]
15
- path = "template"
16
- entrypoint = "cmu-template.typ"
17
- thumbnail = "template/assets/thumbnail.png"
1
+ [package]
2
+ name = "tonguetoquill-cmu-letter"
3
+ version = "0.1.0"
4
+ compiler = "0.14.0"
5
+ entrypoint = "src/lib.typ"
6
+ repository = "https://github.com/nibsbin/tonguetoquill-cmu-letter"
7
+ authors = ["Nibs"]
8
+ license = "MIT"
9
+ description = "Typeset letters that comply with Carnegie Mellon University letterhead standards."
10
+ keywords = ["CMU", "Carnegie Mellon", "letterhead", "letter", "university", "official", "correspondence", "formatting"]
11
+ categories = ["office", "report"]
12
+ disciplines = ["business", "engineering", "education"]
13
+
14
+ [template]
15
+ path = "template"
16
+ entrypoint = "cmu-template.typ"
17
+ thumbnail = "template/assets/thumbnail.png"
@@ -1,19 +1,19 @@
1
- #import "@local/quillmark-helper:0.1.0": data, eval-markup, parse-date
2
- #import "@local/tonguetoquill-cmu-letter:0.1.0": backmatter, frontmatter, mainmatter
3
-
4
- #show: frontmatter.with(
5
- wordmark: image("assets/cmu-wordmark.svg"),
6
- department: data.department,
7
- address: data.address,
8
- url: data.url,
9
- date: if "date" in data { parse-date(data.date) } else { datetime.today() },
10
- recipient: data.recipient,
11
- )
12
-
13
- #show: mainmatter
14
-
15
- #eval-markup(data.BODY)
16
-
17
- #backmatter(
18
- signature_block: data.signature_block,
19
- )
1
+ #import "@local/quillmark-helper:0.1.0": data, eval-markup, parse-date
2
+ #import "@local/tonguetoquill-cmu-letter:0.1.0": backmatter, frontmatter, mainmatter
3
+
4
+ #show: frontmatter.with(
5
+ wordmark: image("assets/cmu-wordmark.svg"),
6
+ department: data.department,
7
+ address: data.address,
8
+ url: data.url,
9
+ date: if "date" in data { parse-date(data.date) } else { datetime.today() },
10
+ recipient: data.recipient,
11
+ )
12
+
13
+ #show: mainmatter
14
+
15
+ #eval-markup(data.BODY)
16
+
17
+ #backmatter(
18
+ signature_block: data.signature_block,
19
+ )
@@ -1,29 +1,29 @@
1
- Quill:
2
- name: taro
3
- version: 0.1.0
4
- backend: typst
5
- plate_file: plate.typ
6
- example_file: example.md
7
- description: A simple document template for testing
8
-
9
- fields:
10
- author:
11
- title: Author of document
12
- type: string
13
- ice_cream:
14
- title: favorite ice cream flavor
15
- type: string
16
- default: taro
17
- title:
18
- title: title of document
19
- type: string
20
-
21
- cards:
22
- quotes:
23
- title: Inspirational Quotes
24
- description: A collection of quotes about taro ice cream
25
- fields:
26
- author:
27
- title: Quote author
28
- type: string
29
- description: The person who said this quote
1
+ Quill:
2
+ name: taro
3
+ version: 0.1.0
4
+ backend: typst
5
+ plate_file: plate.typ
6
+ example_file: example.md
7
+ description: A simple document template for testing
8
+
9
+ fields:
10
+ author:
11
+ title: Author of document
12
+ type: string
13
+ ice_cream:
14
+ title: favorite ice cream flavor
15
+ type: string
16
+ default: taro
17
+ title:
18
+ title: title of document
19
+ type: string
20
+
21
+ cards:
22
+ quotes:
23
+ title: Inspirational Quotes
24
+ description: A collection of quotes about taro ice cream
25
+ fields:
26
+ author:
27
+ title: Quote author
28
+ type: string
29
+ description: The person who said this quote
@@ -1,27 +1,27 @@
1
- ---
2
- QUILL: taro@0.1
3
- author: Nibs
4
- ice_cream: Taro
5
- title: "My Favorite Ice Cream Flavor"
6
- ---
7
-
8
- I love Taro ice cream for its subtly sweet, nutty flavor and creamy, earthy undertones that set it apart from more common flavors. Its unique purple hue and smooth texture make it both visually striking and deliciously comforting. Here are some quotes from satisfied customers:
9
-
10
-
11
- ---
12
- CARD: quotes
13
- author: Albert Einstein
14
- ---
15
- Without taro ice cream, life would be a mistake.
16
-
17
- ---
18
- CARD: quotes
19
- author: Friedrich Nietzsche
20
- ---
21
- He who has taro ice cream in his heart will never be alone.
22
-
23
- ---
24
- CARD: quotes
25
- author: Mark Twain
26
- ---
1
+ ---
2
+ QUILL: taro@0.1
3
+ author: Nibs
4
+ ice_cream: Taro
5
+ title: "My Favorite Ice Cream Flavor"
6
+ ---
7
+
8
+ I love Taro ice cream for its subtly sweet, nutty flavor and creamy, earthy undertones that set it apart from more common flavors. Its unique purple hue and smooth texture make it both visually striking and deliciously comforting. Here are some quotes from satisfied customers:
9
+
10
+
11
+ ---
12
+ CARD: quotes
13
+ author: Albert Einstein
14
+ ---
15
+ Without taro ice cream, life would be a mistake.
16
+
17
+ ---
18
+ CARD: quotes
19
+ author: Friedrich Nietzsche
20
+ ---
21
+ He who has taro ice cream in his heart will never be alone.
22
+
23
+ ---
24
+ CARD: quotes
25
+ author: Mark Twain
26
+ ---
27
27
  The secret of getting ahead is getting started... with taro ice cream.
@@ -1,31 +1,31 @@
1
- #import "@local/quillmark-helper:0.1.0": data, eval-markup, parse-date
2
-
3
- #set text(font: "Figtree")
4
-
5
- // Advanced: Use show filter to color text
6
- #show regex("(?i)taro"): it => text(fill: purple)[#it]
7
-
8
- // Filters like `String` render to code mode automatically,
9
- #underline(data.title)
10
-
11
- // When using filters in markup mode,
12
- // add `#` before the template expression to enter code mode.
13
- *Author: #data.author*
14
-
15
- *Favorite Ice Cream: #data.ice_cream*__
16
-
17
-
18
- #eval-markup(data.BODY)
19
-
20
- // Present each sub-document programatically
21
- #for card in data.CARDS {
22
- if card.CARD == "quotes" [
23
- *#card.author*: _#eval-markup(card.BODY)_
24
- ]
25
- }
26
-
27
-
28
- // Include an image with a dynamic asset
29
- #if "picture" in data {
30
- image(data.picture)
31
- }
1
+ #import "@local/quillmark-helper:0.1.0": data, eval-markup, parse-date
2
+
3
+ #set text(font: "Figtree")
4
+
5
+ // Advanced: Use show filter to color text
6
+ #show regex("(?i)taro"): it => text(fill: purple)[#it]
7
+
8
+ // Filters like `String` render to code mode automatically,
9
+ #underline(data.title)
10
+
11
+ // When using filters in markup mode,
12
+ // add `#` before the template expression to enter code mode.
13
+ *Author: #data.author*
14
+
15
+ *Favorite Ice Cream: #data.ice_cream*__
16
+
17
+
18
+ #eval-markup(data.BODY)
19
+
20
+ // Present each sub-document programatically
21
+ #for card in data.CARDS {
22
+ if card.CARD == "quotes" [
23
+ *#card.author*: _#eval-markup(card.BODY)_
24
+ ]
25
+ }
26
+
27
+
28
+ // Include an image with a dynamic asset
29
+ #if "picture" in data {
30
+ image(data.picture)
31
+ }
@@ -1,31 +1,31 @@
1
- # Example .quillignore for usaf_memo template
2
- # This demonstrates the .quillignore functionality
3
-
4
- # Ignore temporary and backup files
5
- *.tmp
6
- *.bak
7
- *~
8
- *.swp
9
-
10
- # Ignore build artifacts
11
- target/
12
- dist/
13
- build/
14
-
15
- # Ignore OS-specific files
16
- .DS_Store
17
- Thumbs.db
18
- desktop.ini
19
-
20
- # Ignore version control
21
- .git/
22
- .svn/
23
-
24
- # Ignore editor files
25
- .vscode/
26
- .idea/
27
- *.sublime-*
28
-
29
- # Ignore log files
30
- *.log
1
+ # Example .quillignore for usaf_memo template
2
+ # This demonstrates the .quillignore functionality
3
+
4
+ # Ignore temporary and backup files
5
+ *.tmp
6
+ *.bak
7
+ *~
8
+ *.swp
9
+
10
+ # Ignore build artifacts
11
+ target/
12
+ dist/
13
+ build/
14
+
15
+ # Ignore OS-specific files
16
+ .DS_Store
17
+ Thumbs.db
18
+ desktop.ini
19
+
20
+ # Ignore version control
21
+ .git/
22
+ .svn/
23
+
24
+ # Ignore editor files
25
+ .vscode/
26
+ .idea/
27
+ *.sublime-*
28
+
29
+ # Ignore log files
30
+ *.log
31
31
  logs/