├── .gitignore
├── .hugo_build.lock
├── .prettierignore
├── .prettierrc.js
├── LICENSE
├── README.md
├── assets
├── app.css
├── custom.css
└── main.css
├── exampleSite
├── .gitignore
├── LICENSE
├── README.md
├── configTaxo.toml
├── content
│ ├── _index.md
│ ├── about.md
│ ├── archives.md
│ ├── contact.md
│ ├── homepage
│ │ ├── about.md
│ │ ├── index.md
│ │ └── work.md
│ └── post
│ │ ├── _index.md
│ │ ├── emoji-support.md
│ │ ├── markdown-syntax.md
│ │ ├── math-typesetting.md
│ │ ├── placeholder-text.md
│ │ └── rich-content.md
├── go.default.mod
├── go.toml
├── hugo.toml
├── layouts
│ └── .gitkeep
└── static
│ └── .gitignore
├── go.mod
├── i18n
├── ar.yaml
├── az.yaml
├── be.yaml
├── bn.yaml
├── de.yaml
├── en.yaml
├── es.yaml
├── fa.yaml
├── fr.yaml
├── he.yaml
├── id.yaml
├── it.yaml
├── ja.yaml
├── ko.yaml
├── oc.yaml
├── pl.yaml
├── pt.yaml
├── ru.yaml
├── sw.yaml
├── tr.yaml
└── zh.yaml
├── images
├── pagespeed.png
├── screenshot.png
├── screenshot_dark.png
└── tn.png
├── layouts
├── 404.html
├── _default
│ ├── baseof.html
│ ├── list.html
│ └── single.html
├── partials
│ ├── footer.html
│ ├── head.html
│ ├── header.html
│ ├── math.html
│ └── mermaid.html
└── shortcodes
│ └── collapse.html
├── package.json
├── pnpm-lock.yaml
├── static
├── apple-touch-icon.png
├── bluesky.svg
├── favicon.ico
├── github.svg
├── highlight.min.js
├── instagram.svg
├── linkedin.svg
├── mastodon.svg
├── rss.svg
├── theme.png
├── theme.svg
├── threads.svg
└── twitter.svg
└── theme.toml
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /public
3 | .hugo_build.lock
4 |
--------------------------------------------------------------------------------
/.hugo_build.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nanxiaobei/hugo-paper/8c75cdd9ce53795675f7a54d431870eeac559665/.hugo_build.lock
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | /images
2 | /static
3 |
4 | .git*
5 | *.toml
6 | .prettierignore
7 | LICENSE
8 | yarn.lock
9 |
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | singleQuote: true,
3 | plugins: ['prettier-plugin-tailwindcss'],
4 | };
5 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 南小北
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.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | gorgeous framer templates ☞ [21beats.lemonsqueezy.com](https://21beats.lemonsqueezy.com/)
4 |
5 | your online home screen ☞ [kee.so](https://kee.so/)
6 |
7 |
8 |
9 | ---
10 |
11 |
12 |
Paper 6.30
13 |
14 | Demo → [hugo-paper.vercel.app](https://hugo-paper.vercel.app/)
15 |
16 | A simple, clean, customizable Hugo theme.
17 |
18 | ⚡️ Fast | 👒 Customizable | 🫙 Smooth
19 |
20 |
21 |
22 | ## Links
23 |
24 | Product Hunt: [producthunt.com/posts/hugo-paper-6](https://www.producthunt.com/posts/hugo-paper-6)
25 |
26 | Hugo themes: [themes.gohugo.io/hugo-paper](https://themes.gohugo.io/hugo-paper/)
27 |
28 | ## Overview
29 |
30 | 
31 | 
32 | 
33 |
34 | ## Options
35 |
36 | Available options to `config.toml` or `hugo.toml`:
37 |
38 | ```toml
39 | [services]
40 | [services.disqus]
41 | shortname = 'YOUR_DISQUS_SHORTNAME' # use disqus comments
42 |
43 | [params]
44 | # color style
45 | color = 'linen' # linen, wheat, gray, light
46 |
47 | # header social icons
48 | twitter = 'YOUR_TWITTER_ID' # twitter.com/YOUR_TWITTER_ID
49 | github = 'YOUR_GITHUB_ID' # github.com/YOUR_GITHUB_ID
50 | instagram = 'YOUR_INSTAGRAM_ID' # instagram.com/YOUR_INSTAGRAM_ID
51 | linkedin = 'YOUR_LINKEDIN_ID' # linkedin.com/in/YOUR_LINKEDIN_ID
52 | mastodon = 'YOUR_MASTODON_LINK' # e.g. 'https://mastodon.instance/@xxx'
53 | threads = '@YOUR_THREADS_ID' # threads.net/@YOUR_THREADS_ID
54 | bluesky = 'YOUR_BLUESKY_ID' # https://bsky.app/profile/YOUR_BLUESKY_ID
55 | rss = true # show rss icon
56 |
57 | # home page profile
58 | avatar = 'GRAVATAR_EMAIL' # gravatar email or image url
59 | name = 'YOUR_NAME'
60 | bio = 'YOUR_BIO'
61 |
62 |
63 | # misc
64 | disableHLJS = true # disable highlight.js
65 | disablePostNavigation = true # disable post navigation
66 | monoDarkIcon = true # show monochrome dark mode icon
67 | gravatarCdn = 'GRAVATAR_CDN_LINK' # e.g. 'https://cdn.v2ex.com/gravatar/'
68 | math = true # enable KaTeX math typesetting globally
69 | localKatex = false # use local KaTeX js/css instead of CDN
70 | graphCommentId = "YOUR_GRAPH_COMMENT_ID" # use graph comment (disqus alternative)
71 | favicon = "favicon.ico" # customize the default favicon
72 | appleTouchIcon = "apple-touch-icon.png" # customize the default Apple touch icon
73 |
74 | # RTL supprot
75 | direction = "rtl" # RTL support for Right-to-left languages
76 |
77 | # giscus
78 | [params.giscus]
79 | repo = 'YOUR_GISCUS_REPO' # see https://giscus.app for more details
80 | repoId = 'YOUR_GISCUS_REPO_ID'
81 | category = 'YOUR__GISCUS_CATEGORY'
82 | categoryId = 'YOUR_GISCUS_CATEGORY_ID'
83 | mapping = 'pathname'
84 | theme = 'light'
85 | lang = 'zh-CN'
86 | ```
87 |
88 | Available options to front matter:
89 |
90 | ```toml
91 | comments = false # disable comments for a specific page
92 | math = true # enable KaTeX math typesetting for a specific page
93 | ```
94 |
95 | ## Install
96 |
97 | ### As git submodule
98 |
99 | Inside the folder of your Hugo project, run:
100 |
101 | ```bash
102 | git submodule add https://github.com/nanxiaobei/hugo-paper themes/paper
103 | ```
104 |
105 | Open `config.toml`(or `hugo.toml`), change `theme` to `"paper"`:
106 |
107 | ```toml
108 | theme = "paper"
109 | ```
110 |
111 | For more information, please read the [official guide](https://gohugo.io/getting-started/quick-start/#configure-the-site) of Hugo.
112 |
113 | ### As hugo module
114 |
115 | Add paper theme ad dependency of your site:
116 |
117 | ```bash
118 | hugo mod init github.com//
119 | ```
120 |
121 | Open `config.toml`(or `hugo.toml`), remove the `theme` line (if present), add `module` section to the bottom of the file:
122 |
123 | ```toml
124 | [module]
125 | [[module.imports]]
126 | path = "github.com/nanxiaobei/hugo-paper"
127 | ```
128 |
129 | For more information, please read the [official guide](https://gohugo.io/hugo-modules/use-modules/#use-a-module-for-a-theme) of Hugo.
130 |
131 | ## License
132 |
133 | [MIT License](https://github.com/nanxiaobei/hugo-paper/blob/main/LICENSE) (c) [nanxiaobei](https://lee.so/)
134 |
--------------------------------------------------------------------------------
/assets/app.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Paper
3 | * A simple, clean, flexible Hugo theme
4 | * https://github.com/nanxiaobei/hugo-paper
5 | * Designed by 南小北 https://lee.so/
6 | */
7 |
8 | @import 'tailwindcss';
9 | @plugin '@tailwindcss/typography';
10 | @custom-variant dark (&:where(.dark, .dark *));
11 |
12 | @theme {
13 | --w: calc(680px + 32px * 2);
14 | }
15 |
16 | @utility dark-bg {
17 | @apply dark:before:fixed dark:before:inset-0 dark:before:z-[-1] dark:before:bg-black/85;
18 | }
19 |
20 | body {
21 | @apply dark-bg;
22 | }
23 |
24 | h1,
25 | h2,
26 | h3 {
27 | @apply font-semibold;
28 | }
29 |
30 | pre {
31 | direction: ltr;
32 | }
33 |
34 | article {
35 | @apply text-lg leading-[1.8] text-black dark:text-white;
36 |
37 | code {
38 | @apply inline-block text-sm! leading-6!;
39 | }
40 |
41 | .highlight {
42 | @apply my-8;
43 |
44 | pre {
45 | @apply my-0;
46 | }
47 |
48 | > div {
49 | @apply rounded-md bg-(--tw-prose-pre-bg);
50 |
51 | table {
52 | @apply my-0 table-fixed;
53 |
54 | tr {
55 | @apply flex;
56 |
57 | td {
58 | @apply p-0;
59 |
60 | pre {
61 | @apply bg-transparent!;
62 | }
63 | }
64 |
65 | &:first-of-type pre {
66 | @apply pr-[4px];
67 |
68 | code span {
69 | @apply mr-0! block min-w-[18px] p-0! text-right text-white/40;
70 | }
71 | }
72 |
73 | &:last-of-type {
74 | @apply overflow-auto;
75 | }
76 | }
77 | }
78 | }
79 | }
80 | }
81 |
82 | .btn {
83 | @apply rounded-xl bg-black px-5 py-3 text-[0.95em] text-white no-underline duration-100 active:scale-95 dark:bg-white dark:text-black;
84 | }
85 |
86 | .link {
87 | @apply duration-200 hover:text-black dark:hover:text-white;
88 | }
89 |
90 | .not-ready * {
91 | @apply transition-none!;
92 | }
93 |
94 | .prose {
95 | @apply break-words;
96 |
97 | kbd:has(kbd) {
98 | @apply shadow-none;
99 | }
100 | }
101 |
102 | .btn-menu {
103 | &::before,
104 | &::after {
105 | @apply block h-[2px] w-5 bg-black duration-200 content-[''];
106 | }
107 |
108 | @apply dark:before:invert dark:after:invert;
109 |
110 | &:where(.open *) {
111 | &::before {
112 | @apply w-6 translate-y-[6px] rotate-45;
113 | }
114 |
115 | &::after {
116 | @apply w-6 -translate-y-[6px] -rotate-45;
117 | }
118 | }
119 | }
120 |
121 | .nav-wrapper {
122 | @apply dark-bg lg:before:hidden dark:before:absolute;
123 |
124 | &:where(.open *) {
125 | @apply top-0;
126 | }
127 | }
128 |
129 | .open {
130 | @apply overflow-hidden;
131 | }
132 |
--------------------------------------------------------------------------------
/assets/custom.css:
--------------------------------------------------------------------------------
1 | /* Place custom css here. */
2 | @reference './app.css';
3 |
--------------------------------------------------------------------------------
/assets/main.css:
--------------------------------------------------------------------------------
1 | /*! tailwindcss v4.0.12 | MIT License | https://tailwindcss.com */
2 | @layer theme, base, components, utilities;
3 | @layer theme {
4 | :root, :host {
5 | --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
6 | "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
7 | --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
8 | "Courier New", monospace;
9 | --color-orange-500: oklch(0.705 0.213 47.604);
10 | --color-black: #000;
11 | --color-white: #fff;
12 | --spacing: 0.25rem;
13 | --text-xs: 0.75rem;
14 | --text-xs--line-height: calc(1 / 0.75);
15 | --text-sm: 0.875rem;
16 | --text-sm--line-height: calc(1.25 / 0.875);
17 | --text-base: 1rem;
18 | --text-base--line-height: calc(1.5 / 1);
19 | --text-lg: 1.125rem;
20 | --text-lg--line-height: calc(1.75 / 1.125);
21 | --text-xl: 1.25rem;
22 | --text-xl--line-height: calc(1.75 / 1.25);
23 | --text-2xl: 1.5rem;
24 | --text-2xl--line-height: calc(2 / 1.5);
25 | --text-9xl: 8rem;
26 | --text-9xl--line-height: 1;
27 | --font-weight-normal: 400;
28 | --font-weight-medium: 500;
29 | --font-weight-semibold: 600;
30 | --tracking-wider: 0.05em;
31 | --radius-md: 0.375rem;
32 | --radius-lg: 0.5rem;
33 | --radius-xl: 0.75rem;
34 | --ease-out: cubic-bezier(0, 0, 0.2, 1);
35 | --animate-spin: spin 1s linear infinite;
36 | --default-transition-duration: 150ms;
37 | --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
38 | --default-font-family: var(--font-sans);
39 | --default-font-feature-settings: var(--font-sans--font-feature-settings);
40 | --default-font-variation-settings: var(
41 | --font-sans--font-variation-settings
42 | );
43 | --default-mono-font-family: var(--font-mono);
44 | --default-mono-font-feature-settings: var(
45 | --font-mono--font-feature-settings
46 | );
47 | --default-mono-font-variation-settings: var(
48 | --font-mono--font-variation-settings
49 | );
50 | --w: calc(680px + 32px * 2);
51 | }
52 | }
53 | @layer base {
54 | *, ::after, ::before, ::backdrop, ::file-selector-button {
55 | box-sizing: border-box;
56 | margin: 0;
57 | padding: 0;
58 | border: 0 solid;
59 | }
60 | html, :host {
61 | line-height: 1.5;
62 | -webkit-text-size-adjust: 100%;
63 | tab-size: 4;
64 | font-family: var( --default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" );
65 | font-feature-settings: var(--default-font-feature-settings, normal);
66 | font-variation-settings: var( --default-font-variation-settings, normal );
67 | -webkit-tap-highlight-color: transparent;
68 | }
69 | body {
70 | line-height: inherit;
71 | }
72 | hr {
73 | height: 0;
74 | color: inherit;
75 | border-top-width: 1px;
76 | }
77 | abbr:where([title]) {
78 | -webkit-text-decoration: underline dotted;
79 | text-decoration: underline dotted;
80 | }
81 | h1, h2, h3, h4, h5, h6 {
82 | font-size: inherit;
83 | font-weight: inherit;
84 | }
85 | a {
86 | color: inherit;
87 | -webkit-text-decoration: inherit;
88 | text-decoration: inherit;
89 | }
90 | b, strong {
91 | font-weight: bolder;
92 | }
93 | code, kbd, samp, pre {
94 | font-family: var( --default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace );
95 | font-feature-settings: var( --default-mono-font-feature-settings, normal );
96 | font-variation-settings: var( --default-mono-font-variation-settings, normal );
97 | font-size: 1em;
98 | }
99 | small {
100 | font-size: 80%;
101 | }
102 | sub, sup {
103 | font-size: 75%;
104 | line-height: 0;
105 | position: relative;
106 | vertical-align: baseline;
107 | }
108 | sub {
109 | bottom: -0.25em;
110 | }
111 | sup {
112 | top: -0.5em;
113 | }
114 | table {
115 | text-indent: 0;
116 | border-color: inherit;
117 | border-collapse: collapse;
118 | }
119 | :-moz-focusring {
120 | outline: auto;
121 | }
122 | progress {
123 | vertical-align: baseline;
124 | }
125 | summary {
126 | display: list-item;
127 | }
128 | ol, ul, menu {
129 | list-style: none;
130 | }
131 | img, svg, video, canvas, audio, iframe, embed, object {
132 | display: block;
133 | vertical-align: middle;
134 | }
135 | img, video {
136 | max-width: 100%;
137 | height: auto;
138 | }
139 | button, input, select, optgroup, textarea, ::file-selector-button {
140 | font: inherit;
141 | font-feature-settings: inherit;
142 | font-variation-settings: inherit;
143 | letter-spacing: inherit;
144 | color: inherit;
145 | border-radius: 0;
146 | background-color: transparent;
147 | opacity: 1;
148 | }
149 | :where(select:is([multiple], [size])) optgroup {
150 | font-weight: bolder;
151 | }
152 | :where(select:is([multiple], [size])) optgroup option {
153 | padding-inline-start: 20px;
154 | }
155 | ::file-selector-button {
156 | margin-inline-end: 4px;
157 | }
158 | ::placeholder {
159 | opacity: 1;
160 | color: color-mix(in oklab, currentColor 50%, transparent);
161 | }
162 | textarea {
163 | resize: vertical;
164 | }
165 | ::-webkit-search-decoration {
166 | -webkit-appearance: none;
167 | }
168 | ::-webkit-date-and-time-value {
169 | min-height: 1lh;
170 | text-align: inherit;
171 | }
172 | ::-webkit-datetime-edit {
173 | display: inline-flex;
174 | }
175 | ::-webkit-datetime-edit-fields-wrapper {
176 | padding: 0;
177 | }
178 | ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
179 | padding-block: 0;
180 | }
181 | :-moz-ui-invalid {
182 | box-shadow: none;
183 | }
184 | button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
185 | appearance: button;
186 | }
187 | ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
188 | height: auto;
189 | }
190 | [hidden]:where(:not([hidden="until-found"])) {
191 | display: none !important;
192 | }
193 | }
194 | @layer utilities {
195 | .invisible {
196 | visibility: hidden;
197 | }
198 | .visible {
199 | visibility: visible;
200 | }
201 | .absolute {
202 | position: absolute;
203 | }
204 | .fixed {
205 | position: fixed;
206 | }
207 | .relative {
208 | position: relative;
209 | }
210 | .static {
211 | position: static;
212 | }
213 | .inset-0 {
214 | inset: calc(var(--spacing) * 0);
215 | }
216 | .inset-x-0 {
217 | inset-inline: calc(var(--spacing) * 0);
218 | }
219 | .inset-x-8 {
220 | inset-inline: calc(var(--spacing) * 8);
221 | }
222 | .top-0 {
223 | top: calc(var(--spacing) * 0);
224 | }
225 | .top-full {
226 | top: 100%;
227 | }
228 | .bottom-20 {
229 | bottom: calc(var(--spacing) * 20);
230 | }
231 | .z-40 {
232 | z-index: 40;
233 | }
234 | .z-50 {
235 | z-index: 50;
236 | }
237 | .container {
238 | width: 100%;
239 | @media (width >= 40rem) {
240 | max-width: 40rem;
241 | }
242 | @media (width >= 48rem) {
243 | max-width: 48rem;
244 | }
245 | @media (width >= 64rem) {
246 | max-width: 64rem;
247 | }
248 | @media (width >= 80rem) {
249 | max-width: 80rem;
250 | }
251 | @media (width >= 96rem) {
252 | max-width: 96rem;
253 | }
254 | }
255 | .mx-1 {
256 | margin-inline: calc(var(--spacing) * 1);
257 | }
258 | .mx-6 {
259 | margin-inline: calc(var(--spacing) * 6);
260 | }
261 | .mx-auto {
262 | margin-inline: auto;
263 | }
264 | .my-0 {
265 | margin-block: calc(var(--spacing) * 0);
266 | }
267 | .my-0\! {
268 | margin-block: calc(var(--spacing) * 0) !important;
269 | }
270 | .my-10 {
271 | margin-block: calc(var(--spacing) * 10);
272 | }
273 | .prose {
274 | color: var(--tw-prose-body);
275 | max-width: 65ch;
276 | :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
277 | margin-top: 1.25em;
278 | margin-bottom: 1.25em;
279 | }
280 | :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
281 | color: var(--tw-prose-lead);
282 | font-size: 1.25em;
283 | line-height: 1.6;
284 | margin-top: 1.2em;
285 | margin-bottom: 1.2em;
286 | }
287 | :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
288 | color: var(--tw-prose-links);
289 | text-decoration: underline;
290 | font-weight: 500;
291 | }
292 | :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
293 | color: var(--tw-prose-bold);
294 | font-weight: 600;
295 | }
296 | :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
297 | color: inherit;
298 | }
299 | :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
300 | color: inherit;
301 | }
302 | :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
303 | color: inherit;
304 | }
305 | :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
306 | list-style-type: decimal;
307 | margin-top: 1.25em;
308 | margin-bottom: 1.25em;
309 | padding-inline-start: 1.625em;
310 | }
311 | :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
312 | list-style-type: upper-alpha;
313 | }
314 | :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
315 | list-style-type: lower-alpha;
316 | }
317 | :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
318 | list-style-type: upper-alpha;
319 | }
320 | :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
321 | list-style-type: lower-alpha;
322 | }
323 | :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
324 | list-style-type: upper-roman;
325 | }
326 | :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
327 | list-style-type: lower-roman;
328 | }
329 | :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
330 | list-style-type: upper-roman;
331 | }
332 | :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
333 | list-style-type: lower-roman;
334 | }
335 | :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
336 | list-style-type: decimal;
337 | }
338 | :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
339 | list-style-type: disc;
340 | margin-top: 1.25em;
341 | margin-bottom: 1.25em;
342 | padding-inline-start: 1.625em;
343 | }
344 | :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker {
345 | font-weight: 400;
346 | color: var(--tw-prose-counters);
347 | }
348 | :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker {
349 | color: var(--tw-prose-bullets);
350 | }
351 | :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
352 | color: var(--tw-prose-headings);
353 | font-weight: 600;
354 | margin-top: 1.25em;
355 | }
356 | :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
357 | border-color: var(--tw-prose-hr);
358 | border-top-width: 1;
359 | margin-top: 3em;
360 | margin-bottom: 3em;
361 | }
362 | :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
363 | font-weight: 500;
364 | font-style: italic;
365 | color: var(--tw-prose-quotes);
366 | border-inline-start-width: 0.25rem;
367 | border-inline-start-color: var(--tw-prose-quote-borders);
368 | quotes: "\201C""\201D""\2018""\2019";
369 | margin-top: 1.6em;
370 | margin-bottom: 1.6em;
371 | padding-inline-start: 1em;
372 | }
373 | :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {
374 | content: open-quote;
375 | }
376 | :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {
377 | content: close-quote;
378 | }
379 | :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
380 | color: var(--tw-prose-headings);
381 | font-weight: 800;
382 | font-size: 2.25em;
383 | margin-top: 0;
384 | margin-bottom: 0.8888889em;
385 | line-height: 1.1111111;
386 | }
387 | :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
388 | font-weight: 900;
389 | color: inherit;
390 | }
391 | :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
392 | color: var(--tw-prose-headings);
393 | font-weight: 700;
394 | font-size: 1.5em;
395 | margin-top: 2em;
396 | margin-bottom: 1em;
397 | line-height: 1.3333333;
398 | }
399 | :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
400 | font-weight: 800;
401 | color: inherit;
402 | }
403 | :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
404 | color: var(--tw-prose-headings);
405 | font-weight: 600;
406 | font-size: 1.25em;
407 | margin-top: 1.6em;
408 | margin-bottom: 0.6em;
409 | line-height: 1.6;
410 | }
411 | :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
412 | font-weight: 700;
413 | color: inherit;
414 | }
415 | :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
416 | color: var(--tw-prose-headings);
417 | font-weight: 600;
418 | margin-top: 1.5em;
419 | margin-bottom: 0.5em;
420 | line-height: 1.5;
421 | }
422 | :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
423 | font-weight: 700;
424 | color: inherit;
425 | }
426 | :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
427 | margin-top: 2em;
428 | margin-bottom: 2em;
429 | }
430 | :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
431 | display: block;
432 | margin-top: 2em;
433 | margin-bottom: 2em;
434 | }
435 | :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
436 | margin-top: 2em;
437 | margin-bottom: 2em;
438 | }
439 | :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
440 | font-weight: 500;
441 | font-family: inherit;
442 | color: var(--tw-prose-kbd);
443 | box-shadow: 0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%);
444 | font-size: 0.875em;
445 | border-radius: 0.3125rem;
446 | padding-top: 0.1875em;
447 | padding-inline-end: 0.375em;
448 | padding-bottom: 0.1875em;
449 | padding-inline-start: 0.375em;
450 | }
451 | :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
452 | color: var(--tw-prose-code);
453 | font-weight: 600;
454 | font-size: 0.875em;
455 | }
456 | :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {
457 | content: "`";
458 | }
459 | :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {
460 | content: "`";
461 | }
462 | :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
463 | color: inherit;
464 | }
465 | :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
466 | color: inherit;
467 | }
468 | :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
469 | color: inherit;
470 | font-size: 0.875em;
471 | }
472 | :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
473 | color: inherit;
474 | font-size: 0.9em;
475 | }
476 | :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
477 | color: inherit;
478 | }
479 | :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
480 | color: inherit;
481 | }
482 | :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
483 | color: inherit;
484 | }
485 | :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
486 | color: var(--tw-prose-pre-code);
487 | background-color: var(--tw-prose-pre-bg);
488 | overflow-x: auto;
489 | font-weight: 400;
490 | font-size: 0.875em;
491 | line-height: 1.7142857;
492 | margin-top: 1.7142857em;
493 | margin-bottom: 1.7142857em;
494 | border-radius: 0.375rem;
495 | padding-top: 0.8571429em;
496 | padding-inline-end: 1.1428571em;
497 | padding-bottom: 0.8571429em;
498 | padding-inline-start: 1.1428571em;
499 | }
500 | :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
501 | background-color: transparent;
502 | border-width: 0;
503 | border-radius: 0;
504 | padding: 0;
505 | font-weight: inherit;
506 | color: inherit;
507 | font-size: inherit;
508 | font-family: inherit;
509 | line-height: inherit;
510 | }
511 | :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {
512 | content: none;
513 | }
514 | :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {
515 | content: none;
516 | }
517 | :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
518 | width: 100%;
519 | table-layout: auto;
520 | margin-top: 2em;
521 | margin-bottom: 2em;
522 | font-size: 0.875em;
523 | line-height: 1.7142857;
524 | }
525 | :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
526 | border-bottom-width: 1px;
527 | border-bottom-color: var(--tw-prose-th-borders);
528 | }
529 | :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
530 | color: var(--tw-prose-headings);
531 | font-weight: 600;
532 | vertical-align: bottom;
533 | padding-inline-end: 0.5714286em;
534 | padding-bottom: 0.5714286em;
535 | padding-inline-start: 0.5714286em;
536 | }
537 | :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
538 | border-bottom-width: 1px;
539 | border-bottom-color: var(--tw-prose-td-borders);
540 | }
541 | :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
542 | border-bottom-width: 0;
543 | }
544 | :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
545 | vertical-align: baseline;
546 | }
547 | :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
548 | border-top-width: 1px;
549 | border-top-color: var(--tw-prose-th-borders);
550 | }
551 | :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
552 | vertical-align: top;
553 | }
554 | :where(th, td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
555 | text-align: start;
556 | }
557 | :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
558 | margin-top: 0;
559 | margin-bottom: 0;
560 | }
561 | :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
562 | color: var(--tw-prose-captions);
563 | font-size: 0.875em;
564 | line-height: 1.4285714;
565 | margin-top: 0.8571429em;
566 | }
567 | --tw-prose-body: oklch(0.373 0.034 259.733);
568 | --tw-prose-headings: oklch(0.21 0.034 264.665);
569 | --tw-prose-lead: oklch(0.446 0.03 256.802);
570 | --tw-prose-links: oklch(0.21 0.034 264.665);
571 | --tw-prose-bold: oklch(0.21 0.034 264.665);
572 | --tw-prose-counters: oklch(0.551 0.027 264.364);
573 | --tw-prose-bullets: oklch(0.872 0.01 258.338);
574 | --tw-prose-hr: oklch(0.928 0.006 264.531);
575 | --tw-prose-quotes: oklch(0.21 0.034 264.665);
576 | --tw-prose-quote-borders: oklch(0.928 0.006 264.531);
577 | --tw-prose-captions: oklch(0.551 0.027 264.364);
578 | --tw-prose-kbd: oklch(0.21 0.034 264.665);
579 | --tw-prose-kbd-shadows: NaN NaN NaN;
580 | --tw-prose-code: oklch(0.21 0.034 264.665);
581 | --tw-prose-pre-code: oklch(0.928 0.006 264.531);
582 | --tw-prose-pre-bg: oklch(0.278 0.033 256.848);
583 | --tw-prose-th-borders: oklch(0.872 0.01 258.338);
584 | --tw-prose-td-borders: oklch(0.928 0.006 264.531);
585 | --tw-prose-invert-body: oklch(0.872 0.01 258.338);
586 | --tw-prose-invert-headings: #fff;
587 | --tw-prose-invert-lead: oklch(0.707 0.022 261.325);
588 | --tw-prose-invert-links: #fff;
589 | --tw-prose-invert-bold: #fff;
590 | --tw-prose-invert-counters: oklch(0.707 0.022 261.325);
591 | --tw-prose-invert-bullets: oklch(0.446 0.03 256.802);
592 | --tw-prose-invert-hr: oklch(0.373 0.034 259.733);
593 | --tw-prose-invert-quotes: oklch(0.967 0.003 264.542);
594 | --tw-prose-invert-quote-borders: oklch(0.373 0.034 259.733);
595 | --tw-prose-invert-captions: oklch(0.707 0.022 261.325);
596 | --tw-prose-invert-kbd: #fff;
597 | --tw-prose-invert-kbd-shadows: 255 255 255;
598 | --tw-prose-invert-code: #fff;
599 | --tw-prose-invert-pre-code: oklch(0.872 0.01 258.338);
600 | --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);
601 | --tw-prose-invert-th-borders: oklch(0.446 0.03 256.802);
602 | --tw-prose-invert-td-borders: oklch(0.373 0.034 259.733);
603 | font-size: 1rem;
604 | line-height: 1.75;
605 | :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
606 | margin-top: 0;
607 | margin-bottom: 0;
608 | }
609 | :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
610 | margin-top: 0.5em;
611 | margin-bottom: 0.5em;
612 | }
613 | :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
614 | padding-inline-start: 0.375em;
615 | }
616 | :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
617 | padding-inline-start: 0.375em;
618 | }
619 | :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
620 | margin-top: 0.75em;
621 | margin-bottom: 0.75em;
622 | }
623 | :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
624 | margin-top: 1.25em;
625 | }
626 | :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
627 | margin-bottom: 1.25em;
628 | }
629 | :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
630 | margin-top: 1.25em;
631 | }
632 | :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
633 | margin-bottom: 1.25em;
634 | }
635 | :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
636 | margin-top: 0.75em;
637 | margin-bottom: 0.75em;
638 | }
639 | :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
640 | margin-top: 1.25em;
641 | margin-bottom: 1.25em;
642 | }
643 | :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
644 | margin-top: 0.5em;
645 | padding-inline-start: 1.625em;
646 | }
647 | :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
648 | margin-top: 0;
649 | }
650 | :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
651 | margin-top: 0;
652 | }
653 | :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
654 | margin-top: 0;
655 | }
656 | :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
657 | margin-top: 0;
658 | }
659 | :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
660 | padding-inline-start: 0;
661 | }
662 | :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
663 | padding-inline-end: 0;
664 | }
665 | :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
666 | padding-top: 0.5714286em;
667 | padding-inline-end: 0.5714286em;
668 | padding-bottom: 0.5714286em;
669 | padding-inline-start: 0.5714286em;
670 | }
671 | :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
672 | padding-inline-start: 0;
673 | }
674 | :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
675 | padding-inline-end: 0;
676 | }
677 | :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
678 | margin-top: 2em;
679 | margin-bottom: 2em;
680 | }
681 | :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
682 | margin-top: 0;
683 | }
684 | :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
685 | margin-bottom: 0;
686 | }
687 | }
688 | .-mt-2 {
689 | margin-top: calc(var(--spacing) * -2);
690 | }
691 | .mt-3 {
692 | margin-top: calc(var(--spacing) * 3);
693 | }
694 | .mt-12 {
695 | margin-top: calc(var(--spacing) * 12);
696 | }
697 | .mt-14 {
698 | margin-top: calc(var(--spacing) * 14);
699 | }
700 | .mt-24 {
701 | margin-top: calc(var(--spacing) * 24);
702 | }
703 | .mr-auto {
704 | margin-right: auto;
705 | }
706 | .mb-1 {
707 | margin-bottom: calc(var(--spacing) * 1);
708 | }
709 | .mb-1\.5 {
710 | margin-bottom: calc(var(--spacing) * 1.5);
711 | }
712 | .mb-12 {
713 | margin-bottom: calc(var(--spacing) * 12);
714 | }
715 | .mb-14 {
716 | margin-bottom: calc(var(--spacing) * 14);
717 | }
718 | .ml-auto {
719 | margin-left: auto;
720 | }
721 | .block {
722 | display: block;
723 | }
724 | .contents {
725 | display: contents;
726 | }
727 | .flex {
728 | display: flex;
729 | }
730 | .inline {
731 | display: inline;
732 | }
733 | .inline-block {
734 | display: inline-block;
735 | }
736 | .table {
737 | display: table;
738 | }
739 | .h-6 {
740 | height: calc(var(--spacing) * 6);
741 | }
742 | .h-7 {
743 | height: calc(var(--spacing) * 7);
744 | }
745 | .h-24 {
746 | height: calc(var(--spacing) * 24);
747 | }
748 | .h-\[4\.5rem\] {
749 | height: 4.5rem;
750 | }
751 | .h-full {
752 | height: 100%;
753 | }
754 | .min-h-\[calc\(100vh-9rem\)\] {
755 | min-height: calc(100vh - 9rem);
756 | }
757 | .w-6 {
758 | width: calc(var(--spacing) * 6);
759 | }
760 | .w-7 {
761 | width: calc(var(--spacing) * 7);
762 | }
763 | .w-24 {
764 | width: calc(var(--spacing) * 24);
765 | }
766 | .w-\[5rem\] {
767 | width: 5rem;
768 | }
769 | .w-full {
770 | width: 100%;
771 | }
772 | .max-w-\(--w\) {
773 | max-width: var(--w);
774 | }
775 | .flex-shrink {
776 | flex-shrink: 1;
777 | }
778 | .shrink {
779 | flex-shrink: 1;
780 | }
781 | .shrink-0 {
782 | flex-shrink: 0;
783 | }
784 | .border-collapse {
785 | border-collapse: collapse;
786 | }
787 | .-translate-y-\[1px\] {
788 | --tw-translate-y: calc(1px * -1);
789 | translate: var(--tw-translate-x) var(--tw-translate-y);
790 | }
791 | .transform {
792 | transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);
793 | }
794 | .cursor-pointer {
795 | cursor: pointer;
796 | }
797 | .resize {
798 | resize: both;
799 | }
800 | .flex-col {
801 | flex-direction: column;
802 | }
803 | .flex-wrap {
804 | flex-wrap: wrap;
805 | }
806 | .items-center {
807 | align-items: center;
808 | }
809 | .justify-center {
810 | justify-content: center;
811 | }
812 | .justify-end {
813 | justify-content: flex-end;
814 | }
815 | .gap-2 {
816 | gap: calc(var(--spacing) * 2);
817 | }
818 | .gap-2\.5 {
819 | gap: calc(var(--spacing) * 2.5);
820 | }
821 | .space-x-10 {
822 | :where(& > :not(:last-child)) {
823 | --tw-space-x-reverse: 0;
824 | margin-inline-start: calc(calc(var(--spacing) * 10) * var(--tw-space-x-reverse));
825 | margin-inline-end: calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-x-reverse)));
826 | }
827 | }
828 | .truncate {
829 | overflow: hidden;
830 | text-overflow: ellipsis;
831 | white-space: nowrap;
832 | }
833 | .overflow-hidden {
834 | overflow: hidden;
835 | }
836 | .rounded-full {
837 | border-radius: calc(infinity * 1px);
838 | }
839 | .rounded-lg {
840 | border-radius: var(--radius-lg);
841 | }
842 | .rounded-xl {
843 | border-radius: var(--radius-xl);
844 | }
845 | .border {
846 | border-style: var(--tw-border-style);
847 | border-width: 1px;
848 | }
849 | .border-\[0\.5px\] {
850 | border-style: var(--tw-border-style);
851 | border-width: 0.5px;
852 | }
853 | .border-black {
854 | border-color: var(--color-black);
855 | }
856 | .border-black\/10 {
857 | border-color: color-mix(in oklab, var(--color-black) 10%, transparent);
858 | }
859 | .bg-\(--bg\) {
860 | background-color: var(--bg);
861 | }
862 | .bg-black {
863 | background-color: var(--color-black);
864 | }
865 | .bg-black\/5\! {
866 | background-color: color-mix(in oklab, var(--color-black) 5%, transparent) !important;
867 | }
868 | .bg-black\/\[3\%\] {
869 | background-color: color-mix(in oklab, var(--color-black) 3%, transparent);
870 | }
871 | .bg-white {
872 | background-color: var(--color-white);
873 | }
874 | .bg-white\/50 {
875 | background-color: color-mix(in oklab, var(--color-white) 50%, transparent);
876 | }
877 | .p-3 {
878 | padding: calc(var(--spacing) * 3);
879 | }
880 | .px-5 {
881 | padding-inline: calc(var(--spacing) * 5);
882 | }
883 | .px-8 {
884 | padding-inline: calc(var(--spacing) * 8);
885 | }
886 | .py-1 {
887 | padding-block: calc(var(--spacing) * 1);
888 | }
889 | .pt-14 {
890 | padding-top: calc(var(--spacing) * 14);
891 | }
892 | .pb-2 {
893 | padding-bottom: calc(var(--spacing) * 2);
894 | }
895 | .pb-2\.5 {
896 | padding-bottom: calc(var(--spacing) * 2.5);
897 | }
898 | .pb-16 {
899 | padding-bottom: calc(var(--spacing) * 16);
900 | }
901 | .pl-3 {
902 | padding-left: calc(var(--spacing) * 3);
903 | }
904 | .text-center {
905 | text-align: center;
906 | }
907 | .text-2xl {
908 | font-size: var(--text-2xl);
909 | line-height: var(--tw-leading, var(--text-2xl--line-height));
910 | }
911 | .text-9xl {
912 | font-size: var(--text-9xl);
913 | line-height: var(--tw-leading, var(--text-9xl--line-height));
914 | }
915 | .text-lg {
916 | font-size: var(--text-lg);
917 | line-height: var(--tw-leading, var(--text-lg--line-height));
918 | }
919 | .text-xl {
920 | font-size: var(--text-xl);
921 | line-height: var(--tw-leading, var(--text-xl--line-height));
922 | }
923 | .text-xs {
924 | font-size: var(--text-xs);
925 | line-height: var(--tw-leading, var(--text-xs--line-height));
926 | }
927 | .text-\[0px\] {
928 | font-size: 0px;
929 | }
930 | .leading-\[1\.2\]\! {
931 | --tw-leading: 1.2 !important;
932 | line-height: 1.2 !important;
933 | }
934 | .leading-\[5rem\] {
935 | --tw-leading: 5rem;
936 | line-height: 5rem;
937 | }
938 | .font-medium {
939 | --tw-font-weight: var(--font-weight-medium);
940 | font-weight: var(--font-weight-medium);
941 | }
942 | .tracking-wider {
943 | --tw-tracking: var(--tracking-wider);
944 | letter-spacing: var(--tracking-wider);
945 | }
946 | .break-words {
947 | overflow-wrap: break-word;
948 | }
949 | .whitespace-nowrap {
950 | white-space: nowrap;
951 | }
952 | .text-black {
953 | color: var(--color-black);
954 | }
955 | .text-orange-500 {
956 | color: var(--color-orange-500);
957 | }
958 | .uppercase {
959 | text-transform: uppercase;
960 | }
961 | .no-underline {
962 | text-decoration-line: none;
963 | }
964 | .underline {
965 | text-decoration-line: underline;
966 | }
967 | .antialiased {
968 | -webkit-font-smoothing: antialiased;
969 | -moz-osx-font-smoothing: grayscale;
970 | }
971 | .opacity-60 {
972 | opacity: 60%;
973 | }
974 | .outline {
975 | outline-style: var(--tw-outline-style);
976 | outline-width: 1px;
977 | }
978 | .filter {
979 | filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
980 | }
981 | .transition {
982 | transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter;
983 | transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
984 | transition-duration: var(--tw-duration, var(--default-transition-duration));
985 | }
986 | .duration-200 {
987 | --tw-duration: 200ms;
988 | transition-duration: 200ms;
989 | }
990 | .ease-out {
991 | --tw-ease: var(--ease-out);
992 | transition-timing-function: var(--ease-out);
993 | }
994 | .prose-neutral {
995 | --tw-prose-body: oklch(0.371 0 0);
996 | --tw-prose-headings: oklch(0.205 0 0);
997 | --tw-prose-lead: oklch(0.439 0 0);
998 | --tw-prose-links: oklch(0.205 0 0);
999 | --tw-prose-bold: oklch(0.205 0 0);
1000 | --tw-prose-counters: oklch(0.556 0 0);
1001 | --tw-prose-bullets: oklch(0.87 0 0);
1002 | --tw-prose-hr: oklch(0.922 0 0);
1003 | --tw-prose-quotes: oklch(0.205 0 0);
1004 | --tw-prose-quote-borders: oklch(0.922 0 0);
1005 | --tw-prose-captions: oklch(0.556 0 0);
1006 | --tw-prose-kbd: oklch(0.205 0 0);
1007 | --tw-prose-kbd-shadows: NaN NaN NaN;
1008 | --tw-prose-code: oklch(0.205 0 0);
1009 | --tw-prose-pre-code: oklch(0.922 0 0);
1010 | --tw-prose-pre-bg: oklch(0.269 0 0);
1011 | --tw-prose-th-borders: oklch(0.87 0 0);
1012 | --tw-prose-td-borders: oklch(0.922 0 0);
1013 | --tw-prose-invert-body: oklch(0.87 0 0);
1014 | --tw-prose-invert-headings: #fff;
1015 | --tw-prose-invert-lead: oklch(0.708 0 0);
1016 | --tw-prose-invert-links: #fff;
1017 | --tw-prose-invert-bold: #fff;
1018 | --tw-prose-invert-counters: oklch(0.708 0 0);
1019 | --tw-prose-invert-bullets: oklch(0.439 0 0);
1020 | --tw-prose-invert-hr: oklch(0.371 0 0);
1021 | --tw-prose-invert-quotes: oklch(0.97 0 0);
1022 | --tw-prose-invert-quote-borders: oklch(0.371 0 0);
1023 | --tw-prose-invert-captions: oklch(0.708 0 0);
1024 | --tw-prose-invert-kbd: #fff;
1025 | --tw-prose-invert-kbd-shadows: 255 255 255;
1026 | --tw-prose-invert-code: #fff;
1027 | --tw-prose-invert-pre-code: oklch(0.87 0 0);
1028 | --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);
1029 | --tw-prose-invert-th-borders: oklch(0.439 0 0);
1030 | --tw-prose-invert-td-borders: oklch(0.371 0 0);
1031 | }
1032 | .select-none {
1033 | -webkit-user-select: none;
1034 | user-select: none;
1035 | }
1036 | .\[-webkit-tap-highlight-color\:transparent\] {
1037 | -webkit-tap-highlight-color: transparent;
1038 | }
1039 | .\[background\:url\(\.\/theme\.png\)_left_center\/_auto_theme\(\'spacing\.6\'\)_no-repeat\] {
1040 | background: url(./theme.png) left center/ auto 1.5rem no-repeat;
1041 | }
1042 | .\[background\:url\(\.\/theme\.svg\)_left_center\/cover_no-repeat\] {
1043 | background: url(./theme.svg) left center/cover no-repeat;
1044 | }
1045 | .\[background\:var\(--url\)_center_center\/cover_no-repeat\] {
1046 | background: var(--url) center center/cover no-repeat;
1047 | }
1048 | .\[transition\:_background-position_0\.4s_steps\(5\)\] {
1049 | transition: background-position 0.4s steps(5);
1050 | }
1051 | .\*\:flex {
1052 | :is(& > *) {
1053 | display: flex;
1054 | }
1055 | }
1056 | .\*\:w-1\/2 {
1057 | :is(& > *) {
1058 | width: calc(1/2 * 100%);
1059 | }
1060 | }
1061 | .\*\:items-center {
1062 | :is(& > *) {
1063 | align-items: center;
1064 | }
1065 | }
1066 | .\*\:p-5 {
1067 | :is(& > *) {
1068 | padding: calc(var(--spacing) * 5);
1069 | }
1070 | }
1071 | .\*\:font-medium {
1072 | :is(& > *) {
1073 | --tw-font-weight: var(--font-weight-medium);
1074 | font-weight: var(--font-weight-medium);
1075 | }
1076 | }
1077 | .\*\:no-underline {
1078 | :is(& > *) {
1079 | text-decoration-line: none;
1080 | }
1081 | }
1082 | .first-of-type\:mt-0 {
1083 | &:first-of-type {
1084 | margin-top: calc(var(--spacing) * 0);
1085 | }
1086 | }
1087 | .last-of-type\:mb-0 {
1088 | &:last-of-type {
1089 | margin-bottom: calc(var(--spacing) * 0);
1090 | }
1091 | }
1092 | .hover\:animate-spin {
1093 | &:hover {
1094 | @media (hover: hover) {
1095 | animation: var(--animate-spin);
1096 | }
1097 | }
1098 | }
1099 | .hover\:bg-black\/\[6\%\] {
1100 | &:hover {
1101 | @media (hover: hover) {
1102 | background-color: color-mix(in oklab, var(--color-black) 6%, transparent);
1103 | }
1104 | }
1105 | }
1106 | .lg\:static {
1107 | @media (width >= 64rem) {
1108 | position: static;
1109 | }
1110 | }
1111 | .lg\:mt-0 {
1112 | @media (width >= 64rem) {
1113 | margin-top: calc(var(--spacing) * 0);
1114 | }
1115 | }
1116 | .lg\:ml-12 {
1117 | @media (width >= 64rem) {
1118 | margin-left: calc(var(--spacing) * 12);
1119 | }
1120 | }
1121 | .lg\:flex {
1122 | @media (width >= 64rem) {
1123 | display: flex;
1124 | }
1125 | }
1126 | .lg\:hidden {
1127 | @media (width >= 64rem) {
1128 | display: none;
1129 | }
1130 | }
1131 | .lg\:h-6 {
1132 | @media (width >= 64rem) {
1133 | height: calc(var(--spacing) * 6);
1134 | }
1135 | }
1136 | .lg\:h-auto {
1137 | @media (width >= 64rem) {
1138 | height: auto;
1139 | }
1140 | }
1141 | .lg\:w-6 {
1142 | @media (width >= 64rem) {
1143 | width: calc(var(--spacing) * 6);
1144 | }
1145 | }
1146 | .lg\:flex-row {
1147 | @media (width >= 64rem) {
1148 | flex-direction: row;
1149 | }
1150 | }
1151 | .lg\:items-center {
1152 | @media (width >= 64rem) {
1153 | align-items: center;
1154 | }
1155 | }
1156 | .lg\:justify-center {
1157 | @media (width >= 64rem) {
1158 | justify-content: center;
1159 | }
1160 | }
1161 | .lg\:space-x-10 {
1162 | @media (width >= 64rem) {
1163 | :where(& > :not(:last-child)) {
1164 | --tw-space-x-reverse: 0;
1165 | margin-inline-start: calc(calc(var(--spacing) * 10) * var(--tw-space-x-reverse));
1166 | margin-inline-end: calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-x-reverse)));
1167 | }
1168 | }
1169 | }
1170 | .lg\:bg-transparent\! {
1171 | @media (width >= 64rem) {
1172 | background-color: transparent !important;
1173 | }
1174 | }
1175 | .lg\:pb-0 {
1176 | @media (width >= 64rem) {
1177 | padding-bottom: calc(var(--spacing) * 0);
1178 | }
1179 | }
1180 | .lg\:text-base {
1181 | @media (width >= 64rem) {
1182 | font-size: var(--text-base);
1183 | line-height: var(--tw-leading, var(--text-base--line-height));
1184 | }
1185 | }
1186 | .lg\:font-normal {
1187 | @media (width >= 64rem) {
1188 | --tw-font-weight: var(--font-weight-normal);
1189 | font-weight: var(--font-weight-normal);
1190 | }
1191 | }
1192 | .lg\:transition-none {
1193 | @media (width >= 64rem) {
1194 | transition-property: none;
1195 | }
1196 | }
1197 | .ltr\:-mr-8 {
1198 | &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
1199 | margin-right: calc(var(--spacing) * -8);
1200 | }
1201 | }
1202 | .ltr\:mr-1\.5 {
1203 | &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
1204 | margin-right: calc(var(--spacing) * 1.5);
1205 | }
1206 | }
1207 | .ltr\:mr-5 {
1208 | &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
1209 | margin-right: calc(var(--spacing) * 5);
1210 | }
1211 | }
1212 | .ltr\:mr-auto {
1213 | &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
1214 | margin-right: auto;
1215 | }
1216 | }
1217 | .ltr\:-ml-1 {
1218 | &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
1219 | margin-left: calc(var(--spacing) * -1);
1220 | }
1221 | }
1222 | .ltr\:ml-1\.5 {
1223 | &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
1224 | margin-left: calc(var(--spacing) * 1.5);
1225 | }
1226 | }
1227 | .ltr\:ml-4 {
1228 | &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
1229 | margin-left: calc(var(--spacing) * 4);
1230 | }
1231 | }
1232 | .ltr\:ml-auto {
1233 | &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
1234 | margin-left: auto;
1235 | }
1236 | }
1237 | .ltr\:pr-3 {
1238 | &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
1239 | padding-right: calc(var(--spacing) * 3);
1240 | }
1241 | }
1242 | .ltr\:lg\:ml-14 {
1243 | &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
1244 | @media (width >= 64rem) {
1245 | margin-left: calc(var(--spacing) * 14);
1246 | }
1247 | }
1248 | }
1249 | .rtl\:-mr-1 {
1250 | &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1251 | margin-right: calc(var(--spacing) * -1);
1252 | }
1253 | }
1254 | .rtl\:mr-1\.5 {
1255 | &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1256 | margin-right: calc(var(--spacing) * 1.5);
1257 | }
1258 | }
1259 | .rtl\:mr-4 {
1260 | &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1261 | margin-right: calc(var(--spacing) * 4);
1262 | }
1263 | }
1264 | .rtl\:mr-auto {
1265 | &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1266 | margin-right: auto;
1267 | }
1268 | }
1269 | .rtl\:-ml-8 {
1270 | &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1271 | margin-left: calc(var(--spacing) * -8);
1272 | }
1273 | }
1274 | .rtl\:ml-1\.5 {
1275 | &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1276 | margin-left: calc(var(--spacing) * 1.5);
1277 | }
1278 | }
1279 | .rtl\:ml-5 {
1280 | &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1281 | margin-left: calc(var(--spacing) * 5);
1282 | }
1283 | }
1284 | .rtl\:ml-auto {
1285 | &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1286 | margin-left: auto;
1287 | }
1288 | }
1289 | .rtl\:space-x-reverse {
1290 | &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1291 | :where(& > :not(:last-child)) {
1292 | --tw-space-x-reverse: 1;
1293 | }
1294 | }
1295 | }
1296 | .rtl\:pl-3 {
1297 | &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1298 | padding-left: calc(var(--spacing) * 3);
1299 | }
1300 | }
1301 | .rtl\:lg\:mr-14 {
1302 | &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1303 | @media (width >= 64rem) {
1304 | margin-right: calc(var(--spacing) * 14);
1305 | }
1306 | }
1307 | }
1308 | .dark\:bg-black\/80\! {
1309 | &:where(.dark, .dark *) {
1310 | background-color: color-mix(in oklab, var(--color-black) 80%, transparent) !important;
1311 | }
1312 | }
1313 | .dark\:bg-white\/90\! {
1314 | &:where(.dark, .dark *) {
1315 | background-color: color-mix(in oklab, var(--color-white) 90%, transparent) !important;
1316 | }
1317 | }
1318 | .dark\:bg-white\/\[8\%\] {
1319 | &:where(.dark, .dark *) {
1320 | background-color: color-mix(in oklab, var(--color-white) 8%, transparent);
1321 | }
1322 | }
1323 | .dark\:\[background-position\:right\] {
1324 | &:where(.dark, .dark *) {
1325 | background-position: right;
1326 | }
1327 | }
1328 | .dark\:text-white {
1329 | &:where(.dark, .dark *) {
1330 | color: var(--color-white);
1331 | }
1332 | }
1333 | .dark\:invert {
1334 | &:where(.dark, .dark *) {
1335 | --tw-invert: invert(100%);
1336 | filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
1337 | }
1338 | }
1339 | .dark\:prose-invert {
1340 | &:where(.dark, .dark *) {
1341 | --tw-prose-body: var(--tw-prose-invert-body);
1342 | --tw-prose-headings: var(--tw-prose-invert-headings);
1343 | --tw-prose-lead: var(--tw-prose-invert-lead);
1344 | --tw-prose-links: var(--tw-prose-invert-links);
1345 | --tw-prose-bold: var(--tw-prose-invert-bold);
1346 | --tw-prose-counters: var(--tw-prose-invert-counters);
1347 | --tw-prose-bullets: var(--tw-prose-invert-bullets);
1348 | --tw-prose-hr: var(--tw-prose-invert-hr);
1349 | --tw-prose-quotes: var(--tw-prose-invert-quotes);
1350 | --tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);
1351 | --tw-prose-captions: var(--tw-prose-invert-captions);
1352 | --tw-prose-kbd: var(--tw-prose-invert-kbd);
1353 | --tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);
1354 | --tw-prose-code: var(--tw-prose-invert-code);
1355 | --tw-prose-pre-code: var(--tw-prose-invert-pre-code);
1356 | --tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);
1357 | --tw-prose-th-borders: var(--tw-prose-invert-th-borders);
1358 | --tw-prose-td-borders: var(--tw-prose-invert-td-borders);
1359 | }
1360 | }
1361 | .dark\:hover\:bg-white\/\[12\%\] {
1362 | &:where(.dark, .dark *) {
1363 | &:hover {
1364 | @media (hover: hover) {
1365 | background-color: color-mix(in oklab, var(--color-white) 12%, transparent);
1366 | }
1367 | }
1368 | }
1369 | }
1370 | .\[\&_svg\]\:m-auto {
1371 | & svg {
1372 | margin: auto;
1373 | }
1374 | }
1375 | .\[\&_svg\]\:block {
1376 | & svg {
1377 | display: block;
1378 | }
1379 | }
1380 | .\[\&\>\*\:hover\]\:bg-black\/\[2\%\] {
1381 | &>*:hover {
1382 | background-color: color-mix(in oklab, var(--color-black) 2%, transparent);
1383 | }
1384 | }
1385 | .dark\:\[\&\>\*\:hover\]\:bg-white\/\[3\%\] {
1386 | &:where(.dark, .dark *) {
1387 | &>*:hover {
1388 | background-color: color-mix(in oklab, var(--color-white) 3%, transparent);
1389 | }
1390 | }
1391 | }
1392 | }
1393 | body {
1394 | &:where(.dark, .dark *) {
1395 | &::before {
1396 | content: var(--tw-content);
1397 | position: fixed;
1398 | }
1399 | }
1400 | &:where(.dark, .dark *) {
1401 | &::before {
1402 | content: var(--tw-content);
1403 | inset: calc(var(--spacing) * 0);
1404 | }
1405 | }
1406 | &:where(.dark, .dark *) {
1407 | &::before {
1408 | content: var(--tw-content);
1409 | z-index: -1;
1410 | }
1411 | }
1412 | &:where(.dark, .dark *) {
1413 | &::before {
1414 | content: var(--tw-content);
1415 | background-color: color-mix(in oklab, var(--color-black) 85%, transparent);
1416 | }
1417 | }
1418 | }
1419 | h1, h2, h3 {
1420 | --tw-font-weight: var(--font-weight-semibold);
1421 | font-weight: var(--font-weight-semibold);
1422 | }
1423 | pre {
1424 | direction: ltr;
1425 | }
1426 | article {
1427 | font-size: var(--text-lg);
1428 | line-height: var(--tw-leading, var(--text-lg--line-height));
1429 | --tw-leading: 1.8;
1430 | line-height: 1.8;
1431 | color: var(--color-black);
1432 | &:where(.dark, .dark *) {
1433 | color: var(--color-white);
1434 | }
1435 | code {
1436 | display: inline-block;
1437 | font-size: var(--text-sm) !important;
1438 | line-height: var(--tw-leading, var(--text-sm--line-height)) !important;
1439 | --tw-leading: calc(var(--spacing) * 6) !important;
1440 | line-height: calc(var(--spacing) * 6) !important;
1441 | }
1442 | .highlight {
1443 | margin-block: calc(var(--spacing) * 8);
1444 | pre {
1445 | margin-block: calc(var(--spacing) * 0);
1446 | }
1447 | > div {
1448 | border-radius: var(--radius-md);
1449 | background-color: var(--tw-prose-pre-bg);
1450 | table {
1451 | margin-block: calc(var(--spacing) * 0);
1452 | table-layout: fixed;
1453 | tr {
1454 | display: flex;
1455 | td {
1456 | padding: calc(var(--spacing) * 0);
1457 | pre {
1458 | background-color: transparent !important;
1459 | }
1460 | }
1461 | &:first-of-type pre {
1462 | padding-right: 4px;
1463 | code span {
1464 | margin-right: calc(var(--spacing) * 0) !important;
1465 | display: block;
1466 | min-width: 18px;
1467 | padding: calc(var(--spacing) * 0) !important;
1468 | text-align: right;
1469 | color: color-mix(in oklab, var(--color-white) 40%, transparent);
1470 | }
1471 | }
1472 | &:last-of-type {
1473 | overflow: auto;
1474 | }
1475 | }
1476 | }
1477 | }
1478 | }
1479 | }
1480 | .btn {
1481 | border-radius: var(--radius-xl);
1482 | background-color: var(--color-black);
1483 | padding-inline: calc(var(--spacing) * 5);
1484 | padding-block: calc(var(--spacing) * 3);
1485 | font-size: 0.95em;
1486 | color: var(--color-white);
1487 | text-decoration-line: none;
1488 | --tw-duration: 100ms;
1489 | transition-duration: 100ms;
1490 | &:active {
1491 | --tw-scale-x: 95%;
1492 | --tw-scale-y: 95%;
1493 | --tw-scale-z: 95%;
1494 | scale: var(--tw-scale-x) var(--tw-scale-y);
1495 | }
1496 | &:where(.dark, .dark *) {
1497 | background-color: var(--color-white);
1498 | }
1499 | &:where(.dark, .dark *) {
1500 | color: var(--color-black);
1501 | }
1502 | }
1503 | .link {
1504 | --tw-duration: 200ms;
1505 | transition-duration: 200ms;
1506 | &:hover {
1507 | @media (hover: hover) {
1508 | color: var(--color-black);
1509 | }
1510 | }
1511 | &:where(.dark, .dark *) {
1512 | &:hover {
1513 | @media (hover: hover) {
1514 | color: var(--color-white);
1515 | }
1516 | }
1517 | }
1518 | }
1519 | .not-ready * {
1520 | transition-property: none !important;
1521 | }
1522 | .prose {
1523 | overflow-wrap: break-word;
1524 | kbd:has(kbd) {
1525 | --tw-shadow: 0 0 #0000;
1526 | box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1527 | }
1528 | }
1529 | .btn-menu {
1530 | &::before, &::after {
1531 | display: block;
1532 | height: 2px;
1533 | width: calc(var(--spacing) * 5);
1534 | background-color: var(--color-black);
1535 | --tw-duration: 200ms;
1536 | transition-duration: 200ms;
1537 | --tw-content: '';
1538 | content: var(--tw-content);
1539 | }
1540 | &:where(.dark, .dark *) {
1541 | &::before {
1542 | content: var(--tw-content);
1543 | --tw-invert: invert(100%);
1544 | filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
1545 | }
1546 | }
1547 | &:where(.dark, .dark *) {
1548 | &::after {
1549 | content: var(--tw-content);
1550 | --tw-invert: invert(100%);
1551 | filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
1552 | }
1553 | }
1554 | &:where(.open *) {
1555 | &::before {
1556 | width: calc(var(--spacing) * 6);
1557 | --tw-translate-y: 6px;
1558 | translate: var(--tw-translate-x) var(--tw-translate-y);
1559 | rotate: 45deg;
1560 | }
1561 | &::after {
1562 | width: calc(var(--spacing) * 6);
1563 | --tw-translate-y: calc(6px * -1);
1564 | translate: var(--tw-translate-x) var(--tw-translate-y);
1565 | rotate: calc(45deg * -1);
1566 | }
1567 | }
1568 | }
1569 | .nav-wrapper {
1570 | &:where(.dark, .dark *) {
1571 | &::before {
1572 | content: var(--tw-content);
1573 | position: fixed;
1574 | }
1575 | }
1576 | &:where(.dark, .dark *) {
1577 | &::before {
1578 | content: var(--tw-content);
1579 | inset: calc(var(--spacing) * 0);
1580 | }
1581 | }
1582 | &:where(.dark, .dark *) {
1583 | &::before {
1584 | content: var(--tw-content);
1585 | z-index: -1;
1586 | }
1587 | }
1588 | &:where(.dark, .dark *) {
1589 | &::before {
1590 | content: var(--tw-content);
1591 | background-color: color-mix(in oklab, var(--color-black) 85%, transparent);
1592 | }
1593 | }
1594 | @media (width >= 64rem) {
1595 | &::before {
1596 | content: var(--tw-content);
1597 | display: none;
1598 | }
1599 | }
1600 | &:where(.dark, .dark *) {
1601 | &::before {
1602 | content: var(--tw-content);
1603 | position: absolute;
1604 | }
1605 | }
1606 | &:where(.open *) {
1607 | top: calc(var(--spacing) * 0);
1608 | }
1609 | }
1610 | .open {
1611 | overflow: hidden;
1612 | }
1613 | @property --tw-translate-x {
1614 | syntax: "*";
1615 | inherits: false;
1616 | initial-value: 0;
1617 | }
1618 | @property --tw-translate-y {
1619 | syntax: "*";
1620 | inherits: false;
1621 | initial-value: 0;
1622 | }
1623 | @property --tw-translate-z {
1624 | syntax: "*";
1625 | inherits: false;
1626 | initial-value: 0;
1627 | }
1628 | @property --tw-rotate-x {
1629 | syntax: "*";
1630 | inherits: false;
1631 | initial-value: rotateX(0);
1632 | }
1633 | @property --tw-rotate-y {
1634 | syntax: "*";
1635 | inherits: false;
1636 | initial-value: rotateY(0);
1637 | }
1638 | @property --tw-rotate-z {
1639 | syntax: "*";
1640 | inherits: false;
1641 | initial-value: rotateZ(0);
1642 | }
1643 | @property --tw-skew-x {
1644 | syntax: "*";
1645 | inherits: false;
1646 | initial-value: skewX(0);
1647 | }
1648 | @property --tw-skew-y {
1649 | syntax: "*";
1650 | inherits: false;
1651 | initial-value: skewY(0);
1652 | }
1653 | @property --tw-space-x-reverse {
1654 | syntax: "*";
1655 | inherits: false;
1656 | initial-value: 0;
1657 | }
1658 | @property --tw-border-style {
1659 | syntax: "*";
1660 | inherits: false;
1661 | initial-value: solid;
1662 | }
1663 | @property --tw-leading {
1664 | syntax: "*";
1665 | inherits: false;
1666 | }
1667 | @property --tw-font-weight {
1668 | syntax: "*";
1669 | inherits: false;
1670 | }
1671 | @property --tw-tracking {
1672 | syntax: "*";
1673 | inherits: false;
1674 | }
1675 | @property --tw-outline-style {
1676 | syntax: "*";
1677 | inherits: false;
1678 | initial-value: solid;
1679 | }
1680 | @property --tw-blur {
1681 | syntax: "*";
1682 | inherits: false;
1683 | }
1684 | @property --tw-brightness {
1685 | syntax: "*";
1686 | inherits: false;
1687 | }
1688 | @property --tw-contrast {
1689 | syntax: "*";
1690 | inherits: false;
1691 | }
1692 | @property --tw-grayscale {
1693 | syntax: "*";
1694 | inherits: false;
1695 | }
1696 | @property --tw-hue-rotate {
1697 | syntax: "*";
1698 | inherits: false;
1699 | }
1700 | @property --tw-invert {
1701 | syntax: "*";
1702 | inherits: false;
1703 | }
1704 | @property --tw-opacity {
1705 | syntax: "*";
1706 | inherits: false;
1707 | }
1708 | @property --tw-saturate {
1709 | syntax: "*";
1710 | inherits: false;
1711 | }
1712 | @property --tw-sepia {
1713 | syntax: "*";
1714 | inherits: false;
1715 | }
1716 | @property --tw-drop-shadow {
1717 | syntax: "*";
1718 | inherits: false;
1719 | }
1720 | @property --tw-duration {
1721 | syntax: "*";
1722 | inherits: false;
1723 | }
1724 | @property --tw-ease {
1725 | syntax: "*";
1726 | inherits: false;
1727 | }
1728 | @property --tw-content {
1729 | syntax: "*";
1730 | initial-value: "";
1731 | inherits: false;
1732 | }
1733 | @property --tw-scale-x {
1734 | syntax: "*";
1735 | inherits: false;
1736 | initial-value: 1;
1737 | }
1738 | @property --tw-scale-y {
1739 | syntax: "*";
1740 | inherits: false;
1741 | initial-value: 1;
1742 | }
1743 | @property --tw-scale-z {
1744 | syntax: "*";
1745 | inherits: false;
1746 | initial-value: 1;
1747 | }
1748 | @property --tw-shadow {
1749 | syntax: "*";
1750 | inherits: false;
1751 | initial-value: 0 0 #0000;
1752 | }
1753 | @property --tw-shadow-color {
1754 | syntax: "*";
1755 | inherits: false;
1756 | }
1757 | @property --tw-inset-shadow {
1758 | syntax: "*";
1759 | inherits: false;
1760 | initial-value: 0 0 #0000;
1761 | }
1762 | @property --tw-inset-shadow-color {
1763 | syntax: "*";
1764 | inherits: false;
1765 | }
1766 | @property --tw-ring-color {
1767 | syntax: "*";
1768 | inherits: false;
1769 | }
1770 | @property --tw-ring-shadow {
1771 | syntax: "*";
1772 | inherits: false;
1773 | initial-value: 0 0 #0000;
1774 | }
1775 | @property --tw-inset-ring-color {
1776 | syntax: "*";
1777 | inherits: false;
1778 | }
1779 | @property --tw-inset-ring-shadow {
1780 | syntax: "*";
1781 | inherits: false;
1782 | initial-value: 0 0 #0000;
1783 | }
1784 | @property --tw-ring-inset {
1785 | syntax: "*";
1786 | inherits: false;
1787 | }
1788 | @property --tw-ring-offset-width {
1789 | syntax: "";
1790 | inherits: false;
1791 | initial-value: 0px;
1792 | }
1793 | @property --tw-ring-offset-color {
1794 | syntax: "*";
1795 | inherits: false;
1796 | initial-value: #fff;
1797 | }
1798 | @property --tw-ring-offset-shadow {
1799 | syntax: "*";
1800 | inherits: false;
1801 | initial-value: 0 0 #0000;
1802 | }
1803 | @keyframes spin {
1804 | to {
1805 | transform: rotate(360deg);
1806 | }
1807 | }
1808 |
--------------------------------------------------------------------------------
/exampleSite/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 |
6 | # Folders
7 | _obj
8 | _test
9 |
10 | # Architecture specific extensions/prefixes
11 | *.[568vq]
12 | [568vq].out
13 |
14 | go.mod
15 | go.sum
16 | *.cgo1.go
17 | *.cgo2.c
18 | _cgo_defun.c
19 | _cgo_gotypes.go
20 | _cgo_export.*
21 |
22 | _testmain.go
23 |
24 | *.exe
25 | *.test
26 |
27 | /public
28 | /themes
29 | .DS_Store
30 | .hugo_build.lock
--------------------------------------------------------------------------------
/exampleSite/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Steve Francia
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.
--------------------------------------------------------------------------------
/exampleSite/README.md:
--------------------------------------------------------------------------------
1 | # hugoBasicExample
2 |
3 | This repository offers an example site for [Hugo](https://gohugo.io/) and also it provides the default content for demos hosted on the [Hugo Themes Showcase](https://themes.gohugo.io/).
4 |
5 | # Using
6 |
7 | 1. [Install Hugo](https://gohugo.io/overview/installing/)
8 | 2. Clone this repository
9 |
10 | ```bash
11 | git clone https://github.com/gohugoio/hugoBasicExample.git
12 | cd hugoBasicExample
13 | ```
14 |
15 | 3. Clone the repository you want to test. If you want to test all Hugo Themes then follow the instructions provided [here](https://github.com/gohugoio/hugoThemes#installing-all-themes)
16 |
17 | 4. Run Hugo and select the theme of your choosing
18 |
19 | ```bash
20 | hugo server -t YOURTHEME
21 | ```
22 |
23 | 5. Under `/content/` this repository contains the following:
24 |
25 | - A section called `/post/` with sample markdown content
26 | - A headless bundle called `homepage` that you may want to use for single page applications. You can find instructions about headless bundles over [here](https://gohugo.io/content-management/page-bundles/#headless-bundle)
27 | - An `about.md` that is intended to provide the `/about/` page for a theme demo
28 |
29 | 6. If you intend to build a theme that does not fit in the content structure provided in this repository, then you are still more than welcome to submit it for review at the [Hugo Themes](https://github.com/gohugoio/hugoThemes/issues) repository
30 |
--------------------------------------------------------------------------------
/exampleSite/configTaxo.toml:
--------------------------------------------------------------------------------
1 | timeout = 30000
2 | enableInlineShortcodes = true
3 |
4 | [taxonomies]
5 | category = "categories"
6 | tag = "tags"
7 | series = "series"
8 |
9 | [privacy]
10 |
11 | [privacy.vimeo]
12 | disabled = false
13 | simple = true
14 |
15 | [privacy.x]
16 | disabled = false
17 | enableDNT = true
18 | simple = true
19 | disableInlineCSS = true
20 |
21 | [privacy.instagram]
22 | disabled = false
23 | simple = true
24 |
25 | [privacy.youtube]
26 | disabled = false
27 | privacyEnhanced = true
28 |
--------------------------------------------------------------------------------
/exampleSite/content/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | author = "lee.so"
3 | +++
4 |
--------------------------------------------------------------------------------
/exampleSite/content/about.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "About"
3 | description = "Hugo, the world's fastest framework for building websites"
4 | date = "2019-02-28"
5 | aliases = ["about-us", "about-hugo", "contact"]
6 | author = "lee.so"
7 | +++
8 |
9 | Written in Go, Hugo is an open source static site generator available under the [Apache Licence 2.0.](https://github.com/gohugoio/hugo/blob/master/LICENSE) Hugo supports TOML, YAML and JSON data file types, Markdown and HTML content files and uses shortcodes to add rich content. Other notable features are taxonomies, multilingual mode, image processing, custom output formats, HTML/CSS/JS minification and support for Sass SCSS workflows.
10 |
11 | Hugo makes use of a variety of open source projects including:
12 |
13 | - https://github.com/yuin/goldmark
14 | - https://github.com/alecthomas/chroma
15 | - https://github.com/muesli/smartcrop
16 | - https://github.com/spf13/cobra
17 | - https://github.com/spf13/viper
18 |
19 | Hugo is ideal for blogs, corporate websites, creative portfolios, online magazines, single page applications or even a website with thousands of pages.
20 |
21 | Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases.
22 |
23 | Websites built with Hugo are extremely fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider.
24 |
25 | Learn more and contribute on [GitHub](https://github.com/gohugoio).
26 |
--------------------------------------------------------------------------------
/exampleSite/content/archives.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2019-05-28
3 | type: section
4 | layout: 'archives'
5 | ---
6 |
--------------------------------------------------------------------------------
/exampleSite/content/contact.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Contact"
3 | description = "Hugo, the world's fastest framework for building websites"
4 | date = "2019-02-28"
5 | aliases = ["about-us", "about-hugo", "contact"]
6 | author = "lee.so"
7 | +++
8 |
9 | - [github.com/nanxiaobei](https://github.com/nanxiaobei)
10 | - [lee.so](https://lee.so)
11 |
--------------------------------------------------------------------------------
/exampleSite/content/homepage/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'Our Difference'
3 | button: 'About us'
4 | weight: 2
5 | ---
6 |
7 | Lorem ipsum dolor sit amet, et essent mediocritatem quo, choro volumus oporteat an mei. Ipsum dolor sit amet, et essent mediocritatem quo.
8 |
--------------------------------------------------------------------------------
/exampleSite/content/homepage/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | headless: true
3 | ---
4 |
--------------------------------------------------------------------------------
/exampleSite/content/homepage/work.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'We Help Business Grow'
3 | button: 'Our Work'
4 | weight: 1
5 | ---
6 |
7 | Lorem ipsum dolor sit amet, et essent mediocritatem quo, choro volumus oporteat an mei. Numquam dolores mel eu, mea docendi omittantur et, mea ea duis erat. Elit melius cu ius. Per ex novum tantas putant, ei his nullam aliquam apeirian. Aeterno quaestio constituto sea an, no eum intellegat assueverit.
8 |
--------------------------------------------------------------------------------
/exampleSite/content/post/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | aliases = ["posts", "articles", "blog", "showcase", "docs"]
3 | title = "Posts"
4 | author = "lee.so"
5 | tags = ["index"]
6 | +++
7 |
--------------------------------------------------------------------------------
/exampleSite/content/post/emoji-support.md:
--------------------------------------------------------------------------------
1 | +++
2 | author = "lee.so"
3 | title = "Emoji Support"
4 | date = "2019-03-05"
5 | description = "Guide to emoji usage in Hugo"
6 | tags = [
7 | "emoji",
8 | ]
9 | +++
10 |
11 | Emoji can be enabled in a Hugo project in a number of ways.
12 |
13 |
14 |
15 | The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).
16 |
17 | To enable emoji globally, set `enableEmoji` to `true` in your site's [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files; e.g.
18 |
19 | 🙈 :see_no_evil:
🙉 :hear_no_evil:
🙊 :speak_no_evil:
20 |
21 |
22 | The [Emoji cheat sheet](http://www.emoji-cheat-sheet.com/) is a useful reference for emoji shorthand codes.
23 |
24 | ---
25 |
26 | **N.B.** The above steps enable Unicode Standard emoji characters and sequences in Hugo, however the rendering of these glyphs depends on the browser and the platform. To style the emoji you can either use a third party emoji font or a font stack; e.g.
27 |
28 | {{< highlight html >}}
29 | .emoji {
30 | font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols;
31 | }
32 | {{< /highlight >}}
33 |
34 | {{< css.inline >}}
35 |
36 |
49 |
50 | {{< /css.inline >}}
51 |
--------------------------------------------------------------------------------
/exampleSite/content/post/markdown-syntax.md:
--------------------------------------------------------------------------------
1 | +++
2 | author = "lee.so"
3 | title = "Markdown Syntax Guide"
4 | date = "2019-03-11"
5 | description = "Sample article showcasing basic Markdown syntax and formatting for HTML elements."
6 | tags = [
7 | "markdown",
8 | "css",
9 | "html",
10 | ]
11 | categories = [
12 | "themes",
13 | "syntax",
14 | ]
15 | series = ["Themes Guide"]
16 | aliases = ["migrate-from-jekyl"]
17 | +++
18 |
19 | This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.
20 |
21 |
22 |
23 | ## Headings
24 |
25 | The following HTML ``—`` elements represent six levels of section headings. `` is the highest section level while `` is the lowest.
26 |
27 | # H1
28 |
29 | ## H2
30 |
31 | ### H3
32 |
33 | #### H4
34 |
35 | ##### H5
36 |
37 | ###### H6
38 |
39 | ## Paragraph
40 |
41 | Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.
42 |
43 | Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.
44 |
45 | ## Blockquotes
46 |
47 | The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations.
48 |
49 | #### Blockquote without attribution
50 |
51 | > Tiam, ad mint andaepu dandae nostion secatur sequo quae.
52 | > **Note** that you can use _Markdown syntax_ within a blockquote.
53 |
54 | #### Blockquote with attribution
55 |
56 | > Don't communicate by sharing memory, share memory by communicating.
57 | > — Rob Pike[^1]
58 |
59 | [^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015.
60 |
61 | ## Tables
62 |
63 | Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box.
64 |
65 | | Name | Age |
66 | | ----- | --- |
67 | | Bob | 27 |
68 | | Alice | 23 |
69 |
70 | #### Inline Markdown within tables
71 |
72 | | Italics | Bold | Code |
73 | | --------- | -------- | ------ |
74 | | _italics_ | **bold** | `code` |
75 |
76 | ## Code Blocks
77 |
78 | #### Code block with backticks
79 |
80 | ```html
81 |
82 |
83 |
84 |
85 | Example HTML5 Document
86 |
87 |
88 | Test
89 |
90 |
91 | ```
92 |
93 | #### Code block indented with four spaces
94 |
95 |
96 |
97 |
98 |
99 | Example HTML5 Document
100 |
101 |
102 | Test
103 |
104 |
105 |
106 | #### Code block with Hugo's internal highlight shortcode
107 |
108 | {{< highlight html >}}
109 |
110 |
111 |
112 |
113 |
114 | Example HTML5 Document
115 |
116 |
117 | Test
118 |
119 |
120 | {{< /highlight >}}
121 |
122 | ## List Types
123 |
124 | #### Ordered List
125 |
126 | 1. First item
127 | 2. Second item
128 | 3. Third item
129 |
130 | #### Unordered List
131 |
132 | - List item
133 | - Another item
134 | - And another item
135 |
136 | #### Nested list
137 |
138 | - Fruit
139 | - Apple
140 | - Orange
141 | - Banana
142 | - Dairy
143 | - Milk
144 | - Cheese
145 |
146 | ## Other Elements — abbr, sub, sup, kbd, mark
147 |
148 | GIF is a bitmap image format.
149 |
150 | H2 O
151 |
152 | Xn + Yn = Zn
153 |
154 | Press CTRL +ALT +Delete to end the session.
155 |
156 | Most salamanders are nocturnal, and hunt for insects, worms, and other small creatures.
157 |
--------------------------------------------------------------------------------
/exampleSite/content/post/math-typesetting.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: lee.so
3 | title: Math Typesetting
4 | date: 2019-03-08
5 | description: A brief guide to setup KaTeX
6 | math: true
7 | ---
8 |
9 | Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries.
10 |
11 |
12 |
13 | In this example we will be using [KaTeX](https://katex.org/)
14 |
15 | - Create a partial under `/layouts/partials/math.html`
16 | - Within this partial reference the [Auto-render Extension](https://katex.org/docs/autorender.html) or host these scripts locally.
17 | - Include the partial in your templates like so:
18 |
19 | ```bash
20 | {{ if or .Params.math .Site.Params.math }}
21 | {{ partial "math.html" . }}
22 | {{ end }}
23 | ```
24 |
25 | - To enable KaTeX globally set the parameter `math` to `true` in a project's configuration
26 | - To enable KaTeX on a per page basis include the parameter `math: true` in content files
27 |
28 | **Note:** Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html)
29 |
30 | {{< math.inline >}}
31 |
32 | {{ math.inline >}}
33 |
34 | ### Examples
35 |
36 | {{< math.inline >}}
37 |
38 |
39 | Inline math: \(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\)
40 |
41 |
42 | {{ math.inline >}}
43 |
44 | Block math:
45 |
46 | $$
47 | \varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
48 | $$
49 |
--------------------------------------------------------------------------------
/exampleSite/content/post/placeholder-text.md:
--------------------------------------------------------------------------------
1 | +++
2 | author = "lee.so"
3 | title = "Placeholder Text"
4 | date = "2019-03-09"
5 | description = "Lorem Ipsum Dolor Si Amet"
6 | tags = [
7 | "markdown",
8 | "text",
9 | ]
10 | weight = 10
11 | +++
12 |
13 | Lorem est tota propiore conpellat pectoribus de pectora summo. Redit teque digerit hominumque toris verebor lumina non cervice subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum.
14 |
15 | 1. Exierant elisi ambit vivere dedere
16 | 2. Duce pollice
17 | 3. Eris modo
18 | 4. Spargitque ferrea quos palude
19 |
20 | Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria tractus malis.
21 |
22 | 1. Comas hunc haec pietate fetum procerum dixit
23 | 2. Post torum vates letum Tiresia
24 | 3. Flumen querellas
25 | 4. Arcanaque montibus omnes
26 | 5. Quidem et
27 |
28 | # Vagus elidunt
29 |
30 |
31 |
32 | [The Van de Graaf Canon](https://en.wikipedia.org/wiki/Canons_of_page_construction#Van_de_Graaf_canon)
33 |
34 | ## Mane refeci capiebant unda mulcebat
35 |
36 | Victa caducifer, malo vulnere contra dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere furit nec; iaculi matertera et visa est, viribus. Divesque creatis, tecta novat collumque vulnus est, parvas. **Faces illo pepulere** tempus adest. Tendit flamma, ab opes virum sustinet, sidus sequendo urbis.
37 |
38 | Iubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae vulnus haerentia iuste et exercebat, sui et.
39 |
40 | Eurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel **mitis temploque** vocatus, inque alis, _oculos nomen_ non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem Propoetides **parte**.
41 |
42 | {{< css.inline >}}
43 |
44 |
47 |
48 | {{< /css.inline >}}
49 |
--------------------------------------------------------------------------------
/exampleSite/content/post/rich-content.md:
--------------------------------------------------------------------------------
1 | +++
2 | author = "lee.so"
3 | title = "Rich Content"
4 | date = "2019-03-10"
5 | description = "A brief description of Hugo Shortcodes"
6 | tags = [
7 | "shortcodes",
8 | "privacy",
9 | ]
10 | +++
11 |
12 | Hugo ships with several [Built-in Shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugos-built-in-shortcodes) for rich content, along with a [Privacy Config](https://gohugo.io/about/hugo-and-gdpr/) and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds.
13 |
14 | ##
15 |
16 | ## YouTube Privacy Enhanced Shortcode
17 |
18 | {{< youtube ZJthWmvUzzc >}}
19 |
--------------------------------------------------------------------------------
/exampleSite/go.default.mod:
--------------------------------------------------------------------------------
1 | module hugo-paper
2 |
3 | go 1.24
4 |
--------------------------------------------------------------------------------
/exampleSite/go.toml:
--------------------------------------------------------------------------------
1 | # Only used for build theme demo site on vercel.com
2 | [module]
3 | [[module.imports]]
4 | path = "github.com/nanxiaobei/hugo-paper"
5 |
--------------------------------------------------------------------------------
/exampleSite/hugo.toml:
--------------------------------------------------------------------------------
1 | baseURL = "https://hugo-paper.vercel.app/"
2 | title = "Paper"
3 | author = "Steve Francia"
4 | copyright = "© 2025, lee.so"
5 | languageCode = "en"
6 | DefaultContentLanguage = "en"
7 | enableInlineShortcodes = true
8 | # prevent build failures when using Hugo's Instagram shortcode due to deprecated Instagram API.
9 | # See https://github.com/gohugoio/hugo/issues/7228#issuecomment-714490456
10 | ignoreErrors = ["error-remote-getjson"]
11 | [pagination]
12 | pagerSize = 3
13 |
14 | # ------------------------------
15 | theme = "hugo-paper"
16 |
17 | [params]
18 | color = 'linen'
19 | twitter = 'nanxiaobei'
20 | github = 'nanxiaobei'
21 | instagram = 'nan.xiaobei'
22 |
23 | avatar = 'nanxiaobei@gmail.com'
24 | name = 'Lee'
25 | bio = 'Discover fresh context'
26 | # ------------------------------
27 |
28 | # needed to render raw HTML (e.g. , , , )
29 | [markup]
30 | [markup.goldmark]
31 | [markup.goldmark.renderer]
32 | unsafe = true
33 | # [markup.highlight]
34 | # lineNos = true
35 |
36 | [menu]
37 |
38 | [[menu.main]]
39 | identifier = "about"
40 | name = "About"
41 | url = "/about/"
42 | weight = 10
43 | [[menu.main]]
44 | identifier = "contact"
45 | name = "Contact"
46 | url = "/contact/"
47 | weight = 10
48 |
49 | [taxonomies]
50 | category = "categories"
51 | tag = "tags"
52 | series = "series"
53 |
54 | [privacy]
55 |
56 | [privacy.vimeo]
57 | disabled = false
58 | simple = true
59 |
60 | [privacy.x]
61 | disabled = false
62 | enableDNT = true
63 | simple = true
64 |
65 | [privacy.instagram]
66 | disabled = false
67 | simple = true
68 |
69 | [privacy.youtube]
70 | disabled = false
71 | privacyEnhanced = true
72 |
73 | [services]
74 |
75 | [services.instagram]
76 | disableInlineCSS = true
77 |
78 | [services.x]
79 | disableInlineCSS = true
80 |
--------------------------------------------------------------------------------
/exampleSite/layouts/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nanxiaobei/hugo-paper/8c75cdd9ce53795675f7a54d431870eeac559665/exampleSite/layouts/.gitkeep
--------------------------------------------------------------------------------
/exampleSite/static/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nanxiaobei/hugo-paper/8c75cdd9ce53795675f7a54d431870eeac559665/exampleSite/static/.gitignore
--------------------------------------------------------------------------------
/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/nanxiaobei/hugo-paper
2 |
3 | go 1.20
4 |
--------------------------------------------------------------------------------
/i18n/ar.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'الصفحة السابقة'
3 |
4 | - id: next_page
5 | translation: 'الصفحة التالية'
6 |
7 | - id: read_time
8 | translation:
9 | one: 'دقيقة واحده'
10 | other: 'دقیقه {{ .Count }}'
11 |
12 | - id: toc
13 | translation: 'فهرس المحتوي'
14 |
15 | - id: translations
16 | translation: 'ترجمات اخري'
17 |
18 | - id: home
19 | translation: 'الصفحة الرئيسية'
20 |
--------------------------------------------------------------------------------
/i18n/az.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Əvvəlki'
3 |
4 | - id: next_page
5 | translation: 'Növbəti'
--------------------------------------------------------------------------------
/i18n/be.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Папярэдняя'
3 |
4 | - id: next_page
5 | translation: 'Наступная'
6 |
--------------------------------------------------------------------------------
/i18n/bn.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'পূর্ববর্তী পাতা'
3 |
4 | - id: next_page
5 | translation: 'পরবর্তী পাতা'
6 |
--------------------------------------------------------------------------------
/i18n/de.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Vorherige Seite'
3 |
4 | - id: next_page
5 | translation: 'Nächste Seite'
6 |
--------------------------------------------------------------------------------
/i18n/en.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Prev Page'
3 |
4 | - id: next_page
5 | translation: 'Next Page'
6 |
--------------------------------------------------------------------------------
/i18n/es.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Página siguiente'
3 |
4 | - id: next_page
5 | translation: 'Página anterior'
6 |
--------------------------------------------------------------------------------
/i18n/fa.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'صفحه قبل'
3 |
4 | - id: next_page
5 | translation: 'صفحه بعد'
6 |
7 | - id: read_time
8 | translation:
9 | one: 'یک دقیقه'
10 | other: 'دقیقه {{ .Count }}'
11 |
12 | - id: home
13 | translation: 'صفحه اصلی'
14 |
--------------------------------------------------------------------------------
/i18n/fr.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Page précédente'
3 |
4 | - id: next_page
5 | translation: 'Page suivante'
6 |
--------------------------------------------------------------------------------
/i18n/he.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'לעמוד הקודם'
3 |
4 | - id: next_page
5 | translation: 'לעמוד הבא'
6 |
--------------------------------------------------------------------------------
/i18n/id.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Sebelumnya'
3 |
4 | - id: next_page
5 | translation: 'Selanjutnya'
6 |
--------------------------------------------------------------------------------
/i18n/it.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Pagina Precedente'
3 |
4 | - id: next_page
5 | translation: 'Pagina Successiva'
6 |
--------------------------------------------------------------------------------
/i18n/ja.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: '前のページ'
3 |
4 | - id: next_page
5 | translation: '次のページ'
6 |
--------------------------------------------------------------------------------
/i18n/ko.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: '이전 페이지'
3 |
4 | - id: next_page
5 | translation: '다음 페이지'
6 |
--------------------------------------------------------------------------------
/i18n/oc.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Pagina precedenta'
3 |
4 | - id: next_page
5 | translation: 'Pagina seguenta'
6 |
--------------------------------------------------------------------------------
/i18n/pl.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Poprzednia strona'
3 |
4 | - id: next_page
5 | translation: 'Następna strona'
6 |
--------------------------------------------------------------------------------
/i18n/pt.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Página Anterior'
3 |
4 | - id: next_page
5 | translation: 'Página Seguinte'
6 |
--------------------------------------------------------------------------------
/i18n/ru.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Сюда'
3 |
4 | - id: next_page
5 | translation: 'Туда'
6 |
--------------------------------------------------------------------------------
/i18n/sw.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Ukurasa Uliotangulia'
3 |
4 | - id: next_page
5 | translation: 'Ukurasa Unaofuata'
6 |
--------------------------------------------------------------------------------
/i18n/tr.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: 'Öneceki'
3 |
4 | - id: next_page
5 | translation: 'Sonrakı'
--------------------------------------------------------------------------------
/i18n/zh.yaml:
--------------------------------------------------------------------------------
1 | - id: prev_page
2 | translation: '上一页'
3 |
4 | - id: next_page
5 | translation: '下一页'
6 |
--------------------------------------------------------------------------------
/images/pagespeed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nanxiaobei/hugo-paper/8c75cdd9ce53795675f7a54d431870eeac559665/images/pagespeed.png
--------------------------------------------------------------------------------
/images/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nanxiaobei/hugo-paper/8c75cdd9ce53795675f7a54d431870eeac559665/images/screenshot.png
--------------------------------------------------------------------------------
/images/screenshot_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nanxiaobei/hugo-paper/8c75cdd9ce53795675f7a54d431870eeac559665/images/screenshot_dark.png
--------------------------------------------------------------------------------
/images/tn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nanxiaobei/hugo-paper/8c75cdd9ce53795675f7a54d431870eeac559665/images/tn.png
--------------------------------------------------------------------------------
/layouts/404.html:
--------------------------------------------------------------------------------
1 | {{- define "main" -}}
2 |
5 | 404
6 |
7 | {{- end -}}
8 |
--------------------------------------------------------------------------------
/layouts/_default/baseof.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{- $.Scratch.Delete "bg_color" -}}
4 | {{- $.Scratch.Delete "social_list" -}}
5 | {{- $.Scratch.Delete "avatar_url" -}}
6 |
7 |
8 | {{- $color_map := dict "linen" "#faf8f1" "wheat" "#f8f5d7" "gray" "#fbfbfb"
9 | "light" "#fff" -}}
10 | {{- $.Scratch.Set "bg_color" (index $color_map (site.Params.color | default
11 | (print "linen"))) -}}
12 | {{- $bg_color := $.Scratch.Get "bg_color" -}}
13 |
14 |
15 | {{- $social_params := slice "twitter" "github" "instagram" "linkedin" "mastodon"
16 | "threads" "bluesky" "rss" -}}
17 | {{- range $social_params -}}
18 | {{- if isset site.Params . -}}
19 | {{- $.Scratch.Add "social_list" (slice .) -}}
20 | {{- end -}}
21 | {{- end -}}
22 |
23 |
24 | {{- if site.Params.avatar -}}
25 | {{- if in site.Params.avatar "http" -}}
26 | {{- $.Scratch.Set "avatar_url" site.Params.avatar -}}
27 | {{- else -}}
28 | {{- $official_cdn := "https://www.gravatar.com/avatar/" -}}
29 | {{- $cdn := (site.Params.gravatarCdn | default $official_cdn) -}}
30 | {{- $md5 := (md5 site.Params.avatar) -}}
31 | {{- $avatar_url := print $cdn $md5 "?s=160&d=identicon" -}}
32 | {{- $.Scratch.Set "avatar_url" $avatar_url -}}
33 | {{- end -}}
34 | {{- end -}}
35 |
36 |
42 | {{- partial "head.html" . -}}
43 |
46 | {{- partial "header.html" . -}}
47 |
48 |
51 | {{- block "main" . -}}{{- end -}}
52 |
53 |
54 | {{- partial "footer.html" . -}}
55 |
56 |
57 |
--------------------------------------------------------------------------------
/layouts/_default/list.html:
--------------------------------------------------------------------------------
1 | {{- define "main" -}}
2 |
3 |
4 | {{- if and .Title (eq .Type "tags") -}}
5 | #{{- .Title -}}
6 | {{- end -}}
7 |
8 |
9 | {{- $pages := union .RegularPages .Sections -}}
10 | {{- if .IsHome -}}
11 | {{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections -}}
12 | {{- end -}}
13 |
14 |
15 | {{- $paginator := .Paginate $pages -}} {{- range $index, $page :=
16 | $paginator.Pages -}}
17 |
18 |
19 | {{- if and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0) -}}
20 |
21 | {{- $avatar_url := $.Scratch.Get "avatar_url" -}}
22 | {{- if or $avatar_url site.Params.name -}}
23 |
24 | {{- if $avatar_url -}}
25 |
28 |
33 |
34 | {{- end -}}
35 | {{- if site.Params.name -}}
36 |
37 |
38 | {{- site.Params.name -}}
39 |
40 |
41 | {{- site.Params.bio | default (print `A personal blog by `
42 | site.Params.name) -}}
43 |
44 |
45 | {{- end -}}
46 |
47 | {{- end -}}
48 |
49 | {{- end -}}
50 |
51 |
52 | {{- if gt .Weight 0 -}}
53 | Featured
56 | {{- end -}}
57 | {{- .Title -}}
58 | {{- .Date | time.Format ":date_medium" -}}
61 | {{- .Title -}}
64 |
65 | {{- end -}}
66 |
67 |
68 | {{- if gt $paginator.TotalPages 1 -}}
69 |
70 | {{- if $paginator.HasPrev -}}
71 | ← {{- i18n "prev_page" -}}
74 | {{- end -}}
75 | {{- if $paginator.HasNext -}}
76 | {{- i18n "next_page" -}} →
79 | {{- end -}}
80 |
81 | {{- end -}}
82 |
83 | {{- end -}}
84 |
--------------------------------------------------------------------------------
/layouts/_default/single.html:
--------------------------------------------------------------------------------
1 | {{- define "main" -}}
2 |
3 |
4 |
21 |
22 |
23 |
24 |
25 | {{- if .Params.tags -}}
26 |
27 | {{- range .Params.tags -}} {{- $href := print (absURL "tags/") (urlize .)
28 | -}}
29 | {{- . -}}
34 | {{- end -}}
35 |
36 | {{- end -}}
37 |
38 |
39 | {{- if not site.Params.disablePostNavigation -}}
40 | {{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections -}}
41 | {{- if and (gt (len $pages) 1) (in $pages . ) -}}
42 |
45 | {{- with $pages.Next . -}}
46 | ← {{- .Name -}}
49 | {{- end -}}
50 | {{- with $pages.Prev . -}}
51 | {{- .Name -}} →
56 | {{- end -}}
57 |
58 | {{- end -}}
59 | {{- end -}}
60 |
61 |
62 | {{- if and site.Config.Services.Disqus.Shortname (not (eq .Params.comments
63 | false)) -}}
64 |
65 |
72 | {{- end -}}
73 |
74 |
75 | {{- if and site.Params.graphCommentId (not (eq .Params.comments false)) -}}
76 |
77 |
104 | {{- end -}}
105 |
106 |
107 | {{- partial "mermaid.html" . -}}
108 |
109 |
110 | {{- if and site.Params.giscus.repo (not (eq .Params.comments false)) -}}
111 |
112 |
129 | {{- end -}}
130 |
131 |
132 | {{- end -}}
133 |
--------------------------------------------------------------------------------
/layouts/partials/footer.html:
--------------------------------------------------------------------------------
1 |
4 |
5 | {{- if site.Copyright -}} {{- site.Copyright -}} {{- else -}} © {{-
6 | now.Year }}
7 |
{{- site.Title -}}
8 | {{- end -}}
9 |
10 | powered by hugo️️ ️
13 | hugo-paper
20 |
21 |
--------------------------------------------------------------------------------
/layouts/partials/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
11 | {{- if not .IsHome -}}{{- .Title }} - {{ end -}}{{- site.Title -}}
12 |
13 |
14 |
15 |
16 |
17 |
18 | {{- $site_author := or site.Author.name site.Params.name site.Title -}}
19 |
20 | {{- if eq .Kind "page" -}}
21 |
22 |
23 | {{- else -}}
24 |
25 |
29 |
30 | {{- end -}}
31 |
32 |
33 | {{- $main := resources.Get "main.css" -}}
34 |
35 | {{- $custom := resources.Get "custom.css" -}}
36 |
37 | {{- $css := slice $main $custom | resources.Concat "main.css" | minify -}}
38 |
39 |
40 |
41 | {{- $dark_icon := "theme.png" -}}
42 |
43 | {{- if site.Params.monoDarkIcon -}}{{- $dark_icon = "theme.svg" -}}{{- end -}}
44 |
45 |
46 |
47 |
48 | {{- $avatar_url := $.Scratch.Get "avatar_url" -}}
49 |
50 | {{- if $avatar_url -}}
51 |
52 | {{- end -}}
53 |
54 |
55 |
56 | {{- range $.Scratch.Get "social_list" -}}
57 |
58 | {{- end -}}
59 |
60 |
61 |
62 | {{- if and .IsPage (not site.Params.disableHLJS) -}}
63 |
68 | {{- end -}}
69 |
70 |
71 | {{- if or .Params.math site.Params.math -}}
72 |
73 | {{- partial "math.html" . -}}
74 |
75 | {{- end -}}
76 |
77 |
78 |
79 |
83 |
87 |
88 |
89 | {{- hugo.Generator -}}
90 |
91 |
92 | {{- if or hugo.IsProduction (eq site.Params.env "production") -}}
93 |
94 | {{- template "_internal/google_analytics.html" . -}}
95 |
96 | {{- template "_internal/schema.html" . -}}
97 |
98 | {{- template "_internal/opengraph.html" . -}}
99 |
100 | {{- template "_internal/twitter_cards.html" . -}}
101 |
102 | {{- range .AlternativeOutputFormats -}}
103 |
109 | {{- end -}}
110 |
111 |
112 |
113 | {{- end -}}
114 |
115 |
116 |
--------------------------------------------------------------------------------
/layouts/partials/header.html:
--------------------------------------------------------------------------------
1 |
105 |
--------------------------------------------------------------------------------
/layouts/partials/math.html:
--------------------------------------------------------------------------------
1 | {{- if site.Params.localKatex -}}
2 |
3 |
4 |
5 | {{- else -}}
6 |
12 |
18 |
24 | {{- end -}}
25 |
26 |
40 |
--------------------------------------------------------------------------------
/layouts/partials/mermaid.html:
--------------------------------------------------------------------------------
1 |
2 | {{- if .Params.mermaid -}}
3 |
7 |
14 | {{- end -}}
15 |
--------------------------------------------------------------------------------
/layouts/shortcodes/collapse.html:
--------------------------------------------------------------------------------
1 | {{- if not (.Get "summary") -}}
2 | {{- errorf "missing param 'summary': %s" .Position -}}
3 | {{ else if not (.Get "content") }}{{- warnf "missing param 'content': %s"
4 | .Position -}}
5 | {{- end -}}
6 |
7 |
8 | {{- .Get "summary" | markdownify -}}
9 | {{- .Get "content" | markdownify -}}
10 |
11 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hugo-paper",
3 | "version": "6.30.0",
4 | "repository": "https://github.com/nanxiaobei/hugo-paper.git",
5 | "author": "nanxiaobei ",
6 | "license": "MIT",
7 | "scripts": {
8 | "dev:css": "npx @tailwindcss/cli -i ./assets/app.css -o ./assets/main.css --watch",
9 | "dev:server": "hugo server --config exampleSite/hugo.toml --contentDir exampleSite/content --gc --buildDrafts --openBrowser",
10 | "dev": "killall hugo & pnpm dev:css & pnpm dev:server",
11 | "build:go": "cp exampleSite/go.default.mod exampleSite/go.mod",
12 | "build:generate": "hugo --config exampleSite/hugo.toml --contentDir exampleSite/content --gc --minify",
13 | "build": "pnpm build:go & pnpm build:generate"
14 | },
15 | "dependencies": {
16 | "@tailwindcss/cli": "^4.0.12",
17 | "@tailwindcss/typography": "^0.5.16",
18 | "prettier": "^3.5.3",
19 | "prettier-plugin-tailwindcss": "^0.6.11",
20 | "tailwindcss": "^4.0.12"
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | '@tailwindcss/cli':
12 | specifier: ^4.0.12
13 | version: 4.0.12
14 | '@tailwindcss/typography':
15 | specifier: ^0.5.16
16 | version: 0.5.16(tailwindcss@4.0.12)
17 | prettier:
18 | specifier: ^3.5.3
19 | version: 3.5.3
20 | prettier-plugin-tailwindcss:
21 | specifier: ^0.6.11
22 | version: 0.6.11(prettier@3.5.3)
23 | tailwindcss:
24 | specifier: ^4.0.12
25 | version: 4.0.12
26 |
27 | packages:
28 |
29 | '@parcel/watcher-android-arm64@2.5.1':
30 | resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
31 | engines: {node: '>= 10.0.0'}
32 | cpu: [arm64]
33 | os: [android]
34 |
35 | '@parcel/watcher-darwin-arm64@2.5.1':
36 | resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==}
37 | engines: {node: '>= 10.0.0'}
38 | cpu: [arm64]
39 | os: [darwin]
40 |
41 | '@parcel/watcher-darwin-x64@2.5.1':
42 | resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==}
43 | engines: {node: '>= 10.0.0'}
44 | cpu: [x64]
45 | os: [darwin]
46 |
47 | '@parcel/watcher-freebsd-x64@2.5.1':
48 | resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==}
49 | engines: {node: '>= 10.0.0'}
50 | cpu: [x64]
51 | os: [freebsd]
52 |
53 | '@parcel/watcher-linux-arm-glibc@2.5.1':
54 | resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==}
55 | engines: {node: '>= 10.0.0'}
56 | cpu: [arm]
57 | os: [linux]
58 |
59 | '@parcel/watcher-linux-arm-musl@2.5.1':
60 | resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
61 | engines: {node: '>= 10.0.0'}
62 | cpu: [arm]
63 | os: [linux]
64 |
65 | '@parcel/watcher-linux-arm64-glibc@2.5.1':
66 | resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
67 | engines: {node: '>= 10.0.0'}
68 | cpu: [arm64]
69 | os: [linux]
70 |
71 | '@parcel/watcher-linux-arm64-musl@2.5.1':
72 | resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
73 | engines: {node: '>= 10.0.0'}
74 | cpu: [arm64]
75 | os: [linux]
76 |
77 | '@parcel/watcher-linux-x64-glibc@2.5.1':
78 | resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
79 | engines: {node: '>= 10.0.0'}
80 | cpu: [x64]
81 | os: [linux]
82 |
83 | '@parcel/watcher-linux-x64-musl@2.5.1':
84 | resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
85 | engines: {node: '>= 10.0.0'}
86 | cpu: [x64]
87 | os: [linux]
88 |
89 | '@parcel/watcher-win32-arm64@2.5.1':
90 | resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
91 | engines: {node: '>= 10.0.0'}
92 | cpu: [arm64]
93 | os: [win32]
94 |
95 | '@parcel/watcher-win32-ia32@2.5.1':
96 | resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==}
97 | engines: {node: '>= 10.0.0'}
98 | cpu: [ia32]
99 | os: [win32]
100 |
101 | '@parcel/watcher-win32-x64@2.5.1':
102 | resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==}
103 | engines: {node: '>= 10.0.0'}
104 | cpu: [x64]
105 | os: [win32]
106 |
107 | '@parcel/watcher@2.5.1':
108 | resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
109 | engines: {node: '>= 10.0.0'}
110 |
111 | '@tailwindcss/cli@4.0.12':
112 | resolution: {integrity: sha512-ULTi5qO1tJUxhNYc4MPhS9I+OoGT5GqPkIZ9p82Bu8xe8852r3n+PDceh8U6yy1lSyGVZUu4K1S+9gShvCKXjg==}
113 | hasBin: true
114 |
115 | '@tailwindcss/node@4.0.12':
116 | resolution: {integrity: sha512-a6J11K1Ztdln9OrGfoM75/hChYPcHYGNYimqciMrvKXRmmPaS8XZTHhdvb5a3glz4Kd4ZxE1MnuFE2c0fGGmtg==}
117 |
118 | '@tailwindcss/oxide-android-arm64@4.0.12':
119 | resolution: {integrity: sha512-dAXCaemu3mHLXcA5GwGlQynX8n7tTdvn5i1zAxRvZ5iC9fWLl5bGnjZnzrQqT7ttxCvRwdVf3IHUnMVdDBO/kQ==}
120 | engines: {node: '>= 10'}
121 | cpu: [arm64]
122 | os: [android]
123 |
124 | '@tailwindcss/oxide-darwin-arm64@4.0.12':
125 | resolution: {integrity: sha512-vPNI+TpJQ7sizselDXIJdYkx9Cu6JBdtmRWujw9pVIxW8uz3O2PjgGGzL/7A0sXI8XDjSyRChrUnEW9rQygmJQ==}
126 | engines: {node: '>= 10'}
127 | cpu: [arm64]
128 | os: [darwin]
129 |
130 | '@tailwindcss/oxide-darwin-x64@4.0.12':
131 | resolution: {integrity: sha512-RL/9jM41Fdq4Efr35C5wgLx98BirnrfwuD+zgMFK6Ir68HeOSqBhW9jsEeC7Y/JcGyPd3MEoJVIU4fAb7YLg7A==}
132 | engines: {node: '>= 10'}
133 | cpu: [x64]
134 | os: [darwin]
135 |
136 | '@tailwindcss/oxide-freebsd-x64@4.0.12':
137 | resolution: {integrity: sha512-7WzWiax+LguJcMEimY0Q4sBLlFXu1tYxVka3+G2M9KmU/3m84J3jAIV4KZWnockbHsbb2XgrEjtlJKVwHQCoRA==}
138 | engines: {node: '>= 10'}
139 | cpu: [x64]
140 | os: [freebsd]
141 |
142 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.12':
143 | resolution: {integrity: sha512-X9LRC7jjE1QlfIaBbXjY0PGeQP87lz5mEfLSVs2J1yRc9PSg1tEPS9NBqY4BU9v5toZgJgzKeaNltORyTs22TQ==}
144 | engines: {node: '>= 10'}
145 | cpu: [arm]
146 | os: [linux]
147 |
148 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.12':
149 | resolution: {integrity: sha512-i24IFNq2402zfDdoWKypXz0ZNS2G4NKaA82tgBlE2OhHIE+4mg2JDb5wVfyP6R+MCm5grgXvurcIcKWvo44QiQ==}
150 | engines: {node: '>= 10'}
151 | cpu: [arm64]
152 | os: [linux]
153 |
154 | '@tailwindcss/oxide-linux-arm64-musl@4.0.12':
155 | resolution: {integrity: sha512-LmOdshJBfAGIBG0DdBWhI0n5LTMurnGGJCHcsm9F//ISfsHtCnnYIKgYQui5oOz1SUCkqsMGfkAzWyNKZqbGNw==}
156 | engines: {node: '>= 10'}
157 | cpu: [arm64]
158 | os: [linux]
159 |
160 | '@tailwindcss/oxide-linux-x64-gnu@4.0.12':
161 | resolution: {integrity: sha512-OSK667qZRH30ep8RiHbZDQfqkXjnzKxdn0oRwWzgCO8CoTxV+MvIkd0BWdQbYtYuM1wrakARV/Hwp0eA/qzdbw==}
162 | engines: {node: '>= 10'}
163 | cpu: [x64]
164 | os: [linux]
165 |
166 | '@tailwindcss/oxide-linux-x64-musl@4.0.12':
167 | resolution: {integrity: sha512-uylhWq6OWQ8krV8Jk+v0H/3AZKJW6xYMgNMyNnUbbYXWi7hIVdxRKNUB5UvrlC3RxtgsK5EAV2i1CWTRsNcAnA==}
168 | engines: {node: '>= 10'}
169 | cpu: [x64]
170 | os: [linux]
171 |
172 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.12':
173 | resolution: {integrity: sha512-XDLnhMoXZEEOir1LK43/gHHwK84V1GlV8+pAncUAIN2wloeD+nNciI9WRIY/BeFTqES22DhTIGoilSO39xDb2g==}
174 | engines: {node: '>= 10'}
175 | cpu: [arm64]
176 | os: [win32]
177 |
178 | '@tailwindcss/oxide-win32-x64-msvc@4.0.12':
179 | resolution: {integrity: sha512-I/BbjCLpKDQucvtn6rFuYLst1nfFwSMYyPzkx/095RE+tuzk5+fwXuzQh7T3fIBTcbn82qH/sFka7yPGA50tLw==}
180 | engines: {node: '>= 10'}
181 | cpu: [x64]
182 | os: [win32]
183 |
184 | '@tailwindcss/oxide@4.0.12':
185 | resolution: {integrity: sha512-DWb+myvJB9xJwelwT9GHaMc1qJj6MDXRDR0CS+T8IdkejAtu8ctJAgV4r1drQJLPeS7mNwq2UHW2GWrudTf63A==}
186 | engines: {node: '>= 10'}
187 |
188 | '@tailwindcss/typography@0.5.16':
189 | resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==}
190 | peerDependencies:
191 | tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1'
192 |
193 | braces@3.0.3:
194 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
195 | engines: {node: '>=8'}
196 |
197 | cssesc@3.0.0:
198 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
199 | engines: {node: '>=4'}
200 | hasBin: true
201 |
202 | detect-libc@1.0.3:
203 | resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
204 | engines: {node: '>=0.10'}
205 | hasBin: true
206 |
207 | detect-libc@2.0.3:
208 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
209 | engines: {node: '>=8'}
210 |
211 | enhanced-resolve@5.18.1:
212 | resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
213 | engines: {node: '>=10.13.0'}
214 |
215 | fill-range@7.1.1:
216 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
217 | engines: {node: '>=8'}
218 |
219 | graceful-fs@4.2.11:
220 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
221 |
222 | is-extglob@2.1.1:
223 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
224 | engines: {node: '>=0.10.0'}
225 |
226 | is-glob@4.0.3:
227 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
228 | engines: {node: '>=0.10.0'}
229 |
230 | is-number@7.0.0:
231 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
232 | engines: {node: '>=0.12.0'}
233 |
234 | jiti@2.4.2:
235 | resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
236 | hasBin: true
237 |
238 | lightningcss-darwin-arm64@1.29.2:
239 | resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==}
240 | engines: {node: '>= 12.0.0'}
241 | cpu: [arm64]
242 | os: [darwin]
243 |
244 | lightningcss-darwin-x64@1.29.2:
245 | resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==}
246 | engines: {node: '>= 12.0.0'}
247 | cpu: [x64]
248 | os: [darwin]
249 |
250 | lightningcss-freebsd-x64@1.29.2:
251 | resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==}
252 | engines: {node: '>= 12.0.0'}
253 | cpu: [x64]
254 | os: [freebsd]
255 |
256 | lightningcss-linux-arm-gnueabihf@1.29.2:
257 | resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==}
258 | engines: {node: '>= 12.0.0'}
259 | cpu: [arm]
260 | os: [linux]
261 |
262 | lightningcss-linux-arm64-gnu@1.29.2:
263 | resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==}
264 | engines: {node: '>= 12.0.0'}
265 | cpu: [arm64]
266 | os: [linux]
267 |
268 | lightningcss-linux-arm64-musl@1.29.2:
269 | resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==}
270 | engines: {node: '>= 12.0.0'}
271 | cpu: [arm64]
272 | os: [linux]
273 |
274 | lightningcss-linux-x64-gnu@1.29.2:
275 | resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==}
276 | engines: {node: '>= 12.0.0'}
277 | cpu: [x64]
278 | os: [linux]
279 |
280 | lightningcss-linux-x64-musl@1.29.2:
281 | resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==}
282 | engines: {node: '>= 12.0.0'}
283 | cpu: [x64]
284 | os: [linux]
285 |
286 | lightningcss-win32-arm64-msvc@1.29.2:
287 | resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==}
288 | engines: {node: '>= 12.0.0'}
289 | cpu: [arm64]
290 | os: [win32]
291 |
292 | lightningcss-win32-x64-msvc@1.29.2:
293 | resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==}
294 | engines: {node: '>= 12.0.0'}
295 | cpu: [x64]
296 | os: [win32]
297 |
298 | lightningcss@1.29.2:
299 | resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==}
300 | engines: {node: '>= 12.0.0'}
301 |
302 | lodash.castarray@4.4.0:
303 | resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
304 |
305 | lodash.isplainobject@4.0.6:
306 | resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
307 |
308 | lodash.merge@4.6.2:
309 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
310 |
311 | micromatch@4.0.8:
312 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
313 | engines: {node: '>=8.6'}
314 |
315 | mri@1.2.0:
316 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
317 | engines: {node: '>=4'}
318 |
319 | node-addon-api@7.1.1:
320 | resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
321 |
322 | picocolors@1.1.1:
323 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
324 |
325 | picomatch@2.3.1:
326 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
327 | engines: {node: '>=8.6'}
328 |
329 | postcss-selector-parser@6.0.10:
330 | resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
331 | engines: {node: '>=4'}
332 |
333 | prettier-plugin-tailwindcss@0.6.11:
334 | resolution: {integrity: sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==}
335 | engines: {node: '>=14.21.3'}
336 | peerDependencies:
337 | '@ianvs/prettier-plugin-sort-imports': '*'
338 | '@prettier/plugin-pug': '*'
339 | '@shopify/prettier-plugin-liquid': '*'
340 | '@trivago/prettier-plugin-sort-imports': '*'
341 | '@zackad/prettier-plugin-twig': '*'
342 | prettier: ^3.0
343 | prettier-plugin-astro: '*'
344 | prettier-plugin-css-order: '*'
345 | prettier-plugin-import-sort: '*'
346 | prettier-plugin-jsdoc: '*'
347 | prettier-plugin-marko: '*'
348 | prettier-plugin-multiline-arrays: '*'
349 | prettier-plugin-organize-attributes: '*'
350 | prettier-plugin-organize-imports: '*'
351 | prettier-plugin-sort-imports: '*'
352 | prettier-plugin-style-order: '*'
353 | prettier-plugin-svelte: '*'
354 | peerDependenciesMeta:
355 | '@ianvs/prettier-plugin-sort-imports':
356 | optional: true
357 | '@prettier/plugin-pug':
358 | optional: true
359 | '@shopify/prettier-plugin-liquid':
360 | optional: true
361 | '@trivago/prettier-plugin-sort-imports':
362 | optional: true
363 | '@zackad/prettier-plugin-twig':
364 | optional: true
365 | prettier-plugin-astro:
366 | optional: true
367 | prettier-plugin-css-order:
368 | optional: true
369 | prettier-plugin-import-sort:
370 | optional: true
371 | prettier-plugin-jsdoc:
372 | optional: true
373 | prettier-plugin-marko:
374 | optional: true
375 | prettier-plugin-multiline-arrays:
376 | optional: true
377 | prettier-plugin-organize-attributes:
378 | optional: true
379 | prettier-plugin-organize-imports:
380 | optional: true
381 | prettier-plugin-sort-imports:
382 | optional: true
383 | prettier-plugin-style-order:
384 | optional: true
385 | prettier-plugin-svelte:
386 | optional: true
387 |
388 | prettier@3.5.3:
389 | resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
390 | engines: {node: '>=14'}
391 | hasBin: true
392 |
393 | tailwindcss@4.0.12:
394 | resolution: {integrity: sha512-bT0hJo91FtncsAMSsMzUkoo/iEU0Xs5xgFgVC9XmdM9bw5MhZuQFjPNl6wxAE0SiQF/YTZJa+PndGWYSDtuxAg==}
395 |
396 | tapable@2.2.1:
397 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
398 | engines: {node: '>=6'}
399 |
400 | to-regex-range@5.0.1:
401 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
402 | engines: {node: '>=8.0'}
403 |
404 | util-deprecate@1.0.2:
405 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
406 |
407 | snapshots:
408 |
409 | '@parcel/watcher-android-arm64@2.5.1':
410 | optional: true
411 |
412 | '@parcel/watcher-darwin-arm64@2.5.1':
413 | optional: true
414 |
415 | '@parcel/watcher-darwin-x64@2.5.1':
416 | optional: true
417 |
418 | '@parcel/watcher-freebsd-x64@2.5.1':
419 | optional: true
420 |
421 | '@parcel/watcher-linux-arm-glibc@2.5.1':
422 | optional: true
423 |
424 | '@parcel/watcher-linux-arm-musl@2.5.1':
425 | optional: true
426 |
427 | '@parcel/watcher-linux-arm64-glibc@2.5.1':
428 | optional: true
429 |
430 | '@parcel/watcher-linux-arm64-musl@2.5.1':
431 | optional: true
432 |
433 | '@parcel/watcher-linux-x64-glibc@2.5.1':
434 | optional: true
435 |
436 | '@parcel/watcher-linux-x64-musl@2.5.1':
437 | optional: true
438 |
439 | '@parcel/watcher-win32-arm64@2.5.1':
440 | optional: true
441 |
442 | '@parcel/watcher-win32-ia32@2.5.1':
443 | optional: true
444 |
445 | '@parcel/watcher-win32-x64@2.5.1':
446 | optional: true
447 |
448 | '@parcel/watcher@2.5.1':
449 | dependencies:
450 | detect-libc: 1.0.3
451 | is-glob: 4.0.3
452 | micromatch: 4.0.8
453 | node-addon-api: 7.1.1
454 | optionalDependencies:
455 | '@parcel/watcher-android-arm64': 2.5.1
456 | '@parcel/watcher-darwin-arm64': 2.5.1
457 | '@parcel/watcher-darwin-x64': 2.5.1
458 | '@parcel/watcher-freebsd-x64': 2.5.1
459 | '@parcel/watcher-linux-arm-glibc': 2.5.1
460 | '@parcel/watcher-linux-arm-musl': 2.5.1
461 | '@parcel/watcher-linux-arm64-glibc': 2.5.1
462 | '@parcel/watcher-linux-arm64-musl': 2.5.1
463 | '@parcel/watcher-linux-x64-glibc': 2.5.1
464 | '@parcel/watcher-linux-x64-musl': 2.5.1
465 | '@parcel/watcher-win32-arm64': 2.5.1
466 | '@parcel/watcher-win32-ia32': 2.5.1
467 | '@parcel/watcher-win32-x64': 2.5.1
468 |
469 | '@tailwindcss/cli@4.0.12':
470 | dependencies:
471 | '@parcel/watcher': 2.5.1
472 | '@tailwindcss/node': 4.0.12
473 | '@tailwindcss/oxide': 4.0.12
474 | enhanced-resolve: 5.18.1
475 | lightningcss: 1.29.2
476 | mri: 1.2.0
477 | picocolors: 1.1.1
478 | tailwindcss: 4.0.12
479 |
480 | '@tailwindcss/node@4.0.12':
481 | dependencies:
482 | enhanced-resolve: 5.18.1
483 | jiti: 2.4.2
484 | tailwindcss: 4.0.12
485 |
486 | '@tailwindcss/oxide-android-arm64@4.0.12':
487 | optional: true
488 |
489 | '@tailwindcss/oxide-darwin-arm64@4.0.12':
490 | optional: true
491 |
492 | '@tailwindcss/oxide-darwin-x64@4.0.12':
493 | optional: true
494 |
495 | '@tailwindcss/oxide-freebsd-x64@4.0.12':
496 | optional: true
497 |
498 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.12':
499 | optional: true
500 |
501 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.12':
502 | optional: true
503 |
504 | '@tailwindcss/oxide-linux-arm64-musl@4.0.12':
505 | optional: true
506 |
507 | '@tailwindcss/oxide-linux-x64-gnu@4.0.12':
508 | optional: true
509 |
510 | '@tailwindcss/oxide-linux-x64-musl@4.0.12':
511 | optional: true
512 |
513 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.12':
514 | optional: true
515 |
516 | '@tailwindcss/oxide-win32-x64-msvc@4.0.12':
517 | optional: true
518 |
519 | '@tailwindcss/oxide@4.0.12':
520 | optionalDependencies:
521 | '@tailwindcss/oxide-android-arm64': 4.0.12
522 | '@tailwindcss/oxide-darwin-arm64': 4.0.12
523 | '@tailwindcss/oxide-darwin-x64': 4.0.12
524 | '@tailwindcss/oxide-freebsd-x64': 4.0.12
525 | '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.12
526 | '@tailwindcss/oxide-linux-arm64-gnu': 4.0.12
527 | '@tailwindcss/oxide-linux-arm64-musl': 4.0.12
528 | '@tailwindcss/oxide-linux-x64-gnu': 4.0.12
529 | '@tailwindcss/oxide-linux-x64-musl': 4.0.12
530 | '@tailwindcss/oxide-win32-arm64-msvc': 4.0.12
531 | '@tailwindcss/oxide-win32-x64-msvc': 4.0.12
532 |
533 | '@tailwindcss/typography@0.5.16(tailwindcss@4.0.12)':
534 | dependencies:
535 | lodash.castarray: 4.4.0
536 | lodash.isplainobject: 4.0.6
537 | lodash.merge: 4.6.2
538 | postcss-selector-parser: 6.0.10
539 | tailwindcss: 4.0.12
540 |
541 | braces@3.0.3:
542 | dependencies:
543 | fill-range: 7.1.1
544 |
545 | cssesc@3.0.0: {}
546 |
547 | detect-libc@1.0.3: {}
548 |
549 | detect-libc@2.0.3: {}
550 |
551 | enhanced-resolve@5.18.1:
552 | dependencies:
553 | graceful-fs: 4.2.11
554 | tapable: 2.2.1
555 |
556 | fill-range@7.1.1:
557 | dependencies:
558 | to-regex-range: 5.0.1
559 |
560 | graceful-fs@4.2.11: {}
561 |
562 | is-extglob@2.1.1: {}
563 |
564 | is-glob@4.0.3:
565 | dependencies:
566 | is-extglob: 2.1.1
567 |
568 | is-number@7.0.0: {}
569 |
570 | jiti@2.4.2: {}
571 |
572 | lightningcss-darwin-arm64@1.29.2:
573 | optional: true
574 |
575 | lightningcss-darwin-x64@1.29.2:
576 | optional: true
577 |
578 | lightningcss-freebsd-x64@1.29.2:
579 | optional: true
580 |
581 | lightningcss-linux-arm-gnueabihf@1.29.2:
582 | optional: true
583 |
584 | lightningcss-linux-arm64-gnu@1.29.2:
585 | optional: true
586 |
587 | lightningcss-linux-arm64-musl@1.29.2:
588 | optional: true
589 |
590 | lightningcss-linux-x64-gnu@1.29.2:
591 | optional: true
592 |
593 | lightningcss-linux-x64-musl@1.29.2:
594 | optional: true
595 |
596 | lightningcss-win32-arm64-msvc@1.29.2:
597 | optional: true
598 |
599 | lightningcss-win32-x64-msvc@1.29.2:
600 | optional: true
601 |
602 | lightningcss@1.29.2:
603 | dependencies:
604 | detect-libc: 2.0.3
605 | optionalDependencies:
606 | lightningcss-darwin-arm64: 1.29.2
607 | lightningcss-darwin-x64: 1.29.2
608 | lightningcss-freebsd-x64: 1.29.2
609 | lightningcss-linux-arm-gnueabihf: 1.29.2
610 | lightningcss-linux-arm64-gnu: 1.29.2
611 | lightningcss-linux-arm64-musl: 1.29.2
612 | lightningcss-linux-x64-gnu: 1.29.2
613 | lightningcss-linux-x64-musl: 1.29.2
614 | lightningcss-win32-arm64-msvc: 1.29.2
615 | lightningcss-win32-x64-msvc: 1.29.2
616 |
617 | lodash.castarray@4.4.0: {}
618 |
619 | lodash.isplainobject@4.0.6: {}
620 |
621 | lodash.merge@4.6.2: {}
622 |
623 | micromatch@4.0.8:
624 | dependencies:
625 | braces: 3.0.3
626 | picomatch: 2.3.1
627 |
628 | mri@1.2.0: {}
629 |
630 | node-addon-api@7.1.1: {}
631 |
632 | picocolors@1.1.1: {}
633 |
634 | picomatch@2.3.1: {}
635 |
636 | postcss-selector-parser@6.0.10:
637 | dependencies:
638 | cssesc: 3.0.0
639 | util-deprecate: 1.0.2
640 |
641 | prettier-plugin-tailwindcss@0.6.11(prettier@3.5.3):
642 | dependencies:
643 | prettier: 3.5.3
644 |
645 | prettier@3.5.3: {}
646 |
647 | tailwindcss@4.0.12: {}
648 |
649 | tapable@2.2.1: {}
650 |
651 | to-regex-range@5.0.1:
652 | dependencies:
653 | is-number: 7.0.0
654 |
655 | util-deprecate@1.0.2: {}
656 |
--------------------------------------------------------------------------------
/static/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nanxiaobei/hugo-paper/8c75cdd9ce53795675f7a54d431870eeac559665/static/apple-touch-icon.png
--------------------------------------------------------------------------------
/static/bluesky.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nanxiaobei/hugo-paper/8c75cdd9ce53795675f7a54d431870eeac559665/static/favicon.ico
--------------------------------------------------------------------------------
/static/github.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/static/highlight.min.js:
--------------------------------------------------------------------------------
1 | /*! highlight.js v9.15.6 | BSD3 License | git.io/hljslicense */
2 | !function(e){var t="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):t&&(t.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return t.hljs}))}(function(n){var b=[],o=Object.keys,h={},p={},t=/^(no-?highlight|plain|text)$/i,m=/\blang(?:uage)?-([\w-]+)\b/i,r=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,a={case_insensitive:"cI",lexemes:"l",contains:"c",keywords:"k",subLanguage:"sL",className:"cN",begin:"b",beginKeywords:"bK",end:"e",endsWithParent:"eW",illegal:"i",excludeBegin:"eB",excludeEnd:"eE",returnBegin:"rB",returnEnd:"rE",relevance:"r",variants:"v",IDENT_RE:"IR",UNDERSCORE_IDENT_RE:"UIR",NUMBER_RE:"NR",C_NUMBER_RE:"CNR",BINARY_NUMBER_RE:"BNR",RE_STARTERS_RE:"RSR",BACKSLASH_ESCAPE:"BE",APOS_STRING_MODE:"ASM",QUOTE_STRING_MODE:"QSM",PHRASAL_WORDS_MODE:"PWM",C_LINE_COMMENT_MODE:"CLCM",C_BLOCK_COMMENT_MODE:"CBCM",HASH_COMMENT_MODE:"HCM",NUMBER_MODE:"NM",C_NUMBER_MODE:"CNM",BINARY_NUMBER_MODE:"BNM",CSS_NUMBER_MODE:"CSSNM",REGEXP_MODE:"RM",TITLE_MODE:"TM",UNDERSCORE_TITLE_MODE:"UTM",COMMENT:"C",beginRe:"bR",endRe:"eR",illegalRe:"iR",lexemesRe:"lR",terminators:"t",terminator_end:"tE"},N="",v={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function y(e){return e.replace(/&/g,"&").replace(//g,">")}function f(e){return e.nodeName.toLowerCase()}function w(e,t){var r=e&&e.exec(t);return r&&0===r.index}function g(e){return t.test(e)}function u(e){var t,r={},a=Array.prototype.slice.call(arguments,1);for(t in e)r[t]=e[t];return a.forEach(function(e){for(t in e)r[t]=e[t]}),r}function _(e){var n=[];return function e(t,r){for(var a=t.firstChild;a;a=a.nextSibling)3===a.nodeType?r+=a.nodeValue.length:1===a.nodeType&&(n.push({event:"start",offset:r,node:a}),r=e(a,r),f(a).match(/br|hr|img|input/)||n.push({event:"stop",offset:r,node:a}));return r}(e,0),n}function i(e){if(a&&!e.langApiRestored){for(var t in e.langApiRestored=!0,a)e[t]&&(e[a[t]]=e[t]);(e.c||[]).concat(e.v||[]).forEach(i)}}function E(s){function l(e){return e&&e.source||e}function c(e,t){return new RegExp(l(e),"m"+(s.cI?"i":"")+(t?"g":""))}!function t(r,e){if(!r.compiled){if(r.compiled=!0,r.k=r.k||r.bK,r.k){var a={},n=function(r,e){s.cI&&(e=e.toLowerCase()),e.split(" ").forEach(function(e){var t=e.split("|");a[t[0]]=[r,t[1]?Number(t[1]):1]})};"string"==typeof r.k?n("keyword",r.k):o(r.k).forEach(function(e){n(e,r.k[e])}),r.k=a}r.lR=c(r.l||/\w+/,!0),e&&(r.bK&&(r.b="\\b("+r.bK.split(" ").join("|")+")\\b"),r.b||(r.b=/\B|\b/),r.bR=c(r.b),r.endSameAsBegin&&(r.e=r.b),r.e||r.eW||(r.e=/\B|\b/),r.e&&(r.eR=c(r.e)),r.tE=l(r.e)||"",r.eW&&e.tE&&(r.tE+=(r.e?"|":"")+e.tE)),r.i&&(r.iR=c(r.i)),null==r.r&&(r.r=1),r.c||(r.c=[]),r.c=Array.prototype.concat.apply([],r.c.map(function(e){return(t="self"===e?r:e).v&&!t.cached_variants&&(t.cached_variants=t.v.map(function(e){return u(t,{v:null},e)})),t.cached_variants||t.eW&&[u(t)]||[t];var t})),r.c.forEach(function(e){t(e,r)}),r.starts&&t(r.starts,e);var i=r.c.map(function(e){return e.bK?"\\.?(?:"+e.b+")\\.?":e.b}).concat([r.tE,r.i]).map(l).filter(Boolean);r.t=i.length?c(function(e,t){for(var r=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,a=0,n="",i=0;i')+t+(r?"":N)}function l(){p+=null!=b.sL?function(){var e="string"==typeof b.sL;if(e&&!h[b.sL])return y(m);var t=e?k(b.sL,m,!0,i[b.sL]):x(m,b.sL.length?b.sL:void 0);return 0")+'"');return m+=t,t.length||1}var d=C(e);if(!d)throw new Error('Unknown language: "'+e+'"');E(d);var n,b=r||d,i={},p="";for(n=b;n!==d;n=n.parent)n.cN&&(p=o(n.cN,"",!0)+p);var m="",f=0;try{for(var s,g,_=0;b.t.lastIndex=_,s=b.t.exec(t);)g=a(t.substring(_,s.index),s[0]),_=s.index+g;for(a(t.substr(_)),n=b;n.parent;n=n.parent)n.cN&&(p+=N);return{r:f,value:p,language:e,top:b}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:y(t)};throw e}}function x(r,e){e=e||v.languages||o(h);var a={r:0,value:y(r)},n=a;return e.filter(C).filter(l).forEach(function(e){var t=k(e,r,!1);t.language=e,t.r>n.r&&(n=t),t.r>a.r&&(n=a,a=t)}),n.language&&(a.second_best=n),a}function M(e){return v.tabReplace||v.useBR?e.replace(r,function(e,t){return v.useBR&&"\n"===e?" ":v.tabReplace?t.replace(/\t/g,v.tabReplace):""}):e}function s(e){var t,r,a,n,i,s,c,o,l,u,d=function(e){var t,r,a,n,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",r=m.exec(i))return C(r[1])?r[1]:"no-highlight";for(t=0,a=(i=i.split(/\s+/)).length;t/g,"\n"):t=e,i=t.textContent,a=d?k(d,i,!0):x(i),(r=_(t)).length&&((n=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=a.value,a.value=function(e,t,r){var a=0,n="",i=[];function s(){return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset"}function o(e){n+=""+f(e)+">"}function l(e){("start"===e.event?c:o)(e.node)}for(;e.length||t.length;){var u=s();if(n+=y(r.substring(a,u[0].offset)),a=u[0].offset,u===e){for(i.reverse().forEach(o);l(u.splice(0,1)[0]),(u=s())===e&&u.length&&u[0].offset===a;);i.reverse().forEach(c)}else"start"===u[0].event?i.push(u[0].node):i.pop(),l(u.splice(0,1)[0])}return n+y(r.substr(a))}(r,_(n),i)),a.value=M(a.value),e.innerHTML=a.value,e.className=(s=e.className,c=d,o=a.language,l=c?p[c]:o,u=[s.trim()],s.match(/\bhljs\b/)||u.push("hljs"),-1===s.indexOf(l)&&u.push(l),u.join(" ").trim()),e.result={language:a.language,re:a.r},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.r}))}function c(){if(!c.called){c.called=!0;var e=document.querySelectorAll("pre code");b.forEach.call(e,s)}}function C(e){return e=(e||"").toLowerCase(),h[e]||h[p[e]]}function l(e){var t=C(e);return t&&!t.disableAutodetect}return n.highlight=k,n.highlightAuto=x,n.fixMarkup=M,n.highlightBlock=s,n.configure=function(e){v=u(v,e)},n.initHighlighting=c,n.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",c,!1),addEventListener("load",c,!1)},n.registerLanguage=function(t,e){var r=h[t]=e(n);i(r),r.aliases&&r.aliases.forEach(function(e){p[e]=t})},n.listLanguages=function(){return o(h)},n.getLanguage=C,n.autoDetection=l,n.inherit=u,n.IR=n.IDENT_RE="[a-zA-Z]\\w*",n.UIR=n.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",n.NR=n.NUMBER_RE="\\b\\d+(\\.\\d+)?",n.CNR=n.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",n.BNR=n.BINARY_NUMBER_RE="\\b(0b[01]+)",n.RSR=n.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",n.BE=n.BACKSLASH_ESCAPE={b:"\\\\[\\s\\S]",r:0},n.ASM=n.APOS_STRING_MODE={cN:"string",b:"'",e:"'",i:"\\n",c:[n.BE]},n.QSM=n.QUOTE_STRING_MODE={cN:"string",b:'"',e:'"',i:"\\n",c:[n.BE]},n.PWM=n.PHRASAL_WORDS_MODE={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},n.C=n.COMMENT=function(e,t,r){var a=n.inherit({cN:"comment",b:e,e:t,c:[]},r||{});return a.c.push(n.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},n.CLCM=n.C_LINE_COMMENT_MODE=n.C("//","$"),n.CBCM=n.C_BLOCK_COMMENT_MODE=n.C("/\\*","\\*/"),n.HCM=n.HASH_COMMENT_MODE=n.C("#","$"),n.NM=n.NUMBER_MODE={cN:"number",b:n.NR,r:0},n.CNM=n.C_NUMBER_MODE={cN:"number",b:n.CNR,r:0},n.BNM=n.BINARY_NUMBER_MODE={cN:"number",b:n.BNR,r:0},n.CSSNM=n.CSS_NUMBER_MODE={cN:"number",b:n.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},n.RM=n.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[n.BE,{b:/\[/,e:/\]/,r:0,c:[n.BE]}]},n.TM=n.TITLE_MODE={cN:"title",b:n.IR,r:0},n.UTM=n.UNDERSCORE_TITLE_MODE={cN:"title",b:n.UIR,r:0},n.METHOD_GUARD={b:"\\.\\s*"+n.UIR,r:0},n.registerLanguage("apache",function(e){var t={cN:"number",b:"[\\$%]\\d+"};return{aliases:["apacheconf"],cI:!0,c:[e.HCM,{cN:"section",b:"?",e:">"},{cN:"attribute",b:/\w+/,r:0,k:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"meta",b:"\\s\\[",e:"\\]$"},{cN:"variable",b:"[\\$%]\\{",e:"\\}",c:["self",t]},t,e.QSM]}}],i:/\S/}}),n.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},r={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]};return{aliases:["sh","zsh"],l:/\b-?[a-z\._]+\b/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,r,{cN:"string",b:/'/,e:/'/},t]}}),n.registerLanguage("coffeescript",function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super yield import export from as default await then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},r="[A-Za-z$_][0-9A-Za-z$_]*",a={cN:"subst",b:/#\{/,e:/}/,k:t},n=[e.BNM,e.inherit(e.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/"""/,e:/"""/,c:[e.BE,a]},{b:/"/,e:/"/,c:[e.BE,a]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[a,e.HCM]},{b:"//[gim]*",r:0},{b:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{b:"@"+r},{sL:"javascript",eB:!0,eE:!0,v:[{b:"```",e:"```"},{b:"`",e:"`"}]}];a.c=n;var i=e.inherit(e.TM,{b:r}),s="(\\(.*\\))?\\s*\\B[-=]>",c={cN:"params",b:"\\([^\\(]",rB:!0,c:[{b:/\(/,e:/\)/,k:t,c:["self"].concat(n)}]};return{aliases:["coffee","cson","iced"],k:t,i:/\/\*/,c:n.concat([e.C("###","###"),e.HCM,{cN:"function",b:"^\\s*"+r+"\\s*=\\s*"+s,e:"[-=]>",rB:!0,c:[i,c]},{b:/[:\(,=]\s*/,r:0,c:[{cN:"function",b:s,e:"[-=]>",rB:!0,c:[c]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:!0,i:/[:="\[\]]/,c:[i]},i]},{b:r+":",e:":",rB:!0,rE:!0,r:0}])}}),n.registerLanguage("cpp",function(e){var t={cN:"keyword",b:"\\b[a-z\\d_]*_t\\b"},r={cN:"string",v:[{b:'(u8?|U|L)?"',e:'"',i:"\\n",c:[e.BE]},{b:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\((?:.|\n)*?\)\1"/},{b:"'\\\\?.",e:"'",i:"."}]},a={cN:"number",v:[{b:"\\b(0b[01']+)"},{b:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{b:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],r:0},n={cN:"meta",b:/#\s*[a-z]+\b/,e:/$/,k:{"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"},c:[{b:/\\\n/,r:0},e.inherit(r,{cN:"meta-string"}),{cN:"meta-string",b:/<[^\n>]*>/,e:/$/,i:"\\n"},e.CLCM,e.CBCM]},i=e.IR+"\\s*\\(",s={keyword:"int float while private char catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile assets protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and or not",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr",literal:"true false nullptr NULL"},c=[t,e.CLCM,e.CBCM,a,r];return{aliases:["c","cc","h","c++","h++","hpp"],k:s,i:"",c:c.concat([n,{b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:s,c:["self",t]},{b:e.IR+"::",k:s},{v:[{b:/=/,e:/;/},{b:/\(/,e:/\)/},{bK:"new throw return else",e:/;/}],k:s,c:c.concat([{b:/\(/,e:/\)/,k:s,c:c.concat(["self"]),r:0}]),r:0},{cN:"function",b:"("+e.IR+"[\\*&\\s]+)+"+i,rB:!0,e:/[{;=]/,eE:!0,k:s,i:/[^\w\s\*&]/,c:[{b:i,rB:!0,c:[e.TM],r:0},{cN:"params",b:/\(/,e:/\)/,k:s,r:0,c:[e.CLCM,e.CBCM,r,a,t,{b:/\(/,e:/\)/,k:s,r:0,c:["self",e.CLCM,e.CBCM,r,a,t]}]},e.CLCM,e.CBCM,n]},{cN:"class",bK:"class struct",e:/[{;:]/,c:[{b:/,e:/>/,c:["self"]},e.TM]}]),exports:{preprocessor:n,strings:r,k:s}}}),n.registerLanguage("cs",function(e){var t={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long nameof object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc assets string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let on orderby partial remove select set value var where yield",literal:"null false true"},r={cN:"number",v:[{b:"\\b(0b[01']+)"},{b:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{b:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],r:0},a={cN:"string",b:'@"',e:'"',c:[{b:'""'}]},n=e.inherit(a,{i:/\n/}),i={cN:"subst",b:"{",e:"}",k:t},s=e.inherit(i,{i:/\n/}),c={cN:"string",b:/\$"/,e:'"',i:/\n/,c:[{b:"{{"},{b:"}}"},e.BE,s]},o={cN:"string",b:/\$@"/,e:'"',c:[{b:"{{"},{b:"}}"},{b:'""'},i]},l=e.inherit(o,{i:/\n/,c:[{b:"{{"},{b:"}}"},{b:'""'},s]});i.c=[o,c,a,e.ASM,e.QSM,r,e.CBCM],s.c=[l,c,n,e.ASM,e.QSM,r,e.inherit(e.CBCM,{i:/\n/})];var u={v:[o,c,a,e.ASM,e.QSM]},d=e.IR+"(<"+e.IR+"(\\s*,\\s*"+e.IR+")*>)?(\\[\\])?";return{aliases:["csharp","c#"],k:t,i:/::/,c:[e.C("///","$",{rB:!0,c:[{cN:"doctag",v:[{b:"///",r:0},{b:"\x3c!--|--\x3e"},{b:"?",e:">"}]}]}),e.CLCM,e.CBCM,{cN:"meta",b:"#",e:"$",k:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},u,r,{bK:"class interface",e:/[{;=]/,i:/[^\s:,]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:"namespace",e:/[{;=]/,i:/[^\s:]/,c:[e.inherit(e.TM,{b:"[a-zA-Z](\\.?\\w)*"}),e.CLCM,e.CBCM]},{cN:"meta",b:"^\\s*\\[",eB:!0,e:"\\]",eE:!0,c:[{cN:"meta-string",b:/"/,e:/"/}]},{bK:"new return throw await else",r:0},{cN:"function",b:"("+d+"\\s+)+"+e.IR+"\\s*\\(",rB:!0,e:/\s*[{;=]/,eE:!0,k:t,c:[{b:e.IR+"\\s*\\(",rB:!0,c:[e.TM],r:0},{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,r:0,c:[u,r,e.CBCM]},e.CLCM,e.CBCM]}]}}),n.registerLanguage("css",function(e){var t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:"[a-zA-Z-][a-zA-Z0-9_-]*",r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}}),n.registerLanguage("diff",function(e){return{aliases:["patch"],c:[{cN:"meta",r:10,v:[{b:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"comment",v:[{b:/Index: /,e:/$/},{b:/={3,}/,e:/$/},{b:/^\-{3}/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+{3}/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"addition",b:"^\\!",e:"$"}]}}),n.registerLanguage("http",function(e){var t="HTTP/[0-9\\.]+";return{aliases:["https"],i:"\\S",c:[{b:"^"+t,e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{b:"^[A-Z]+ (.*?) "+t+"$",rB:!0,e:"$",c:[{cN:"string",b:" ",e:" ",eB:!0,eE:!0},{b:t},{cN:"keyword",b:"[A-Z]+"}]},{cN:"attribute",b:"^\\w",e:": ",eE:!0,i:"\\n|\\s|=",starts:{e:"$",r:0}},{b:"\\n\\n",starts:{sL:[],eW:!0}}]}}),n.registerLanguage("ini",function(e){var t={cN:"string",c:[e.BE],v:[{b:"'''",e:"'''",r:10},{b:'"""',e:'"""',r:10},{b:'"',e:'"'},{b:"'",e:"'"}]};return{aliases:["toml"],cI:!0,i:/\S/,c:[e.C(";","$"),e.HCM,{cN:"section",b:/^\s*\[+/,e:/\]+/},{b:/^[a-z0-9\[\]_\.-]+\s*=\s*/,e:"$",rB:!0,c:[{cN:"attr",b:/[a-z0-9\[\]_\.-]+/},{b:/=/,eW:!0,r:0,c:[{cN:"literal",b:/\bon|off|true|false|yes|no\b/},{cN:"variable",v:[{b:/\$[\w\d"][\w\d_]*/},{b:/\$\{(.*?)}/}]},t,{cN:"number",b:/([\+\-]+)?[\d]+_[\d_]+/},e.NM]}]}]}}),n.registerLanguage("java",function(e){var t="false synchronized int abstract float private char boolean var assets null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",r={cN:"number",b:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",r:0};return{aliases:["jsp"],k:t,i:/<\/|#/,c:[e.C("/\\*\\*","\\*/",{r:0,c:[{b:/\w+@/,r:0},{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:"class",bK:"class interface",e:/[{;=]/,eE:!0,k:"class interface",i:/[:"\[\]]/,c:[{bK:"extends implements"},e.UTM]},{bK:"new throw return else",r:0},{cN:"function",b:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UIR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:t,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,k:t,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},r,{cN:"meta",b:"@[A-Za-z]+"}]}}),n.registerLanguage("javascript",function(e){var t="[A-Za-z$_][0-9A-Za-z$_]*",r={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await assets import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},n={cN:"subst",b:"\\$\\{",e:"\\}",k:r,c:[]},i={cN:"string",b:"`",e:"`",c:[e.BE,n]};n.c=[e.ASM,e.QSM,i,a,e.RM];var s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:r,c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,i,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:t+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:t,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+t+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:t},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:r,c:s}]}]},{b:/,e:/(\/\w+|\w+\/)>/,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:[{b:/<\w+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:t}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:s}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor get set",e:/\{/,eE:!0}],i:/#(?!!)/}}),n.registerLanguage("json",function(e){var t={literal:"true false null"},r=[e.QSM,e.CNM],a={e:",",eW:!0,eE:!0,c:r,k:t},n={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(a,{b:/:/})],i:"\\S"},i={b:"\\[",e:"\\]",c:[e.inherit(a)],i:"\\S"};return r.splice(r.length,0,n,i),{c:r,k:t,i:"\\S"}}),n.registerLanguage("makefile",function(e){var t={cN:"variable",v:[{b:"\\$\\("+e.UIR+"\\)",c:[e.BE]},{b:/\$[@%\^\+\*]/}]},r={cN:"string",b:/"/,e:/"/,c:[e.BE,t]},a={cN:"variable",b:/\$\([\w-]+\s/,e:/\)/,k:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},c:[t]},n={b:"^"+e.UIR+"\\s*[:+?]?=",i:"\\n",rB:!0,c:[{b:"^"+e.UIR,e:"[:+?]?=",eE:!0}]},i={cN:"section",b:/^[^\s]+:/,e:/$/,c:[t]};return{aliases:["mk","mak"],k:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath",l:/[\w-]+/,c:[e.HCM,t,r,a,n,{cN:"meta",b:/^\.PHONY:/,e:/$/,k:{"meta-keyword":".PHONY"},l:/[\.\w]+/},i]}}),n.registerLanguage("xml",function(e){var t={eW:!0,i:/,r:0,c:[{cN:"attr",b:"[A-Za-z0-9\\._:-]+",r:0},{b:/=\s*/,r:0,c:[{cN:"string",endsParent:!0,v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},e.C("\x3c!--","--\x3e",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"meta",b:/<\?xml/,e:/\?>/,r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0},{b:'b"',e:'"',skip:!0},{b:"b'",e:"'",skip:!0},e.inherit(e.ASM,{i:null,cN:null,c:null,skip:!0}),e.inherit(e.QSM,{i:null,cN:null,c:null,skip:!0})]},{cN:"tag",b:"",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"