@abreen/tada 1.0.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.
Files changed (125) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +290 -0
  3. package/bin/tada.js +361 -0
  4. package/config/authors.json +1 -0
  5. package/config/nav.json +28 -0
  6. package/content/index.md +19 -0
  7. package/content/lectures/01/Pair.java.md +296 -0
  8. package/content/lectures/01/Rectangle.java +80 -0
  9. package/content/lectures/01/demo.py +9 -0
  10. package/content/lectures/01/index.md +39 -0
  11. package/content/lectures/01/lecture1.pdf +0 -0
  12. package/content/lectures/index.md +25 -0
  13. package/content/markdown.md +379 -0
  14. package/content/problem_sets/index.md +6 -0
  15. package/fonts/google-sans-code/GoogleSansCodeVariable-Italic.ttf +0 -0
  16. package/fonts/google-sans-code/GoogleSansCodeVariable.ttf +0 -0
  17. package/fonts/google-sans-code/LICENSE.txt +93 -0
  18. package/fonts/inter/InterVariable-Italic.ttf +0 -0
  19. package/fonts/inter/InterVariable.ttf +0 -0
  20. package/fonts/inter/LICENSE.txt +92 -0
  21. package/package.json +70 -0
  22. package/public/avatars/alex.jpg +0 -0
  23. package/public/test.txt +1 -0
  24. package/src/_mixins.scss +4 -0
  25. package/src/anchor/README.md +6 -0
  26. package/src/anchor/index.ts +34 -0
  27. package/src/anchor/style.scss +48 -0
  28. package/src/code/README.md +5 -0
  29. package/src/code/index.ts +113 -0
  30. package/src/code/style.scss +101 -0
  31. package/src/code.scss +54 -0
  32. package/src/header/README.md +8 -0
  33. package/src/header/index.ts +43 -0
  34. package/src/header/style.scss +228 -0
  35. package/src/index.ts +73 -0
  36. package/src/layout.scss +144 -0
  37. package/src/literate/style.scss +60 -0
  38. package/src/print/README.md +4 -0
  39. package/src/print/index.ts +32 -0
  40. package/src/print/style.scss +82 -0
  41. package/src/question/README.md +3 -0
  42. package/src/question/index.ts +25 -0
  43. package/src/question/style.scss +116 -0
  44. package/src/search/README.md +6 -0
  45. package/src/search/index.ts +574 -0
  46. package/src/search/style.scss +217 -0
  47. package/src/style.scss +815 -0
  48. package/src/timezone/index.test.ts +100 -0
  49. package/src/timezone/index.ts +298 -0
  50. package/src/timezone/style.scss +16 -0
  51. package/src/timezone/timezones.json +58 -0
  52. package/src/toc/README.md +3 -0
  53. package/src/toc/index.ts +322 -0
  54. package/src/toc/style.scss +203 -0
  55. package/src/top/README.md +4 -0
  56. package/src/top/index.ts +75 -0
  57. package/src/util.ts +122 -0
  58. package/templates/_author.html +27 -0
  59. package/templates/_bottom.html +3 -0
  60. package/templates/_download.html +1 -0
  61. package/templates/_heading.html +19 -0
  62. package/templates/_nav.html +18 -0
  63. package/templates/_theme.scss +97 -0
  64. package/templates/_top.html +87 -0
  65. package/templates/authors.schema.json +13 -0
  66. package/templates/code.html +31 -0
  67. package/templates/default.html +13 -0
  68. package/templates/literate.html +16 -0
  69. package/templates/nav.schema.json +27 -0
  70. package/tsconfig.json +15 -0
  71. package/types/dev.ts +3 -0
  72. package/types/sass.d.ts +1 -0
  73. package/types/site-variables.d.ts +16 -0
  74. package/webpack/apply-base-path-plugin.js +78 -0
  75. package/webpack/build-state.js +97 -0
  76. package/webpack/code.test.js +162 -0
  77. package/webpack/colors.js +15 -0
  78. package/webpack/config.base.js +147 -0
  79. package/webpack/config.dev.js +23 -0
  80. package/webpack/config.prod.js +32 -0
  81. package/webpack/content-watch-plugin.js +153 -0
  82. package/webpack/deflist-id-plugin.js +62 -0
  83. package/webpack/external-links-plugin.js +37 -0
  84. package/webpack/features.js +5 -0
  85. package/webpack/flair.json +1 -0
  86. package/webpack/generate-content-assets-plugin.js +308 -0
  87. package/webpack/generate-favicon-plugin.js +198 -0
  88. package/webpack/generate-fonts-plugin.js +69 -0
  89. package/webpack/generate-manifest-plugin.js +116 -0
  90. package/webpack/globals.js +74 -0
  91. package/webpack/heading-subtitle-plugin.js +80 -0
  92. package/webpack/json-schema.js +19 -0
  93. package/webpack/log.js +143 -0
  94. package/webpack/markdown-plugins.test.js +203 -0
  95. package/webpack/pagefind-plugin.js +379 -0
  96. package/webpack/pagefind-plugin.test.js +131 -0
  97. package/webpack/pdf-text.js +163 -0
  98. package/webpack/print-flair-plugin.js +22 -0
  99. package/webpack/reachability.js +273 -0
  100. package/webpack/reachability.test.js +80 -0
  101. package/webpack/serve.js +104 -0
  102. package/webpack/site-variables.js +53 -0
  103. package/webpack/site.schema.json +67 -0
  104. package/webpack/templates.js +128 -0
  105. package/webpack/text-to-id.js +8 -0
  106. package/webpack/toc-plugin.js +167 -0
  107. package/webpack/util.js +49 -0
  108. package/webpack/utils/code.js +439 -0
  109. package/webpack/utils/content-files.js +147 -0
  110. package/webpack/utils/define-plugin.js +20 -0
  111. package/webpack/utils/file-types.js +26 -0
  112. package/webpack/utils/front-matter.js +57 -0
  113. package/webpack/utils/jdi-runner/LiterateRunner.class +0 -0
  114. package/webpack/utils/jdi-runner/LiterateRunner.java +241 -0
  115. package/webpack/utils/literate-java.js +153 -0
  116. package/webpack/utils/markdown.js +244 -0
  117. package/webpack/utils/parse-hsl.js +8 -0
  118. package/webpack/utils/paths.js +58 -0
  119. package/webpack/utils/render.js +466 -0
  120. package/webpack/utils/shiki-highlighter.js +26 -0
  121. package/webpack/validate-internal-links-plugin.js +155 -0
  122. package/webpack/watch-reachability-state.js +273 -0
  123. package/webpack/watch-reachability-state.test.js +198 -0
  124. package/webpack/watch-reload-client.js +54 -0
  125. package/webpack/watch.js +166 -0
@@ -0,0 +1,379 @@
1
+ title: Markdown Examples
2
+ description: Examples of Markdown syntax supported by Tada.
3
+ toc: true
4
+ author: alex
5
+
6
+ Markdown and HTML files in the `content/` directory
7
+ must contain ["front matter"][front-matter] (YAML-formatted metadata).
8
+ For example, this file's first five lines look like this:
9
+
10
+ ```text
11
+ title: Markdown Examples
12
+ description: Examples of Markdown syntax supported by tada.
13
+ toc: true
14
+ author: alex
15
+ ```
16
+
17
+ This page contains a table of contents because the front matter
18
+ contains `toc: true`.
19
+
20
+ - On small screens, the table of contents appears after the `<h1>` and before
21
+ the `<main>` element.
22
+ - On larger screens, it floats on the side of the screen.
23
+
24
+ Note that the table of contents contains more than just headings, but
25
+ also alerts (notes and warnings) `<hr>` elements.
26
+
27
+ ---
28
+
29
+ ## Basic syntax
30
+
31
+ <!---
32
+ This HTML comment starting with three hyphens is removed during the build
33
+ and does not appear in the HTML source for the page.
34
+ -->
35
+
36
+ Tada uses [MarkdownIt][markdown-it] to render Markdown files, which is
37
+ [standards-compliant][commonmark]. It supports all the features of Markdown
38
+ that Presto did.
39
+
40
+ Here is *italic* and **bold** and `monospace` and ***italic-and-bold***!
41
+
42
+ - Milk
43
+ - Eggs
44
+ - Orange juice
45
+ - Ice cream
46
+ - Coffee
47
+
48
+ 1. Alpha
49
+ 1. Bravo
50
+ 1. Charlie
51
+ 1. Delta
52
+ 1. Echo
53
+
54
+ ### Code blocks
55
+
56
+ There are two ways to get a code block. You can indent 4 or more spaces from
57
+ the current indentation level (same as Presto):
58
+
59
+ public static void main(String[] args) {
60
+ System.out.println("foobar");
61
+ }
62
+
63
+ You can also use three backticks without needing to indent, and it supports
64
+ specifying the name of a language for syntax highlighting, like this:
65
+
66
+ ```java
67
+ public static void main(String[] args) {
68
+ System.out.println("foobar");
69
+ }
70
+ ```
71
+
72
+ Which is highlighted using [Shiki][shiki] at build time:
73
+
74
+ ```java
75
+ public static void main(String[] args) {
76
+ System.out.println("foobar");
77
+ }
78
+ ```
79
+
80
+ * Don't forget to close code blocks with another three backticks.
81
+ * Code highlighting only works when you include the language name (e.g., `java`)
82
+ after the opening backticks.
83
+
84
+ ---
85
+
86
+ ### Tables
87
+
88
+ By default, MarkdownIt supports [the table syntax from GitHub "flavored" Markdown][flavored].
89
+
90
+ Here's a basic table:
91
+
92
+ ```markdown
93
+ | Syntax | Description |
94
+ | ------ | ------------ |
95
+ | Cell | Another cell |
96
+ | Foo | Bar |
97
+ ```
98
+
99
+ You can omit the starting and ending vertical pipes, and the pipes don't have
100
+ to perfectly match on every line:
101
+
102
+ ```markdown
103
+ Syntax | Description
104
+ --- | ---
105
+ Cell | Another cell
106
+ Foo | Bar
107
+ ```
108
+
109
+ This results in:
110
+
111
+ Syntax | Description
112
+ --- | ---
113
+ Cell | Another cell
114
+ Foo | Bar
115
+
116
+
117
+ ### Internal and external links
118
+
119
+ The syntax for links is unchanged from Presto. However,
120
+
121
+ - internal links are prepended with `site.basePath` (e.g., `<a href="/other-page">`
122
+ becomes `<a href="/base/path/other-page">`)
123
+ - external links (links whose domain is not one of `site.internalDomains`) are
124
+ automatically given `target="_blank"` and special styling
125
+
126
+ See `config/site.dev.json` and `config/site.prod.json` to change `site.basePath`
127
+ and `site.internalDomains`.
128
+
129
+
130
+ ## Additional syntax
131
+
132
+ !!! note Headings are links
133
+ All headings are clickable. When you click them, the URL is updated with a
134
+ unique hash that links back to the heading.
135
+ !!!
136
+
137
+
138
+ ### Heading subtitles
139
+
140
+ Write headings using an extra `#` at the end
141
+
142
+ ```
143
+ ## Heading # Subtitle
144
+ ```
145
+
146
+ to render a subtitle inside the heading, like these:
147
+
148
+ ## Course Logistics # Week 1 Overview
149
+
150
+ ### Course Logistics # Week 1 Overview
151
+ *20 points, 5 points per part*
152
+
153
+ #### Course Logistics # Week 1 Overview
154
+ *20 points, 5 points per part*
155
+
156
+ The subtitle is given special text styling, and a horizontal line is added
157
+ after the heading. The special text styling for the subtitle also appears in
158
+ the table of contents.
159
+
160
+
161
+ ### Footnotes
162
+
163
+ Footnotes follow standard MarkdownIt syntax. This sentence references a
164
+ footnote.[^example-footnote]
165
+
166
+
167
+ ### Definition lists
168
+
169
+ Definition lists are supported using the same syntax as Presto:
170
+
171
+ Stack
172
+ : Last-in first-out collection.
173
+
174
+ Queue
175
+ : First-in first-out collection.
176
+
177
+ Binary tree
178
+ : Hierarchical structure where each node has up to two children.
179
+
180
+ Each term (bolded) of the definition list gets its own `id` attribute, like
181
+ headings, so you may [link directly to a definition](#binary-tree):
182
+
183
+ ```text
184
+ /example.html#binary-tree
185
+ ```
186
+
187
+
188
+ ### Collapsible section
189
+
190
+ Use
191
+
192
+ ```
193
+ <<< details Title of *collapsible*
194
+ Here's the content that is visible when expanded.
195
+ <<<
196
+ ```
197
+
198
+ to create a collapsible section (the `<details>` element):
199
+
200
+ <<< details Title of *collapsible*
201
+ Here's the content that is visible when expanded. (When the page is being
202
+ printed, all collapsibles are automatically opened.)
203
+ <<<
204
+
205
+
206
+ ### Alerts
207
+
208
+ Brightly colored boxes that call attention to specific warnings or information.
209
+ The `note` variation is blue and is styled with an information icon.
210
+ The `warning` variation is yellow and styled with a warning triangle.
211
+
212
+ !!! note
213
+ - Here's a bullet point
214
+ - Here's another point
215
+ - Here's the final bullet point.
216
+
217
+ An example of `monospace` text.
218
+
219
+ 1. Ordered list item one
220
+ 2. Ordered list item two
221
+ 3. Ordered list item three
222
+ !!!
223
+
224
+ !!! warning
225
+ Beware of this rule.
226
+
227
+ A time zone chooser for testing styles (see the "time zone chooser" section
228
+ below):
229
+
230
+ <%= timezoneChooser %>
231
+
232
+ A `<time>` element for testing styles: <time datetime="15:00">3 pm</time>
233
+
234
+ Testing [internal link style](./markdown.html)
235
+ Testing [external link style](https://www.google.com)
236
+
237
+ Testing <dfn>definition</dfn> style
238
+ !!!
239
+
240
+ You can specify a custom title:
241
+
242
+ ```markdown
243
+ !!! warning Double-check your answers
244
+ No partial credit is offered for these questions, double-check your answers!
245
+ !!!
246
+ ```
247
+
248
+ !!! warning Double-check your answers
249
+ No partial credit is offered for these questions, double-check your answers!
250
+ !!!
251
+
252
+ Like with headings and definition list terms, custom alert titles have an `id`
253
+ attribute which allows you to link directly to them. They also appear in the
254
+ table of contents alongside headings.
255
+
256
+
257
+ ### Q&A section
258
+
259
+ Use
260
+
261
+ ```markdown
262
+ ??? question What is a base case? Give an example.
263
+
264
+ The <dfn>base case</dfn> is the simplest version of the problem that can be
265
+ solved directly without any further recursive calls. For recursive methods that
266
+ process strings, the base case is the empty string.
267
+ ???
268
+ ```
269
+
270
+ to create a Q&A section whose answer is hidden by default and can be clicked
271
+ to reveal:
272
+
273
+ ??? question What is a base case? Give an example.
274
+ The <dfn>base case</dfn> is the simplest version of the problem that can be
275
+ solved directly without any further recursive calls. For recursive methods that
276
+ process strings, the base case is the empty string.
277
+ ???
278
+
279
+
280
+ ### Generic section
281
+
282
+ Break up a long page by introducing a `<section>` (a standard HTML 5 element)
283
+ which must start with a heading. Generic sections are displayed with a slightly
284
+ different background.
285
+
286
+ Use
287
+
288
+ ```markdown
289
+ ::: section
290
+
291
+ ### Submitting your work
292
+
293
+ Here are the steps to follow when you are ready to submit your work for
294
+ this problem set.
295
+
296
+ ...
297
+ :::
298
+ ```
299
+
300
+ to create:
301
+
302
+ ::: section
303
+
304
+ ### Submitting your work
305
+
306
+ Here are the steps to follow when you are ready to submit your work for
307
+ this problem set.
308
+
309
+ 1. Step one
310
+ 2. Step two
311
+ 3. Step three
312
+ 4. Step four
313
+
314
+ Email the files you changed to the course staff.
315
+
316
+ :::
317
+
318
+ ---
319
+
320
+ ## Additional features
321
+
322
+ These features aren't Markdown-specific, but are included here for reference.
323
+
324
+ ### Time zone chooser
325
+
326
+ Allows the user to see times in their local time zone.
327
+
328
+ !!! note
329
+ Look at the source code for this file to see how to insert it.
330
+ !!!
331
+
332
+ <%= timezoneChooser %>
333
+
334
+ Wrap your times in `<time datetime="...">` elements and they will be updated
335
+ when the user makes a time zone selection.
336
+
337
+ Use
338
+
339
+ ```html
340
+ Here's an example time: <time datetime="17:30">5:30 pm</time>
341
+ ```
342
+
343
+ To produce:
344
+
345
+ Here's an example time: <time datetime="17:30">5:30 pm</time>
346
+
347
+ Time ranges work since the `datetime` attribute should be specified in 24-hour
348
+ time, like this:
349
+
350
+ Here's a time range:
351
+ <time datetime="12:45">12:45</time>--<time datetime="13:45">1:45 pm</time>
352
+
353
+ - When a `<time>` element is adjusted,
354
+ * the appearance of the element changes slightly to indicate it was updated,
355
+ * hovering over the text produces a tooltip telling the user the original time
356
+ and time zone, and
357
+ * if the time adjustment crosses a day boundary, *(next day)* or *(prev. day)*
358
+ is shown after the adjusted time.
359
+ - Whichever style is used for AM/PM (`am`, `a.m.`, `AM`, etc.) is maintained
360
+ when the time is adjusted.
361
+ - The selected time zone is saved in the browser's storage for the site, so
362
+ it will persist through refreshes, navigations, and browser restarts.
363
+ - On any page where you use a `<time>` element, you should include the
364
+ time zone chooser somewhere so the user can adjust it.
365
+ - The default time zone is set in the config file under `site.defaultTimeZone`.
366
+ - With JavaScript disabled, the chooser is hidden and a fallback message
367
+ is shown (e.g., *Times shown in ET.*).
368
+
369
+
370
+
371
+ [^example-footnote]: Footnotes render inside a numbered list at the bottom of
372
+ the page.
373
+
374
+ [front-matter]: https://www.npmjs.com/package/front-matter
375
+ [markdown-it]: https://markdown-it.github.io/
376
+ [commonmark]: https://spec.commonmark.org/
377
+ [flavored]: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables
378
+ [presto]: https://github.com/abreen/presto
379
+ [shiki]: https://shiki.style/
@@ -0,0 +1,6 @@
1
+ title: Problem Sets
2
+ author: alex
3
+ description: An example page for <%= site.title %> which is not generated.
4
+ skip: true
5
+
6
+ This page is not generated during the build because `skip` is set to `true`.
@@ -0,0 +1,93 @@
1
+ Copyright 2025 The Google Sans Code Project Authors (github.com/googlefonts/googlesans-code)
2
+
3
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+ This license is copied below, and is also available with a FAQ at:
5
+ https://openfontlicense.org
6
+
7
+
8
+ -----------------------------------------------------------
9
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+ -----------------------------------------------------------
11
+
12
+ PREAMBLE
13
+ The goals of the Open Font License (OFL) are to stimulate worldwide
14
+ development of collaborative font projects, to support the font creation
15
+ efforts of academic and linguistic communities, and to provide a free and
16
+ open framework in which fonts may be shared and improved in partnership
17
+ with others.
18
+
19
+ The OFL allows the licensed fonts to be used, studied, modified and
20
+ redistributed freely as long as they are not sold by themselves. The
21
+ fonts, including any derivative works, can be bundled, embedded,
22
+ redistributed and/or sold with any software provided that any reserved
23
+ names are not used by derivative works. The fonts and derivatives,
24
+ however, cannot be released under any other type of license. The
25
+ requirement for fonts to remain under this license does not apply
26
+ to any document created using the fonts or their derivatives.
27
+
28
+ DEFINITIONS
29
+ "Font Software" refers to the set of files released by the Copyright
30
+ Holder(s) under this license and clearly marked as such. This may
31
+ include source files, build scripts and documentation.
32
+
33
+ "Reserved Font Name" refers to any names specified as such after the
34
+ copyright statement(s).
35
+
36
+ "Original Version" refers to the collection of Font Software components as
37
+ distributed by the Copyright Holder(s).
38
+
39
+ "Modified Version" refers to any derivative made by adding to, deleting,
40
+ or substituting -- in part or in whole -- any of the components of the
41
+ Original Version, by changing formats or by porting the Font Software to a
42
+ new environment.
43
+
44
+ "Author" refers to any designer, engineer, programmer, technical
45
+ writer or other person who contributed to the Font Software.
46
+
47
+ PERMISSION & CONDITIONS
48
+ Permission is hereby granted, free of charge, to any person obtaining
49
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+ redistribute, and sell modified and unmodified copies of the Font
51
+ Software, subject to the following conditions:
52
+
53
+ 1) Neither the Font Software nor any of its individual components,
54
+ in Original or Modified Versions, may be sold by itself.
55
+
56
+ 2) Original or Modified Versions of the Font Software may be bundled,
57
+ redistributed and/or sold with any software, provided that each copy
58
+ contains the above copyright notice and this license. These can be
59
+ included either as stand-alone text files, human-readable headers or
60
+ in the appropriate machine-readable metadata fields within text or
61
+ binary files as long as those fields can be easily viewed by the user.
62
+
63
+ 3) No Modified Version of the Font Software may use the Reserved Font
64
+ Name(s) unless explicit written permission is granted by the corresponding
65
+ Copyright Holder. This restriction only applies to the primary font name as
66
+ presented to the users.
67
+
68
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+ Software shall not be used to promote, endorse or advertise any
70
+ Modified Version, except to acknowledge the contribution(s) of the
71
+ Copyright Holder(s) and the Author(s) or with their explicit written
72
+ permission.
73
+
74
+ 5) The Font Software, modified or unmodified, in part or in whole,
75
+ must be distributed entirely under this license, and must not be
76
+ distributed under any other license. The requirement for fonts to
77
+ remain under this license does not apply to any document created
78
+ using the Font Software.
79
+
80
+ TERMINATION
81
+ This license becomes null and void if any of the above conditions are
82
+ not met.
83
+
84
+ DISCLAIMER
85
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+ OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file
@@ -0,0 +1,92 @@
1
+ Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
2
+
3
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+ This license is copied below, and is also available with a FAQ at:
5
+ http://scripts.sil.org/OFL
6
+
7
+ -----------------------------------------------------------
8
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
9
+ -----------------------------------------------------------
10
+
11
+ PREAMBLE
12
+ The goals of the Open Font License (OFL) are to stimulate worldwide
13
+ development of collaborative font projects, to support the font creation
14
+ efforts of academic and linguistic communities, and to provide a free and
15
+ open framework in which fonts may be shared and improved in partnership
16
+ with others.
17
+
18
+ The OFL allows the licensed fonts to be used, studied, modified and
19
+ redistributed freely as long as they are not sold by themselves. The
20
+ fonts, including any derivative works, can be bundled, embedded,
21
+ redistributed and/or sold with any software provided that any reserved
22
+ names are not used by derivative works. The fonts and derivatives,
23
+ however, cannot be released under any other type of license. The
24
+ requirement for fonts to remain under this license does not apply
25
+ to any document created using the fonts or their derivatives.
26
+
27
+ DEFINITIONS
28
+ "Font Software" refers to the set of files released by the Copyright
29
+ Holder(s) under this license and clearly marked as such. This may
30
+ include source files, build scripts and documentation.
31
+
32
+ "Reserved Font Name" refers to any names specified as such after the
33
+ copyright statement(s).
34
+
35
+ "Original Version" refers to the collection of Font Software components as
36
+ distributed by the Copyright Holder(s).
37
+
38
+ "Modified Version" refers to any derivative made by adding to, deleting,
39
+ or substituting -- in part or in whole -- any of the components of the
40
+ Original Version, by changing formats or by porting the Font Software to a
41
+ new environment.
42
+
43
+ "Author" refers to any designer, engineer, programmer, technical
44
+ writer or other person who contributed to the Font Software.
45
+
46
+ PERMISSION AND CONDITIONS
47
+ Permission is hereby granted, free of charge, to any person obtaining
48
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
49
+ redistribute, and sell modified and unmodified copies of the Font
50
+ Software, subject to the following conditions:
51
+
52
+ 1) Neither the Font Software nor any of its individual components,
53
+ in Original or Modified Versions, may be sold by itself.
54
+
55
+ 2) Original or Modified Versions of the Font Software may be bundled,
56
+ redistributed and/or sold with any software, provided that each copy
57
+ contains the above copyright notice and this license. These can be
58
+ included either as stand-alone text files, human-readable headers or
59
+ in the appropriate machine-readable metadata fields within text or
60
+ binary files as long as those fields can be easily viewed by the user.
61
+
62
+ 3) No Modified Version of the Font Software may use the Reserved Font
63
+ Name(s) unless explicit written permission is granted by the corresponding
64
+ Copyright Holder. This restriction only applies to the primary font name as
65
+ presented to the users.
66
+
67
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
68
+ Software shall not be used to promote, endorse or advertise any
69
+ Modified Version, except to acknowledge the contribution(s) of the
70
+ Copyright Holder(s) and the Author(s) or with their explicit written
71
+ permission.
72
+
73
+ 5) The Font Software, modified or unmodified, in part or in whole,
74
+ must be distributed entirely under this license, and must not be
75
+ distributed under any other license. The requirement for fonts to
76
+ remain under this license does not apply to any document created
77
+ using the Font Software.
78
+
79
+ TERMINATION
80
+ This license becomes null and void if any of the above conditions are
81
+ not met.
82
+
83
+ DISCLAIMER
84
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
85
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
86
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
87
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
88
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
89
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
90
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
91
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
92
+ OTHER DEALINGS IN THE FONT SOFTWARE.
package/package.json ADDED
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "@abreen/tada",
3
+ "version": "1.0.0",
4
+ "description": "A static site generator",
5
+ "bin": {
6
+ "tada": "bin/tada.js"
7
+ },
8
+ "files": [
9
+ "bin/",
10
+ "webpack/",
11
+ "src/",
12
+ "templates/",
13
+ "fonts/",
14
+ "config/",
15
+ "content/",
16
+ "public/",
17
+ "types/",
18
+ "tsconfig.json"
19
+ ],
20
+ "scripts": {
21
+ "format": "bunx prettier --write \"**/*.(t|j)s\" \"**/*.scss\" \"**/*.json\"",
22
+ "init-example": "bun run bin/tada.js init example --default"
23
+ },
24
+ "engines": {
25
+ "bun": ">=1.0.0"
26
+ },
27
+ "dependencies": {
28
+ "@babel/core": "^7.26.10",
29
+ "@babel/preset-env": "^7.26.9",
30
+ "@tsconfig/node23": "^23.0.2",
31
+ "ajv": "^8.17.1",
32
+ "babel-loader": "^10.0.0",
33
+ "copy-webpack-plugin": "^13.0.1",
34
+ "css-loader": "^7.1.2",
35
+ "fontkit": "^2.0.4",
36
+ "front-matter": "^4.0.2",
37
+ "java-parser": "^3.0.1",
38
+ "jsdom": "^26.1.0",
39
+ "lodash": "^4.17.21",
40
+ "markdown-it": "^14.1.0",
41
+ "markdown-it-anchor": "^9.2.0",
42
+ "markdown-it-container": "^4.0.0",
43
+ "markdown-it-deflist": "^3.0.0",
44
+ "markdown-it-footnote": "^4.0.0",
45
+ "mini-css-extract-plugin": "^2.9.4",
46
+ "pagefind": "^1.4.0",
47
+ "png-to-ico": "^3.0.1",
48
+ "quote-quote": "^1.2.0",
49
+ "sass": "^1.91.0",
50
+ "sass-loader": "^16.0.5",
51
+ "sharp": "^0.34.5",
52
+ "shiki": "^4.0.1",
53
+ "string-strip-html": "^8.5.0",
54
+ "terser-webpack-plugin": "^5.3.14",
55
+ "ts-loader": "^9.5.2",
56
+ "typescript": "^5.4.5",
57
+ "wawoff2": "^2.0.1",
58
+ "webpack": "^5.99.6",
59
+ "webpack-cli": "^6.0.1",
60
+ "ws": "^8.18.0"
61
+ },
62
+ "devDependencies": {
63
+ "@playwright/test": "^1.43.0",
64
+ "@types/bun": "^1.3.10",
65
+ "@types/fontkit": "^2.0.8",
66
+ "prettier": "^3.6.2",
67
+ "prettier-plugin-curly": "^0.4.1",
68
+ "rimraf": "^6.1.3"
69
+ }
70
+ }
Binary file
@@ -0,0 +1 @@
1
+ This file is copied directly to the `dist/` directory with no processing.
@@ -0,0 +1,4 @@
1
+ @mixin user-select($val) {
2
+ -webkit-user-select: $val;
3
+ user-select: $val;
4
+ }
@@ -0,0 +1,6 @@
1
+ # The `anchor` component
2
+
3
+ Append a link to each heading having an `id` attribute.
4
+
5
+ When the link is clicked, `window.location` is updated and the heading is
6
+ highlighted using the same function as the `toc` component.