update theme

This commit is contained in:
Christoph Cullmann 2025-07-18 21:45:32 +02:00
parent fc43dba964
commit 93fea0ed81
No known key found for this signature in database
183 changed files with 6015 additions and 6241 deletions

View file

@ -0,0 +1,10 @@
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
[*.md]
trim_trailing_whitespace = false

View file

@ -0,0 +1,35 @@
# https://github.com/gohugoio/hugo/blob/b39b24962350090122b5f3927456dde710cffb57/docs/.prettierignore
# https://github.com/gohugoio/hugo/blob/b39b24962350090122b5f3927456dde710cffb57/docs/.prettierrc
# develop
.vscode
node_modules
package.json
# Hugo
assets/lib
assets/css/compiled
content
themes
public
static
*.md
# Invalid nodes and unexpected tokens, mostly caused by unmatched tags in Hugo statements.
# For example:
# {{ with .Params.externalUrl }}
# <a href="{{ . }}">
# {{ else }}
# <a href="{{ .RelPermalink }}" class="min-w-full">
# {{ end }}
#
# This create an unclose node
layouts/_default/_markup/render-heading.html
layouts/_default/index.json
layouts/_default/list.html
layouts/shortcodes/screenshot.html
layouts/shortcodes/figure.html
layouts/partials/hugo-embedded/shortcodes/figure-default.html
assets/js/appearance.js

View file

@ -0,0 +1,46 @@
{
"singleQuote": false,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"trailingComma": "all",
"proseWrap": "always",
"plugins": [
"@awmottaz/prettier-plugin-void-html",
"prettier-plugin-go-template",
"prettier-plugin-tailwindcss"
],
"overrides": [
{
"files": ["*.html"],
"options": {
"useTabs": false,
"parser": "go-template",
"goTemplateBracketSpacing": true,
"printWidth": 112,
"bracketSameLine": true
}
},
{
"files": ["*.js", "*.mjs", "*.mts", "*.ts"],
"options": {
"semi": true,
"useTabs": false,
"printWidth": 112,
"singleQuote": false
}
},
{
"files": ["*.yml", "*.yaml"],
"options": {
"singleQuote": false
}
},
{
"files": ["*.json*"],
"options": {
"trailingComma": "none"
}
}
]
}

View file

@ -12,7 +12,7 @@
- Great! Open a new GitHub pull request with the patch. - Great! Open a new GitHub pull request with the patch.
- All development occurs on the `dev` branch and new PRs should be forked from here. - All development occurs on the `dev` branch and new PRs should be forked from here.
- The command `npm run example` can be used to test local changes using the example site. - The commands `npm run example`, `npm run example:core`, and `npm run example:production` can be used to test local changes using the example site.
- Ensure the PR description clearly describes the problem and solution. Include the relevant issue number, if applicable. - Ensure the PR description clearly describes the problem and solution. Include the relevant issue number, if applicable.
- **Before submitting**, check the [coding conventions](#coding-conventions) section below to learn more about coding and commit message expectations. - **Before submitting**, check the [coding conventions](#coding-conventions) section below to learn more about coding and commit message expectations.
@ -45,7 +45,7 @@ The project includes a Prettier config that helps to format code in line with th
#### Commit message guidelines #### Commit message guidelines
- Use [Gitmoji](https://gitmoji.dev) in commit messages to provide context. - Use [Gitmoji](https://gitmoji.dev) in PR messages to provide context.
- Clearly describe the change with a short summary in the first 72 characters. - Clearly describe the change with a short summary in the first 72 characters.
- Place more detailed explanations in paragraphs below the summary, separated by a blank line. - Place more detailed explanations in paragraphs below the summary, separated by a blank line.
- Use imperative language (ie. "Fix bug", not "Fixed bug" or "Fixes bug"). - Use imperative language (ie. "Fix bug", not "Fixed bug" or "Fixes bug").

View file

@ -1,2 +1,6 @@
github: [nunocoracao] github: [nunocoracao]
custom: ["https://www.paypal.me/nunocoracao", "https://www.buymeacoffee.com/nunocoracao"] custom:
[
"https://www.paypal.me/nunocoracao",
"https://www.buymeacoffee.com/nunocoracao",
]

View file

@ -1,4 +1,4 @@
/*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
/*! Blowfish | MIT License | https://github.com/nunocoracao/blowfish */ /*! Blowfish | MIT License | https://github.com/nunocoracao/blowfish */
@layer properties; @layer properties;
#zen-mode-button { #zen-mode-button {
@ -284,18 +284,33 @@ body.zen-mode-enable {
.left-0 { .left-0 {
left: calc(var(--spacing) * 0); left: calc(var(--spacing) * 0);
} }
.left-\[calc\(max\(-50vw\,-800px\)\+50\%\)\] {
left: calc(max(-50vw, -800px) + 50%);
}
.-z-10 {
z-index: calc(10 * -1);
}
.z-2 {
z-index: 2;
}
.z-10 { .z-10 {
z-index: 10; z-index: 10;
} }
.z-30 { .z-30 {
z-index: 30; z-index: 30;
} }
.z-80 {
z-index: 80;
}
.z-100 {
z-index: 100;
}
.z-500 {
z-index: 500;
}
.z-\[1\] { .z-\[1\] {
z-index: 1; z-index: 1;
} }
.z-\[2\] {
z-index: 2;
}
.z-\[999\] { .z-\[999\] {
z-index: 999; z-index: 999;
} }
@ -392,15 +407,9 @@ body.zen-mode-enable {
color: var(--tw-prose-links); color: var(--tw-prose-links);
text-decoration: none; text-decoration: none;
font-weight: 500; font-weight: 500;
text-decoration-color: color-mix(in srgb, rgba(rgba(var(--color-primary-300), 1), 1) 100%, transparent); text-decoration-color: rgba(var(--color-primary-300), 1);
@supports (color: color-mix(in lab, red, red)) {
text-decoration-color: color-mix(in oklab, rgba(var(--color-primary-300), 1) 100%, transparent);
}
&:hover { &:hover {
color: color-mix(in srgb, rgba(rgba(var(--color-primary-600), 1), 1) 100%, transparent); color: rgba(var(--color-primary-600), 1);
@supports (color: color-mix(in lab, red, red)) {
color: color-mix(in oklab, rgba(var(--color-primary-600), 1) 100%, transparent);
}
text-decoration: none; text-decoration: none;
border-radius: 0.09rem; border-radius: 0.09rem;
} }
@ -563,20 +572,14 @@ body.zen-mode-enable {
padding-inline-end: 0.375em; padding-inline-end: 0.375em;
padding-bottom: 0.1875em; padding-bottom: 0.1875em;
padding-inline-start: 0.375em; padding-inline-start: 0.375em;
background-color: color-mix(in srgb, rgba(rgba(var(--color-neutral-200), 1), 1) 100%, transparent); background-color: rgba(var(--color-neutral-200), 1);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, rgba(var(--color-neutral-200), 1) 100%, transparent);
}
padding: 0.1rem 0.4rem; padding: 0.1rem 0.4rem;
} }
:where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
color: var(--tw-prose-code); color: var(--tw-prose-code);
font-weight: 600; font-weight: 600;
font-size: 0.875em; font-size: 0.875em;
background-color: color-mix(in srgb, rgba(rgba(var(--color-neutral-50), 1), 1) 100%, transparent); background-color: rgba(var(--color-neutral-50), 1);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, rgba(var(--color-neutral-50), 1) 100%, transparent);
}
padding-top: 3px; padding-top: 3px;
padding-bottom: 3px; padding-bottom: 3px;
padding-left: 5px; padding-left: 5px;
@ -696,138 +699,42 @@ body.zen-mode-enable {
line-height: 1.4285714; line-height: 1.4285714;
margin-top: 0.8571429em; margin-top: 0.8571429em;
} }
--tw-prose-body: color-mix(in srgb, rgba(rgba(var(--color-neutral-700), 1), 1) 100%, transparent); --tw-prose-body: rgba(var(--color-neutral-700), 1);
@supports (color: color-mix(in lab, red, red)) { --tw-prose-headings: rgba(var(--color-neutral-800), 1);
--tw-prose-body: color-mix(in oklab, rgba(var(--color-neutral-700), 1) 100%, transparent); --tw-prose-lead: rgba(var(--color-neutral-500), 1);
} --tw-prose-links: rgba(var(--color-primary-600), 1);
--tw-prose-headings: color-mix(in srgb, rgba(rgba(var(--color-neutral-800), 1), 1) 100%, transparent); --tw-prose-bold: rgba(var(--color-neutral-900), 1);
@supports (color: color-mix(in lab, red, red)) { --tw-prose-counters: rgba(var(--color-neutral-800), 1);
--tw-prose-headings: color-mix(in oklab, rgba(var(--color-neutral-800), 1) 100%, transparent); --tw-prose-bullets: rgba(var(--color-neutral-500), 1);
} --tw-prose-hr: rgba(var(--color-neutral-200), 1);
--tw-prose-lead: color-mix(in srgb, rgba(rgba(var(--color-neutral-500), 1), 1) 100%, transparent); --tw-prose-quotes: rgba(var(--color-neutral-700), 1);
@supports (color: color-mix(in lab, red, red)) { --tw-prose-quote-borders: rgba(var(--color-primary-200), 1);
--tw-prose-lead: color-mix(in oklab, rgba(var(--color-neutral-500), 1) 100%, transparent); --tw-prose-captions: rgba(var(--color-neutral-500), 1);
}
--tw-prose-links: color-mix(in srgb, rgba(rgba(var(--color-primary-600), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-links: color-mix(in oklab, rgba(var(--color-primary-600), 1) 100%, transparent);
}
--tw-prose-bold: color-mix(in srgb, rgba(rgba(var(--color-neutral-900), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-bold: color-mix(in oklab, rgba(var(--color-neutral-900), 1) 100%, transparent);
}
--tw-prose-counters: color-mix(in srgb, rgba(rgba(var(--color-neutral-800), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-counters: color-mix(in oklab, rgba(var(--color-neutral-800), 1) 100%, transparent);
}
--tw-prose-bullets: color-mix(in srgb, rgba(rgba(var(--color-neutral-500), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-bullets: color-mix(in oklab, rgba(var(--color-neutral-500), 1) 100%, transparent);
}
--tw-prose-hr: color-mix(in srgb, rgba(rgba(var(--color-neutral-200), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-hr: color-mix(in oklab, rgba(var(--color-neutral-200), 1) 100%, transparent);
}
--tw-prose-quotes: color-mix(in srgb, rgba(rgba(var(--color-neutral-700), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-quotes: color-mix(in oklab, rgba(var(--color-neutral-700), 1) 100%, transparent);
}
--tw-prose-quote-borders: color-mix(in srgb, rgba(rgba(var(--color-primary-200), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-quote-borders: color-mix(in oklab, rgba(var(--color-primary-200), 1) 100%, transparent);
}
--tw-prose-captions: color-mix(in srgb, rgba(rgba(var(--color-neutral-500), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-captions: color-mix(in oklab, rgba(var(--color-neutral-500), 1) 100%, transparent);
}
--tw-prose-kbd: oklch(21% 0.034 264.665); --tw-prose-kbd: oklch(21% 0.034 264.665);
--tw-prose-kbd-shadows: NaN NaN NaN; --tw-prose-kbd-shadows: NaN NaN NaN;
--tw-prose-code: color-mix(in srgb, rgba(rgba(var(--color-secondary-700), 1), 1) 100%, transparent); --tw-prose-code: rgba(var(--color-secondary-700), 1);
@supports (color: color-mix(in lab, red, red)) { --tw-prose-pre-code: rgba(var(--color-neutral-700), 1);
--tw-prose-code: color-mix(in oklab, rgba(var(--color-secondary-700), 1) 100%, transparent); --tw-prose-pre-bg: rgba(var(--color-neutral-50), 1);
} --tw-prose-th-borders: rgba(var(--color-neutral-500), 1);
--tw-prose-pre-code: color-mix(in srgb, rgba(rgba(var(--color-neutral-700), 1), 1) 100%, transparent); --tw-prose-td-borders: rgba(var(--color-neutral-300), 1);
@supports (color: color-mix(in lab, red, red)) { --tw-prose-invert-body: rgba(var(--color-neutral-300), 1);
--tw-prose-pre-code: color-mix(in oklab, rgba(var(--color-neutral-700), 1) 100%, transparent); --tw-prose-invert-headings: rgba(var(--color-neutral-50), 1);
} --tw-prose-invert-lead: rgba(var(--color-neutral-500), 1);
--tw-prose-pre-bg: color-mix(in srgb, rgba(rgba(var(--color-neutral-50), 1), 1) 100%, transparent); --tw-prose-invert-links: rgba(var(--color-primary-400), 1);
@supports (color: color-mix(in lab, red, red)) { --tw-prose-invert-bold: rgba(var(--color-neutral), 1);
--tw-prose-pre-bg: color-mix(in oklab, rgba(var(--color-neutral-50), 1) 100%, transparent); --tw-prose-invert-counters: rgba(var(--color-neutral-400), 1);
} --tw-prose-invert-bullets: rgba(var(--color-neutral-600), 1);
--tw-prose-th-borders: color-mix(in srgb, rgba(rgba(var(--color-neutral-500), 1), 1) 100%, transparent); --tw-prose-invert-hr: rgba(var(--color-neutral-500), 1);
@supports (color: color-mix(in lab, red, red)) { --tw-prose-invert-quotes: rgba(var(--color-neutral-200), 1);
--tw-prose-th-borders: color-mix(in oklab, rgba(var(--color-neutral-500), 1) 100%, transparent); --tw-prose-invert-quote-borders: rgba(var(--color-primary-900), 1);
} --tw-prose-invert-captions: rgba(var(--color-neutral-400), 1);
--tw-prose-td-borders: color-mix(in srgb, rgba(rgba(var(--color-neutral-300), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-td-borders: color-mix(in oklab, rgba(var(--color-neutral-300), 1) 100%, transparent);
}
--tw-prose-invert-body: color-mix(in srgb, rgba(rgba(var(--color-neutral-300), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-body: color-mix(in oklab, rgba(var(--color-neutral-300), 1) 100%, transparent);
}
--tw-prose-invert-headings: color-mix(in srgb, rgba(rgba(var(--color-neutral-50), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-headings: color-mix(in oklab, rgba(var(--color-neutral-50), 1) 100%, transparent);
}
--tw-prose-invert-lead: color-mix(in srgb, rgba(rgba(var(--color-neutral-500), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-lead: color-mix(in oklab, rgba(var(--color-neutral-500), 1) 100%, transparent);
}
--tw-prose-invert-links: color-mix(in srgb, rgba(rgba(var(--color-primary-400), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-links: color-mix(in oklab, rgba(var(--color-primary-400), 1) 100%, transparent);
}
--tw-prose-invert-bold: color-mix(in srgb, rgba(rgba(var(--color-neutral), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-bold: color-mix(in oklab, rgba(var(--color-neutral), 1) 100%, transparent);
}
--tw-prose-invert-counters: color-mix(in srgb, rgba(rgba(var(--color-neutral-400), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-counters: color-mix(in oklab, rgba(var(--color-neutral-400), 1) 100%, transparent);
}
--tw-prose-invert-bullets: color-mix(in srgb, rgba(rgba(var(--color-neutral-600), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-bullets: color-mix(in oklab, rgba(var(--color-neutral-600), 1) 100%, transparent);
}
--tw-prose-invert-hr: color-mix(in srgb, rgba(rgba(var(--color-neutral-500), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-hr: color-mix(in oklab, rgba(var(--color-neutral-500), 1) 100%, transparent);
}
--tw-prose-invert-quotes: color-mix(in srgb, rgba(rgba(var(--color-neutral-200), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-quotes: color-mix(in oklab, rgba(var(--color-neutral-200), 1) 100%, transparent);
}
--tw-prose-invert-quote-borders: color-mix(in srgb, rgba(rgba(var(--color-primary-900), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-quote-borders: color-mix(in oklab, rgba(var(--color-primary-900), 1) 100%, transparent);
}
--tw-prose-invert-captions: color-mix(in srgb, rgba(rgba(var(--color-neutral-400), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-captions: color-mix(in oklab, rgba(var(--color-neutral-400), 1) 100%, transparent);
}
--tw-prose-invert-kbd: #fff; --tw-prose-invert-kbd: #fff;
--tw-prose-invert-kbd-shadows: 255 255 255; --tw-prose-invert-kbd-shadows: 255 255 255;
--tw-prose-invert-code: color-mix(in srgb, rgba(rgba(var(--color-secondary-400), 1), 1) 100%, transparent); --tw-prose-invert-code: rgba(var(--color-secondary-400), 1);
@supports (color: color-mix(in lab, red, red)) { --tw-prose-invert-pre-code: rgba(var(--color-neutral-200), 1);
--tw-prose-invert-code: color-mix(in oklab, rgba(var(--color-secondary-400), 1) 100%, transparent); --tw-prose-invert-pre-bg: rgba(var(--color-neutral-700), 1);
} --tw-prose-invert-th-borders: rgba(var(--color-neutral-500), 1);
--tw-prose-invert-pre-code: color-mix(in srgb, rgba(rgba(var(--color-neutral-200), 1), 1) 100%, transparent); --tw-prose-invert-td-borders: rgba(var(--color-neutral-700), 1);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-pre-code: color-mix(in oklab, rgba(var(--color-neutral-200), 1) 100%, transparent);
}
--tw-prose-invert-pre-bg: color-mix(in srgb, rgba(rgba(var(--color-neutral-700), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-pre-bg: color-mix(in oklab, rgba(var(--color-neutral-700), 1) 100%, transparent);
}
--tw-prose-invert-th-borders: color-mix(in srgb, rgba(rgba(var(--color-neutral-500), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-th-borders: color-mix(in oklab, rgba(var(--color-neutral-500), 1) 100%, transparent);
}
--tw-prose-invert-td-borders: color-mix(in srgb, rgba(rgba(var(--color-neutral-700), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-prose-invert-td-borders: color-mix(in oklab, rgba(var(--color-neutral-700), 1) 100%, transparent);
}
font-size: 1rem; font-size: 1rem;
line-height: 1.75; line-height: 1.75;
:where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
@ -913,14 +820,8 @@ body.zen-mode-enable {
margin-bottom: 0; margin-bottom: 0;
} }
:where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
color: color-mix(in srgb, rgba(rgba(var(--color-neutral-800), 1), 1) 100%, transparent); color: rgba(var(--color-neutral-800), 1);
@supports (color: color-mix(in lab, red, red)) { background-color: rgba(var(--color-primary-600), 1);
color: color-mix(in oklab, rgba(var(--color-neutral-800), 1) 100%, transparent);
}
background-color: color-mix(in srgb, rgba(rgba(var(--color-primary-600), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, rgba(var(--color-primary-600), 1) 100%, transparent);
}
padding: 0.1rem 0.2rem; padding: 0.1rem 0.2rem;
border-radius: 0.25rem; border-radius: 0.25rem;
} }
@ -931,21 +832,21 @@ body.zen-mode-enable {
display: none; display: none;
} }
:where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
text-decoration-color: color-mix(in srgb, rgba(rgba(var(--color-primary-600), 1), 1) 100%, transparent); text-decoration-color: rgba(var(--color-primary-600), 1);
@supports (color: color-mix(in lab, red, red)) {
text-decoration-color: color-mix(in oklab, rgba(var(--color-primary-600), 1) 100%, transparent);
}
} }
:where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
text-decoration-color: color-mix(in srgb, rgba(rgba(var(--color-primary-600), 1), 1) 100%, transparent); text-decoration-color: rgba(var(--color-primary-600), 1);
@supports (color: color-mix(in lab, red, red)) {
text-decoration-color: color-mix(in oklab, rgba(var(--color-primary-600), 1) 100%, transparent);
}
} }
} }
.\!mt-0 { .\!mt-0 {
margin-top: calc(var(--spacing) * 0) !important; margin-top: calc(var(--spacing) * 0) !important;
} }
.-mt-\[2px\] {
margin-top: calc(2px * -1);
}
.-mt-\[15px\] {
margin-top: calc(15px * -1);
}
.mt-0 { .mt-0 {
margin-top: calc(var(--spacing) * 0); margin-top: calc(var(--spacing) * 0);
} }
@ -979,18 +880,21 @@ body.zen-mode-enable {
.mt-20 { .mt-20 {
margin-top: calc(var(--spacing) * 20); margin-top: calc(var(--spacing) * 20);
} }
.mt-\[-2px\] {
margin-top: -2px;
}
.mt-\[0\.1rem\] { .mt-\[0\.1rem\] {
margin-top: 0.1rem; margin-top: 0.1rem;
} }
.mt-\[0\.5rem\] {
margin-top: 0.5rem;
}
.-mr-48 { .-mr-48 {
margin-right: calc(var(--spacing) * -48); margin-right: calc(var(--spacing) * -48);
} }
.-mr-\[100\%\] { .-mr-\[100\%\] {
margin-right: calc(100% * -1); margin-right: calc(100% * -1);
} }
.mr-0 {
margin-right: calc(var(--spacing) * 0);
}
.mr-1 { .mr-1 {
margin-right: calc(var(--spacing) * 1); margin-right: calc(var(--spacing) * 1);
} }
@ -1003,6 +907,9 @@ body.zen-mode-enable {
.mr-5 { .mr-5 {
margin-right: calc(var(--spacing) * 5); margin-right: calc(var(--spacing) * 5);
} }
.mr-\[10px\] {
margin-right: 10px;
}
.mr-auto { .mr-auto {
margin-right: auto; margin-right: auto;
} }
@ -1054,6 +961,9 @@ body.zen-mode-enable {
.-ml-12 { .-ml-12 {
margin-left: calc(var(--spacing) * -12); margin-left: calc(var(--spacing) * -12);
} }
.ml-0 {
margin-left: calc(var(--spacing) * 0);
}
.ml-2 { .ml-2 {
margin-left: calc(var(--spacing) * 2); margin-left: calc(var(--spacing) * 2);
} }
@ -1507,8 +1417,8 @@ body.zen-mode-enable {
.overflow-visible { .overflow-visible {
overflow: visible; overflow: visible;
} }
.overflow-y-scroll { .overflow-y-auto {
overflow-y: scroll; overflow-y: auto;
} }
.overscroll-contain { .overscroll-contain {
overscroll-behavior: contain; overscroll-behavior: contain;
@ -1649,50 +1559,26 @@ body.zen-mode-enable {
--tw-prose-th-borders: var(--tw-prose-invert-th-borders); --tw-prose-th-borders: var(--tw-prose-invert-th-borders);
--tw-prose-td-borders: var(--tw-prose-invert-td-borders); --tw-prose-td-borders: var(--tw-prose-invert-td-borders);
:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
text-decoration-color: color-mix(in srgb, rgba(rgba(var(--color-neutral-600), 1), 1) 100%, transparent); text-decoration-color: rgba(var(--color-neutral-600), 1);
@supports (color: color-mix(in lab, red, red)) {
text-decoration-color: color-mix(in oklab, rgba(var(--color-neutral-600), 1) 100%, transparent);
}
&:hover { &:hover {
color: color-mix(in srgb, rgba(rgba(var(--color-primary-400), 1), 1) 100%, transparent); color: rgba(var(--color-primary-400), 1);
@supports (color: color-mix(in lab, red, red)) {
color: color-mix(in oklab, rgba(var(--color-primary-400), 1) 100%, transparent);
}
} }
} }
:where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
color: color-mix(in srgb, rgba(rgba(var(--color-neutral-200), 1), 1) 100%, transparent); color: rgba(var(--color-neutral-200), 1);
@supports (color: color-mix(in lab, red, red)) { background-color: rgba(var(--color-neutral-700), 1);
color: color-mix(in oklab, rgba(var(--color-neutral-200), 1) 100%, transparent);
}
background-color: color-mix(in srgb, rgba(rgba(var(--color-neutral-700), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, rgba(var(--color-neutral-700), 1) 100%, transparent);
}
} }
:where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
background-color: color-mix(in srgb, rgba(rgba(var(--color-primary-400), 1), 1) 100%, transparent); background-color: rgba(var(--color-primary-400), 1);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, rgba(var(--color-primary-400), 1) 100%, transparent);
}
} }
:where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
background-color: color-mix(in srgb, rgba(rgba(var(--color-neutral-700), 1), 1) 100%, transparent); background-color: rgba(var(--color-neutral-700), 1);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, rgba(var(--color-neutral-700), 1) 100%, transparent);
}
} }
:where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
text-decoration-color: color-mix(in srgb, rgba(rgba(var(--color-primary-400), 1), 1) 100%, transparent); text-decoration-color: rgba(var(--color-primary-400), 1);
@supports (color: color-mix(in lab, red, red)) {
text-decoration-color: color-mix(in oklab, rgba(var(--color-primary-400), 1) 100%, transparent);
}
} }
:where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
text-decoration-color: color-mix(in srgb, rgba(rgba(var(--color-primary-400), 1), 1) 100%, transparent); text-decoration-color: rgba(var(--color-primary-400), 1);
@supports (color: color-mix(in lab, red, red)) {
text-decoration-color: color-mix(in oklab, rgba(var(--color-primary-400), 1) 100%, transparent);
}
} }
} }
.bg-\[\#6d6d6d\] { .bg-\[\#6d6d6d\] {
@ -1887,6 +1773,15 @@ body.zen-mode-enable {
.pt-16 { .pt-16 {
padding-top: calc(var(--spacing) * 16); padding-top: calc(var(--spacing) * 16);
} }
.pt-\[2px\] {
padding-top: 2px;
}
.pt-\[5px\] {
padding-top: 5px;
}
.pr-0 {
padding-right: calc(var(--spacing) * 0);
}
.pr-\[24px\] { .pr-\[24px\] {
padding-right: 24px; padding-right: 24px;
} }
@ -1905,6 +1800,12 @@ body.zen-mode-enable {
.pb-32 { .pb-32 {
padding-bottom: calc(var(--spacing) * 32); padding-bottom: calc(var(--spacing) * 32);
} }
.pb-\[3px\] {
padding-bottom: 3px;
}
.pl-0 {
padding-left: calc(var(--spacing) * 0);
}
.pl-2 { .pl-2 {
padding-left: calc(var(--spacing) * 2); padding-left: calc(var(--spacing) * 2);
} }
@ -2215,7 +2116,7 @@ body.zen-mode-enable {
backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
} }
.transition { .transition {
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; 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, display, visibility, content-visibility, overlay, pointer-events;
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
transition-duration: var(--tw-duration, var(--default-transition-duration)); transition-duration: var(--tw-duration, var(--default-transition-duration));
} }
@ -3205,50 +3106,26 @@ body.zen-mode-enable {
--tw-prose-th-borders: var(--tw-prose-invert-th-borders); --tw-prose-th-borders: var(--tw-prose-invert-th-borders);
--tw-prose-td-borders: var(--tw-prose-invert-td-borders); --tw-prose-td-borders: var(--tw-prose-invert-td-borders);
:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
text-decoration-color: color-mix(in srgb, rgba(rgba(var(--color-neutral-600), 1), 1) 100%, transparent); text-decoration-color: rgba(var(--color-neutral-600), 1);
@supports (color: color-mix(in lab, red, red)) {
text-decoration-color: color-mix(in oklab, rgba(var(--color-neutral-600), 1) 100%, transparent);
}
&:hover { &:hover {
color: color-mix(in srgb, rgba(rgba(var(--color-primary-400), 1), 1) 100%, transparent); color: rgba(var(--color-primary-400), 1);
@supports (color: color-mix(in lab, red, red)) {
color: color-mix(in oklab, rgba(var(--color-primary-400), 1) 100%, transparent);
}
} }
} }
:where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
color: color-mix(in srgb, rgba(rgba(var(--color-neutral-200), 1), 1) 100%, transparent); color: rgba(var(--color-neutral-200), 1);
@supports (color: color-mix(in lab, red, red)) { background-color: rgba(var(--color-neutral-700), 1);
color: color-mix(in oklab, rgba(var(--color-neutral-200), 1) 100%, transparent);
}
background-color: color-mix(in srgb, rgba(rgba(var(--color-neutral-700), 1), 1) 100%, transparent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, rgba(var(--color-neutral-700), 1) 100%, transparent);
}
} }
:where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
background-color: color-mix(in srgb, rgba(rgba(var(--color-primary-400), 1), 1) 100%, transparent); background-color: rgba(var(--color-primary-400), 1);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, rgba(var(--color-primary-400), 1) 100%, transparent);
}
} }
:where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
background-color: color-mix(in srgb, rgba(rgba(var(--color-neutral-700), 1), 1) 100%, transparent); background-color: rgba(var(--color-neutral-700), 1);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, rgba(var(--color-neutral-700), 1) 100%, transparent);
}
} }
:where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
text-decoration-color: color-mix(in srgb, rgba(rgba(var(--color-primary-400), 1), 1) 100%, transparent); text-decoration-color: rgba(var(--color-primary-400), 1);
@supports (color: color-mix(in lab, red, red)) {
text-decoration-color: color-mix(in oklab, rgba(var(--color-primary-400), 1) 100%, transparent);
}
} }
:where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { :where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
text-decoration-color: color-mix(in srgb, rgba(rgba(var(--color-primary-400), 1), 1) 100%, transparent); text-decoration-color: rgba(var(--color-primary-400), 1);
@supports (color: color-mix(in lab, red, red)) {
text-decoration-color: color-mix(in oklab, rgba(var(--color-primary-400), 1) 100%, transparent);
}
} }
} }
} }
@ -3478,6 +3355,9 @@ body a, body button {
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
transition-duration: var(--tw-duration, var(--default-transition-duration)); transition-duration: var(--tw-duration, var(--default-transition-duration));
} }
button, [role="button"] {
cursor: pointer;
}
.icon svg { .icon svg {
height: 1em; height: 1em;
width: 1em; width: 1em;
@ -3534,6 +3414,16 @@ body a, body button {
.prose div.min-w-0.max-w-prose > *:first-child { .prose div.min-w-0.max-w-prose > *:first-child {
margin-top: calc(var(--spacing) * 3); margin-top: calc(var(--spacing) * 3);
} }
#TableOfContents {
@media (width >= 1024px) {
max-width: 25vw;
}
}
#TOCView {
max-height: calc(100vh - 150px);
min-height: 0;
overflow-x: hidden;
}
.toc ul, .toc li { .toc ul, .toc li {
list-style-type: none; list-style-type: none;
padding-inline: calc(var(--spacing) * 0); padding-inline: calc(var(--spacing) * 0);
@ -3579,6 +3469,10 @@ body a, body button {
z-index: 10; z-index: 10;
width: calc(var(--spacing) * 20); width: calc(var(--spacing) * 20);
cursor: pointer; cursor: pointer;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
border-top-right-radius: var(--radius-md); border-top-right-radius: var(--radius-md);
border-bottom-left-radius: var(--radius-md); border-bottom-left-radius: var(--radius-md);
background-color: rgba(var(--color-neutral-200), 1); background-color: rgba(var(--color-neutral-200), 1);
@ -3610,6 +3504,10 @@ body a, body button {
.katex-display { .katex-display {
overflow: auto hidden; overflow: auto hidden;
} }
.katex-display {
padding-right: 2px;
width: calc(100% - 2px);
}
table { table {
display: block; display: block;
overflow: auto; overflow: auto;
@ -3635,6 +3533,9 @@ a {
color: rgba(var(--color-neutral-200), 1); color: rgba(var(--color-neutral-200), 1);
} }
} }
.prose-invert .highlight pre > code {
background-color: unset;
}
.chroma .lntd, .chroma .lntd pre { .chroma .lntd, .chroma .lntd pre {
margin: calc(var(--spacing) * 0); margin: calc(var(--spacing) * 0);
--tw-border-style: none; --tw-border-style: none;
@ -3826,9 +3727,7 @@ pre {
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: cover; background-size: cover;
background-position: center; background-position: center;
width: calc(100% + 40px);
z-index: -10; z-index: -10;
margin-left: -20px;
} }
.hero_gradient { .hero_gradient {
width: 100%; width: 100%;
@ -3844,6 +3743,9 @@ pre {
height: 0px; height: 0px;
visibility: hidden; visibility: hidden;
} }
[id^="fn"], [id^="fnref"] {
scroll-margin-top: 145px;
}
@screen sm { @screen sm {
.thumbnail { .thumbnail {
min-width: 100%; min-width: 100%;

View file

@ -1,5 +1,5 @@
#zen-mode-button { #zen-mode-button {
cursor:pointer cursor: pointer;
} }
.zen-mode { .zen-mode {
@ -7,10 +7,8 @@
} }
body.zen-mode-enable { body.zen-mode-enable {
#bmc-wbtn, .author { #bmc-wbtn,
.author {
display: none !important; display: none !important;
} }
} }

View file

@ -1,6 +1,6 @@
/*! Blowfish | MIT License | https://github.com/nunocoracao/blowfish */ /*! Blowfish | MIT License | https://github.com/nunocoracao/blowfish */
@import './components/zen-mode.css'; @import "./components/zen-mode.css";
@import "tailwindcss"; @import "tailwindcss";
@config "../../tailwind.config.js"; @config "../../tailwind.config.js";
@ -10,6 +10,11 @@ body button {
@apply transition-colors; @apply transition-colors;
} }
button,
[role="button"] {
cursor: pointer;
}
/* Scale SVG icons to text size */ /* Scale SVG icons to text size */
.icon svg { .icon svg {
@apply h-[1em] w-[1em]; @apply h-[1em] w-[1em];
@ -59,6 +64,16 @@ body button {
} }
/* Table of Contents */ /* Table of Contents */
#TableOfContents {
@apply lg:max-w-[25vw];
}
#TOCView {
max-height: calc(100vh - 150px);
min-height: 0;
overflow-x: hidden;
}
.toc ul, .toc ul,
.toc li { .toc li {
@apply px-0 leading-snug list-none; @apply px-0 leading-snug list-none;
@ -90,7 +105,9 @@ body button {
} }
.copy-button { .copy-button {
@apply absolute top-0 right-0 z-10 invisible w-20 py-1 font-mono text-sm cursor-pointer opacity-90 bg-neutral-200 whitespace-nowrap rounded-bl-md rounded-tr-md text-neutral-700 dark:bg-neutral-600 dark:text-neutral-200; @apply absolute top-0 right-0 z-10 invisible w-20 py-1 font-mono text-sm cursor-pointer
opacity-90 bg-neutral-200 whitespace-nowrap rounded-bl-md rounded-tr-md text-neutral-700
dark:bg-neutral-600 dark:text-neutral-200 overflow-hidden truncate;
} }
.copy-button:hover, .copy-button:hover,
@ -105,7 +122,15 @@ body button {
} }
/* Fix long KaTeX equations on mobile (see https://katex.org/docs/issues.html#css-customization) */ /* Fix long KaTeX equations on mobile (see https://katex.org/docs/issues.html#css-customization) */
.katex-display { overflow: auto hidden } .katex-display {
overflow: auto hidden;
}
/* Fix katex overflow https://github.com/nunocoracao/blowfish/issues/2138 */
.katex-display {
padding-right: 2px;
width: calc(100% - 2px);
}
/* Fix long tables breaking out of article on mobile */ /* Fix long tables breaking out of article on mobile */
table { table {
@ -132,6 +157,10 @@ a {
@apply static rounded-md text-neutral-700 bg-neutral-50 dark:bg-neutral-700 dark:text-neutral-200; @apply static rounded-md text-neutral-700 bg-neutral-50 dark:bg-neutral-700 dark:text-neutral-200;
} }
.prose-invert .highlight pre > code {
background-color: unset;
}
/* LineTableTD */ /* LineTableTD */
.chroma .lntd, .chroma .lntd,
.chroma .lntd pre { .chroma .lntd pre {
@ -402,9 +431,7 @@ pre {
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: cover; background-size: cover;
background-position: center; background-position: center;
width: calc(100% + 40px);
z-index: -10; z-index: -10;
margin-left: -20px;
} }
.hero_gradient { .hero_gradient {
@ -424,6 +451,12 @@ pre {
visibility: hidden; visibility: hidden;
} }
/* Offset scroll position to avoid header overlap */
[id^="fn"],
[id^="fnref"] {
scroll-margin-top: 145px;
}
@screen sm { @screen sm {
.thumbnail { .thumbnail {
min-width: 100%; min-width: 100%;
@ -452,19 +485,25 @@ pre {
.nested-menu:hover + .menuhide { .nested-menu:hover + .menuhide {
visibility: visible; visibility: visible;
opacity: 1; opacity: 1;
transition: visibility 0.3s, opacity 0.3s ease-in-out ; transition:
visibility 0.3s,
opacity 0.3s ease-in-out;
} }
.menuhide:hover { .menuhide:hover {
visibility: visible; visibility: visible;
opacity: 1; opacity: 1;
transition: visibility 0.3s, opacity 0.3s ease-in-out ; transition:
visibility 0.3s,
opacity 0.3s ease-in-out;
} }
.menuhide { .menuhide {
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0;
transition: visibility 0.3s, opacity 0.3s ease-in-out ; transition:
visibility 0.3s,
opacity 0.3s ease-in-out;
z-index: 1000; z-index: 1000;
} }
@ -475,179 +514,593 @@ pre {
} }
/* Gallery Specific Styles */ /* Gallery Specific Styles */
.grid-w10 { width: calc(10% - 5px); margin: 0px !important; } .grid-w10 {
.grid-w15 { width: calc(15% - 5px); margin: 0px !important; } width: calc(10% - 5px);
.grid-w20 { width: calc(20% - 5px); margin: 0px !important; } margin: 0px !important;
.grid-w25 { width: calc(25% - 5px); margin: 0px !important; } }
.grid-w30 { width: calc(30% - 5px); margin: 0px !important; } .grid-w15 {
.grid-w33 { width: calc(33% - 5px); margin: 0px !important; } width: calc(15% - 5px);
.grid-w35 { width: calc(35% - 5px); margin: 0px !important; } margin: 0px !important;
.grid-w40 { width: calc(40% - 5px); margin: 0px !important; } }
.grid-w45 { width: calc(45% - 5px); margin: 0px !important; } .grid-w20 {
.grid-w50 { width: calc(50% - 5px); margin: 0px !important; } width: calc(20% - 5px);
.grid-w55 { width: calc(55% - 5px); margin: 0px !important; } margin: 0px !important;
.grid-w60 { width: calc(60% - 5px); margin: 0px !important; } }
.grid-w65 { width: calc(65% - 5px); margin: 0px !important; } .grid-w25 {
.grid-w66 { width: calc(66% - 5px); margin: 0px !important; } width: calc(25% - 5px);
.grid-w70 { width: calc(70% - 5px); margin: 0px !important; } margin: 0px !important;
.grid-w75 { width: calc(75% - 5px); margin: 0px !important; } }
.grid-w80 { width: calc(80% - 5px); margin: 0px !important; } .grid-w30 {
.grid-w85 { width: calc(85% - 5px); margin: 0px !important; } width: calc(30% - 5px);
.grid-w90 { width: calc(90% - 5px); margin: 0px !important; } margin: 0px !important;
.grid-w95 { width: calc(95% - 5px); margin: 0px !important; } }
.grid-w100 { width: calc(100% - 5px); margin: 0px !important; } .grid-w33 {
width: calc(33% - 5px);
margin: 0px !important;
}
.grid-w35 {
width: calc(35% - 5px);
margin: 0px !important;
}
.grid-w40 {
width: calc(40% - 5px);
margin: 0px !important;
}
.grid-w45 {
width: calc(45% - 5px);
margin: 0px !important;
}
.grid-w50 {
width: calc(50% - 5px);
margin: 0px !important;
}
.grid-w55 {
width: calc(55% - 5px);
margin: 0px !important;
}
.grid-w60 {
width: calc(60% - 5px);
margin: 0px !important;
}
.grid-w65 {
width: calc(65% - 5px);
margin: 0px !important;
}
.grid-w66 {
width: calc(66% - 5px);
margin: 0px !important;
}
.grid-w70 {
width: calc(70% - 5px);
margin: 0px !important;
}
.grid-w75 {
width: calc(75% - 5px);
margin: 0px !important;
}
.grid-w80 {
width: calc(80% - 5px);
margin: 0px !important;
}
.grid-w85 {
width: calc(85% - 5px);
margin: 0px !important;
}
.grid-w90 {
width: calc(90% - 5px);
margin: 0px !important;
}
.grid-w95 {
width: calc(95% - 5px);
margin: 0px !important;
}
.grid-w100 {
width: calc(100% - 5px);
margin: 0px !important;
}
@screen sm { @screen sm {
.sm\:grid-w10 { width: calc(10% - 5px); margin: 0px !important; } .sm\:grid-w10 {
.sm\:grid-w15 { width: calc(15% - 5px); margin: 0px !important; } width: calc(10% - 5px);
.sm\:grid-w20 { width: calc(20% - 5px); margin: 0px !important; } margin: 0px !important;
.sm\:grid-w25 { width: calc(25% - 5px); margin: 0px !important; } }
.sm\:grid-w30 { width: calc(30% - 5px); margin: 0px !important; } .sm\:grid-w15 {
.sm\:grid-w33 { width: calc(33% - 5px); margin: 0px !important; } width: calc(15% - 5px);
.sm\:grid-w35 { width: calc(35% - 5px); margin: 0px !important; } margin: 0px !important;
.sm\:grid-w40 { width: calc(40% - 5px); margin: 0px !important; } }
.sm\:grid-w45 { width: calc(45% - 5px); margin: 0px !important; } .sm\:grid-w20 {
.sm\:grid-w50 { width: calc(50% - 5px); margin: 0px !important; } width: calc(20% - 5px);
.sm\:grid-w55 { width: calc(55% - 5px); margin: 0px !important; } margin: 0px !important;
.sm\:grid-w60 { width: calc(60% - 5px); margin: 0px !important; } }
.sm\:grid-w65 { width: calc(65% - 5px); margin: 0px !important; } .sm\:grid-w25 {
.sm\:grid-w66 { width: calc(66% - 5px); margin: 0px !important; } width: calc(25% - 5px);
.sm\:grid-w70 { width: calc(70% - 5px); margin: 0px !important; } margin: 0px !important;
.sm\:grid-w75 { width: calc(75% - 5px); margin: 0px !important; } }
.sm\:grid-w80 { width: calc(80% - 5px); margin: 0px !important; } .sm\:grid-w30 {
.sm\:grid-w85 { width: calc(85% - 5px); margin: 0px !important; } width: calc(30% - 5px);
.sm\:grid-w90 { width: calc(90% - 5px); margin: 0px !important; } margin: 0px !important;
.sm\:grid-w95 { width: calc(95% - 5px); margin: 0px !important; } }
.sm\:grid-w100 { width: calc(100% - 5px); margin: 0px !important; } .sm\:grid-w33 {
width: calc(33% - 5px);
margin: 0px !important;
}
.sm\:grid-w35 {
width: calc(35% - 5px);
margin: 0px !important;
}
.sm\:grid-w40 {
width: calc(40% - 5px);
margin: 0px !important;
}
.sm\:grid-w45 {
width: calc(45% - 5px);
margin: 0px !important;
}
.sm\:grid-w50 {
width: calc(50% - 5px);
margin: 0px !important;
}
.sm\:grid-w55 {
width: calc(55% - 5px);
margin: 0px !important;
}
.sm\:grid-w60 {
width: calc(60% - 5px);
margin: 0px !important;
}
.sm\:grid-w65 {
width: calc(65% - 5px);
margin: 0px !important;
}
.sm\:grid-w66 {
width: calc(66% - 5px);
margin: 0px !important;
}
.sm\:grid-w70 {
width: calc(70% - 5px);
margin: 0px !important;
}
.sm\:grid-w75 {
width: calc(75% - 5px);
margin: 0px !important;
}
.sm\:grid-w80 {
width: calc(80% - 5px);
margin: 0px !important;
}
.sm\:grid-w85 {
width: calc(85% - 5px);
margin: 0px !important;
}
.sm\:grid-w90 {
width: calc(90% - 5px);
margin: 0px !important;
}
.sm\:grid-w95 {
width: calc(95% - 5px);
margin: 0px !important;
}
.sm\:grid-w100 {
width: calc(100% - 5px);
margin: 0px !important;
}
} }
@screen md { @screen md {
.md\:grid-w10 { width: calc(10% - 5px); margin: 0px !important; } .md\:grid-w10 {
.md\:grid-w15 { width: calc(15% - 5px); margin: 0px !important; } width: calc(10% - 5px);
.md\:grid-w20 { width: calc(20% - 5px); margin: 0px !important; } margin: 0px !important;
.md\:grid-w25 { width: calc(25% - 5px); margin: 0px !important; } }
.md\:grid-w30 { width: calc(30% - 5px); margin: 0px !important; } .md\:grid-w15 {
.md\:grid-w33 { width: calc(33% - 5px); margin: 0px !important; } width: calc(15% - 5px);
.md\:grid-w35 { width: calc(35% - 5px); margin: 0px !important; } margin: 0px !important;
.md\:grid-w40 { width: calc(40% - 5px); margin: 0px !important; } }
.md\:grid-w45 { width: calc(45% - 5px); margin: 0px !important; } .md\:grid-w20 {
.md\:grid-w50 { width: calc(50% - 5px); margin: 0px !important; } width: calc(20% - 5px);
.md\:grid-w55 { width: calc(55% - 5px); margin: 0px !important; } margin: 0px !important;
.md\:grid-w60 { width: calc(60% - 5px); margin: 0px !important; } }
.md\:grid-w65 { width: calc(65% - 5px); margin: 0px !important; } .md\:grid-w25 {
.md\:grid-w66 { width: calc(66% - 5px); margin: 0px !important; } width: calc(25% - 5px);
.md\:grid-w70 { width: calc(70% - 5px); margin: 0px !important; } margin: 0px !important;
.md\:grid-w75 { width: calc(75% - 5px); margin: 0px !important; } }
.md\:grid-w80 { width: calc(80% - 5px); margin: 0px !important; } .md\:grid-w30 {
.md\:grid-w85 { width: calc(85% - 5px); margin: 0px !important; } width: calc(30% - 5px);
.md\:grid-w90 { width: calc(90% - 5px); margin: 0px !important; } margin: 0px !important;
.md\:grid-w95 { width: calc(95% - 5px); margin: 0px !important; } }
.md\:grid-w100 { width: calc(100% - 5px); margin: 0px !important; } .md\:grid-w33 {
width: calc(33% - 5px);
margin: 0px !important;
}
.md\:grid-w35 {
width: calc(35% - 5px);
margin: 0px !important;
}
.md\:grid-w40 {
width: calc(40% - 5px);
margin: 0px !important;
}
.md\:grid-w45 {
width: calc(45% - 5px);
margin: 0px !important;
}
.md\:grid-w50 {
width: calc(50% - 5px);
margin: 0px !important;
}
.md\:grid-w55 {
width: calc(55% - 5px);
margin: 0px !important;
}
.md\:grid-w60 {
width: calc(60% - 5px);
margin: 0px !important;
}
.md\:grid-w65 {
width: calc(65% - 5px);
margin: 0px !important;
}
.md\:grid-w66 {
width: calc(66% - 5px);
margin: 0px !important;
}
.md\:grid-w70 {
width: calc(70% - 5px);
margin: 0px !important;
}
.md\:grid-w75 {
width: calc(75% - 5px);
margin: 0px !important;
}
.md\:grid-w80 {
width: calc(80% - 5px);
margin: 0px !important;
}
.md\:grid-w85 {
width: calc(85% - 5px);
margin: 0px !important;
}
.md\:grid-w90 {
width: calc(90% - 5px);
margin: 0px !important;
}
.md\:grid-w95 {
width: calc(95% - 5px);
margin: 0px !important;
}
.md\:grid-w100 {
width: calc(100% - 5px);
margin: 0px !important;
}
} }
@screen lg { @screen lg {
.lg\:grid-w10 { width: calc(10% - 5px); margin: 0px !important; } .lg\:grid-w10 {
.lg\:grid-w15 { width: calc(15% - 5px); margin: 0px !important; } width: calc(10% - 5px);
.lg\:grid-w20 { width: calc(20% - 5px); margin: 0px !important; } margin: 0px !important;
.lg\:grid-w25 { width: calc(25% - 5px); margin: 0px !important; } }
.lg\:grid-w30 { width: calc(30% - 5px); margin: 0px !important; } .lg\:grid-w15 {
.lg\:grid-w33 { width: calc(33% - 5px); margin: 0px !important; } width: calc(15% - 5px);
.lg\:grid-w35 { width: calc(35% - 5px); margin: 0px !important; } margin: 0px !important;
.lg\:grid-w40 { width: calc(40% - 5px); margin: 0px !important; } }
.lg\:grid-w45 { width: calc(45% - 5px); margin: 0px !important; } .lg\:grid-w20 {
.lg\:grid-w50 { width: calc(50% - 5px); margin: 0px !important; } width: calc(20% - 5px);
.lg\:grid-w55 { width: calc(55% - 5px); margin: 0px !important; } margin: 0px !important;
.lg\:grid-w60 { width: calc(60% - 5px); margin: 0px !important; } }
.lg\:grid-w65 { width: calc(65% - 5px); margin: 0px !important; } .lg\:grid-w25 {
.lg\:grid-w66 { width: calc(66% - 5px); margin: 0px !important; } width: calc(25% - 5px);
.lg\:grid-w70 { width: calc(70% - 5px); margin: 0px !important; } margin: 0px !important;
.lg\:grid-w75 { width: calc(75% - 5px); margin: 0px !important; } }
.lg\:grid-w80 { width: calc(80% - 5px); margin: 0px !important; } .lg\:grid-w30 {
.lg\:grid-w85 { width: calc(85% - 5px); margin: 0px !important; } width: calc(30% - 5px);
.lg\:grid-w90 { width: calc(90% - 5px); margin: 0px !important; } margin: 0px !important;
.lg\:grid-w95 { width: calc(95% - 5px); margin: 0px !important; } }
.lg\:grid-w100 { width: calc(100% - 5px); margin: 0px !important; } .lg\:grid-w33 {
width: calc(33% - 5px);
margin: 0px !important;
}
.lg\:grid-w35 {
width: calc(35% - 5px);
margin: 0px !important;
}
.lg\:grid-w40 {
width: calc(40% - 5px);
margin: 0px !important;
}
.lg\:grid-w45 {
width: calc(45% - 5px);
margin: 0px !important;
}
.lg\:grid-w50 {
width: calc(50% - 5px);
margin: 0px !important;
}
.lg\:grid-w55 {
width: calc(55% - 5px);
margin: 0px !important;
}
.lg\:grid-w60 {
width: calc(60% - 5px);
margin: 0px !important;
}
.lg\:grid-w65 {
width: calc(65% - 5px);
margin: 0px !important;
}
.lg\:grid-w66 {
width: calc(66% - 5px);
margin: 0px !important;
}
.lg\:grid-w70 {
width: calc(70% - 5px);
margin: 0px !important;
}
.lg\:grid-w75 {
width: calc(75% - 5px);
margin: 0px !important;
}
.lg\:grid-w80 {
width: calc(80% - 5px);
margin: 0px !important;
}
.lg\:grid-w85 {
width: calc(85% - 5px);
margin: 0px !important;
}
.lg\:grid-w90 {
width: calc(90% - 5px);
margin: 0px !important;
}
.lg\:grid-w95 {
width: calc(95% - 5px);
margin: 0px !important;
}
.lg\:grid-w100 {
width: calc(100% - 5px);
margin: 0px !important;
}
} }
@screen xl { @screen xl {
.xl\:grid-w10 { width: calc(10% - 5px); margin: 0px !important; } .xl\:grid-w10 {
.xl\:grid-w15 { width: calc(15% - 5px); margin: 0px !important; } width: calc(10% - 5px);
.xl\:grid-w20 { width: calc(20% - 5px); margin: 0px !important; } margin: 0px !important;
.xl\:grid-w25 { width: calc(25% - 5px); margin: 0px !important; } }
.xl\:grid-w30 { width: calc(30% - 5px); margin: 0px !important; } .xl\:grid-w15 {
.xl\:grid-w33 { width: calc(33% - 5px); margin: 0px !important; } width: calc(15% - 5px);
.xl\:grid-w35 { width: calc(35% - 5px); margin: 0px !important; } margin: 0px !important;
.xl\:grid-w40 { width: calc(40% - 5px); margin: 0px !important; } }
.xl\:grid-w45 { width: calc(45% - 5px); margin: 0px !important; } .xl\:grid-w20 {
.xl\:grid-w50 { width: calc(50% - 5px); margin: 0px !important; } width: calc(20% - 5px);
.xl\:grid-w55 { width: calc(55% - 5px); margin: 0px !important; } margin: 0px !important;
.xl\:grid-w60 { width: calc(60% - 5px); margin: 0px !important; } }
.xl\:grid-w65 { width: calc(65% - 5px); margin: 0px !important; } .xl\:grid-w25 {
.xl\:grid-w66 { width: calc(66% - 5px); margin: 0px !important; } width: calc(25% - 5px);
.xl\:grid-w70 { width: calc(70% - 5px); margin: 0px !important; } margin: 0px !important;
.xl\:grid-w75 { width: calc(75% - 5px); margin: 0px !important; } }
.xl\:grid-w80 { width: calc(80% - 5px); margin: 0px !important; } .xl\:grid-w30 {
.xl\:grid-w85 { width: calc(85% - 5px); margin: 0px !important; } width: calc(30% - 5px);
.xl\:grid-w90 { width: calc(90% - 5px); margin: 0px !important; } margin: 0px !important;
.xl\:grid-w95 { width: calc(95% - 5px); margin: 0px !important; } }
.xl\:grid-w100 { width: calc(100% - 5px); margin: 0px !important; } .xl\:grid-w33 {
width: calc(33% - 5px);
margin: 0px !important;
}
.xl\:grid-w35 {
width: calc(35% - 5px);
margin: 0px !important;
}
.xl\:grid-w40 {
width: calc(40% - 5px);
margin: 0px !important;
}
.xl\:grid-w45 {
width: calc(45% - 5px);
margin: 0px !important;
}
.xl\:grid-w50 {
width: calc(50% - 5px);
margin: 0px !important;
}
.xl\:grid-w55 {
width: calc(55% - 5px);
margin: 0px !important;
}
.xl\:grid-w60 {
width: calc(60% - 5px);
margin: 0px !important;
}
.xl\:grid-w65 {
width: calc(65% - 5px);
margin: 0px !important;
}
.xl\:grid-w66 {
width: calc(66% - 5px);
margin: 0px !important;
}
.xl\:grid-w70 {
width: calc(70% - 5px);
margin: 0px !important;
}
.xl\:grid-w75 {
width: calc(75% - 5px);
margin: 0px !important;
}
.xl\:grid-w80 {
width: calc(80% - 5px);
margin: 0px !important;
}
.xl\:grid-w85 {
width: calc(85% - 5px);
margin: 0px !important;
}
.xl\:grid-w90 {
width: calc(90% - 5px);
margin: 0px !important;
}
.xl\:grid-w95 {
width: calc(95% - 5px);
margin: 0px !important;
}
.xl\:grid-w100 {
width: calc(100% - 5px);
margin: 0px !important;
}
} }
@screen 2xl { @screen 2xl {
.2xl\:grid-w10 { width: calc(10% - 5px); margin: 0px !important; } .2xl\:grid-w10 {
.2xl\:grid-w15 { width: calc(15% - 5px); margin: 0px !important; } width: calc(10% - 5px);
.2xl\:grid-w20 { width: calc(20% - 5px); margin: 0px !important; } margin: 0px !important;
.2xl\:grid-w25 { width: calc(25% - 5px); margin: 0px !important; } }
.2xl\:grid-w30 { width: calc(30% - 5px); margin: 0px !important; } .2xl\:grid-w15 {
.2xl\:grid-w33 { width: calc(33% - 5px); margin: 0px !important; } width: calc(15% - 5px);
.2xl\:grid-w35 { width: calc(35% - 5px); margin: 0px !important; } margin: 0px !important;
.2xl\:grid-w40 { width: calc(40% - 5px); margin: 0px !important; } }
.2xl\:grid-w45 { width: calc(45% - 5px); margin: 0px !important; } .2xl\:grid-w20 {
.2xl\:grid-w50 { width: calc(50% - 5px); margin: 0px !important; } width: calc(20% - 5px);
.2xl\:grid-w55 { width: calc(55% - 5px); margin: 0px !important; } margin: 0px !important;
.2xl\:grid-w60 { width: calc(60% - 5px); margin: 0px !important; } }
.2xl\:grid-w65 { width: calc(65% - 5px); margin: 0px !important; } .2xl\:grid-w25 {
.2xl\:grid-w66 { width: calc(66% - 5px); margin: 0px !important; } width: calc(25% - 5px);
.2xl\:grid-w70 { width: calc(70% - 5px); margin: 0px !important; } margin: 0px !important;
.2xl\:grid-w75 { width: calc(75% - 5px); margin: 0px !important; } }
.2xl\:grid-w80 { width: calc(80% - 5px); margin: 0px !important; } .2xl\:grid-w30 {
.2xl\:grid-w85 { width: calc(85% - 5px); margin: 0px !important; } width: calc(30% - 5px);
.2xl\:grid-w90 { width: calc(90% - 5px); margin: 0px !important; } margin: 0px !important;
.2xl\:grid-w95 { width: calc(95% - 5px); margin: 0px !important; } }
.2xl\:grid-w100 { width: calc(100% - 5px); margin: 0px !important; } .2xl\:grid-w33 {
width: calc(33% - 5px);
margin: 0px !important;
}
.2xl\:grid-w35 {
width: calc(35% - 5px);
margin: 0px !important;
}
.2xl\:grid-w40 {
width: calc(40% - 5px);
margin: 0px !important;
}
.2xl\:grid-w45 {
width: calc(45% - 5px);
margin: 0px !important;
}
.2xl\:grid-w50 {
width: calc(50% - 5px);
margin: 0px !important;
}
.2xl\:grid-w55 {
width: calc(55% - 5px);
margin: 0px !important;
}
.2xl\:grid-w60 {
width: calc(60% - 5px);
margin: 0px !important;
}
.2xl\:grid-w65 {
width: calc(65% - 5px);
margin: 0px !important;
}
.2xl\:grid-w66 {
width: calc(66% - 5px);
margin: 0px !important;
}
.2xl\:grid-w70 {
width: calc(70% - 5px);
margin: 0px !important;
}
.2xl\:grid-w75 {
width: calc(75% - 5px);
margin: 0px !important;
}
.2xl\:grid-w80 {
width: calc(80% - 5px);
margin: 0px !important;
}
.2xl\:grid-w85 {
width: calc(85% - 5px);
margin: 0px !important;
}
.2xl\:grid-w90 {
width: calc(90% - 5px);
margin: 0px !important;
}
.2xl\:grid-w95 {
width: calc(95% - 5px);
margin: 0px !important;
}
.2xl\:grid-w100 {
width: calc(100% - 5px);
margin: 0px !important;
}
} }
/* Carousel Specific Styles */ /* Carousel Specific Styles */
.ratio-16-9 { padding-top: 56.25%; } /* 16:9 Aspect Ratio */ .ratio-16-9 {
.ratio-21-9 { padding-top: 42.85%; } /* 21:9 Aspect Ratio */ padding-top: 56.25%;
.ratio-32-9 { padding-top: 28.125%; } /* 32:9 Aspect Ratio */ } /* 16:9 Aspect Ratio */
.ratio-21-9 {
padding-top: 42.85%;
} /* 21:9 Aspect Ratio */
.ratio-32-9 {
padding-top: 28.125%;
} /* 32:9 Aspect Ratio */
@screen sm { @screen sm {
.sm\:ratio-16-9 { padding-top: 56.25%; } /* 16:9 Aspect Ratio */ .sm\:ratio-16-9 {
.sm\:ratio-21-9 { padding-top: 42.85%; } /* 21:9 Aspect Ratio */ padding-top: 56.25%;
.sm\:ratio-32-9 { padding-top: 28.125%; } /* 32:9 Aspect Ratio */ } /* 16:9 Aspect Ratio */
.sm\:ratio-21-9 {
padding-top: 42.85%;
} /* 21:9 Aspect Ratio */
.sm\:ratio-32-9 {
padding-top: 28.125%;
} /* 32:9 Aspect Ratio */
} }
@screen md { @screen md {
.md\:ratio-16-9 { padding-top: 56.25%; } /* 16:9 Aspect Ratio */ .md\:ratio-16-9 {
.md\:ratio-21-9 { padding-top: 42.85%; } /* 21:9 Aspect Ratio */ padding-top: 56.25%;
.md\:ratio-32-9 { padding-top: 28.125%; } /* 32:9 Aspect Ratio */ } /* 16:9 Aspect Ratio */
.md\:ratio-21-9 {
padding-top: 42.85%;
} /* 21:9 Aspect Ratio */
.md\:ratio-32-9 {
padding-top: 28.125%;
} /* 32:9 Aspect Ratio */
} }
@screen lg { @screen lg {
.lg\:ratio-16-9 { padding-top: 56.25%; } /* 16:9 Aspect Ratio */ .lg\:ratio-16-9 {
.lg\:ratio-21-9 { padding-top: 42.85%; } /* 21:9 Aspect Ratio */ padding-top: 56.25%;
.lg\:ratio-32-9 { padding-top: 28.125%; } /* 32:9 Aspect Ratio */ } /* 16:9 Aspect Ratio */
.lg\:ratio-21-9 {
padding-top: 42.85%;
} /* 21:9 Aspect Ratio */
.lg\:ratio-32-9 {
padding-top: 28.125%;
} /* 32:9 Aspect Ratio */
} }
@screen xl { @screen xl {
.xl\:ratio-16-9 { padding-top: 56.25%; } /* 16:9 Aspect Ratio */ .xl\:ratio-16-9 {
.xl\:ratio-21-9 { padding-top: 42.85%; } /* 21:9 Aspect Ratio */ padding-top: 56.25%;
.xl\:ratio-32-9 { padding-top: 28.125%; } /* 32:9 Aspect Ratio */ } /* 16:9 Aspect Ratio */
.xl\:ratio-21-9 {
padding-top: 42.85%;
} /* 21:9 Aspect Ratio */
.xl\:ratio-32-9 {
padding-top: 28.125%;
} /* 32:9 Aspect Ratio */
} }
@screen 2xl { @screen 2xl {
.2xl\:ratio-16-9 { padding-top: 56.25%; } /* 16:9 Aspect Ratio */ .2xl\:ratio-16-9 {
.2xl\:ratio-21-9 { padding-top: 42.85%; } /* 21:9 Aspect Ratio */ padding-top: 56.25%;
.2xl\:ratio-32-9 { padding-top: 28.125%; } /* 32:9 Aspect Ratio */ } /* 16:9 Aspect Ratio */
.2xl\:ratio-21-9 {
padding-top: 42.85%;
} /* 21:9 Aspect Ratio */
.2xl\:ratio-32-9 {
padding-top: 28.125%;
} /* 32:9 Aspect Ratio */
} }

View file

@ -1,4 +1,5 @@
:root { --color-neutral: 255, 255, 255; :root {
--color-neutral: 255, 255, 255;
--color-neutral-50: 255, 255, 255; --color-neutral-50: 255, 255, 255;
--color-neutral-100: 214, 251, 252; --color-neutral-100: 214, 251, 252;
--color-neutral-200: 142, 245, 247; --color-neutral-200: 142, 245, 247;

View file

@ -1,4 +1,5 @@
:root { --color-neutral: 255, 255, 255; :root {
--color-neutral: 255, 255, 255;
--color-neutral-50: 255, 255, 255; --color-neutral-50: 255, 255, 255;
--color-neutral-100: 254, 197, 207; --color-neutral-100: 254, 197, 207;
--color-neutral-200: 253, 121, 144; --color-neutral-200: 253, 121, 144;

View file

@ -1,4 +1,5 @@
:root { --color-neutral: 255, 255, 255; :root {
--color-neutral: 255, 255, 255;
--color-neutral-50: 255, 255, 255; --color-neutral-50: 255, 255, 255;
--color-neutral-100: 232, 238, 237; --color-neutral-100: 232, 238, 237;
--color-neutral-200: 188, 206, 203; --color-neutral-200: 188, 206, 203;

View file

@ -1,4 +1,5 @@
:root { --color-neutral: 255, 255, 255; :root {
--color-neutral: 255, 255, 255;
--color-neutral-50: 255, 255, 255; --color-neutral-50: 255, 255, 255;
--color-neutral-100: 255, 255, 255; --color-neutral-100: 255, 255, 255;
--color-neutral-200: 201, 209, 244; --color-neutral-200: 201, 209, 244;

View file

@ -1,4 +1,5 @@
:root { --color-neutral: 255, 255, 255; :root {
--color-neutral: 255, 255, 255;
--color-neutral-50: 255, 255, 255; --color-neutral-50: 255, 255, 255;
--color-neutral-100: 255, 255, 255; --color-neutral-100: 255, 255, 255;
--color-neutral-200: 218, 196, 249; --color-neutral-200: 218, 196, 249;

View file

@ -1,4 +1,5 @@
:root { --color-neutral: 255, 255, 255; :root {
--color-neutral: 255, 255, 255;
--color-neutral-50: 255, 255, 255; --color-neutral-50: 255, 255, 255;
--color-neutral-100: 255, 255, 255; --color-neutral-100: 255, 255, 255;
--color-neutral-200: 214, 219, 222; --color-neutral-200: 214, 219, 222;

View file

@ -1,4 +1,5 @@
:root { --color-neutral: 255, 255, 255; :root {
--color-neutral: 255, 255, 255;
--color-neutral-50: 255, 255, 255; --color-neutral-50: 255, 255, 255;
--color-neutral-100: 238, 232, 238; --color-neutral-100: 238, 232, 238;
--color-neutral-200: 206, 188, 206; --color-neutral-200: 206, 188, 206;

View file

@ -1,4 +1,5 @@
:root { --color-neutral: 255, 255, 255; :root {
--color-neutral: 255, 255, 255;
--color-neutral-50: 203, 255, 227; --color-neutral-50: 203, 255, 227;
--color-neutral-100: 126, 255, 186; --color-neutral-100: 126, 255, 186;
--color-neutral-200: 49, 255, 145; --color-neutral-200: 49, 255, 145;

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Pro 6.4.2 by @fontawesome - https://fontawesome.com License -https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M311 196.8v81.3c0 2.1-1.6 3.7-3.7 3.7h-13c-1.3 0-2.4-.7-3-1.5l-37.3-50.3v48.2c0 2.1-1.6 3.7-3.7 3.7h-13c-2.1 0-3.7-1.6-3.7-3.7V196.9c0-2.1 1.6-3.7 3.7-3.7h12.9c1.1 0 2.4 .6 3 1.6l37.3 50.3V196.9c0-2.1 1.6-3.7 3.7-3.7h13c2.1-.1 3.8 1.6 3.8 3.5zm-93.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 2.1 1.6 3.7 3.7 3.7h13c2.1 0 3.7-1.6 3.7-3.7V196.8c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1H150.3V196.8c0-2.1-1.6-3.7-3.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 1 .3 1.8 1 2.5c.7 .6 1.5 1 2.5 1h52.2c2.1 0 3.7-1.6 3.7-3.7v-13c0-1.9-1.6-3.7-3.5-3.7zm193.7-68.1H327.3c-1.9 0-3.7 1.6-3.7 3.7v81.3c0 1.9 1.6 3.7 3.7 3.7h52.2c2.1 0 3.7-1.6 3.7-3.7V265c0-2.1-1.6-3.7-3.7-3.7H344V247.7h35.5c2.1 0 3.7-1.6 3.7-3.7V230.9c0-2.1-1.6-3.7-3.7-3.7H344V213.5h35.5c2.1 0 3.7-1.6 3.7-3.7v-13c-.1-1.9-1.7-3.7-3.7-3.7zM512 93.4V419.4c-.1 51.2-42.1 92.7-93.4 92.6H92.6C41.4 511.9-.1 469.8 0 418.6V92.6C.1 41.4 42.2-.1 93.4 0H419.4c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3s-186.4 67.9-186.4 151.3c0 74.7 66.3 137.4 155.9 149.3c21.8 4.7 19.3 12.7 14.4 42.1c-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1z" /></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 365 486.53"><path fill="currentColor" d="M0,243.26V0l182.5,121.63L0,243.26Z"/><path fill="currentColor" d="M0,486.53v-243.26l182.5,121.63L0,486.53Z"/><path fill="currentColor" d="M182.5,364.9V121.63l182.5,121.63-182.5,121.63Z"/></svg>

After

Width:  |  Height:  |  Size: 287 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 510 510"><path fill="currentColor" d="M255,510C114.17,510,0,395.83,0,255S114.17,0,255,0s255,114.17,255,255-114.17,255-255,255ZM234.75,310.67h46.78c44.06,0,79.79-34.78,79.79-77.67s-35.72-77.68-79.79-77.68h-67.51c-25.42,0-46.03,20.06-46.03,44.82v174.42l66.77-63.88Z"/></svg>

After

Width:  |  Height:  |  Size: 325 B

View file

@ -0,0 +1,5 @@
<svg width="592" height="592" viewBox="0 0 592 592" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M46 260.286L292.269 46L546 260.286" stroke="currentColor" stroke-width="91" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M46 447.786L292.269 233.5L546 447.786" stroke="currentColor" stroke-width="91" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M293.619 407.607V546" stroke="currentColor" stroke-width="91" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 486 B

View file

@ -0,0 +1,10 @@
(() => {
const script = document.currentScript;
const targetId = script?.getAttribute("data-target-id");
window.addEventListener("scroll", () => {
const scroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
const backgroundBlur = document.getElementById(targetId);
backgroundBlur.style.opacity = scroll / 300;
});
})();

View file

@ -0,0 +1,4 @@
document.getElementById("button_likes") &&
document.getElementById("button_likes").addEventListener("click", () => {
process_article();
});

View file

@ -1,6 +1,10 @@
var scriptBundle = document.getElementById("script-bundle"); var scriptBundle = document.getElementById("script-bundle");
var copyText = scriptBundle && scriptBundle.getAttribute("data-copy")? scriptBundle.getAttribute("data-copy") : "Copy"; var copyText =
var copiedText = scriptBundle && scriptBundle.getAttribute("data-copied")? scriptBundle.getAttribute("data-copied") : "Copied"; scriptBundle && scriptBundle.getAttribute("data-copy") ? scriptBundle.getAttribute("data-copy") : "Copy";
var copiedText =
scriptBundle && scriptBundle.getAttribute("data-copied")
? scriptBundle.getAttribute("data-copied")
: "Copied";
function createCopyButton(highlightDiv) { function createCopyButton(highlightDiv) {
const button = document.createElement("button"); const button = document.createElement("button");

View file

@ -0,0 +1,57 @@
(async () => {
const script = document.currentScript;
const repoURL = script?.getAttribute("data-repo-url");
const repoId = script?.getAttribute("data-repo-id");
if (!repoURL || !repoId) return;
const platforms = {
github: {
full_name: "full_name",
description: "description",
stargazers_count: "stargazers",
forks: "forks",
},
gitlab: {
name_with_namespace: "name_with_namespace",
description: "description",
star_count: "star_count",
forks_count: "forks_count",
},
gitea: {
full_name: "full_name",
description: "description",
stars_count: "stars_count",
forks_count: "forks_count",
},
codeberg: {
full_name: "full_name",
description: "description",
stars_count: "stars_count",
forks_count: "forks_count",
},
forgejo: {
full_name: "full_name",
description: "description",
stars_count: "stars_count",
forks_count: "forks_count",
},
};
const platform = Object.keys(platforms).find((p) => repoId.startsWith(p)) || "github";
const mapping = platforms[platform];
try {
const response = await fetch(repoURL, {
headers: { "User-agent": "Mozilla/4.0 Custom User Agent" },
});
const data = await response.json();
Object.entries(mapping).forEach(([dataField, elementSuffix]) => {
const element = document.getElementById(`${repoId}-${elementSuffix}`);
if (element) element.innerHTML = data[dataField];
});
} catch (error) {
console.error(error);
}
})();

View file

@ -0,0 +1,4 @@
document.getElementById("katex-render") &&
document.getElementById("katex-render").addEventListener("load", () => {
renderMathInElement(document.body);
});

View file

@ -4,16 +4,16 @@ var menuWrapper = document.getElementById("menu-wrapper");
var menuOpen = false; var menuOpen = false;
var openMenu = function (e) { var openMenu = function () {
if (!menuOpen) { if (!menuOpen) {
menuOpen = true; menuOpen = true;
document.body.style.overflowY = "hidden"; document.body.style.overflowY = "hidden";
menuButton.style.visibility = "hidden"; menuButton.style.visibility = "hidden";
menuWrapper.style.visibility = "visible"; menuWrapper.style.visibility = "visible";
menuWrapper.style.opacity = "1"; menuWrapper.style.opacity = "1";
window.onbeforeunload = function (event) { window.onbeforeunload = function () {
closeMenu() closeMenu();
} };
} }
}; };
@ -24,10 +24,10 @@ var closeMenu = function (e) {
menuButton.style.visibility = "visible"; menuButton.style.visibility = "visible";
menuWrapper.style.visibility = "hidden"; menuWrapper.style.visibility = "hidden";
menuWrapper.style.opacity = "0"; menuWrapper.style.opacity = "0";
window.onbeforeunload = function (event) { } window.onbeforeunload = function () {};
e.stopPropagation(); e.stopPropagation();
} }
} };
menuButton.addEventListener("click", openMenu); menuButton && menuButton.addEventListener("click", openMenu);
menuCloseButton.addEventListener("click", closeMenu); menuCloseButton && menuCloseButton.addEventListener("click", closeMenu);

View file

@ -1,106 +1,131 @@
var liked_page = false const pageScriptElement = document.currentScript;
var id = oid ? oid.replaceAll("/", "-") : oid const oid =
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes pageScriptElement && pageScriptElement.getAttribute("data-oid")
? pageScriptElement.getAttribute("data-oid")
: (console.error("data-oid is null"), null);
const oid_likes =
pageScriptElement && pageScriptElement.getAttribute("data-oid-likes")
? pageScriptElement.getAttribute("data-oid-likes")
: (console.error("data-oid-likes is null"), null);
let liked_page = false;
const id = oid ? oid.replaceAll("/", "-") : oid;
const id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes;
if (typeof auth !== 'undefined') { if (typeof auth !== "undefined") {
const viewed = localStorage.getItem(id);
var viewed = localStorage.getItem(id);
if (!viewed) { if (!viewed) {
auth.signInAnonymously() auth
.signInAnonymously()
.then(() => { .then(() => {
var docRef = db.collection('views').doc(id) const docRef = db.collection("views").doc(id);
localStorage.setItem(id, true); localStorage.setItem(id, true);
docRef.get().then((doc) => { docRef
.get()
.then((doc) => {
if (doc.exists) { if (doc.exists) {
db.collection('views').doc(id).update({ db.collection("views")
views: firebase.firestore.FieldValue.increment(1) .doc(id)
.update({
views: firebase.firestore.FieldValue.increment(1),
}); });
} else { } else {
db.collection('views').doc(id).set({ views: 1 }) db.collection("views").doc(id).set({ views: 1 });
} }
}).catch((error) => { })
.catch((error) => {
console.log("Error getting document:", error); console.log("Error getting document:", error);
}); });
}) })
.catch((error) => { .catch((error) => {
var errorCode = error.code; const errorCode = error.code;
var errorMessage = error.message; const errorMessage = error.message;
console.error(errorCode, errorMessage) console.error(errorCode, errorMessage);
}); });
} }
var liked = localStorage.getItem(id_likes); const liked = localStorage.getItem(id_likes);
if (liked) { if (liked) {
liked_page = true liked_page = true;
document.querySelectorAll("span[id='button_likes_heart']")[0].style.display = "" document.querySelectorAll("span[id='button_likes_heart']")[0].style.display = "";
document.querySelectorAll("span[id='button_likes_emtpty_heart']")[0].style.display = "none" document.querySelectorAll("span[id='button_likes_emtpty_heart']")[0].style.display = "none";
document.querySelectorAll("span[id='button_likes_text']")[0].innerText = "" document.querySelectorAll("span[id='button_likes_text']")[0].innerText = "";
} }
} }
function like_article(id_likes) { function like_article(id_likes) {
auth.signInAnonymously() auth
.signInAnonymously()
.then(() => { .then(() => {
var docRef = db.collection('likes').doc(id_likes) const docRef = db.collection("likes").doc(id_likes);
docRef.get().then((doc) => { docRef
liked_page = true .get()
.then((doc) => {
liked_page = true;
localStorage.setItem(id_likes, true); localStorage.setItem(id_likes, true);
document.querySelectorAll("span[id='button_likes_heart']")[0].style.display = "" document.querySelectorAll("span[id='button_likes_heart']")[0].style.display = "";
document.querySelectorAll("span[id='button_likes_emtpty_heart']")[0].style.display = "none" document.querySelectorAll("span[id='button_likes_emtpty_heart']")[0].style.display = "none";
document.querySelectorAll("span[id='button_likes_text']")[0].innerText = "" document.querySelectorAll("span[id='button_likes_text']")[0].innerText = "";
if (doc.exists) { if (doc.exists) {
db.collection('likes').doc(id_likes).update({ db.collection("likes")
likes: firebase.firestore.FieldValue.increment(1) .doc(id_likes)
.update({
likes: firebase.firestore.FieldValue.increment(1),
}); });
} else { } else {
db.collection('likes').doc(id_likes).set({ likes: 1 }) db.collection("likes").doc(id_likes).set({ likes: 1 });
} }
}).catch((error) => { })
.catch((error) => {
console.log("Error getting document:", error); console.log("Error getting document:", error);
}); });
}) })
.catch((error) => { .catch((error) => {
var errorCode = error.code; const errorCode = error.code;
var errorMessage = error.message; const errorMessage = error.message;
console.error(errorCode, errorMessage) console.error(errorCode, errorMessage);
}); });
} }
function remove_like_article(id_likes) { function remove_like_article(id_likes) {
auth.signInAnonymously() auth
.signInAnonymously()
.then(() => { .then(() => {
var docRef = db.collection('likes').doc(id_likes) const docRef = db.collection("likes").doc(id_likes);
docRef.get().then((doc) => { docRef
liked_page = false .get()
.then((doc) => {
liked_page = false;
localStorage.removeItem(id_likes); localStorage.removeItem(id_likes);
document.querySelectorAll("span[id='button_likes_heart']")[0].style.display = "none" document.querySelectorAll("span[id='button_likes_heart']")[0].style.display = "none";
document.querySelectorAll("span[id='button_likes_emtpty_heart']")[0].style.display = "" document.querySelectorAll("span[id='button_likes_emtpty_heart']")[0].style.display = "";
document.querySelectorAll("span[id='button_likes_text']")[0].innerText = "\xa0Like" document.querySelectorAll("span[id='button_likes_text']")[0].innerText = "\xa0Like";
if (doc.exists) { if (doc.exists) {
db.collection('likes').doc(id_likes).update({ db.collection("likes")
likes: firebase.firestore.FieldValue.increment(-1) .doc(id_likes)
.update({
likes: firebase.firestore.FieldValue.increment(-1),
}); });
} else { } else {
db.collection('likes').doc(id_likes).set({ likes: 0 }) db.collection("likes").doc(id_likes).set({ likes: 0 });
} }
}).catch((error) => { })
.catch((error) => {
console.log("Error getting document:", error); console.log("Error getting document:", error);
}); });
}) })
.catch((error) => { .catch((error) => {
var errorCode = error.code; const errorCode = error.code;
var errorMessage = error.message; const errorMessage = error.message;
console.error(errorCode, errorMessage) console.error(errorCode, errorMessage);
}); });
} }
function process_article() { function process_article() {
if (!liked_page) { if (!liked_page) {
like_article(id_likes) like_article(id_likes);
} else { } else {
remove_like_article(id_likes) remove_like_article(id_likes);
} }
} }

View file

@ -1,71 +1,70 @@
if (typeof auth !== 'undefined') { if (typeof auth !== "undefined") {
var viewsCollection = db.collection('views'); var viewsCollection = db.collection("views");
var likesCollection = db.collection('likes'); var likesCollection = db.collection("likes");
function numberWithCommas(x) { function numberWithCommas(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} }
function toggleLoaders(node) { function toggleLoaders(node) {
var classesString = node.className; var classesString = node.className;
if(classesString == "") return if (classesString == "") return;
var classes = classesString.split(" "); var classes = classesString.split(" ");
for (var i in classes) { for (var i in classes) {
node.classList.toggle(classes[i]) node.classList.toggle(classes[i]);
} }
} }
var update_views = function (node, id) { var update_views = function (node, id) {
viewsCollection.doc(id).onSnapshot(doc => { viewsCollection.doc(id).onSnapshot((doc) => {
var data = doc.data(); var data = doc.data();
if (data) { if (data) {
node.innerText = numberWithCommas(data.views) node.innerText = numberWithCommas(data.views);
} else { } else {
node.innerText = 0 node.innerText = 0;
}
toggleLoaders(node)
})
} }
toggleLoaders(node);
});
};
var update_likes = function (node, id) { var update_likes = function (node, id) {
likesCollection.doc(id).onSnapshot(doc => { likesCollection.doc(id).onSnapshot((doc) => {
var data = doc.data(); var data = doc.data();
if (data) { if (data) {
node.innerText = numberWithCommas(data.likes) node.innerText = numberWithCommas(data.likes);
} else { } else {
node.innerText = 0 node.innerText = 0;
} }
toggleLoaders(node) toggleLoaders(node);
});
};
}) auth
} .signInAnonymously()
auth.signInAnonymously()
.then(() => { .then(() => {
var views_nodes = document.querySelectorAll("span[id^='views_']") var views_nodes = document.querySelectorAll("span[id^='views_']");
for (var i in views_nodes) { for (var i in views_nodes) {
var node = views_nodes[i] var node = views_nodes[i];
var id = node.id ? node.id.replaceAll("/", "-") : node.id var id = node.id ? node.id.replaceAll("/", "-") : node.id;
if (id) { if (id) {
update_views(node, id) update_views(node, id);
} }
} }
var likes_nodes = document.querySelectorAll("span[id^='likes_']") var likes_nodes = document.querySelectorAll("span[id^='likes_']");
for (var i in likes_nodes) { for (var i in likes_nodes) {
var node = likes_nodes[i] var node = likes_nodes[i];
var id = node.id ? node.id.replaceAll("/", "-") : node.id var id = node.id ? node.id.replaceAll("/", "-") : node.id;
if (id) { if (id) {
update_likes(node, id) update_likes(node, id);
} }
} }
}) })
.catch((error) => { .catch((error) => {
var errorCode = error.code; var errorCode = error.code;
var errorMessage = error.message; var errorMessage = error.message;
console.error(errorCode, errorMessage) console.error(errorCode, errorMessage);
}); });
} }

View file

@ -25,7 +25,11 @@ modal.addEventListener("click", function (event) {
document.addEventListener("keydown", function (event) { document.addEventListener("keydown", function (event) {
// Forward slash to open search wrapper // Forward slash to open search wrapper
if (event.key == "/") { if (event.key == "/") {
if (!searchVisible) { const active = document.activeElement;
const tag = active.tagName;
const isInputField = tag === "INPUT" || tag === "TEXTAREA" || active.isContentEditable;
if (!searchVisible && !isInputField) {
event.preventDefault(); event.preventDefault();
displaySearch(); displaySearch();
} }
@ -75,7 +79,6 @@ document.addEventListener("keydown", function (event) {
} }
} }
} }
}); });
// Update search on each keypress // Update search on each keypress
@ -122,7 +125,7 @@ function fetchJSON(path, callback) {
function buildIndex() { function buildIndex() {
var baseURL = wrapper.getAttribute("data-url"); var baseURL = wrapper.getAttribute("data-url");
baseURL = baseURL.replace(/\/?$/, '/'); baseURL = baseURL.replace(/\/?$/, "/");
fetchJSON(baseURL + "index.json", function (data) { fetchJSON(baseURL + "index.json", function (data) {
var options = { var options = {
shouldSort: true, shouldSort: true,
@ -153,13 +156,19 @@ function executeQuery(term) {
if (results.length > 0) { if (results.length > 0) {
results.forEach(function (value, key) { results.forEach(function (value, key) {
console.log(value.item.summary);
var html = value.item.summary; var html = value.item.summary;
var div = document.createElement("div"); var div = document.createElement("div");
div.innerHTML = html; div.innerHTML = html;
value.item.summary = div.textContent || div.innerText || ""; value.item.summary = div.textContent || div.innerText || "";
var title = value.item.externalUrl? value.item.title + '<span class="text-xs ml-2 align-center cursor-default text-neutral-400 dark:text-neutral-500">'+value.item.externalUrl+'</span>' : value.item.title; var title = value.item.externalUrl
var linkconfig = value.item.externalUrl? 'target="_blank" rel="noopener" href="'+value.item.externalUrl+'"' : 'href="'+value.item.permalink+'"'; ? value.item.title +
'<span class="text-xs ml-2 align-center cursor-default text-neutral-400 dark:text-neutral-500">' +
value.item.externalUrl +
"</span>"
: value.item.title;
var linkconfig = value.item.externalUrl
? 'target="_blank" rel="noopener" href="' + value.item.externalUrl + '"'
: 'href="' + value.item.permalink + '"';
resultsHTML = resultsHTML =
resultsHTML + resultsHTML +
`<li class="mb-2"> `<li class="mb-2">

View file

@ -2,19 +2,37 @@ function _getDefaultPackeryOptions() {
return { return {
percentPosition: true, percentPosition: true,
gutter: 5, gutter: 5,
resize: true resize: true,
};
}
function _getPackeryOptions(nodeGallery) {
const defaults = _getDefaultPackeryOptions();
const {
packeryGutter,
packeryPercentPosition,
packeryResize,
} = nodeGallery.dataset;
return {
percentPosition:
packeryPercentPosition !== undefined
? packeryPercentPosition === "true"
: defaults.percentPosition,
gutter:
packeryGutter !== undefined ? parseInt(packeryGutter, 10) : defaults.gutter,
resize:
packeryResize !== undefined ? packeryResize === "true" : defaults.resize,
}; };
} }
(function init() { (function init() {
$(window).on("load", function () { $(window).on("load", function () {
let packeries = []; let packeries = [];
let nodeGalleries = document.querySelectorAll('.gallery'); let nodeGalleries = document.querySelectorAll(".gallery");
nodeGalleries.forEach(nodeGallery => { nodeGalleries.forEach((nodeGallery) => {
// TODO : implement a reader of Packery configuration _getPackeryOptions; for example by reading data-attribute let packery = new Packery(nodeGallery, _getPackeryOptions(nodeGallery));
let packery = new Packery(nodeGallery, _getDefaultPackeryOptions());
packeries.push(packery); packeries.push(packery);
}); });
console.groupEnd(); console.groupEnd();

View file

@ -1,50 +1,50 @@
function _toogleZenMode(zendModeButton) { function _toogleZenMode(zendModeButton) {
// Nodes selection // Nodes selection
const body = document.querySelector('body'); const body = document.querySelector("body");
const tocRight = document.querySelector('.toc-right'); const footer = document.querySelector("footer");
const tocInside = document.querySelector('.toc-inside'); const tocRight = document.querySelector(".toc-right");
const articleContent = document.querySelector('.article-content'); const tocInside = document.querySelector(".toc-inside");
const header = document.querySelector('#single_header'); const articleContent = document.querySelector(".article-content");
const header = document.querySelector("#single_header");
// Add semantic class into body tag // Add semantic class into body tag
body.classList.toggle('zen-mode-enable'); body.classList.toggle("zen-mode-enable");
// Show/Hide 'toc right' and 'toc inside' // Show/Hide 'toc right' and 'toc inside'
if (tocRight) if (tocRight) tocRight.classList.toggle("lg:block");
tocRight.classList.toggle('lg:block'); if (tocInside) tocInside.classList.toggle("lg:hidden");
if (tocInside)
tocInside.classList.toggle('lg:hidden');
// Change width of article content // Change width of article content
articleContent.classList.toggle('max-w-fit'); articleContent.classList.toggle("max-w-fit");
articleContent.classList.toggle('max-w-prose'); articleContent.classList.toggle("max-w-prose");
// Change width of article title // Change width of article title and footer
header.classList.toggle('max-w-full'); header.classList.toggle("max-w-full");
header.classList.toggle('max-w-prose'); header.classList.toggle("max-w-prose");
footer.classList.toggle("max-w-full");
footer.classList.toggle("max-w-prose");
// Read i18n title from data-attributes // Read i18n title from data-attributes
const titleI18nDisable = zendModeButton.getAttribute('data-title-i18n-disable'); const titleI18nDisable = zendModeButton.getAttribute("data-title-i18n-disable");
const titleI18nEnable = zendModeButton.getAttribute('data-title-i18n-enable'); const titleI18nEnable = zendModeButton.getAttribute("data-title-i18n-enable");
if (body.classList.contains('zen-mode-enable')) { if (body.classList.contains("zen-mode-enable")) {
// Persist configuration // Persist configuration
//localStorage.setItem('blowfish-zen-mode-enabled', 'true'); //localStorage.setItem('blowfish-zen-mode-enabled', 'true');
// Change title to enable // Change title to enable
zendModeButton.setAttribute('title', titleI18nEnable) zendModeButton.setAttribute("title", titleI18nEnable);
// Auto-scroll to title article // Auto-scroll to title article
window.scrollTo(window.scrollX, header.getBoundingClientRect().top - 90); window.scrollTo(window.scrollX, header.getBoundingClientRect().top - 90);
} else { } else {
//localStorage.setItem('blowfish-zen-mode-enabled', 'false'); //localStorage.setItem('blowfish-zen-mode-enabled', 'false');
zendModeButton.setAttribute('title', titleI18nDisable); zendModeButton.setAttribute("title", titleI18nDisable);
document.querySelector('body').scrollIntoView(); document.querySelector("body").scrollIntoView();
} }
} }
function _registerZendModeButtonClick(zendModeButton) { function _registerZendModeButtonClick(zendModeButton) {
zendModeButton.addEventListener('click', function (event) { zendModeButton.addEventListener("click", function (event) {
event.preventDefault(); event.preventDefault();
// Toggle zen-mode // Toggle zen-mode
@ -55,7 +55,7 @@ function _registerZendModeButtonClick(zendModeButton) {
(function init() { (function init() {
window.addEventListener("DOMContentLoaded", (event) => { window.addEventListener("DOMContentLoaded", (event) => {
// Register click on 'zen-mode-button' node element // Register click on 'zen-mode-button' node element
const zendModeButton = document.getElementById('zen-mode-button'); const zendModeButton = document.getElementById("zen-mode-button");
if (zendModeButton !== null && zendModeButton !== undefined) { if (zendModeButton !== null && zendModeButton !== undefined) {
_registerZendModeButtonClick(zendModeButton); _registerZendModeButtonClick(zendModeButton);
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
.medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
[module] [module]
[module.hugoVersion] [module.hugoVersion]
extended = true extended = true
min = "0.87.0" min = "0.137.0"
max = "0.147.1" max = "0.148.0"

View file

@ -5,6 +5,13 @@
[goldmark.renderer] [goldmark.renderer]
unsafe = true unsafe = true
[goldmark.extensions]
[goldmark.extensions.passthrough]
enable = true
[goldmark.extensions.passthrough.delimiters]
block = [['\[', '\]'], ['$$', '$$']]
inline = [['\(', '\)']]
[highlight] [highlight]
noClasses = false noClasses = false

View file

@ -1,3 +0,0 @@
[hugoVersion]
extended = false
min = "0.87.0"

View file

@ -18,18 +18,22 @@ replyByEmail = false
# robots = "" # robots = ""
disableImageOptimization = false disableImageOptimization = false
disableImageOptimizationMD = false
disableTextInHeader = false disableTextInHeader = false
# backgroundImageWidth = 1200 # backgroundImageWidth = 1200
# defaultBackgroundImage = "IMAGE.jpg" # used as default for background images # defaultBackgroundImage = "IMAGE.jpg" # used as default for background images
# defaultFeaturedImage = "IMAGE.jpg" # used as default for featured images in all articles # defaultFeaturedImage = "IMAGE.jpg" # used as default for featured images in all articles
# defaultSocialImage = "/android-chrome-512x512.png" # used as default for social media sharing (Open Graph and Twitter)
# highlightCurrentMenuArea = true # highlightCurrentMenuArea = true
# smartTOC = true # smartTOC = true
# smartTOCHideUnfocusedChildren = true # smartTOCHideUnfocusedChildren = true
fingerprintAlgorithm = "sha512" # Valid values are "sha512" (default), "sha384", "sha256"
giteaDefaultServer = "https://git.fsfe.org" giteaDefaultServer = "https://git.fsfe.org"
forgejoDefaultServer = "https://v8.next.forgejo.org" forgejoDefaultServer = "https://v11.next.forgejo.org"
[header] [header]
layout = "basic" # valid options: basic, fixed, fixed-fill, fixed-gradient, fixed-fill-blur layout = "basic" # valid options: basic, fixed, fixed-fill, fixed-gradient, fixed-fill-blur
@ -51,6 +55,7 @@ forgejoDefaultServer = "https://v8.next.forgejo.org"
cardView = false cardView = false
cardViewScreenWidth = false cardViewScreenWidth = false
layoutBackgroundBlur = false # only used when layout equals background layoutBackgroundBlur = false # only used when layout equals background
disableHeroImageFilter = false # only used when layout equals hero
[article] [article]
showDate = true showDate = true
@ -77,10 +82,11 @@ forgejoDefaultServer = "https://v8.next.forgejo.org"
showTableOfContents = false showTableOfContents = false
# showRelatedContent = false # showRelatedContent = false
# relatedContentLimit = 3 # relatedContentLimit = 3
showTaxonomies = false showTaxonomies = false # use showTaxonomies OR showCategoryOnly, not both
showCategoryOnly = false # use showTaxonomies OR showCategoryOnly, not both
showAuthorsBadges = false showAuthorsBadges = false
showWordCount = true showWordCount = true
# sharingLinks = [ "linkedin", "twitter", "bluesky", "mastodon", "reddit", "pinterest", "facebook", "email", "whatsapp", "telegram"] # sharingLinks = [ "linkedin", "twitter", "bluesky", "mastodon", "reddit", "pinterest", "facebook", "email", "whatsapp", "telegram", "line"]
showZenMode = false showZenMode = false
[list] [list]
@ -165,3 +171,6 @@ forgejoDefaultServer = "https://v8.next.forgejo.org"
[rssnext] [rssnext]
# feedId = "" # feedId = ""
# userId = "" # userId = ""
[advertisement]
# adsense = ""

View file

@ -1,533 +0,0 @@
{
"1C Enterprise": "#814CCC",
"4D": "#004289",
"ABAP": "#E8274B",
"ABAP CDS": "#555e25",
"ActionScript": "#882B0F",
"Ada": "#02f88c",
"Adobe Font Metrics": "#fa0f00",
"Agda": "#315665",
"AGS Script": "#B9D9FF",
"AIDL": "#34EB6B",
"AL": "#3AA2B5",
"Alloy": "#64C800",
"Alpine Abuild": "#0D597F",
"Altium Designer": "#A89663",
"AMPL": "#E6EFBB",
"AngelScript": "#C7D7DC",
"Ant Build System": "#A9157E",
"ANTLR": "#9DC3FF",
"ApacheConf": "#d12127",
"Apex": "#1797c0",
"API Blueprint": "#2ACCA8",
"APL": "#5A8164",
"Apollo Guidance Computer": "#0B3D91",
"AppleScript": "#101F1F",
"Arc": "#aa2afe",
"AsciiDoc": "#73a0c5",
"ASL": null,
"ASP.NET": "#9400ff",
"AspectJ": "#a957b0",
"Assembly": "#6E4C13",
"Astro": "#ff5a03",
"Asymptote": "#ff0000",
"ATS": "#1ac620",
"Augeas": "#9CC134",
"AutoHotkey": "#6594b9",
"AutoIt": "#1C3552",
"Avro IDL": "#0040FF",
"Awk": "#c30e9b",
"Ballerina": "#FF5000",
"BASIC": "#ff0000",
"Batchfile": "#C1F12E",
"Beef": "#a52f4e",
"Befunge": null,
"BibTeX": "#778899",
"Bicep": "#519aba",
"Bison": "#6A463F",
"BitBake": "#00bce4",
"Blade": "#f7523f",
"BlitzBasic": "#00FFAE",
"BlitzMax": "#cd6400",
"Bluespec": "#12223c",
"Boo": "#d4bec1",
"Boogie": "#c80fa0",
"Brainfuck": "#2F2530",
"Brightscript": "#662D91",
"Browserslist": "#ffd539",
"C": "#555555",
"C#": "#178600",
"C++": "#f34b7d",
"C2hs Haskell": null,
"Cabal Config": "#483465",
"Cap'n Proto": "#c42727",
"CartoCSS": null,
"Ceylon": "#dfa535",
"Chapel": "#8dc63f",
"Charity": null,
"ChucK": "#3f8000",
"Cirru": "#ccccff",
"Clarion": "#db901e",
"Classic ASP": "#6a40fd",
"Clean": "#3F85AF",
"Click": "#E4E6F3",
"CLIPS": "#00A300",
"Clojure": "#db5855",
"Closure Templates": "#0d948f",
"Cloud Firestore Security Rules": "#FFA000",
"CMake": "#DA3434",
"COBOL": null,
"CodeQL": "#140f46",
"CoffeeScript": "#244776",
"ColdFusion": "#ed2cd6",
"ColdFusion CFC": "#ed2cd6",
"COLLADA": "#F1A42B",
"Common Lisp": "#3fb68b",
"Common Workflow Language": "#B5314C",
"Component Pascal": "#B0CE4E",
"Cool": null,
"Coq": "#d0b68c",
"Crystal": "#000100",
"CSON": "#244776",
"Csound": "#1a1a1a",
"Csound Document": "#1a1a1a",
"Csound Score": "#1a1a1a",
"CSS": "#563d7c",
"CSV": "#237346",
"Cuda": "#3A4E3A",
"CUE": "#5886E1",
"CWeb": "#00007a",
"Cycript": null,
"Cython": "#fedf5b",
"D": "#ba595e",
"Dafny": "#FFEC25",
"Darcs Patch": "#8eff23",
"Dart": "#00B4AB",
"DataWeave": "#003a52",
"Dhall": "#dfafff",
"DIGITAL Command Language": null,
"DirectX 3D File": "#aace60",
"DM": "#447265",
"Dockerfile": "#384d54",
"Dogescript": "#cca760",
"DTrace": null,
"Dylan": "#6c616e",
"E": "#ccce35",
"Easybuild": "#069406",
"eC": "#913960",
"Ecere Projects": "#913960",
"ECL": "#8a1267",
"ECLiPSe": "#001d9d",
"EditorConfig": "#fff1f2",
"Eiffel": "#4d6977",
"EJS": "#a91e50",
"Elixir": "#6e4a7e",
"Elm": "#60B5CC",
"Emacs Lisp": "#c065db",
"EmberScript": "#FFF4F3",
"EQ": "#a78649",
"Erlang": "#B83998",
"F#": "#b845fc",
"F*": "#572e30",
"Factor": "#636746",
"Fancy": "#7b9db4",
"Fantom": "#14253c",
"Faust": "#c37240",
"Fennel": "#fff3d7",
"FIGlet Font": "#FFDDBB",
"Filebench WML": "#F6B900",
"Filterscript": null,
"fish": "#4aae47",
"Fluent": "#ffcc33",
"FLUX": "#88ccff",
"Forth": "#341708",
"Fortran": "#4d41b1",
"Fortran Free Form": "#4d41b1",
"FreeBasic": "#867db1",
"FreeMarker": "#0050b2",
"Frege": "#00cafe",
"Futhark": "#5f021f",
"G-code": "#D08CF2",
"Game Maker Language": "#71b417",
"GAML": "#FFC766",
"GAMS": "#f49a22",
"GAP": "#0000cc",
"GCC Machine Description": "#FFCFAB",
"GDB": null,
"GDScript": "#355570",
"GEDCOM": "#003058",
"Gemfile.lock": "#701516",
"Genie": "#fb855d",
"Genshi": "#951531",
"Gentoo Ebuild": "#9400ff",
"Gentoo Eclass": "#9400ff",
"Gerber Image": "#d20b00",
"Gherkin": "#5B2063",
"Git Attributes": "#F44D27",
"Git Config": "#F44D27",
"GLSL": "#5686a5",
"Glyph": "#c1ac7f",
"Gnuplot": "#f0a9f0",
"Go": "#00ADD8",
"Go Checksums": "#00ADD8",
"Go Module": "#00ADD8",
"Golo": "#88562A",
"Gosu": "#82937f",
"Grace": "#615f8b",
"Gradle": "#02303a",
"Grammatical Framework": "#ff0000",
"GraphQL": "#e10098",
"Graphviz (DOT)": "#2596be",
"Groovy": "#4298b8",
"Groovy Server Pages": "#4298b8",
"Hack": "#878787",
"Haml": "#ece2a9",
"Handlebars": "#f7931e",
"HAProxy": "#106da9",
"Harbour": "#0e60e3",
"Haskell": "#5e5086",
"Haxe": "#df7900",
"HCL": null,
"HiveQL": "#dce200",
"HLSL": "#aace60",
"HolyC": "#ffefaf",
"HTML": "#e34c26",
"HTML+ECR": "#2e1052",
"HTML+EEX": "#6e4a7e",
"HTML+ERB": "#701516",
"HTML+PHP": "#4f5d95",
"HTML+Razor": "#512be4",
"HTTP": "#005C9C",
"HXML": "#f68712",
"Hy": "#7790B2",
"HyPhy": null,
"IDL": "#a3522f",
"Idris": "#b30000",
"Ignore List": "#000000",
"IGOR Pro": "#0000cc",
"ImageJ Macro": "#99AAFF",
"Inform 7": null,
"INI": "#d1dbe0",
"Inno Setup": "#264b99",
"Io": "#a9188d",
"Ioke": "#078193",
"Isabelle": "#FEFE00",
"Isabelle ROOT": "#FEFE00",
"J": "#9EEDFF",
"JAR Manifest": "#b07219",
"Jasmin": "#d03600",
"Java": "#b07219",
"Java Properties": "#2A6277",
"Java Server Pages": "#2A6277",
"JavaScript": "#f1e05a",
"JavaScript+ERB": "#f1e05a",
"Jest Snapshot": "#15c213",
"JFlex": "#DBCA00",
"Jinja": "#a52a22",
"Jison": "#56b3cb",
"Jison Lex": "#56b3cb",
"Jolie": "#843179",
"jq": "#c7254e",
"JSON": "#292929",
"JSON with Comments": "#292929",
"JSON5": "#267CB9",
"JSONiq": "#40d47e",
"JSONLD": "#0c479c",
"Jsonnet": "#0064bd",
"Julia": "#a270ba",
"Jupyter Notebook": "#DA5B0B",
"Kaitai Struct": "#773b37",
"KakouneScript": "#6f8042",
"KiCad Layout": "#2f4aab",
"KiCad Legacy Layout": "#2f4aab",
"KiCad Schematic": "#2f4aab",
"Kotlin": "#A97BFF",
"KRL": "#28430A",
"LabVIEW": "#fede06",
"Lark": "#2980B9",
"Lasso": "#999999",
"Latte": "#f2a542",
"Lean": null,
"Less": "#1d365d",
"Lex": "#DBCA00",
"LFE": "#4C3023",
"LilyPond": "#9ccc7c",
"Limbo": null,
"Liquid": "#67b8de",
"Literate Agda": "#315665",
"Literate CoffeeScript": "#244776",
"Literate Haskell": "#5e5086",
"LiveScript": "#499886",
"LLVM": "#185619",
"Logos": null,
"Logtalk": "#295b9a",
"LOLCODE": "#cc9900",
"LookML": "#652B81",
"LoomScript": null,
"LSL": "#3d9970",
"Lua": "#000080",
"M": null,
"M4": null,
"M4Sugar": null,
"Macaulay2": "#d8ffff",
"Makefile": "#427819",
"Mako": "#7e858d",
"Markdown": "#083fa1",
"Marko": "#42bff2",
"Mask": "#f97732",
"Mathematica": "#dd1100",
"MATLAB": "#e16737",
"Max": "#c4a79c",
"MAXScript": "#00a6a6",
"mcfunction": "#E22837",
"Mercury": "#ff2b2b",
"Meson": "#007800",
"Metal": "#8f14e9",
"MiniD": null,
"Mirah": "#c7a938",
"mIRC Script": "#3d57c3",
"MLIR": "#5EC8DB",
"Modelica": "#de1d31",
"Modula-2": "#10253f",
"Modula-3": "#223388",
"Module Management System": null,
"Monkey": null,
"Moocode": null,
"MoonScript": "#ff4585",
"Motorola 68K Assembly": "#005daa",
"MQL4": "#62A8D6",
"MQL5": "#4A76B8",
"MTML": "#b7e1f4",
"MUF": null,
"mupad": "#244963",
"Mustache": "#724b3b",
"Myghty": null,
"nanorc": "#2d004d",
"NASL": null,
"NCL": "#28431f",
"Nearley": "#990000",
"Nemerle": "#3d3c6e",
"nesC": "#94B0C7",
"NetLinx": "#0aa0ff",
"NetLinx+ERB": "#747faa",
"NetLogo": "#ff6375",
"NewLisp": "#87AED7",
"Nextflow": "#3ac486",
"Nginx": "#009639",
"Nim": "#ffc200",
"Nit": "#009917",
"Nix": "#7e7eff",
"NPM Config": "#cb3837",
"NSIS": null,
"Nu": "#c9df40",
"NumPy": "#9C8AF9",
"Nunjucks": "#3d8137",
"NWScript": "#111522",
"Objective-C": "#438eff",
"Objective-C++": "#6866fb",
"Objective-J": "#ff0c5a",
"ObjectScript": "#424893",
"OCaml": "#3be133",
"Odin": "#60AFFE",
"Omgrofl": "#cabbff",
"ooc": "#b0b77e",
"Opa": null,
"Opal": "#f7ede0",
"Open Policy Agent": "#7d9199",
"OpenCL": "#ed2e2d",
"OpenEdge ABL": "#5ce600",
"OpenQASM": "#AA70FF",
"OpenRC runscript": null,
"OpenSCAD": "#e5cd45",
"Org": "#77aa99",
"Ox": null,
"Oxygene": "#cdd0e3",
"Oz": "#fab738",
"P4": "#7055b5",
"Pan": "#cc0000",
"Papyrus": "#6600cc",
"Parrot": "#f3ca0a",
"Parrot Assembly": null,
"Parrot Internal Representation": null,
"Pascal": "#E3F171",
"Pawn": "#dbb284",
"PEG.js": "#234d6b",
"Pep8": "#C76F5B",
"Perl": "#0298c3",
"PHP": "#4F5D95",
"PicoLisp": "#6067af",
"PigLatin": "#fcd7de",
"Pike": "#005390",
"PLpgSQL": "#336790",
"PLSQL": "#dad8d8",
"PogoScript": "#d80074",
"Pony": null,
"PostCSS": "#dc3a0c",
"PostScript": "#da291c",
"POV-Ray SDL": "#6bac65",
"PowerBuilder": "#8f0f8d",
"PowerShell": "#012456",
"Prisma": "#0c344b",
"Processing": "#0096D8",
"Prolog": "#74283c",
"Propeller Spin": "#7fa2a7",
"Pug": "#a86454",
"Puppet": "#302B6D",
"PureBasic": "#5a6986",
"PureScript": "#1D222D",
"Python": "#3572A5",
"Python console": "#3572A5",
"Python traceback": "#3572A5",
"q": "#0040cd",
"Q#": "#fed659",
"QMake": null,
"QML": "#44a51c",
"Qt Script": "#00b841",
"Quake": "#882233",
"R": "#198CE7",
"Racket": "#3c5caa",
"Ragel": "#9d5200",
"Raku": "#0000fb",
"RAML": "#77d9fb",
"Rascal": "#fffaa0",
"RDoc": "#701516",
"REALbasic": null,
"Reason": "#ff5847",
"Rebol": "#358a5b",
"Record Jar": "#0673ba",
"Red": "#f50000",
"Redcode": null,
"Regular Expression": "#009a00",
"Ren'Py": "#ff7f7f",
"RenderScript": null,
"ReScript": "#ed5051",
"reStructuredText": "#141414",
"REXX": "#d90e09",
"Ring": "#2D54CB",
"Riot": "#A71E49",
"RMarkdown": "#198ce7",
"RobotFramework": "#00c0b5",
"Roff": "#ecdebe",
"Roff Manpage": "#ecdebe",
"Rouge": "#cc0088",
"RPC": null,
"Ruby": "#701516",
"RUNOFF": "#665a4e",
"Rust": "#dea584",
"Sage": null,
"SaltStack": "#646464",
"SAS": "#B34936",
"Sass": "#a53b70",
"Scala": "#c22d40",
"Scaml": "#bd181a",
"Scheme": "#1e4aec",
"Scilab": "#ca0f21",
"SCSS": "#c6538c",
"sed": "#64b970",
"Self": "#0579aa",
"ShaderLab": "#222c37",
"Shell": "#89e051",
"ShellSession": null,
"Shen": "#120F14",
"Sieve": null,
"Singularity": "#64E6AD",
"Slash": "#007eff",
"Slice": "#003fa2",
"Slim": "#2b2b2b",
"Smali": null,
"Smalltalk": "#596706",
"Smarty": "#f0c040",
"SmPL": "#c94949",
"SMT": null,
"Solidity": "#AA6746",
"SourcePawn": "#f69e1d",
"SPARQL": "#0C4597",
"SQF": "#3F3F3F",
"SQL": "#e38c00",
"SQLPL": "#e38c00",
"Squirrel": "#800000",
"SRecode Template": "#348a34",
"Stan": "#b2011d",
"Standard ML": "#dc566d",
"Starlark": "#76d275",
"Stata": "#1a5f91",
"StringTemplate": "#3fb34f",
"Stylus": "#ff6347",
"SubRip Text": "#9e0101",
"SugarSS": "#2fcc9f",
"SuperCollider": "#46390b",
"Svelte": "#ff3e00",
"SVG": "#ff9900",
"Swift": "#F05138",
"SWIG": null,
"SystemVerilog": "#DAE1C2",
"Tcl": "#e4cc98",
"Tcsh": null,
"Terra": "#00004c",
"TeX": "#3D6117",
"Textile": "#ffe7ac",
"TextMate Properties": "#df66e4",
"Thrift": "#D12127",
"TI Program": "#A0AA87",
"TLA": "#4b0079",
"TOML": "#9c4221",
"TSQL": "#e38c00",
"TSV": "#237346",
"TSX": "#2b7489",
"Turing": "#cf142b",
"Twig": "#c1d026",
"TXL": "#0178b8",
"TypeScript": "#2b7489",
"Unified Parallel C": "#4e3617",
"Unity3D Asset": "#222c37",
"Unix Assembly": null,
"Uno": "#9933cc",
"UnrealScript": "#a54c4d",
"UrWeb": "#ccccee",
"V": "#4f87c4",
"Vala": "#fbe5cd",
"Valve Data Format": "#f26025",
"VBA": "#867db1",
"VBScript": "#15dcdc",
"VCL": "#148AA8",
"Verilog": "#b2b7f8",
"VHDL": "#adb2cb",
"Vim Help File": "#199f4b",
"Vim Script": "#199f4b",
"Vim Snippet": "#199f4b",
"Visual Basic .NET": "#945db7",
"Volt": "#1F1F1F",
"Vue": "#41b883",
"wdl": "#42f1f4",
"Web Ontology Language": "#5b70bd",
"WebAssembly": "#04133b",
"WebIDL": null,
"Wikitext": "#fc5757",
"Windows Registry Entries": "#52d5ff",
"wisp": "#7582D1",
"Wollok": "#a23738",
"World of Warcraft Addon Data": "#f7e43f",
"X10": "#4B6BEF",
"xBase": "#403a40",
"XC": "#99DA07",
"XML": "#0060ac",
"XML Property List": "#0060ac",
"Xojo": "#81bd41",
"Xonsh": "#285EEF",
"XProc": null,
"XQuery": "#5232e7",
"XS": null,
"XSLT": "#EB8CEB",
"Xtend": "#24255d",
"Yacc": "#4B6C4B",
"YAML": "#cb171e",
"YARA": "#220000",
"YASnippet": "#32AB90",
"ZAP": "#0d665e",
"Zeek": null,
"ZenScript": "#00BCD1",
"Zephir": "#118f9e",
"Zig": "#ec915c",
"ZIL": "#dc75e5",
"Zimpl": "#d67711"
}

View file

@ -1,533 +0,0 @@
{
"1C Enterprise": "#814CCC",
"4D": "#004289",
"ABAP": "#E8274B",
"ABAP CDS": "#555e25",
"ActionScript": "#882B0F",
"Ada": "#02f88c",
"Adobe Font Metrics": "#fa0f00",
"Agda": "#315665",
"AGS Script": "#B9D9FF",
"AIDL": "#34EB6B",
"AL": "#3AA2B5",
"Alloy": "#64C800",
"Alpine Abuild": "#0D597F",
"Altium Designer": "#A89663",
"AMPL": "#E6EFBB",
"AngelScript": "#C7D7DC",
"Ant Build System": "#A9157E",
"ANTLR": "#9DC3FF",
"ApacheConf": "#d12127",
"Apex": "#1797c0",
"API Blueprint": "#2ACCA8",
"APL": "#5A8164",
"Apollo Guidance Computer": "#0B3D91",
"AppleScript": "#101F1F",
"Arc": "#aa2afe",
"AsciiDoc": "#73a0c5",
"ASL": null,
"ASP.NET": "#9400ff",
"AspectJ": "#a957b0",
"Assembly": "#6E4C13",
"Astro": "#ff5a03",
"Asymptote": "#ff0000",
"ATS": "#1ac620",
"Augeas": "#9CC134",
"AutoHotkey": "#6594b9",
"AutoIt": "#1C3552",
"Avro IDL": "#0040FF",
"Awk": "#c30e9b",
"Ballerina": "#FF5000",
"BASIC": "#ff0000",
"Batchfile": "#C1F12E",
"Beef": "#a52f4e",
"Befunge": null,
"BibTeX": "#778899",
"Bicep": "#519aba",
"Bison": "#6A463F",
"BitBake": "#00bce4",
"Blade": "#f7523f",
"BlitzBasic": "#00FFAE",
"BlitzMax": "#cd6400",
"Bluespec": "#12223c",
"Boo": "#d4bec1",
"Boogie": "#c80fa0",
"Brainfuck": "#2F2530",
"Brightscript": "#662D91",
"Browserslist": "#ffd539",
"C": "#555555",
"C#": "#178600",
"C++": "#f34b7d",
"C2hs Haskell": null,
"Cabal Config": "#483465",
"Cap'n Proto": "#c42727",
"CartoCSS": null,
"Ceylon": "#dfa535",
"Chapel": "#8dc63f",
"Charity": null,
"ChucK": "#3f8000",
"Cirru": "#ccccff",
"Clarion": "#db901e",
"Classic ASP": "#6a40fd",
"Clean": "#3F85AF",
"Click": "#E4E6F3",
"CLIPS": "#00A300",
"Clojure": "#db5855",
"Closure Templates": "#0d948f",
"Cloud Firestore Security Rules": "#FFA000",
"CMake": "#DA3434",
"COBOL": null,
"CodeQL": "#140f46",
"CoffeeScript": "#244776",
"ColdFusion": "#ed2cd6",
"ColdFusion CFC": "#ed2cd6",
"COLLADA": "#F1A42B",
"Common Lisp": "#3fb68b",
"Common Workflow Language": "#B5314C",
"Component Pascal": "#B0CE4E",
"Cool": null,
"Coq": "#d0b68c",
"Crystal": "#000100",
"CSON": "#244776",
"Csound": "#1a1a1a",
"Csound Document": "#1a1a1a",
"Csound Score": "#1a1a1a",
"CSS": "#563d7c",
"CSV": "#237346",
"Cuda": "#3A4E3A",
"CUE": "#5886E1",
"CWeb": "#00007a",
"Cycript": null,
"Cython": "#fedf5b",
"D": "#ba595e",
"Dafny": "#FFEC25",
"Darcs Patch": "#8eff23",
"Dart": "#00B4AB",
"DataWeave": "#003a52",
"Dhall": "#dfafff",
"DIGITAL Command Language": null,
"DirectX 3D File": "#aace60",
"DM": "#447265",
"Dockerfile": "#384d54",
"Dogescript": "#cca760",
"DTrace": null,
"Dylan": "#6c616e",
"E": "#ccce35",
"Easybuild": "#069406",
"eC": "#913960",
"Ecere Projects": "#913960",
"ECL": "#8a1267",
"ECLiPSe": "#001d9d",
"EditorConfig": "#fff1f2",
"Eiffel": "#4d6977",
"EJS": "#a91e50",
"Elixir": "#6e4a7e",
"Elm": "#60B5CC",
"Emacs Lisp": "#c065db",
"EmberScript": "#FFF4F3",
"EQ": "#a78649",
"Erlang": "#B83998",
"F#": "#b845fc",
"F*": "#572e30",
"Factor": "#636746",
"Fancy": "#7b9db4",
"Fantom": "#14253c",
"Faust": "#c37240",
"Fennel": "#fff3d7",
"FIGlet Font": "#FFDDBB",
"Filebench WML": "#F6B900",
"Filterscript": null,
"fish": "#4aae47",
"Fluent": "#ffcc33",
"FLUX": "#88ccff",
"Forth": "#341708",
"Fortran": "#4d41b1",
"Fortran Free Form": "#4d41b1",
"FreeBasic": "#867db1",
"FreeMarker": "#0050b2",
"Frege": "#00cafe",
"Futhark": "#5f021f",
"G-code": "#D08CF2",
"Game Maker Language": "#71b417",
"GAML": "#FFC766",
"GAMS": "#f49a22",
"GAP": "#0000cc",
"GCC Machine Description": "#FFCFAB",
"GDB": null,
"GDScript": "#355570",
"GEDCOM": "#003058",
"Gemfile.lock": "#701516",
"Genie": "#fb855d",
"Genshi": "#951531",
"Gentoo Ebuild": "#9400ff",
"Gentoo Eclass": "#9400ff",
"Gerber Image": "#d20b00",
"Gherkin": "#5B2063",
"Git Attributes": "#F44D27",
"Git Config": "#F44D27",
"GLSL": "#5686a5",
"Glyph": "#c1ac7f",
"Gnuplot": "#f0a9f0",
"Go": "#00ADD8",
"Go Checksums": "#00ADD8",
"Go Module": "#00ADD8",
"Golo": "#88562A",
"Gosu": "#82937f",
"Grace": "#615f8b",
"Gradle": "#02303a",
"Grammatical Framework": "#ff0000",
"GraphQL": "#e10098",
"Graphviz (DOT)": "#2596be",
"Groovy": "#4298b8",
"Groovy Server Pages": "#4298b8",
"Hack": "#878787",
"Haml": "#ece2a9",
"Handlebars": "#f7931e",
"HAProxy": "#106da9",
"Harbour": "#0e60e3",
"Haskell": "#5e5086",
"Haxe": "#df7900",
"HCL": null,
"HiveQL": "#dce200",
"HLSL": "#aace60",
"HolyC": "#ffefaf",
"HTML": "#e34c26",
"HTML+ECR": "#2e1052",
"HTML+EEX": "#6e4a7e",
"HTML+ERB": "#701516",
"HTML+PHP": "#4f5d95",
"HTML+Razor": "#512be4",
"HTTP": "#005C9C",
"HXML": "#f68712",
"Hy": "#7790B2",
"HyPhy": null,
"IDL": "#a3522f",
"Idris": "#b30000",
"Ignore List": "#000000",
"IGOR Pro": "#0000cc",
"ImageJ Macro": "#99AAFF",
"Inform 7": null,
"INI": "#d1dbe0",
"Inno Setup": "#264b99",
"Io": "#a9188d",
"Ioke": "#078193",
"Isabelle": "#FEFE00",
"Isabelle ROOT": "#FEFE00",
"J": "#9EEDFF",
"JAR Manifest": "#b07219",
"Jasmin": "#d03600",
"Java": "#b07219",
"Java Properties": "#2A6277",
"Java Server Pages": "#2A6277",
"JavaScript": "#f1e05a",
"JavaScript+ERB": "#f1e05a",
"Jest Snapshot": "#15c213",
"JFlex": "#DBCA00",
"Jinja": "#a52a22",
"Jison": "#56b3cb",
"Jison Lex": "#56b3cb",
"Jolie": "#843179",
"jq": "#c7254e",
"JSON": "#292929",
"JSON with Comments": "#292929",
"JSON5": "#267CB9",
"JSONiq": "#40d47e",
"JSONLD": "#0c479c",
"Jsonnet": "#0064bd",
"Julia": "#a270ba",
"Jupyter Notebook": "#DA5B0B",
"Kaitai Struct": "#773b37",
"KakouneScript": "#6f8042",
"KiCad Layout": "#2f4aab",
"KiCad Legacy Layout": "#2f4aab",
"KiCad Schematic": "#2f4aab",
"Kotlin": "#A97BFF",
"KRL": "#28430A",
"LabVIEW": "#fede06",
"Lark": "#2980B9",
"Lasso": "#999999",
"Latte": "#f2a542",
"Lean": null,
"Less": "#1d365d",
"Lex": "#DBCA00",
"LFE": "#4C3023",
"LilyPond": "#9ccc7c",
"Limbo": null,
"Liquid": "#67b8de",
"Literate Agda": "#315665",
"Literate CoffeeScript": "#244776",
"Literate Haskell": "#5e5086",
"LiveScript": "#499886",
"LLVM": "#185619",
"Logos": null,
"Logtalk": "#295b9a",
"LOLCODE": "#cc9900",
"LookML": "#652B81",
"LoomScript": null,
"LSL": "#3d9970",
"Lua": "#000080",
"M": null,
"M4": null,
"M4Sugar": null,
"Macaulay2": "#d8ffff",
"Makefile": "#427819",
"Mako": "#7e858d",
"Markdown": "#083fa1",
"Marko": "#42bff2",
"Mask": "#f97732",
"Mathematica": "#dd1100",
"MATLAB": "#e16737",
"Max": "#c4a79c",
"MAXScript": "#00a6a6",
"mcfunction": "#E22837",
"Mercury": "#ff2b2b",
"Meson": "#007800",
"Metal": "#8f14e9",
"MiniD": null,
"Mirah": "#c7a938",
"mIRC Script": "#3d57c3",
"MLIR": "#5EC8DB",
"Modelica": "#de1d31",
"Modula-2": "#10253f",
"Modula-3": "#223388",
"Module Management System": null,
"Monkey": null,
"Moocode": null,
"MoonScript": "#ff4585",
"Motorola 68K Assembly": "#005daa",
"MQL4": "#62A8D6",
"MQL5": "#4A76B8",
"MTML": "#b7e1f4",
"MUF": null,
"mupad": "#244963",
"Mustache": "#724b3b",
"Myghty": null,
"nanorc": "#2d004d",
"NASL": null,
"NCL": "#28431f",
"Nearley": "#990000",
"Nemerle": "#3d3c6e",
"nesC": "#94B0C7",
"NetLinx": "#0aa0ff",
"NetLinx+ERB": "#747faa",
"NetLogo": "#ff6375",
"NewLisp": "#87AED7",
"Nextflow": "#3ac486",
"Nginx": "#009639",
"Nim": "#ffc200",
"Nit": "#009917",
"Nix": "#7e7eff",
"NPM Config": "#cb3837",
"NSIS": null,
"Nu": "#c9df40",
"NumPy": "#9C8AF9",
"Nunjucks": "#3d8137",
"NWScript": "#111522",
"Objective-C": "#438eff",
"Objective-C++": "#6866fb",
"Objective-J": "#ff0c5a",
"ObjectScript": "#424893",
"OCaml": "#3be133",
"Odin": "#60AFFE",
"Omgrofl": "#cabbff",
"ooc": "#b0b77e",
"Opa": null,
"Opal": "#f7ede0",
"Open Policy Agent": "#7d9199",
"OpenCL": "#ed2e2d",
"OpenEdge ABL": "#5ce600",
"OpenQASM": "#AA70FF",
"OpenRC runscript": null,
"OpenSCAD": "#e5cd45",
"Org": "#77aa99",
"Ox": null,
"Oxygene": "#cdd0e3",
"Oz": "#fab738",
"P4": "#7055b5",
"Pan": "#cc0000",
"Papyrus": "#6600cc",
"Parrot": "#f3ca0a",
"Parrot Assembly": null,
"Parrot Internal Representation": null,
"Pascal": "#E3F171",
"Pawn": "#dbb284",
"PEG.js": "#234d6b",
"Pep8": "#C76F5B",
"Perl": "#0298c3",
"PHP": "#4F5D95",
"PicoLisp": "#6067af",
"PigLatin": "#fcd7de",
"Pike": "#005390",
"PLpgSQL": "#336790",
"PLSQL": "#dad8d8",
"PogoScript": "#d80074",
"Pony": null,
"PostCSS": "#dc3a0c",
"PostScript": "#da291c",
"POV-Ray SDL": "#6bac65",
"PowerBuilder": "#8f0f8d",
"PowerShell": "#012456",
"Prisma": "#0c344b",
"Processing": "#0096D8",
"Prolog": "#74283c",
"Propeller Spin": "#7fa2a7",
"Pug": "#a86454",
"Puppet": "#302B6D",
"PureBasic": "#5a6986",
"PureScript": "#1D222D",
"Python": "#3572A5",
"Python console": "#3572A5",
"Python traceback": "#3572A5",
"q": "#0040cd",
"Q#": "#fed659",
"QMake": null,
"QML": "#44a51c",
"Qt Script": "#00b841",
"Quake": "#882233",
"R": "#198CE7",
"Racket": "#3c5caa",
"Ragel": "#9d5200",
"Raku": "#0000fb",
"RAML": "#77d9fb",
"Rascal": "#fffaa0",
"RDoc": "#701516",
"REALbasic": null,
"Reason": "#ff5847",
"Rebol": "#358a5b",
"Record Jar": "#0673ba",
"Red": "#f50000",
"Redcode": null,
"Regular Expression": "#009a00",
"Ren'Py": "#ff7f7f",
"RenderScript": null,
"ReScript": "#ed5051",
"reStructuredText": "#141414",
"REXX": "#d90e09",
"Ring": "#2D54CB",
"Riot": "#A71E49",
"RMarkdown": "#198ce7",
"RobotFramework": "#00c0b5",
"Roff": "#ecdebe",
"Roff Manpage": "#ecdebe",
"Rouge": "#cc0088",
"RPC": null,
"Ruby": "#701516",
"RUNOFF": "#665a4e",
"Rust": "#dea584",
"Sage": null,
"SaltStack": "#646464",
"SAS": "#B34936",
"Sass": "#a53b70",
"Scala": "#c22d40",
"Scaml": "#bd181a",
"Scheme": "#1e4aec",
"Scilab": "#ca0f21",
"SCSS": "#c6538c",
"sed": "#64b970",
"Self": "#0579aa",
"ShaderLab": "#222c37",
"Shell": "#89e051",
"ShellSession": null,
"Shen": "#120F14",
"Sieve": null,
"Singularity": "#64E6AD",
"Slash": "#007eff",
"Slice": "#003fa2",
"Slim": "#2b2b2b",
"Smali": null,
"Smalltalk": "#596706",
"Smarty": "#f0c040",
"SmPL": "#c94949",
"SMT": null,
"Solidity": "#AA6746",
"SourcePawn": "#f69e1d",
"SPARQL": "#0C4597",
"SQF": "#3F3F3F",
"SQL": "#e38c00",
"SQLPL": "#e38c00",
"Squirrel": "#800000",
"SRecode Template": "#348a34",
"Stan": "#b2011d",
"Standard ML": "#dc566d",
"Starlark": "#76d275",
"Stata": "#1a5f91",
"StringTemplate": "#3fb34f",
"Stylus": "#ff6347",
"SubRip Text": "#9e0101",
"SugarSS": "#2fcc9f",
"SuperCollider": "#46390b",
"Svelte": "#ff3e00",
"SVG": "#ff9900",
"Swift": "#F05138",
"SWIG": null,
"SystemVerilog": "#DAE1C2",
"Tcl": "#e4cc98",
"Tcsh": null,
"Terra": "#00004c",
"TeX": "#3D6117",
"Textile": "#ffe7ac",
"TextMate Properties": "#df66e4",
"Thrift": "#D12127",
"TI Program": "#A0AA87",
"TLA": "#4b0079",
"TOML": "#9c4221",
"TSQL": "#e38c00",
"TSV": "#237346",
"TSX": "#2b7489",
"Turing": "#cf142b",
"Twig": "#c1d026",
"TXL": "#0178b8",
"TypeScript": "#2b7489",
"Unified Parallel C": "#4e3617",
"Unity3D Asset": "#222c37",
"Unix Assembly": null,
"Uno": "#9933cc",
"UnrealScript": "#a54c4d",
"UrWeb": "#ccccee",
"V": "#4f87c4",
"Vala": "#fbe5cd",
"Valve Data Format": "#f26025",
"VBA": "#867db1",
"VBScript": "#15dcdc",
"VCL": "#148AA8",
"Verilog": "#b2b7f8",
"VHDL": "#adb2cb",
"Vim Help File": "#199f4b",
"Vim Script": "#199f4b",
"Vim Snippet": "#199f4b",
"Visual Basic .NET": "#945db7",
"Volt": "#1F1F1F",
"Vue": "#41b883",
"wdl": "#42f1f4",
"Web Ontology Language": "#5b70bd",
"WebAssembly": "#04133b",
"WebIDL": null,
"Wikitext": "#fc5757",
"Windows Registry Entries": "#52d5ff",
"wisp": "#7582D1",
"Wollok": "#a23738",
"World of Warcraft Addon Data": "#f7e43f",
"X10": "#4B6BEF",
"xBase": "#403a40",
"XC": "#99DA07",
"XML": "#0060ac",
"XML Property List": "#0060ac",
"Xojo": "#81bd41",
"Xonsh": "#285EEF",
"XProc": null,
"XQuery": "#5232e7",
"XS": null,
"XSLT": "#EB8CEB",
"Xtend": "#24255d",
"Yacc": "#4B6C4B",
"YAML": "#cb171e",
"YARA": "#220000",
"YASnippet": "#32AB90",
"ZAP": "#0d665e",
"Zeek": null,
"ZenScript": "#00BCD1",
"Zephir": "#118f9e",
"Zig": "#ec915c",
"ZIL": "#dc75e5",
"Zimpl": "#d67711"
}

View file

@ -1,533 +0,0 @@
{
"1C Enterprise": "#814CCC",
"4D": "#004289",
"ABAP": "#E8274B",
"ABAP CDS": "#555e25",
"ActionScript": "#882B0F",
"Ada": "#02f88c",
"Adobe Font Metrics": "#fa0f00",
"Agda": "#315665",
"AGS Script": "#B9D9FF",
"AIDL": "#34EB6B",
"AL": "#3AA2B5",
"Alloy": "#64C800",
"Alpine Abuild": "#0D597F",
"Altium Designer": "#A89663",
"AMPL": "#E6EFBB",
"AngelScript": "#C7D7DC",
"Ant Build System": "#A9157E",
"ANTLR": "#9DC3FF",
"ApacheConf": "#d12127",
"Apex": "#1797c0",
"API Blueprint": "#2ACCA8",
"APL": "#5A8164",
"Apollo Guidance Computer": "#0B3D91",
"AppleScript": "#101F1F",
"Arc": "#aa2afe",
"AsciiDoc": "#73a0c5",
"ASL": null,
"ASP.NET": "#9400ff",
"AspectJ": "#a957b0",
"Assembly": "#6E4C13",
"Astro": "#ff5a03",
"Asymptote": "#ff0000",
"ATS": "#1ac620",
"Augeas": "#9CC134",
"AutoHotkey": "#6594b9",
"AutoIt": "#1C3552",
"Avro IDL": "#0040FF",
"Awk": "#c30e9b",
"Ballerina": "#FF5000",
"BASIC": "#ff0000",
"Batchfile": "#C1F12E",
"Beef": "#a52f4e",
"Befunge": null,
"BibTeX": "#778899",
"Bicep": "#519aba",
"Bison": "#6A463F",
"BitBake": "#00bce4",
"Blade": "#f7523f",
"BlitzBasic": "#00FFAE",
"BlitzMax": "#cd6400",
"Bluespec": "#12223c",
"Boo": "#d4bec1",
"Boogie": "#c80fa0",
"Brainfuck": "#2F2530",
"Brightscript": "#662D91",
"Browserslist": "#ffd539",
"C": "#555555",
"C#": "#178600",
"C++": "#f34b7d",
"C2hs Haskell": null,
"Cabal Config": "#483465",
"Cap'n Proto": "#c42727",
"CartoCSS": null,
"Ceylon": "#dfa535",
"Chapel": "#8dc63f",
"Charity": null,
"ChucK": "#3f8000",
"Cirru": "#ccccff",
"Clarion": "#db901e",
"Classic ASP": "#6a40fd",
"Clean": "#3F85AF",
"Click": "#E4E6F3",
"CLIPS": "#00A300",
"Clojure": "#db5855",
"Closure Templates": "#0d948f",
"Cloud Firestore Security Rules": "#FFA000",
"CMake": "#DA3434",
"COBOL": null,
"CodeQL": "#140f46",
"CoffeeScript": "#244776",
"ColdFusion": "#ed2cd6",
"ColdFusion CFC": "#ed2cd6",
"COLLADA": "#F1A42B",
"Common Lisp": "#3fb68b",
"Common Workflow Language": "#B5314C",
"Component Pascal": "#B0CE4E",
"Cool": null,
"Coq": "#d0b68c",
"Crystal": "#000100",
"CSON": "#244776",
"Csound": "#1a1a1a",
"Csound Document": "#1a1a1a",
"Csound Score": "#1a1a1a",
"CSS": "#563d7c",
"CSV": "#237346",
"Cuda": "#3A4E3A",
"CUE": "#5886E1",
"CWeb": "#00007a",
"Cycript": null,
"Cython": "#fedf5b",
"D": "#ba595e",
"Dafny": "#FFEC25",
"Darcs Patch": "#8eff23",
"Dart": "#00B4AB",
"DataWeave": "#003a52",
"Dhall": "#dfafff",
"DIGITAL Command Language": null,
"DirectX 3D File": "#aace60",
"DM": "#447265",
"Dockerfile": "#384d54",
"Dogescript": "#cca760",
"DTrace": null,
"Dylan": "#6c616e",
"E": "#ccce35",
"Easybuild": "#069406",
"eC": "#913960",
"Ecere Projects": "#913960",
"ECL": "#8a1267",
"ECLiPSe": "#001d9d",
"EditorConfig": "#fff1f2",
"Eiffel": "#4d6977",
"EJS": "#a91e50",
"Elixir": "#6e4a7e",
"Elm": "#60B5CC",
"Emacs Lisp": "#c065db",
"EmberScript": "#FFF4F3",
"EQ": "#a78649",
"Erlang": "#B83998",
"F#": "#b845fc",
"F*": "#572e30",
"Factor": "#636746",
"Fancy": "#7b9db4",
"Fantom": "#14253c",
"Faust": "#c37240",
"Fennel": "#fff3d7",
"FIGlet Font": "#FFDDBB",
"Filebench WML": "#F6B900",
"Filterscript": null,
"fish": "#4aae47",
"Fluent": "#ffcc33",
"FLUX": "#88ccff",
"Forth": "#341708",
"Fortran": "#4d41b1",
"Fortran Free Form": "#4d41b1",
"FreeBasic": "#867db1",
"FreeMarker": "#0050b2",
"Frege": "#00cafe",
"Futhark": "#5f021f",
"G-code": "#D08CF2",
"Game Maker Language": "#71b417",
"GAML": "#FFC766",
"GAMS": "#f49a22",
"GAP": "#0000cc",
"GCC Machine Description": "#FFCFAB",
"GDB": null,
"GDScript": "#355570",
"GEDCOM": "#003058",
"Gemfile.lock": "#701516",
"Genie": "#fb855d",
"Genshi": "#951531",
"Gentoo Ebuild": "#9400ff",
"Gentoo Eclass": "#9400ff",
"Gerber Image": "#d20b00",
"Gherkin": "#5B2063",
"Git Attributes": "#F44D27",
"Git Config": "#F44D27",
"GLSL": "#5686a5",
"Glyph": "#c1ac7f",
"Gnuplot": "#f0a9f0",
"Go": "#00ADD8",
"Go Checksums": "#00ADD8",
"Go Module": "#00ADD8",
"Golo": "#88562A",
"Gosu": "#82937f",
"Grace": "#615f8b",
"Gradle": "#02303a",
"Grammatical Framework": "#ff0000",
"GraphQL": "#e10098",
"Graphviz (DOT)": "#2596be",
"Groovy": "#4298b8",
"Groovy Server Pages": "#4298b8",
"Hack": "#878787",
"Haml": "#ece2a9",
"Handlebars": "#f7931e",
"HAProxy": "#106da9",
"Harbour": "#0e60e3",
"Haskell": "#5e5086",
"Haxe": "#df7900",
"HCL": null,
"HiveQL": "#dce200",
"HLSL": "#aace60",
"HolyC": "#ffefaf",
"HTML": "#e34c26",
"HTML+ECR": "#2e1052",
"HTML+EEX": "#6e4a7e",
"HTML+ERB": "#701516",
"HTML+PHP": "#4f5d95",
"HTML+Razor": "#512be4",
"HTTP": "#005C9C",
"HXML": "#f68712",
"Hy": "#7790B2",
"HyPhy": null,
"IDL": "#a3522f",
"Idris": "#b30000",
"Ignore List": "#000000",
"IGOR Pro": "#0000cc",
"ImageJ Macro": "#99AAFF",
"Inform 7": null,
"INI": "#d1dbe0",
"Inno Setup": "#264b99",
"Io": "#a9188d",
"Ioke": "#078193",
"Isabelle": "#FEFE00",
"Isabelle ROOT": "#FEFE00",
"J": "#9EEDFF",
"JAR Manifest": "#b07219",
"Jasmin": "#d03600",
"Java": "#b07219",
"Java Properties": "#2A6277",
"Java Server Pages": "#2A6277",
"JavaScript": "#f1e05a",
"JavaScript+ERB": "#f1e05a",
"Jest Snapshot": "#15c213",
"JFlex": "#DBCA00",
"Jinja": "#a52a22",
"Jison": "#56b3cb",
"Jison Lex": "#56b3cb",
"Jolie": "#843179",
"jq": "#c7254e",
"JSON": "#292929",
"JSON with Comments": "#292929",
"JSON5": "#267CB9",
"JSONiq": "#40d47e",
"JSONLD": "#0c479c",
"Jsonnet": "#0064bd",
"Julia": "#a270ba",
"Jupyter Notebook": "#DA5B0B",
"Kaitai Struct": "#773b37",
"KakouneScript": "#6f8042",
"KiCad Layout": "#2f4aab",
"KiCad Legacy Layout": "#2f4aab",
"KiCad Schematic": "#2f4aab",
"Kotlin": "#A97BFF",
"KRL": "#28430A",
"LabVIEW": "#fede06",
"Lark": "#2980B9",
"Lasso": "#999999",
"Latte": "#f2a542",
"Lean": null,
"Less": "#1d365d",
"Lex": "#DBCA00",
"LFE": "#4C3023",
"LilyPond": "#9ccc7c",
"Limbo": null,
"Liquid": "#67b8de",
"Literate Agda": "#315665",
"Literate CoffeeScript": "#244776",
"Literate Haskell": "#5e5086",
"LiveScript": "#499886",
"LLVM": "#185619",
"Logos": null,
"Logtalk": "#295b9a",
"LOLCODE": "#cc9900",
"LookML": "#652B81",
"LoomScript": null,
"LSL": "#3d9970",
"Lua": "#000080",
"M": null,
"M4": null,
"M4Sugar": null,
"Macaulay2": "#d8ffff",
"Makefile": "#427819",
"Mako": "#7e858d",
"Markdown": "#083fa1",
"Marko": "#42bff2",
"Mask": "#f97732",
"Mathematica": "#dd1100",
"MATLAB": "#e16737",
"Max": "#c4a79c",
"MAXScript": "#00a6a6",
"mcfunction": "#E22837",
"Mercury": "#ff2b2b",
"Meson": "#007800",
"Metal": "#8f14e9",
"MiniD": null,
"Mirah": "#c7a938",
"mIRC Script": "#3d57c3",
"MLIR": "#5EC8DB",
"Modelica": "#de1d31",
"Modula-2": "#10253f",
"Modula-3": "#223388",
"Module Management System": null,
"Monkey": null,
"Moocode": null,
"MoonScript": "#ff4585",
"Motorola 68K Assembly": "#005daa",
"MQL4": "#62A8D6",
"MQL5": "#4A76B8",
"MTML": "#b7e1f4",
"MUF": null,
"mupad": "#244963",
"Mustache": "#724b3b",
"Myghty": null,
"nanorc": "#2d004d",
"NASL": null,
"NCL": "#28431f",
"Nearley": "#990000",
"Nemerle": "#3d3c6e",
"nesC": "#94B0C7",
"NetLinx": "#0aa0ff",
"NetLinx+ERB": "#747faa",
"NetLogo": "#ff6375",
"NewLisp": "#87AED7",
"Nextflow": "#3ac486",
"Nginx": "#009639",
"Nim": "#ffc200",
"Nit": "#009917",
"Nix": "#7e7eff",
"NPM Config": "#cb3837",
"NSIS": null,
"Nu": "#c9df40",
"NumPy": "#9C8AF9",
"Nunjucks": "#3d8137",
"NWScript": "#111522",
"Objective-C": "#438eff",
"Objective-C++": "#6866fb",
"Objective-J": "#ff0c5a",
"ObjectScript": "#424893",
"OCaml": "#3be133",
"Odin": "#60AFFE",
"Omgrofl": "#cabbff",
"ooc": "#b0b77e",
"Opa": null,
"Opal": "#f7ede0",
"Open Policy Agent": "#7d9199",
"OpenCL": "#ed2e2d",
"OpenEdge ABL": "#5ce600",
"OpenQASM": "#AA70FF",
"OpenRC runscript": null,
"OpenSCAD": "#e5cd45",
"Org": "#77aa99",
"Ox": null,
"Oxygene": "#cdd0e3",
"Oz": "#fab738",
"P4": "#7055b5",
"Pan": "#cc0000",
"Papyrus": "#6600cc",
"Parrot": "#f3ca0a",
"Parrot Assembly": null,
"Parrot Internal Representation": null,
"Pascal": "#E3F171",
"Pawn": "#dbb284",
"PEG.js": "#234d6b",
"Pep8": "#C76F5B",
"Perl": "#0298c3",
"PHP": "#4F5D95",
"PicoLisp": "#6067af",
"PigLatin": "#fcd7de",
"Pike": "#005390",
"PLpgSQL": "#336790",
"PLSQL": "#dad8d8",
"PogoScript": "#d80074",
"Pony": null,
"PostCSS": "#dc3a0c",
"PostScript": "#da291c",
"POV-Ray SDL": "#6bac65",
"PowerBuilder": "#8f0f8d",
"PowerShell": "#012456",
"Prisma": "#0c344b",
"Processing": "#0096D8",
"Prolog": "#74283c",
"Propeller Spin": "#7fa2a7",
"Pug": "#a86454",
"Puppet": "#302B6D",
"PureBasic": "#5a6986",
"PureScript": "#1D222D",
"Python": "#3572A5",
"Python console": "#3572A5",
"Python traceback": "#3572A5",
"q": "#0040cd",
"Q#": "#fed659",
"QMake": null,
"QML": "#44a51c",
"Qt Script": "#00b841",
"Quake": "#882233",
"R": "#198CE7",
"Racket": "#3c5caa",
"Ragel": "#9d5200",
"Raku": "#0000fb",
"RAML": "#77d9fb",
"Rascal": "#fffaa0",
"RDoc": "#701516",
"REALbasic": null,
"Reason": "#ff5847",
"Rebol": "#358a5b",
"Record Jar": "#0673ba",
"Red": "#f50000",
"Redcode": null,
"Regular Expression": "#009a00",
"Ren'Py": "#ff7f7f",
"RenderScript": null,
"ReScript": "#ed5051",
"reStructuredText": "#141414",
"REXX": "#d90e09",
"Ring": "#2D54CB",
"Riot": "#A71E49",
"RMarkdown": "#198ce7",
"RobotFramework": "#00c0b5",
"Roff": "#ecdebe",
"Roff Manpage": "#ecdebe",
"Rouge": "#cc0088",
"RPC": null,
"Ruby": "#701516",
"RUNOFF": "#665a4e",
"Rust": "#dea584",
"Sage": null,
"SaltStack": "#646464",
"SAS": "#B34936",
"Sass": "#a53b70",
"Scala": "#c22d40",
"Scaml": "#bd181a",
"Scheme": "#1e4aec",
"Scilab": "#ca0f21",
"SCSS": "#c6538c",
"sed": "#64b970",
"Self": "#0579aa",
"ShaderLab": "#222c37",
"Shell": "#89e051",
"ShellSession": null,
"Shen": "#120F14",
"Sieve": null,
"Singularity": "#64E6AD",
"Slash": "#007eff",
"Slice": "#003fa2",
"Slim": "#2b2b2b",
"Smali": null,
"Smalltalk": "#596706",
"Smarty": "#f0c040",
"SmPL": "#c94949",
"SMT": null,
"Solidity": "#AA6746",
"SourcePawn": "#f69e1d",
"SPARQL": "#0C4597",
"SQF": "#3F3F3F",
"SQL": "#e38c00",
"SQLPL": "#e38c00",
"Squirrel": "#800000",
"SRecode Template": "#348a34",
"Stan": "#b2011d",
"Standard ML": "#dc566d",
"Starlark": "#76d275",
"Stata": "#1a5f91",
"StringTemplate": "#3fb34f",
"Stylus": "#ff6347",
"SubRip Text": "#9e0101",
"SugarSS": "#2fcc9f",
"SuperCollider": "#46390b",
"Svelte": "#ff3e00",
"SVG": "#ff9900",
"Swift": "#F05138",
"SWIG": null,
"SystemVerilog": "#DAE1C2",
"Tcl": "#e4cc98",
"Tcsh": null,
"Terra": "#00004c",
"TeX": "#3D6117",
"Textile": "#ffe7ac",
"TextMate Properties": "#df66e4",
"Thrift": "#D12127",
"TI Program": "#A0AA87",
"TLA": "#4b0079",
"TOML": "#9c4221",
"TSQL": "#e38c00",
"TSV": "#237346",
"TSX": "#2b7489",
"Turing": "#cf142b",
"Twig": "#c1d026",
"TXL": "#0178b8",
"TypeScript": "#2b7489",
"Unified Parallel C": "#4e3617",
"Unity3D Asset": "#222c37",
"Unix Assembly": null,
"Uno": "#9933cc",
"UnrealScript": "#a54c4d",
"UrWeb": "#ccccee",
"V": "#4f87c4",
"Vala": "#fbe5cd",
"Valve Data Format": "#f26025",
"VBA": "#867db1",
"VBScript": "#15dcdc",
"VCL": "#148AA8",
"Verilog": "#b2b7f8",
"VHDL": "#adb2cb",
"Vim Help File": "#199f4b",
"Vim Script": "#199f4b",
"Vim Snippet": "#199f4b",
"Visual Basic .NET": "#945db7",
"Volt": "#1F1F1F",
"Vue": "#41b883",
"wdl": "#42f1f4",
"Web Ontology Language": "#5b70bd",
"WebAssembly": "#04133b",
"WebIDL": null,
"Wikitext": "#fc5757",
"Windows Registry Entries": "#52d5ff",
"wisp": "#7582D1",
"Wollok": "#a23738",
"World of Warcraft Addon Data": "#f7e43f",
"X10": "#4B6BEF",
"xBase": "#403a40",
"XC": "#99DA07",
"XML": "#0060ac",
"XML Property List": "#0060ac",
"Xojo": "#81bd41",
"Xonsh": "#285EEF",
"XProc": null,
"XQuery": "#5232e7",
"XS": null,
"XSLT": "#EB8CEB",
"Xtend": "#24255d",
"Yacc": "#4B6C4B",
"YAML": "#cb171e",
"YARA": "#220000",
"YASnippet": "#32AB90",
"ZAP": "#0d665e",
"Zeek": null,
"ZenScript": "#00BCD1",
"Zephir": "#118f9e",
"Zig": "#ec915c",
"ZIL": "#dc75e5",
"Zimpl": "#d67711"
}

View file

@ -1,533 +0,0 @@
{
"1C Enterprise": "#814CCC",
"4D": "#004289",
"ABAP": "#E8274B",
"ABAP CDS": "#555e25",
"ActionScript": "#882B0F",
"Ada": "#02f88c",
"Adobe Font Metrics": "#fa0f00",
"Agda": "#315665",
"AGS Script": "#B9D9FF",
"AIDL": "#34EB6B",
"AL": "#3AA2B5",
"Alloy": "#64C800",
"Alpine Abuild": "#0D597F",
"Altium Designer": "#A89663",
"AMPL": "#E6EFBB",
"AngelScript": "#C7D7DC",
"Ant Build System": "#A9157E",
"ANTLR": "#9DC3FF",
"ApacheConf": "#d12127",
"Apex": "#1797c0",
"API Blueprint": "#2ACCA8",
"APL": "#5A8164",
"Apollo Guidance Computer": "#0B3D91",
"AppleScript": "#101F1F",
"Arc": "#aa2afe",
"AsciiDoc": "#73a0c5",
"ASL": null,
"ASP.NET": "#9400ff",
"AspectJ": "#a957b0",
"Assembly": "#6E4C13",
"Astro": "#ff5a03",
"Asymptote": "#ff0000",
"ATS": "#1ac620",
"Augeas": "#9CC134",
"AutoHotkey": "#6594b9",
"AutoIt": "#1C3552",
"Avro IDL": "#0040FF",
"Awk": "#c30e9b",
"Ballerina": "#FF5000",
"BASIC": "#ff0000",
"Batchfile": "#C1F12E",
"Beef": "#a52f4e",
"Befunge": null,
"BibTeX": "#778899",
"Bicep": "#519aba",
"Bison": "#6A463F",
"BitBake": "#00bce4",
"Blade": "#f7523f",
"BlitzBasic": "#00FFAE",
"BlitzMax": "#cd6400",
"Bluespec": "#12223c",
"Boo": "#d4bec1",
"Boogie": "#c80fa0",
"Brainfuck": "#2F2530",
"Brightscript": "#662D91",
"Browserslist": "#ffd539",
"C": "#555555",
"C#": "#178600",
"C++": "#f34b7d",
"C2hs Haskell": null,
"Cabal Config": "#483465",
"Cap'n Proto": "#c42727",
"CartoCSS": null,
"Ceylon": "#dfa535",
"Chapel": "#8dc63f",
"Charity": null,
"ChucK": "#3f8000",
"Cirru": "#ccccff",
"Clarion": "#db901e",
"Classic ASP": "#6a40fd",
"Clean": "#3F85AF",
"Click": "#E4E6F3",
"CLIPS": "#00A300",
"Clojure": "#db5855",
"Closure Templates": "#0d948f",
"Cloud Firestore Security Rules": "#FFA000",
"CMake": "#DA3434",
"COBOL": null,
"CodeQL": "#140f46",
"CoffeeScript": "#244776",
"ColdFusion": "#ed2cd6",
"ColdFusion CFC": "#ed2cd6",
"COLLADA": "#F1A42B",
"Common Lisp": "#3fb68b",
"Common Workflow Language": "#B5314C",
"Component Pascal": "#B0CE4E",
"Cool": null,
"Coq": "#d0b68c",
"Crystal": "#000100",
"CSON": "#244776",
"Csound": "#1a1a1a",
"Csound Document": "#1a1a1a",
"Csound Score": "#1a1a1a",
"CSS": "#563d7c",
"CSV": "#237346",
"Cuda": "#3A4E3A",
"CUE": "#5886E1",
"CWeb": "#00007a",
"Cycript": null,
"Cython": "#fedf5b",
"D": "#ba595e",
"Dafny": "#FFEC25",
"Darcs Patch": "#8eff23",
"Dart": "#00B4AB",
"DataWeave": "#003a52",
"Dhall": "#dfafff",
"DIGITAL Command Language": null,
"DirectX 3D File": "#aace60",
"DM": "#447265",
"Dockerfile": "#384d54",
"Dogescript": "#cca760",
"DTrace": null,
"Dylan": "#6c616e",
"E": "#ccce35",
"Easybuild": "#069406",
"eC": "#913960",
"Ecere Projects": "#913960",
"ECL": "#8a1267",
"ECLiPSe": "#001d9d",
"EditorConfig": "#fff1f2",
"Eiffel": "#4d6977",
"EJS": "#a91e50",
"Elixir": "#6e4a7e",
"Elm": "#60B5CC",
"Emacs Lisp": "#c065db",
"EmberScript": "#FFF4F3",
"EQ": "#a78649",
"Erlang": "#B83998",
"F#": "#b845fc",
"F*": "#572e30",
"Factor": "#636746",
"Fancy": "#7b9db4",
"Fantom": "#14253c",
"Faust": "#c37240",
"Fennel": "#fff3d7",
"FIGlet Font": "#FFDDBB",
"Filebench WML": "#F6B900",
"Filterscript": null,
"fish": "#4aae47",
"Fluent": "#ffcc33",
"FLUX": "#88ccff",
"Forth": "#341708",
"Fortran": "#4d41b1",
"Fortran Free Form": "#4d41b1",
"FreeBasic": "#867db1",
"FreeMarker": "#0050b2",
"Frege": "#00cafe",
"Futhark": "#5f021f",
"G-code": "#D08CF2",
"Game Maker Language": "#71b417",
"GAML": "#FFC766",
"GAMS": "#f49a22",
"GAP": "#0000cc",
"GCC Machine Description": "#FFCFAB",
"GDB": null,
"GDScript": "#355570",
"GEDCOM": "#003058",
"Gemfile.lock": "#701516",
"Genie": "#fb855d",
"Genshi": "#951531",
"Gentoo Ebuild": "#9400ff",
"Gentoo Eclass": "#9400ff",
"Gerber Image": "#d20b00",
"Gherkin": "#5B2063",
"Git Attributes": "#F44D27",
"Git Config": "#F44D27",
"GLSL": "#5686a5",
"Glyph": "#c1ac7f",
"Gnuplot": "#f0a9f0",
"Go": "#00ADD8",
"Go Checksums": "#00ADD8",
"Go Module": "#00ADD8",
"Golo": "#88562A",
"Gosu": "#82937f",
"Grace": "#615f8b",
"Gradle": "#02303a",
"Grammatical Framework": "#ff0000",
"GraphQL": "#e10098",
"Graphviz (DOT)": "#2596be",
"Groovy": "#4298b8",
"Groovy Server Pages": "#4298b8",
"Hack": "#878787",
"Haml": "#ece2a9",
"Handlebars": "#f7931e",
"HAProxy": "#106da9",
"Harbour": "#0e60e3",
"Haskell": "#5e5086",
"Haxe": "#df7900",
"HCL": null,
"HiveQL": "#dce200",
"HLSL": "#aace60",
"HolyC": "#ffefaf",
"HTML": "#e34c26",
"HTML+ECR": "#2e1052",
"HTML+EEX": "#6e4a7e",
"HTML+ERB": "#701516",
"HTML+PHP": "#4f5d95",
"HTML+Razor": "#512be4",
"HTTP": "#005C9C",
"HXML": "#f68712",
"Hy": "#7790B2",
"HyPhy": null,
"IDL": "#a3522f",
"Idris": "#b30000",
"Ignore List": "#000000",
"IGOR Pro": "#0000cc",
"ImageJ Macro": "#99AAFF",
"Inform 7": null,
"INI": "#d1dbe0",
"Inno Setup": "#264b99",
"Io": "#a9188d",
"Ioke": "#078193",
"Isabelle": "#FEFE00",
"Isabelle ROOT": "#FEFE00",
"J": "#9EEDFF",
"JAR Manifest": "#b07219",
"Jasmin": "#d03600",
"Java": "#b07219",
"Java Properties": "#2A6277",
"Java Server Pages": "#2A6277",
"JavaScript": "#f1e05a",
"JavaScript+ERB": "#f1e05a",
"Jest Snapshot": "#15c213",
"JFlex": "#DBCA00",
"Jinja": "#a52a22",
"Jison": "#56b3cb",
"Jison Lex": "#56b3cb",
"Jolie": "#843179",
"jq": "#c7254e",
"JSON": "#292929",
"JSON with Comments": "#292929",
"JSON5": "#267CB9",
"JSONiq": "#40d47e",
"JSONLD": "#0c479c",
"Jsonnet": "#0064bd",
"Julia": "#a270ba",
"Jupyter Notebook": "#DA5B0B",
"Kaitai Struct": "#773b37",
"KakouneScript": "#6f8042",
"KiCad Layout": "#2f4aab",
"KiCad Legacy Layout": "#2f4aab",
"KiCad Schematic": "#2f4aab",
"Kotlin": "#A97BFF",
"KRL": "#28430A",
"LabVIEW": "#fede06",
"Lark": "#2980B9",
"Lasso": "#999999",
"Latte": "#f2a542",
"Lean": null,
"Less": "#1d365d",
"Lex": "#DBCA00",
"LFE": "#4C3023",
"LilyPond": "#9ccc7c",
"Limbo": null,
"Liquid": "#67b8de",
"Literate Agda": "#315665",
"Literate CoffeeScript": "#244776",
"Literate Haskell": "#5e5086",
"LiveScript": "#499886",
"LLVM": "#185619",
"Logos": null,
"Logtalk": "#295b9a",
"LOLCODE": "#cc9900",
"LookML": "#652B81",
"LoomScript": null,
"LSL": "#3d9970",
"Lua": "#000080",
"M": null,
"M4": null,
"M4Sugar": null,
"Macaulay2": "#d8ffff",
"Makefile": "#427819",
"Mako": "#7e858d",
"Markdown": "#083fa1",
"Marko": "#42bff2",
"Mask": "#f97732",
"Mathematica": "#dd1100",
"MATLAB": "#e16737",
"Max": "#c4a79c",
"MAXScript": "#00a6a6",
"mcfunction": "#E22837",
"Mercury": "#ff2b2b",
"Meson": "#007800",
"Metal": "#8f14e9",
"MiniD": null,
"Mirah": "#c7a938",
"mIRC Script": "#3d57c3",
"MLIR": "#5EC8DB",
"Modelica": "#de1d31",
"Modula-2": "#10253f",
"Modula-3": "#223388",
"Module Management System": null,
"Monkey": null,
"Moocode": null,
"MoonScript": "#ff4585",
"Motorola 68K Assembly": "#005daa",
"MQL4": "#62A8D6",
"MQL5": "#4A76B8",
"MTML": "#b7e1f4",
"MUF": null,
"mupad": "#244963",
"Mustache": "#724b3b",
"Myghty": null,
"nanorc": "#2d004d",
"NASL": null,
"NCL": "#28431f",
"Nearley": "#990000",
"Nemerle": "#3d3c6e",
"nesC": "#94B0C7",
"NetLinx": "#0aa0ff",
"NetLinx+ERB": "#747faa",
"NetLogo": "#ff6375",
"NewLisp": "#87AED7",
"Nextflow": "#3ac486",
"Nginx": "#009639",
"Nim": "#ffc200",
"Nit": "#009917",
"Nix": "#7e7eff",
"NPM Config": "#cb3837",
"NSIS": null,
"Nu": "#c9df40",
"NumPy": "#9C8AF9",
"Nunjucks": "#3d8137",
"NWScript": "#111522",
"Objective-C": "#438eff",
"Objective-C++": "#6866fb",
"Objective-J": "#ff0c5a",
"ObjectScript": "#424893",
"OCaml": "#3be133",
"Odin": "#60AFFE",
"Omgrofl": "#cabbff",
"ooc": "#b0b77e",
"Opa": null,
"Opal": "#f7ede0",
"Open Policy Agent": "#7d9199",
"OpenCL": "#ed2e2d",
"OpenEdge ABL": "#5ce600",
"OpenQASM": "#AA70FF",
"OpenRC runscript": null,
"OpenSCAD": "#e5cd45",
"Org": "#77aa99",
"Ox": null,
"Oxygene": "#cdd0e3",
"Oz": "#fab738",
"P4": "#7055b5",
"Pan": "#cc0000",
"Papyrus": "#6600cc",
"Parrot": "#f3ca0a",
"Parrot Assembly": null,
"Parrot Internal Representation": null,
"Pascal": "#E3F171",
"Pawn": "#dbb284",
"PEG.js": "#234d6b",
"Pep8": "#C76F5B",
"Perl": "#0298c3",
"PHP": "#4F5D95",
"PicoLisp": "#6067af",
"PigLatin": "#fcd7de",
"Pike": "#005390",
"PLpgSQL": "#336790",
"PLSQL": "#dad8d8",
"PogoScript": "#d80074",
"Pony": null,
"PostCSS": "#dc3a0c",
"PostScript": "#da291c",
"POV-Ray SDL": "#6bac65",
"PowerBuilder": "#8f0f8d",
"PowerShell": "#012456",
"Prisma": "#0c344b",
"Processing": "#0096D8",
"Prolog": "#74283c",
"Propeller Spin": "#7fa2a7",
"Pug": "#a86454",
"Puppet": "#302B6D",
"PureBasic": "#5a6986",
"PureScript": "#1D222D",
"Python": "#3572A5",
"Python console": "#3572A5",
"Python traceback": "#3572A5",
"q": "#0040cd",
"Q#": "#fed659",
"QMake": null,
"QML": "#44a51c",
"Qt Script": "#00b841",
"Quake": "#882233",
"R": "#198CE7",
"Racket": "#3c5caa",
"Ragel": "#9d5200",
"Raku": "#0000fb",
"RAML": "#77d9fb",
"Rascal": "#fffaa0",
"RDoc": "#701516",
"REALbasic": null,
"Reason": "#ff5847",
"Rebol": "#358a5b",
"Record Jar": "#0673ba",
"Red": "#f50000",
"Redcode": null,
"Regular Expression": "#009a00",
"Ren'Py": "#ff7f7f",
"RenderScript": null,
"ReScript": "#ed5051",
"reStructuredText": "#141414",
"REXX": "#d90e09",
"Ring": "#2D54CB",
"Riot": "#A71E49",
"RMarkdown": "#198ce7",
"RobotFramework": "#00c0b5",
"Roff": "#ecdebe",
"Roff Manpage": "#ecdebe",
"Rouge": "#cc0088",
"RPC": null,
"Ruby": "#701516",
"RUNOFF": "#665a4e",
"Rust": "#dea584",
"Sage": null,
"SaltStack": "#646464",
"SAS": "#B34936",
"Sass": "#a53b70",
"Scala": "#c22d40",
"Scaml": "#bd181a",
"Scheme": "#1e4aec",
"Scilab": "#ca0f21",
"SCSS": "#c6538c",
"sed": "#64b970",
"Self": "#0579aa",
"ShaderLab": "#222c37",
"Shell": "#89e051",
"ShellSession": null,
"Shen": "#120F14",
"Sieve": null,
"Singularity": "#64E6AD",
"Slash": "#007eff",
"Slice": "#003fa2",
"Slim": "#2b2b2b",
"Smali": null,
"Smalltalk": "#596706",
"Smarty": "#f0c040",
"SmPL": "#c94949",
"SMT": null,
"Solidity": "#AA6746",
"SourcePawn": "#f69e1d",
"SPARQL": "#0C4597",
"SQF": "#3F3F3F",
"SQL": "#e38c00",
"SQLPL": "#e38c00",
"Squirrel": "#800000",
"SRecode Template": "#348a34",
"Stan": "#b2011d",
"Standard ML": "#dc566d",
"Starlark": "#76d275",
"Stata": "#1a5f91",
"StringTemplate": "#3fb34f",
"Stylus": "#ff6347",
"SubRip Text": "#9e0101",
"SugarSS": "#2fcc9f",
"SuperCollider": "#46390b",
"Svelte": "#ff3e00",
"SVG": "#ff9900",
"Swift": "#F05138",
"SWIG": null,
"SystemVerilog": "#DAE1C2",
"Tcl": "#e4cc98",
"Tcsh": null,
"Terra": "#00004c",
"TeX": "#3D6117",
"Textile": "#ffe7ac",
"TextMate Properties": "#df66e4",
"Thrift": "#D12127",
"TI Program": "#A0AA87",
"TLA": "#4b0079",
"TOML": "#9c4221",
"TSQL": "#e38c00",
"TSV": "#237346",
"TSX": "#2b7489",
"Turing": "#cf142b",
"Twig": "#c1d026",
"TXL": "#0178b8",
"TypeScript": "#2b7489",
"Unified Parallel C": "#4e3617",
"Unity3D Asset": "#222c37",
"Unix Assembly": null,
"Uno": "#9933cc",
"UnrealScript": "#a54c4d",
"UrWeb": "#ccccee",
"V": "#4f87c4",
"Vala": "#fbe5cd",
"Valve Data Format": "#f26025",
"VBA": "#867db1",
"VBScript": "#15dcdc",
"VCL": "#148AA8",
"Verilog": "#b2b7f8",
"VHDL": "#adb2cb",
"Vim Help File": "#199f4b",
"Vim Script": "#199f4b",
"Vim Snippet": "#199f4b",
"Visual Basic .NET": "#945db7",
"Volt": "#1F1F1F",
"Vue": "#41b883",
"wdl": "#42f1f4",
"Web Ontology Language": "#5b70bd",
"WebAssembly": "#04133b",
"WebIDL": null,
"Wikitext": "#fc5757",
"Windows Registry Entries": "#52d5ff",
"wisp": "#7582D1",
"Wollok": "#a23738",
"World of Warcraft Addon Data": "#f7e43f",
"X10": "#4B6BEF",
"xBase": "#403a40",
"XC": "#99DA07",
"XML": "#0060ac",
"XML Property List": "#0060ac",
"Xojo": "#81bd41",
"Xonsh": "#285EEF",
"XProc": null,
"XQuery": "#5232e7",
"XS": null,
"XSLT": "#EB8CEB",
"Xtend": "#24255d",
"Yacc": "#4B6C4B",
"YAML": "#cb171e",
"YARA": "#220000",
"YASnippet": "#32AB90",
"ZAP": "#0d665e",
"Zeek": null,
"ZenScript": "#00BCD1",
"Zephir": "#118f9e",
"Zig": "#ec915c",
"ZIL": "#dc75e5",
"Zimpl": "#d67711"
}

View file

@ -0,0 +1,533 @@
{
"1C Enterprise": "#814CCC",
"4D": "#004289",
"ABAP": "#E8274B",
"ABAP CDS": "#555e25",
"ActionScript": "#882B0F",
"Ada": "#02f88c",
"Adobe Font Metrics": "#fa0f00",
"Agda": "#315665",
"AGS Script": "#B9D9FF",
"AIDL": "#34EB6B",
"AL": "#3AA2B5",
"Alloy": "#64C800",
"Alpine Abuild": "#0D597F",
"Altium Designer": "#A89663",
"AMPL": "#E6EFBB",
"AngelScript": "#C7D7DC",
"Ant Build System": "#A9157E",
"ANTLR": "#9DC3FF",
"ApacheConf": "#d12127",
"Apex": "#1797c0",
"API Blueprint": "#2ACCA8",
"APL": "#5A8164",
"Apollo Guidance Computer": "#0B3D91",
"AppleScript": "#101F1F",
"Arc": "#aa2afe",
"AsciiDoc": "#73a0c5",
"ASL": null,
"ASP.NET": "#9400ff",
"AspectJ": "#a957b0",
"Assembly": "#6E4C13",
"Astro": "#ff5a03",
"Asymptote": "#ff0000",
"ATS": "#1ac620",
"Augeas": "#9CC134",
"AutoHotkey": "#6594b9",
"AutoIt": "#1C3552",
"Avro IDL": "#0040FF",
"Awk": "#c30e9b",
"Ballerina": "#FF5000",
"BASIC": "#ff0000",
"Batchfile": "#C1F12E",
"Beef": "#a52f4e",
"Befunge": null,
"BibTeX": "#778899",
"Bicep": "#519aba",
"Bison": "#6A463F",
"BitBake": "#00bce4",
"Blade": "#f7523f",
"BlitzBasic": "#00FFAE",
"BlitzMax": "#cd6400",
"Bluespec": "#12223c",
"Boo": "#d4bec1",
"Boogie": "#c80fa0",
"Brainfuck": "#2F2530",
"Brightscript": "#662D91",
"Browserslist": "#ffd539",
"C": "#555555",
"C#": "#178600",
"C++": "#f34b7d",
"C2hs Haskell": null,
"Cabal Config": "#483465",
"Cap'n Proto": "#c42727",
"CartoCSS": null,
"Ceylon": "#dfa535",
"Chapel": "#8dc63f",
"Charity": null,
"ChucK": "#3f8000",
"Cirru": "#ccccff",
"Clarion": "#db901e",
"Classic ASP": "#6a40fd",
"Clean": "#3F85AF",
"Click": "#E4E6F3",
"CLIPS": "#00A300",
"Clojure": "#db5855",
"Closure Templates": "#0d948f",
"Cloud Firestore Security Rules": "#FFA000",
"CMake": "#DA3434",
"COBOL": null,
"CodeQL": "#140f46",
"CoffeeScript": "#244776",
"ColdFusion": "#ed2cd6",
"ColdFusion CFC": "#ed2cd6",
"COLLADA": "#F1A42B",
"Common Lisp": "#3fb68b",
"Common Workflow Language": "#B5314C",
"Component Pascal": "#B0CE4E",
"Cool": null,
"Coq": "#d0b68c",
"Crystal": "#000100",
"CSON": "#244776",
"Csound": "#1a1a1a",
"Csound Document": "#1a1a1a",
"Csound Score": "#1a1a1a",
"CSS": "#563d7c",
"CSV": "#237346",
"Cuda": "#3A4E3A",
"CUE": "#5886E1",
"CWeb": "#00007a",
"Cycript": null,
"Cython": "#fedf5b",
"D": "#ba595e",
"Dafny": "#FFEC25",
"Darcs Patch": "#8eff23",
"Dart": "#00B4AB",
"DataWeave": "#003a52",
"Dhall": "#dfafff",
"DIGITAL Command Language": null,
"DirectX 3D File": "#aace60",
"DM": "#447265",
"Dockerfile": "#384d54",
"Dogescript": "#cca760",
"DTrace": null,
"Dylan": "#6c616e",
"E": "#ccce35",
"Easybuild": "#069406",
"eC": "#913960",
"Ecere Projects": "#913960",
"ECL": "#8a1267",
"ECLiPSe": "#001d9d",
"EditorConfig": "#fff1f2",
"Eiffel": "#4d6977",
"EJS": "#a91e50",
"Elixir": "#6e4a7e",
"Elm": "#60B5CC",
"Emacs Lisp": "#c065db",
"EmberScript": "#FFF4F3",
"EQ": "#a78649",
"Erlang": "#B83998",
"F#": "#b845fc",
"F*": "#572e30",
"Factor": "#636746",
"Fancy": "#7b9db4",
"Fantom": "#14253c",
"Faust": "#c37240",
"Fennel": "#fff3d7",
"FIGlet Font": "#FFDDBB",
"Filebench WML": "#F6B900",
"Filterscript": null,
"fish": "#4aae47",
"Fluent": "#ffcc33",
"FLUX": "#88ccff",
"Forth": "#341708",
"Fortran": "#4d41b1",
"Fortran Free Form": "#4d41b1",
"FreeBasic": "#867db1",
"FreeMarker": "#0050b2",
"Frege": "#00cafe",
"Futhark": "#5f021f",
"G-code": "#D08CF2",
"Game Maker Language": "#71b417",
"GAML": "#FFC766",
"GAMS": "#f49a22",
"GAP": "#0000cc",
"GCC Machine Description": "#FFCFAB",
"GDB": null,
"GDScript": "#355570",
"GEDCOM": "#003058",
"Gemfile.lock": "#701516",
"Genie": "#fb855d",
"Genshi": "#951531",
"Gentoo Ebuild": "#9400ff",
"Gentoo Eclass": "#9400ff",
"Gerber Image": "#d20b00",
"Gherkin": "#5B2063",
"Git Attributes": "#F44D27",
"Git Config": "#F44D27",
"GLSL": "#5686a5",
"Glyph": "#c1ac7f",
"Gnuplot": "#f0a9f0",
"Go": "#00ADD8",
"Go Checksums": "#00ADD8",
"Go Module": "#00ADD8",
"Golo": "#88562A",
"Gosu": "#82937f",
"Grace": "#615f8b",
"Gradle": "#02303a",
"Grammatical Framework": "#ff0000",
"GraphQL": "#e10098",
"Graphviz (DOT)": "#2596be",
"Groovy": "#4298b8",
"Groovy Server Pages": "#4298b8",
"Hack": "#878787",
"Haml": "#ece2a9",
"Handlebars": "#f7931e",
"HAProxy": "#106da9",
"Harbour": "#0e60e3",
"Haskell": "#5e5086",
"Haxe": "#df7900",
"HCL": null,
"HiveQL": "#dce200",
"HLSL": "#aace60",
"HolyC": "#ffefaf",
"HTML": "#e34c26",
"HTML+ECR": "#2e1052",
"HTML+EEX": "#6e4a7e",
"HTML+ERB": "#701516",
"HTML+PHP": "#4f5d95",
"HTML+Razor": "#512be4",
"HTTP": "#005C9C",
"HXML": "#f68712",
"Hy": "#7790B2",
"HyPhy": null,
"IDL": "#a3522f",
"Idris": "#b30000",
"Ignore List": "#000000",
"IGOR Pro": "#0000cc",
"ImageJ Macro": "#99AAFF",
"Inform 7": null,
"INI": "#d1dbe0",
"Inno Setup": "#264b99",
"Io": "#a9188d",
"Ioke": "#078193",
"Isabelle": "#FEFE00",
"Isabelle ROOT": "#FEFE00",
"J": "#9EEDFF",
"JAR Manifest": "#b07219",
"Jasmin": "#d03600",
"Java": "#b07219",
"Java Properties": "#2A6277",
"Java Server Pages": "#2A6277",
"JavaScript": "#f1e05a",
"JavaScript+ERB": "#f1e05a",
"Jest Snapshot": "#15c213",
"JFlex": "#DBCA00",
"Jinja": "#a52a22",
"Jison": "#56b3cb",
"Jison Lex": "#56b3cb",
"Jolie": "#843179",
"jq": "#c7254e",
"JSON": "#292929",
"JSON with Comments": "#292929",
"JSON5": "#267CB9",
"JSONiq": "#40d47e",
"JSONLD": "#0c479c",
"Jsonnet": "#0064bd",
"Julia": "#a270ba",
"Jupyter Notebook": "#DA5B0B",
"Kaitai Struct": "#773b37",
"KakouneScript": "#6f8042",
"KiCad Layout": "#2f4aab",
"KiCad Legacy Layout": "#2f4aab",
"KiCad Schematic": "#2f4aab",
"Kotlin": "#A97BFF",
"KRL": "#28430A",
"LabVIEW": "#fede06",
"Lark": "#2980B9",
"Lasso": "#999999",
"Latte": "#f2a542",
"Lean": null,
"Less": "#1d365d",
"Lex": "#DBCA00",
"LFE": "#4C3023",
"LilyPond": "#9ccc7c",
"Limbo": null,
"Liquid": "#67b8de",
"Literate Agda": "#315665",
"Literate CoffeeScript": "#244776",
"Literate Haskell": "#5e5086",
"LiveScript": "#499886",
"LLVM": "#185619",
"Logos": null,
"Logtalk": "#295b9a",
"LOLCODE": "#cc9900",
"LookML": "#652B81",
"LoomScript": null,
"LSL": "#3d9970",
"Lua": "#000080",
"M": null,
"M4": null,
"M4Sugar": null,
"Macaulay2": "#d8ffff",
"Makefile": "#427819",
"Mako": "#7e858d",
"Markdown": "#083fa1",
"Marko": "#42bff2",
"Mask": "#f97732",
"Mathematica": "#dd1100",
"MATLAB": "#e16737",
"Max": "#c4a79c",
"MAXScript": "#00a6a6",
"mcfunction": "#E22837",
"Mercury": "#ff2b2b",
"Meson": "#007800",
"Metal": "#8f14e9",
"MiniD": null,
"Mirah": "#c7a938",
"mIRC Script": "#3d57c3",
"MLIR": "#5EC8DB",
"Modelica": "#de1d31",
"Modula-2": "#10253f",
"Modula-3": "#223388",
"Module Management System": null,
"Monkey": null,
"Moocode": null,
"MoonScript": "#ff4585",
"Motorola 68K Assembly": "#005daa",
"MQL4": "#62A8D6",
"MQL5": "#4A76B8",
"MTML": "#b7e1f4",
"MUF": null,
"mupad": "#244963",
"Mustache": "#724b3b",
"Myghty": null,
"nanorc": "#2d004d",
"NASL": null,
"NCL": "#28431f",
"Nearley": "#990000",
"Nemerle": "#3d3c6e",
"nesC": "#94B0C7",
"NetLinx": "#0aa0ff",
"NetLinx+ERB": "#747faa",
"NetLogo": "#ff6375",
"NewLisp": "#87AED7",
"Nextflow": "#3ac486",
"Nginx": "#009639",
"Nim": "#ffc200",
"Nit": "#009917",
"Nix": "#7e7eff",
"NPM Config": "#cb3837",
"NSIS": null,
"Nu": "#c9df40",
"NumPy": "#9C8AF9",
"Nunjucks": "#3d8137",
"NWScript": "#111522",
"Objective-C": "#438eff",
"Objective-C++": "#6866fb",
"Objective-J": "#ff0c5a",
"ObjectScript": "#424893",
"OCaml": "#3be133",
"Odin": "#60AFFE",
"Omgrofl": "#cabbff",
"ooc": "#b0b77e",
"Opa": null,
"Opal": "#f7ede0",
"Open Policy Agent": "#7d9199",
"OpenCL": "#ed2e2d",
"OpenEdge ABL": "#5ce600",
"OpenQASM": "#AA70FF",
"OpenRC runscript": null,
"OpenSCAD": "#e5cd45",
"Org": "#77aa99",
"Ox": null,
"Oxygene": "#cdd0e3",
"Oz": "#fab738",
"P4": "#7055b5",
"Pan": "#cc0000",
"Papyrus": "#6600cc",
"Parrot": "#f3ca0a",
"Parrot Assembly": null,
"Parrot Internal Representation": null,
"Pascal": "#E3F171",
"Pawn": "#dbb284",
"PEG.js": "#234d6b",
"Pep8": "#C76F5B",
"Perl": "#0298c3",
"PHP": "#4F5D95",
"PicoLisp": "#6067af",
"PigLatin": "#fcd7de",
"Pike": "#005390",
"PLpgSQL": "#336790",
"PLSQL": "#dad8d8",
"PogoScript": "#d80074",
"Pony": null,
"PostCSS": "#dc3a0c",
"PostScript": "#da291c",
"POV-Ray SDL": "#6bac65",
"PowerBuilder": "#8f0f8d",
"PowerShell": "#012456",
"Prisma": "#0c344b",
"Processing": "#0096D8",
"Prolog": "#74283c",
"Propeller Spin": "#7fa2a7",
"Pug": "#a86454",
"Puppet": "#302B6D",
"PureBasic": "#5a6986",
"PureScript": "#1D222D",
"Python": "#3572A5",
"Python console": "#3572A5",
"Python traceback": "#3572A5",
"q": "#0040cd",
"Q#": "#fed659",
"QMake": null,
"QML": "#44a51c",
"Qt Script": "#00b841",
"Quake": "#882233",
"R": "#198CE7",
"Racket": "#3c5caa",
"Ragel": "#9d5200",
"Raku": "#0000fb",
"RAML": "#77d9fb",
"Rascal": "#fffaa0",
"RDoc": "#701516",
"REALbasic": null,
"Reason": "#ff5847",
"Rebol": "#358a5b",
"Record Jar": "#0673ba",
"Red": "#f50000",
"Redcode": null,
"Regular Expression": "#009a00",
"Ren'Py": "#ff7f7f",
"RenderScript": null,
"ReScript": "#ed5051",
"reStructuredText": "#141414",
"REXX": "#d90e09",
"Ring": "#2D54CB",
"Riot": "#A71E49",
"RMarkdown": "#198ce7",
"RobotFramework": "#00c0b5",
"Roff": "#ecdebe",
"Roff Manpage": "#ecdebe",
"Rouge": "#cc0088",
"RPC": null,
"Ruby": "#701516",
"RUNOFF": "#665a4e",
"Rust": "#dea584",
"Sage": null,
"SaltStack": "#646464",
"SAS": "#B34936",
"Sass": "#a53b70",
"Scala": "#c22d40",
"Scaml": "#bd181a",
"Scheme": "#1e4aec",
"Scilab": "#ca0f21",
"SCSS": "#c6538c",
"sed": "#64b970",
"Self": "#0579aa",
"ShaderLab": "#222c37",
"Shell": "#89e051",
"ShellSession": null,
"Shen": "#120F14",
"Sieve": null,
"Singularity": "#64E6AD",
"Slash": "#007eff",
"Slice": "#003fa2",
"Slim": "#2b2b2b",
"Smali": null,
"Smalltalk": "#596706",
"Smarty": "#f0c040",
"SmPL": "#c94949",
"SMT": null,
"Solidity": "#AA6746",
"SourcePawn": "#f69e1d",
"SPARQL": "#0C4597",
"SQF": "#3F3F3F",
"SQL": "#e38c00",
"SQLPL": "#e38c00",
"Squirrel": "#800000",
"SRecode Template": "#348a34",
"Stan": "#b2011d",
"Standard ML": "#dc566d",
"Starlark": "#76d275",
"Stata": "#1a5f91",
"StringTemplate": "#3fb34f",
"Stylus": "#ff6347",
"SubRip Text": "#9e0101",
"SugarSS": "#2fcc9f",
"SuperCollider": "#46390b",
"Svelte": "#ff3e00",
"SVG": "#ff9900",
"Swift": "#F05138",
"SWIG": null,
"SystemVerilog": "#DAE1C2",
"Tcl": "#e4cc98",
"Tcsh": null,
"Terra": "#00004c",
"TeX": "#3D6117",
"Textile": "#ffe7ac",
"TextMate Properties": "#df66e4",
"Thrift": "#D12127",
"TI Program": "#A0AA87",
"TLA": "#4b0079",
"TOML": "#9c4221",
"TSQL": "#e38c00",
"TSV": "#237346",
"TSX": "#2b7489",
"Turing": "#cf142b",
"Twig": "#c1d026",
"TXL": "#0178b8",
"TypeScript": "#2b7489",
"Unified Parallel C": "#4e3617",
"Unity3D Asset": "#222c37",
"Unix Assembly": null,
"Uno": "#9933cc",
"UnrealScript": "#a54c4d",
"UrWeb": "#ccccee",
"V": "#4f87c4",
"Vala": "#fbe5cd",
"Valve Data Format": "#f26025",
"VBA": "#867db1",
"VBScript": "#15dcdc",
"VCL": "#148AA8",
"Verilog": "#b2b7f8",
"VHDL": "#adb2cb",
"Vim Help File": "#199f4b",
"Vim Script": "#199f4b",
"Vim Snippet": "#199f4b",
"Visual Basic .NET": "#945db7",
"Volt": "#1F1F1F",
"Vue": "#41b883",
"wdl": "#42f1f4",
"Web Ontology Language": "#5b70bd",
"WebAssembly": "#04133b",
"WebIDL": null,
"Wikitext": "#fc5757",
"Windows Registry Entries": "#52d5ff",
"wisp": "#7582D1",
"Wollok": "#a23738",
"World of Warcraft Addon Data": "#f7e43f",
"X10": "#4B6BEF",
"xBase": "#403a40",
"XC": "#99DA07",
"XML": "#0060ac",
"XML Property List": "#0060ac",
"Xojo": "#81bd41",
"Xonsh": "#285EEF",
"XProc": null,
"XQuery": "#5232e7",
"XS": null,
"XSLT": "#EB8CEB",
"Xtend": "#24255d",
"Yacc": "#4B6C4B",
"YAML": "#cb171e",
"YARA": "#220000",
"YASnippet": "#32AB90",
"ZAP": "#0d665e",
"Zeek": null,
"ZenScript": "#00BCD1",
"Zephir": "#118f9e",
"Zig": "#ec915c",
"ZIL": "#dc75e5",
"Zimpl": "#d67711"
}

View file

@ -9,6 +9,11 @@
"title": "sharing.facebook", "title": "sharing.facebook",
"url": "https://www.facebook.com/sharer/sharer.php?u=%s&quote=%s" "url": "https://www.facebook.com/sharer/sharer.php?u=%s&quote=%s"
}, },
"line": {
"icon": "line",
"title": "sharing.line",
"url": "https://line.me/R/share?text=%s%%20%s"
},
"linkedin": { "linkedin": {
"icon": "linkedin", "icon": "linkedin",
"title": "sharing.linkedin", "title": "sharing.linkedin",

View file

@ -1,14 +1,14 @@
const fs = require('fs'); const fs = require("fs");
const configDir = "./exampleSite/config/_default"; const configDir = "./exampleSite/config/_default";
const contentDir = "./exampleSite/content"; const contentDir = "./exampleSite/content";
const defaultLang = "en"; const defaultLang = "en";
var targetLangs = [] var targetLangs = [];
function readConfigs() { function readConfigs() {
const files = fs.readdirSync(configDir); const files = fs.readdirSync(configDir);
files.forEach(file => { files.forEach((file) => {
//console.log(file) //console.log(file)
if (file.indexOf("languages.") > -1) { if (file.indexOf("languages.") > -1) {
var lang = file.split(".")[1]; var lang = file.split(".")[1];
@ -22,7 +22,6 @@ function readConfigs() {
async function processFile(filePath, file) { async function processFile(filePath, file) {
if (filePath.indexOf("index.md") > -1) { if (filePath.indexOf("index.md") > -1) {
//console.log("processing", filePath) //console.log("processing", filePath)
for (var i in targetLangs) { for (var i in targetLangs) {
@ -33,8 +32,8 @@ async function processFile(filePath, file) {
if (fs.existsSync(targetFilePath)) { if (fs.existsSync(targetFilePath)) {
//console.log("file already exists", targetFilePath); //console.log("file already exists", targetFilePath);
const data = fs.readFileSync(filePath, 'utf8'); const data = fs.readFileSync(filePath, "utf8");
const data2 = fs.readFileSync(targetFilePath, 'utf8'); const data2 = fs.readFileSync(targetFilePath, "utf8");
if (data != data2) { if (data != data2) {
//console.log("file contents are different", targetFilePath); //console.log("file contents are different", targetFilePath);
} else { } else {
@ -42,14 +41,11 @@ async function processFile(filePath, file) {
console.log(targetFilePath); console.log(targetFilePath);
//process.exit(1); //process.exit(1);
} }
} else { } else {
//console.log("file does not exist", targetFilePath); //console.log("file does not exist", targetFilePath);
} }
} }
} else return;
} else
return
} }
async function processFolder(folderPath) { async function processFolder(folderPath) {

View file

@ -1,5 +1,5 @@
const fs = require('fs'); const fs = require("fs/promises");
const translate = require('@iamtraction/google-translate'); const translate = require("@iamtraction/google-translate");
const defaultLang = "en"; const defaultLang = "en";
const targetLang = process.argv[2] || "en"; const targetLang = process.argv[2] || "en";
@ -8,11 +8,8 @@ const targetLangIso = targetLang == "pt" ? "pt-pt" : targetLang;
const targetFilePath = filePath.replace(".md", "." + targetLangIso + ".md"); const targetFilePath = filePath.replace(".md", "." + targetLangIso + ".md");
async function convert(text, from, to) { async function convert(text, from, to) {
var options = { const options = { from, to };
from: from, const translated_text = await translate(text, options);
to: to
};
var translated_text = await translate(text, options);
return translated_text.text; return translated_text.text;
} }
@ -20,44 +17,45 @@ console.log(filePath);
console.log(targetFilePath); console.log(targetFilePath);
async function processFrontMatter(block) { async function processFrontMatter(block) {
var array = block.split("\n"); const array = block.split("\n");
var translatedBlock = ""; let translatedBlock = "";
for (var i = 0; i < array.length; i++) { for (const line of array) {
if (array[i].indexOf(":") > -1) { let newElement = line;
var elements = array[i].split(":"); if (line.indexOf(":") > -1) {
var newElement = ""; const elements = line.split(":");
if (elements[0] == "title" || if (
elements[0] == "title" ||
elements[0] == "description" || elements[0] == "description" ||
elements[0] == "summary" || elements[0] == "summary" ||
elements[0] == "description" || elements[0] == "description" ||
elements[0] == "categories" || elements[0] == "categories" ||
elements[0] == "tags") { elements[0] == "tags"
var translatedElement = elements[1] ? await convert(elements[1], defaultLang, targetLang) : elements[1]; ) {
const translatedElement = elements[1]
? await convert(elements[1], defaultLang, targetLang)
: elements[1];
newElement = elements[0] + ": " + translatedElement; newElement = elements[0] + ": " + translatedElement;
} else {
newElement = array[i];
} }
} else {
newElement = array[i];
} }
translatedBlock += newElement + "\n"; translatedBlock += newElement + "\n";
} }
return translatedBlock; return translatedBlock;
} }
async function main() { async function main() {
const fileContent = fs.readFileSync(filePath, 'utf8'); const fileContent = await fs.readFile(filePath, "utf8");
var array = fileContent.split("---\n") const array = fileContent.split("---\n");
var frontMatter = array[1]; const frontMatter = array[1];
var content = array[2]; const content = array[2];
var translatedFrontMatter = await processFrontMatter(frontMatter); const translatedFrontMatter = await processFrontMatter(frontMatter);
var translatedContent = await convert(content, defaultLang, targetLang); const translatedContent = await convert(content, defaultLang, targetLang);
var newFileContent = "---\n" + translatedFrontMatter + "---\n" + translatedContent; const newFileContent =
fs.writeFileSync(targetFilePath, newFileContent, 'utf8'); "---\n" + translatedFrontMatter + "---\n" + translatedContent;
await fs.writeFile(targetFilePath, newFileContent, "utf8");
} }
main(); main();

View file

@ -1,5 +1,5 @@
const fs = require('fs'); const fs = require("fs/promises");
const translate = require('@iamtraction/google-translate'); const translate = require("@iamtraction/google-translate");
const configDir = "./exampleSite/config/_default"; const configDir = "./exampleSite/config/_default";
const contentDir = "./exampleSite/content"; const contentDir = "./exampleSite/content";
@ -7,51 +7,52 @@ const defaultLang = "en";
const targetLang = process.argv[2] || "en"; const targetLang = process.argv[2] || "en";
const targetLangIso = targetLang == "pt" ? "pt-pt" : targetLang; const targetLangIso = targetLang == "pt" ? "pt-pt" : targetLang;
async function createConfigs() {
function createConfigs() { const files = await fs.readdir(configDir);
const files = fs.readdirSync(configDir); for (const file of files) {
files.forEach(file => {
const filePath = `${configDir}/${file}`; const filePath = `${configDir}/${file}`;
if (filePath.indexOf("languages.en.toml") > -1 || if (
filePath.indexOf("menus.en.toml") > -1) { filePath.indexOf("languages.en.toml") > -1 ||
var fileContent = fs.readFileSync(filePath, 'utf8'); filePath.indexOf("menus.en.toml") > -1
fs.writeFileSync(filePath.replace(".en.toml", "." + targetLangIso + ".toml"), fileContent, 'utf8'); ) {
const fileContent = await fs.readFile(filePath, "utf8");
await fs.writeFile(
filePath.replace(".en.toml", "." + targetLangIso + ".toml"),
fileContent,
"utf8"
);
}
} }
});
} }
async function convert(text, from, to) { async function convert(text, from, to) {
var options = { const options = { from, to };
from: from, const translated_text = await translate(text, options).catch((err) => {
to: to
};
var translated_text = await translate(text, options)
.catch(err => {
console.error(err); console.error(err);
});; });
return translated_text && translated_text.text? translated_text.text : ''; return translated_text && translated_text.text ? translated_text.text : "";
} }
async function processFrontMatter(block) { async function processFrontMatter(block) {
var array = block.split("\n"); const array = block.split("\n");
var translatedBlock = ""; let translatedBlock = "";
for (var i = 0; i < array.length; i++) { for (const line of array) {
if (array[i].indexOf(":") > -1) { let newElement = line;
var elements = array[i].split(":"); if (line.indexOf(":") > -1) {
var newElement = ""; const elements = line.split(":");
if (elements[0] == "title" || if (
elements[0] == "title" ||
elements[0] == "description" || elements[0] == "description" ||
elements[0] == "summary" || elements[0] == "summary" ||
elements[0] == "description" || elements[0] == "description" ||
elements[0] == "categories" || elements[0] == "categories" ||
elements[0] == "tags") { elements[0] == "tags"
var translatedElement = elements[1] ? await convert(elements[1], defaultLang, targetLang) : elements[1]; ) {
const translatedElement = elements[1]
? await convert(elements[1], defaultLang, targetLang)
: elements[1];
newElement = elements[0] + ": " + translatedElement; newElement = elements[0] + ": " + translatedElement;
} else {
newElement = array[i];
} }
} else {
newElement = array[i];
} }
translatedBlock += newElement + "\n"; translatedBlock += newElement + "\n";
} }
@ -59,34 +60,36 @@ async function processFrontMatter(block) {
} }
async function processFile(filePath) { async function processFile(filePath) {
console.log("translating", filePath) console.log("translating", filePath);
if (filePath.indexOf("index.md") > -1) { if (filePath.indexOf("index.md") > -1) {
const targetFilePath = filePath.replace(
".md",
"." + targetLangIso + ".md"
);
const targetFilePath = filePath.replace(".md", "." + targetLangIso + ".md"); const fileContent = await fs.readFile(filePath, "utf8");
const fileContent = fs.readFileSync(filePath, 'utf8'); const array = fileContent.split("---\n");
const frontMatter = array[1];
const content = array[2];
var array = fileContent.split("---\n") const translatedFrontMatter = await processFrontMatter(frontMatter);
var frontMatter = array[1]; const translatedContent = await convert(content, defaultLang, targetLang);
var content = array[2];
var translatedFrontMatter = await processFrontMatter(frontMatter); const newFileContent =
var translatedContent = await convert(content, defaultLang, targetLang); "---\n" + translatedFrontMatter + "---\n" + translatedContent;
await fs.writeFile(targetFilePath, newFileContent, "utf8");
var newFileContent = "---\n" + translatedFrontMatter + "---\n" + translatedContent; } else {
fs.writeFileSync(targetFilePath, newFileContent, 'utf8'); return;
}
} else
return
} }
async function processFolder(folderPath) { async function processFolder(folderPath) {
const files = fs.readdirSync(folderPath); const files = await fs.readdir(folderPath);
for (var i in files) { for (const file of files) {
const file = files[i];
const filePath = `${folderPath}/${file}`; const filePath = `${folderPath}/${file}`;
const isDir = fs.lstatSync(filePath).isDirectory(); const isDir = (await fs.lstat(filePath)).isDirectory();
console.log(filePath, isDir); console.log(filePath, isDir);
if (isDir) { if (isDir) {
await processFolder(filePath); await processFolder(filePath);
@ -97,8 +100,11 @@ async function processFolder(folderPath) {
} }
async function createContent() { async function createContent() {
processFolder(contentDir); await processFolder(contentDir);
} }
createConfigs(); (async () => {
createContent(); await createConfigs();
await createContent();
})();

View file

@ -1,55 +1,57 @@
const fs = require('fs'); const fs = require("fs/promises");
const configDir = "./exampleSite/config/_default"; const configDir = "./exampleSite/config/_default";
const contentDir = "./exampleSite/content"; const contentDir = "./exampleSite/content";
const defaultLang = "en"; const defaultLang = "en";
var targetLangs = [] const targetLangs = [];
function readConfigs() { async function readConfigs() {
const files = fs.readdirSync(configDir); const files = await fs.readdir(configDir);
files.forEach(file => { for (const file of files) {
console.log(file) console.log(file);
if (file.indexOf("languages.") > -1) { if (file.indexOf("languages.") > -1) {
var lang = file.split(".")[1]; const lang = file.split(".")[1];
console.log(lang) console.log(lang);
if (lang != defaultLang) { if (lang != defaultLang) {
targetLangs.push(lang); targetLangs.push(lang);
} }
} }
}); }
} }
async function processFile(filePath, file) { async function processFile(filePath, file) {
if (filePath.indexOf("index.md") > -1) { if (filePath.indexOf("index.md") > -1) {
console.log("processing", filePath);
console.log("processing", filePath) for (const targetLang of targetLangs) {
const targetFilePath = filePath.replace(".md", "." + targetLang + ".md");
for(var i in targetLangs) { let exists = true;
const targetLang = targetLangs[i]; try {
var targetFilePath = filePath.replace(".md", "." + targetLang + ".md"); await fs.access(targetFilePath);
//var targetFileName = file.replace(".md", "." + targetLang + ".md"); } catch {
exists = false;
}
if(fs.existsSync(targetFilePath)) { if (exists) {
console.log("file already exists", targetFilePath); console.log("file already exists", targetFilePath);
} else { } else {
console.log("creating file", targetFilePath); console.log("creating file", targetFilePath);
//fs.symlinkSync(file, targetFilePath, 'junction'); await fs.copyFile(filePath, targetFilePath);
fs.copyFileSync(filePath, targetFilePath);
} }
} }
} else {
} else return;
return }
} }
async function processFolder(folderPath) { async function processFolder(folderPath) {
const files = fs.readdirSync(folderPath); const files = await fs.readdir(folderPath);
for (var i in files) { for (const file of files) {
const file = files[i];
const filePath = `${folderPath}/${file}`; const filePath = `${folderPath}/${file}`;
const isDir = fs.lstatSync(filePath).isDirectory(); const isDir = (await fs.lstat(filePath)).isDirectory();
if (isDir) { if (isDir) {
await processFolder(filePath); await processFolder(filePath);
} else { } else {
@ -59,8 +61,11 @@ async function processFolder(folderPath) {
} }
async function createLinks() { async function createLinks() {
processFolder(contentDir); await processFolder(contentDir);
} }
readConfigs(); (async () => {
createLinks(); await readConfigs();
await createLinks();
})();

View file

@ -58,6 +58,7 @@ search:
sharing: sharing:
email: "إرسال عبر البريد الإلكترونى" email: "إرسال عبر البريد الإلكترونى"
facebook: "النشر على فيسبوك" facebook: "النشر على فيسبوك"
line: "شارك على لاين"
linkedin: "النشر على لينكدان" linkedin: "النشر على لينكدان"
pinterest: "النشر على بينترست" pinterest: "النشر على بينترست"
reddit: "النشر على ريديت" reddit: "النشر على ريديت"

View file

@ -26,7 +26,6 @@ article:
this_article: "Тази Статия" this_article: "Тази Статия"
related_articles: "Подобни" related_articles: "Подобни"
author: author:
byline_title: "Автор" byline_title: "Автор"
@ -60,6 +59,7 @@ search:
sharing: sharing:
email: "Изпрати чрез имейл" email: "Изпрати чрез имейл"
facebook: "Сподели на Facebook" facebook: "Сподели на Facebook"
line: "Споделяне в LINE"
linkedin: "Сподели на LinkedIn" linkedin: "Сподели на LinkedIn"
pinterest: "Закачи в Pinterest" pinterest: "Закачи в Pinterest"
reddit: "Добави на Reddit" reddit: "Добави на Reddit"

View file

@ -59,6 +59,7 @@ search:
sharing: sharing:
email: "ইমেল করুন" email: "ইমেল করুন"
facebook: "ফেসবুকে শেয়ার করুন" facebook: "ফেসবুকে শেয়ার করুন"
line: "লাইনে শেয়ার করুন"
linkedin: "লিংকডইনে শেয়ার করুন" linkedin: "লিংকডইনে শেয়ার করুন"
pinterest: "পিন্টারেস্টে পিন করুন" pinterest: "পিন্টারেস্টে পিন করুন"
reddit: "রেড্ডিটে জমা দিন" reddit: "রেড্ডিটে জমা দিন"

View file

@ -62,6 +62,7 @@ search:
sharing: sharing:
email: "Enviar per correu electrònic" email: "Enviar per correu electrònic"
facebook: "Compartir amb Facebook" facebook: "Compartir amb Facebook"
line: "Compartir amb LINE"
linkedin: "Compartir amb LinkedIn" linkedin: "Compartir amb LinkedIn"
pinterest: "Compartir amb Pinterest" pinterest: "Compartir amb Pinterest"
reddit: "Publicar a Reddit" reddit: "Publicar a Reddit"

View file

@ -59,6 +59,7 @@ search:
sharing: sharing:
email: "Poslat emailem" email: "Poslat emailem"
facebook: "Sdílet na Facebook" facebook: "Sdílet na Facebook"
line: "Sdílejte na LINE"
linkedin: "Sdílet na LinkedIn" linkedin: "Sdílet na LinkedIn"
pinterest: "Připnout na Pinterest" pinterest: "Připnout na Pinterest"
reddit: "Přidat na Reddit" reddit: "Přidat na Reddit"

View file

@ -53,6 +53,7 @@ search:
sharing: sharing:
email: "Per E-Mail teilen" email: "Per E-Mail teilen"
facebook: "Auf Facebook teilen" facebook: "Auf Facebook teilen"
line: "Auf LINE teilen"
linkedin: "Auf LinkedIn teilen" linkedin: "Auf LinkedIn teilen"
pinterest: "Auf Pinterest pinnen" pinterest: "Auf Pinterest pinnen"
reddit: "An Reddit senden" reddit: "An Reddit senden"
@ -61,6 +62,5 @@ sharing:
shortcode: shortcode:
recent_articles: "Neue Beiträge" recent_articles: "Neue Beiträge"
recent: recent:
show_more: "Zeige Mehr" show_more: "Zeige Mehr"

View file

@ -62,6 +62,7 @@ search:
sharing: sharing:
email: "Send via email" email: "Send via email"
facebook: "Share on Facebook" facebook: "Share on Facebook"
line: "Share on LINE"
linkedin: "Share on LinkedIn" linkedin: "Share on LinkedIn"
pinterest: "Pin on Pinterest" pinterest: "Pin on Pinterest"
reddit: "Submit to Reddit" reddit: "Submit to Reddit"

View file

@ -62,6 +62,7 @@ search:
sharing: sharing:
email: "Sendi per retpoŝto" email: "Sendi per retpoŝto"
facebook: "Konigi en Facebook" facebook: "Konigi en Facebook"
line: "Konigi en LINE"
linkedin: "Konigi en LinkedIn" linkedin: "Konigi en LinkedIn"
pinterest: "Alpingli sur Pinterest" pinterest: "Alpingli sur Pinterest"
reddit: "Sendi al Reddit" reddit: "Sendi al Reddit"

View file

@ -62,6 +62,7 @@ search:
sharing: sharing:
email: "Enviar vía email" email: "Enviar vía email"
facebook: "Compartir en Facebook" facebook: "Compartir en Facebook"
line: "Compartir en LINE"
linkedin: "Compartir en LinkedIn" linkedin: "Compartir en LinkedIn"
pinterest: "Pinear en Pinterest" pinterest: "Pinear en Pinterest"
reddit: "Publicar en Reddit" reddit: "Publicar en Reddit"

View file

@ -62,6 +62,7 @@ search:
sharing: sharing:
email: "ارسال ایمیل" email: "ارسال ایمیل"
facebook: "اشتراک گذاری در فیسبوک" facebook: "اشتراک گذاری در فیسبوک"
line: "اشتراک گذاری در لاین"
linkedin: "اشتراک گذاری در لینکداین" linkedin: "اشتراک گذاری در لینکداین"
pinterest: "اشتراک گذاری در پینترست" pinterest: "اشتراک گذاری در پینترست"
reddit: "اشتراک گذاری در ردیت" reddit: "اشتراک گذاری در ردیت"

View file

@ -53,6 +53,7 @@ search:
sharing: sharing:
email: "Lähetä sähköpostilla" email: "Lähetä sähköpostilla"
facebook: "Jaa Facebookissa" facebook: "Jaa Facebookissa"
line: "Jaa LINEssä"
linkedin: "Jaa LinkedInissä" linkedin: "Jaa LinkedInissä"
pinterest: "Kiinnitä Pinterestiin" pinterest: "Kiinnitä Pinterestiin"
reddit: "Lähetä Reddittiin" reddit: "Lähetä Reddittiin"

View file

@ -56,6 +56,7 @@ search:
sharing: sharing:
email: "Envoyer par email" email: "Envoyer par email"
facebook: "Poster sur Facebook" facebook: "Poster sur Facebook"
line: "Partager sur LINE"
linkedin: "Poster sur LinkedIn" linkedin: "Poster sur LinkedIn"
pinterest: "Poster sur Pinterest" pinterest: "Poster sur Pinterest"
reddit: "Poster sur Reddit" reddit: "Poster sur Reddit"

View file

@ -38,11 +38,11 @@ code:
error: error:
404_title: "Páxina non atopada :confused:" 404_title: "Páxina non atopada :confused:"
404_error: "Error 404" 404_error: "Erro 404"
404_description: "Parece que a páxina que solicitaches non existe." 404_description: "Parece que a páxina que solicitaches non existe."
footer: footer:
dark_appearance: "Cambiar a modo oscuro" dark_appearance: "Cambiar a modo escuro"
light_appearance: "Cambiar a modo claro" light_appearance: "Cambiar a modo claro"
powered_by: "Desenvolvida con {{ .Hugo }} &amp; {{ .Theme }}" powered_by: "Desenvolvida con {{ .Hugo }} &amp; {{ .Theme }}"
@ -62,10 +62,14 @@ search:
sharing: sharing:
email: "Enviar vía email" email: "Enviar vía email"
facebook: "Compartir en Facebook" facebook: "Compartir en Facebook"
line: "Compartir en LINE"
linkedin: "Compartir en LinkedIn" linkedin: "Compartir en LinkedIn"
pinterest: "Pinear en Pinterest" pinterest: "Pinear en Pinterest"
reddit: "Publicar en Reddit" reddit: "Publicar en Reddit"
twitter: "Tuitear en Twitter" twitter: "Tuitear en Twitter"
bluesky: "Publicar en Bluesky"
whatsapp: "Compartir vía WhatsApp"
telegram: "Compartir vía Telegram"
shortcode: shortcode:
recent_articles: "Recente" recent_articles: "Recente"

View file

@ -53,6 +53,7 @@ search:
sharing: sharing:
email: "שליחת אימייל" email: "שליחת אימייל"
facebook: "שיתוף בפייסבוק" facebook: "שיתוף בפייסבוק"
line: "שיתוף בליין"
linkedin: "שיתוף בלינקדאין" linkedin: "שיתוף בלינקדאין"
pinterest: "שיתוף בפינטרסט" pinterest: "שיתוף בפינטרסט"
reddit: "שליחה לרדיט" reddit: "שליחה לרדיט"

View file

@ -59,6 +59,7 @@ search:
sharing: sharing:
email: "Pošalji putem e-pošte" email: "Pošalji putem e-pošte"
facebook: "Podijeli na Facebook" facebook: "Podijeli na Facebook"
line: "Podijeli na LINE"
linkedin: "Podijeli na LinkedIn" linkedin: "Podijeli na LinkedIn"
pinterest: "Podijeli na Pinterest" pinterest: "Podijeli na Pinterest"
reddit: "Objavi na Reddit" reddit: "Objavi na Reddit"

View file

@ -53,6 +53,7 @@ search:
sharing: sharing:
email: "Küldés emailben" email: "Küldés emailben"
facebook: "Megosztás a Facebookon" facebook: "Megosztás a Facebookon"
line: "Megosztás a LINE-on"
linkedin: "Megosztás a LinkedInen" linkedin: "Megosztás a LinkedInen"
pinterest: "Megosztás a Pinteresten" pinterest: "Megosztás a Pinteresten"
reddit: "Megosztás a Redditen" reddit: "Megosztás a Redditen"

View file

@ -59,6 +59,7 @@ search:
sharing: sharing:
email: "Kirim lewat surel" email: "Kirim lewat surel"
facebook: "Bagikan ke Facebook" facebook: "Bagikan ke Facebook"
line: "Bagikan ke LINE"
linkedin: "Bagikan ke LinkedIn" linkedin: "Bagikan ke LinkedIn"
pinterest: "Pin di Pinterest" pinterest: "Pin di Pinterest"
reddit: "Kirim ke Reddit" reddit: "Kirim ke Reddit"

View file

@ -53,6 +53,7 @@ search:
sharing: sharing:
email: "Invia tramite email" email: "Invia tramite email"
facebook: "Condividi su Facebook" facebook: "Condividi su Facebook"
line: "Condividi su LINE"
linkedin: "Condividi su LinkedIn" linkedin: "Condividi su LinkedIn"
pinterest: "Pinna su Pinterest" pinterest: "Pinna su Pinterest"
reddit: "Invia a Reddit" reddit: "Invia a Reddit"

View file

@ -38,13 +38,13 @@ code:
error: error:
404_title: "ページが見つかりませんでした。 :confused:" 404_title: "ページが見つかりませんでした。 :confused:"
404_error: "Error 404" 404_error: "404エラー"
404_description: "ご要望のページは存在しないようです。" 404_description: "ご要望のページは存在しないようです。"
footer: footer:
dark_appearance: "ダークモードへ切り替え" dark_appearance: "ダークモードへ切り替え"
light_appearance: "ライトモードへ切り替え" light_appearance: "ライトモードへ切り替え"
powered_by: "Powered by {{ .Hugo }} &amp; {{ .Theme }}" powered_by: "{{ .Hugo }} &amp; {{ .Theme }} で構築されています"
list: list:
externalurl_title: "外部サイトへリンク" externalurl_title: "外部サイトへリンク"
@ -62,6 +62,7 @@ search:
sharing: sharing:
email: " Eメールを送る" email: " Eメールを送る"
facebook: "Facebookでシェアする" facebook: "Facebookでシェアする"
line: "LINEでシェアする"
linkedin: "LinkedInでシェアする" linkedin: "LinkedInでシェアする"
pinterest: "Pinterestでピンする" pinterest: "Pinterestでピンする"
reddit: "Redditに投稿する" reddit: "Redditに投稿する"

View file

@ -59,6 +59,7 @@ search:
sharing: sharing:
email: "이메일로 전송" email: "이메일로 전송"
facebook: "Facebook에서 공유" facebook: "Facebook에서 공유"
line: "LINE에 공유하기"
linkedin: "LinkedIn에서 공유" linkedin: "LinkedIn에서 공유"
pinterest: "Pinterest에 고정" pinterest: "Pinterest에 고정"
reddit: "Reddit에 게시" reddit: "Reddit에 게시"

View file

@ -62,6 +62,7 @@ search:
sharing: sharing:
email: "Delen via email" email: "Delen via email"
facebook: "Delen op Facebook" facebook: "Delen op Facebook"
line: "Delen op LINE"
linkedin: "Delen op LinkedIn" linkedin: "Delen op LinkedIn"
pinterest: "Delen op Pinterest" pinterest: "Delen op Pinterest"
reddit: "Indienen op Reddit" reddit: "Indienen op Reddit"

View file

@ -36,7 +36,8 @@ code:
error: error:
404_title: "Strona nie znaleziona :confused:" 404_title: "Strona nie znaleziona :confused:"
404_error: "Błąd 404" 404_error: "Błąd 404"
404_description: "Wydaje się, że strona, którą chcesz wyświetlić, nie istnieje." 404_description:
"Wydaje się, że strona, którą chcesz wyświetlić, nie istnieje."
footer: footer:
dark_appearance: "Zmień na tryb ciemny" dark_appearance: "Zmień na tryb ciemny"
@ -59,6 +60,7 @@ search:
sharing: sharing:
email: "Wyślij jako email" email: "Wyślij jako email"
facebook: "Udostępnij na Facebooku" facebook: "Udostępnij na Facebooku"
line: "Udostępnij na LINE"
linkedin: "Udostępnij na LinkedInie" linkedin: "Udostępnij na LinkedInie"
pinterest: "Przypnij na Pinterest" pinterest: "Przypnij na Pinterest"
reddit: "Prześlij na Reddita" reddit: "Prześlij na Reddita"

View file

@ -31,7 +31,7 @@ code:
copied: "Copiado" copied: "Copiado"
error: error:
404_title: "Página não econtrada :confused:" 404_title: "Página não encontrada :confused:"
404_error: "Erro 404" 404_error: "Erro 404"
404_description: "Aparentemente a página requisitada não existe." 404_description: "Aparentemente a página requisitada não existe."
@ -56,6 +56,7 @@ search:
sharing: sharing:
email: "Enviar por email" email: "Enviar por email"
facebook: "Compartilhar pelo Facebook" facebook: "Compartilhar pelo Facebook"
line: "Compartilhar pelo LINE"
linkedin: "Compartilhar pelo LinkedIn" linkedin: "Compartilhar pelo LinkedIn"
pinterest: "Pin no Pinterest" pinterest: "Pin no Pinterest"
reddit: "Postar no Reddit" reddit: "Postar no Reddit"

View file

@ -31,7 +31,7 @@ code:
copied: "Copiado" copied: "Copiado"
error: error:
404_title: "Página não econtrada :confused:" 404_title: "Página não encontrada :confused:"
404_error: "Erro 404" 404_error: "Erro 404"
404_description: "Aparentemente a página pretendida não existe." 404_description: "Aparentemente a página pretendida não existe."
@ -56,6 +56,7 @@ search:
sharing: sharing:
email: "Partilhar por email" email: "Partilhar por email"
facebook: "Partilhar pelo Facebook" facebook: "Partilhar pelo Facebook"
line: "Partilhar pelo LINE"
linkedin: "Partilhar pelo LinkedIn" linkedin: "Partilhar pelo LinkedIn"
pinterest: "Partilhar no Pinterest" pinterest: "Partilhar no Pinterest"
reddit: "Partilhar no Reddit" reddit: "Partilhar no Reddit"

View file

@ -53,6 +53,7 @@ search:
sharing: sharing:
email: "Trimite pe email" email: "Trimite pe email"
facebook: "Postează pe Facebook" facebook: "Postează pe Facebook"
line: "Postează LINE"
linkedin: "Postează LinkedIn" linkedin: "Postează LinkedIn"
pinterest: "Pune pe Pinterest" pinterest: "Pune pe Pinterest"
reddit: "Postează pe Reddit" reddit: "Postează pe Reddit"

View file

@ -59,6 +59,7 @@ search:
sharing: sharing:
email: "Отправить по электронной почте" email: "Отправить по электронной почте"
facebook: "Поделиться через Facebook" facebook: "Поделиться через Facebook"
line: "Поделиться через LINE"
linkedin: "Поделиться через LinkedIn" linkedin: "Поделиться через LinkedIn"
pinterest: "Добавить в Pinterest" pinterest: "Добавить в Pinterest"
reddit: "Отправить в Reddit" reddit: "Отправить в Reddit"

View file

@ -0,0 +1,77 @@
global:
language: "TH"
article:
anchor_label: "จุดยึด"
date: "{{ .Date }}"
date_updated: "อัปเดต: {{ .Date }}"
draft: "ฉบับร่าง"
edit_title: "แก้ไขเนื้อหา"
reading_time:
one: "{{ .Count }} นาที"
other: "{{ .Count }} นาที"
reading_time_title: "ใช้เวลาอ่าน"
table_of_contents: "หัวข้อเนื้อหา"
word_count:
one: "{{ .Count }} คำ"
other: "{{ .Count }} คำ"
views:
one: "{{ .Count }} ครั้ง"
other: "{{ .Count }} ครั้ง"
likes:
one: "{{ .Count }} ไลค์"
other: "{{ .Count }} ไลค์"
part_of_series: "บทความในชุดเดียวกัน"
part: "ตอนที่"
this_article: "บทความนี้"
related_articles: "บทความที่เกี่ยวข้อง"
zen_mode_title:
enable: "เปิดโหมดเซน"
disable: "ปิดโหมดเซน"
author:
byline_title: "ผู้เขียน"
code:
copy: "คัดลอก"
copied: "คัดลอกแล้ว"
error:
404_title: "ไม่พบหน้าที่ต้องการ :confused:"
404_error: "ข้อผิดพลาด 404"
404_description: "ดูเหมือนว่าหน้าที่คุณต้องการจะไม่มีอยู่"
footer:
dark_appearance: "เปลี่ยนเป็นธีมมืด"
light_appearance: "เปลี่ยนเป็นธีมสว่าง"
powered_by: "สร้างด้วย {{ .Hugo }} &amp; {{ .Theme }}"
list:
externalurl_title: "ลิงก์ไปยังเว็บไซต์ภายนอก"
no_articles: "ยังไม่มีบทความให้แสดงในส่วนนี้"
nav:
scroll_to_top_title: "เลื่อนขึ้นด้านบน"
skip_to_main: "ข้ามไปยังเนื้อหาหลัก"
search:
open_button_title: "ค้นหา (/)"
close_button_title: "ปิด (Esc)"
input_placeholder: "ค้นหา"
sharing:
email: "ส่งทางอีเมล"
facebook: "แชร์บน Facebook"
linkedin: "แชร์บน LinkedIn"
pinterest: "ปักหมุดบน Pinterest"
reddit: "โพสต์บน Reddit"
twitter: "ทวีตบน Twitter"
bluesky: "โพสต์บน Bluesky"
whatsapp: "แชร์ทาง WhatsApp"
telegram: "แชร์ทาง Telegram"
shortcode:
recent_articles: "บทความล่าสุด"
recent:
show_more: "แสดงเพิ่มเติม"

View file

@ -52,6 +52,7 @@ search:
sharing: sharing:
email: "Email ile gönder" email: "Email ile gönder"
facebook: "Facebook'ta paylaş" facebook: "Facebook'ta paylaş"
line: "LINE'da paylaş"
linkedin: "LinkedIn'te paylaş" linkedin: "LinkedIn'te paylaş"
pinterest: "Pinterest'te pinle" pinterest: "Pinterest'te pinle"
reddit: "Reddit'te gönder" reddit: "Reddit'te gönder"

View file

@ -66,6 +66,7 @@ search:
sharing: sharing:
email: "Надіслати електронною поштою" email: "Надіслати електронною поштою"
facebook: "Поширити на Facebook" facebook: "Поширити на Facebook"
line: "Поширити на LINE"
linkedin: "Поширити на LinkedIn" linkedin: "Поширити на LinkedIn"
pinterest: "Зберегти на Pinterest" pinterest: "Зберегти на Pinterest"
reddit: "Опублікувати на Reddit" reddit: "Опублікувати на Reddit"

View file

@ -62,6 +62,7 @@ search:
sharing: sharing:
email: "Gửi qua email" email: "Gửi qua email"
facebook: "Chia sẻ lên Facebook" facebook: "Chia sẻ lên Facebook"
line: "Chia sẻ lên LINE"
linkedin: "Chia sẻ lên LinkedIn" linkedin: "Chia sẻ lên LinkedIn"
pinterest: "Ghim lên Pinterest" pinterest: "Ghim lên Pinterest"
reddit: "Gửi lên Reddit" reddit: "Gửi lên Reddit"

View file

@ -52,6 +52,7 @@ search:
sharing: sharing:
email: "通过电子邮件发送" email: "通过电子邮件发送"
facebook: "分享到 Facebook" facebook: "分享到 Facebook"
line: "分享到 LINE"
linkedin: "分享到 LinkedIn" linkedin: "分享到 LinkedIn"
pinterest: "钉到 Pinterest" pinterest: "钉到 Pinterest"
reddit: "提交到 Reddit" reddit: "提交到 Reddit"

View file

@ -52,6 +52,7 @@ search:
sharing: sharing:
email: "以電子郵件發送" email: "以電子郵件發送"
facebook: "分享到 Facebook" facebook: "分享到 Facebook"
line: "分享到 LINE"
linkedin: "分享到 LinkedIn" linkedin: "分享到 LinkedIn"
pinterest: "釘到 Pinterest" pinterest: "釘到 Pinterest"
reddit: "發送到 Reddit" reddit: "發送到 Reddit"

View file

@ -1,12 +1,10 @@
{{ $strAnchor := urlize .Anchor }} {{ $anchor := anchorize .Anchor }}
{{ $replacedAnchor := replaceRE "%25" "" $strAnchor }}
<h{{ .Level }} class="relative group">{{ .Text | safeHTML }} <h{{ .Level }} class="relative group">{{ .Text | safeHTML }}
<div id="{{ .Anchor | safeURL | urlize }}" class="anchor"></div> <div id="{{ $anchor }}" class="anchor"></div>
{{ if .Page.Params.showHeadingAnchors | default (.Page.Site.Params.article.showHeadingAnchors | default true) }} {{ if .Page.Params.showHeadingAnchors | default (.Page.Site.Params.article.showHeadingAnchors | default true) }}
<span <span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
<a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#{{ $anchor }}" aria-label="{{ i18n "article.anchor_label" }}">#</a>
style="text-decoration-line: none !important;" href="#{{ $replacedAnchor | safeURL }}" aria-label="{{ i18n "article.anchor_label" }}">#</a>
</span> </span>
{{ end }} {{ end }}
</h{{ .Level }}> </h{{ .Level }}>

View file

@ -1,48 +1,55 @@
{{- $disableImageOptimization := .Page.Site.Params.disableImageOptimization | default false }} {{ define "RenderImageSimple" -}}
<img class="my-0 rounded-md" loading="lazy" alt="{{ .alt }}" src="{{ .src }}">
{{- end }}
{{ define "RenderImageResponsive" -}}
<img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="low"
alt="{{ .alt }}"
srcset="
{{ (.resource.Resize "330x").RelPermalink }} 330w,
{{ (.resource.Resize "660x").RelPermalink }} 660w,
{{ (.resource.Resize "1280x").RelPermalink }} 1280w
"
data-zoom-src="{{ .resource.RelPermalink }}"
src="{{ .resource.RelPermalink }}">
{{- end }}
{{ define "RenderImageCaption" -}}
{{- with .caption }}
<figcaption>{{ . | markdownify }}</figcaption>
{{- end }}
{{- end }}
{{- $disableImageOptimizationMD := .Page.Site.Params.disableImageOptimizationMD | default false }}
{{- $url := urls.Parse .Destination }} {{- $url := urls.Parse .Destination }}
{{- $altText := .Text }} {{- $altText := .Text }}
{{- $caption := .Title }} {{- $caption := .Title }}
{{- if findRE "^https?" $url.Scheme }} {{- $isRemote := findRE "^https?" $url.Scheme }}
<figure>
<img class="my-0 rounded-md" loading="lazy" src="{{ $url.String }}" alt="{{ $altText }}" />
{{ with $caption }}<figcaption>{{ . | markdownify }}</figcaption>{{ end }}
</figure>
{{- else }}
{{- $resource := "" }} {{- $resource := "" }}
{{- if $.Page.Resources.GetMatch ($url.String) }}
{{- $resource = $.Page.Resources.GetMatch ($url.String) }} {{- if not $isRemote }}
{{- else if resources.GetMatch ($url.String) }} {{- $resource = or ($.Page.Resources.GetMatch $url.String) (resources.Get $url.String) }}
{{- $resource = resources.Get ($url.String) }}
{{- end }} {{- end }}
{{- with $resource }}
<figure> <figure>
{{- if or $disableImageOptimization (eq .MediaType.SubType "svg")}} {{- if $isRemote }}
<img {{ template "RenderImageSimple" (dict "src" $url.String "alt" $altText) }}
class="my-0 rounded-md" {{- else if $resource }}
loading="lazy" {{- $isSVG := eq $resource.MediaType.SubType "svg" }}
src="{{ .RelPermalink }}" {{- $shouldOptimize := and (not $disableImageOptimizationMD) (not $isSVG) }}
alt="{{ $altText }}" {{- if $shouldOptimize }}
/> {{ template "RenderImageResponsive" (dict "resource" $resource "alt" $altText) }}
{{- else }} {{- else }}
<img {{ template "RenderImageSimple" (dict "src" $resource.RelPermalink "alt" $altText) }}
class="my-0 rounded-md"
loading="lazy"
srcset="
{{ (.Resize "330x").RelPermalink }} 330w,
{{ (.Resize "660x").RelPermalink }} 660w,
{{ (.Resize "1024x").RelPermalink }} 1024w,
{{ (.Resize "1320x").RelPermalink }} 2x"
data-zoom-src="{{ (.Resize "1320x").RelPermalink }}"
src="{{ (.Resize "660x").RelPermalink }}"
alt="{{ $altText }}"
/>
{{- end }} {{- end }}
{{ with $caption }}<figcaption>{{ . | markdownify }}</figcaption>{{ end }}
</figure>
{{- else }} {{- else }}
<figure> {{ template "RenderImageSimple" (dict "src" $url.String "alt" $altText) }}
<img class="my-0 rounded-md" loading="lazy" src="{{ $url.String }}" alt="{{ $altText }}" /> {{- end }}
{{ with $caption }}<figcaption>{{ . | markdownify }}</figcaption>{{ end }}
{{ template "RenderImageCaption" (dict "caption" $caption) }}
</figure> </figure>
{{- end }}
{{- end }}

View file

@ -1,7 +1,11 @@
<a href="{{ .Destination | safeURL }}" <a
href="{{ .Destination | safeURL }}"
{{- with .Title -}} {{- with .Title -}}
title="{{ . }}" title="{{ . }}"
{{- end }} {{- end }}
{{- if or (strings.HasPrefix .Destination "http:") (strings.HasPrefix .Destination "https:") }} target="_blank"{{ end }}> {{- if or (strings.HasPrefix .Destination "http:") (strings.HasPrefix .Destination "https:") }}
target="_blank"
{{ end }}>
{{- .Text | safeHTML -}} {{- .Text | safeHTML -}}
</a> </a>
{{- /* Trim EOF */ -}}

View file

@ -1,19 +1,27 @@
<!DOCTYPE html> <!doctype html>
<html lang="{{ with .Site.Params.isoCode | default (.Site.LanguageCode | default " en") }} {{- . -}} {{ end }}" dir="{{ if .Site.Params.rtl | default false -}} <html
lang="{{ with .Site.Params.isoCode | default (.Site.LanguageCode | default " en") }}{{- . -}}{{ end }}"
dir="{{ if .Site.Params.rtl | default false -}}
rtl rtl
{{- else -}} {{- else -}}
ltr ltr
{{- end }}" class="scroll-smooth" data-default-appearance="{{ .Site.Params.defaultAppearance | default " light" }}" {{- end }}"
class="scroll-smooth"
data-default-appearance="{{ .Site.Params.defaultAppearance | default " light" }}"
data-auto-appearance="{{ .Site.Params.autoSwitchAppearance | default " true" }}"> data-auto-appearance="{{ .Site.Params.autoSwitchAppearance | default " true" }}">
{{- partial "head.html" . -}} {{- partial "head.html" . -}}
<body <body
class="flex flex-col h-screen px-6 m-auto text-lg leading-7 max-w-7xl bg-neutral text-neutral-900 dark:bg-neutral-800 dark:text-neutral sm:px-14 md:px-24 lg:px-32 scrollbar-thin scrollbar-track-neutral-200 scrollbar-thumb-neutral-400 dark:scrollbar-track-neutral-800 dark:scrollbar-thumb-neutral-600"> class="flex flex-col h-screen px-6 m-auto text-lg leading-7 max-w-7xl bg-neutral text-neutral-900 dark:bg-neutral-800 dark:text-neutral sm:px-14 md:px-24 lg:px-32 scrollbar-thin scrollbar-track-neutral-200 scrollbar-thumb-neutral-400 dark:scrollbar-track-neutral-800 dark:scrollbar-thumb-neutral-600">
<div id="the-top" class="absolute flex self-center"> <div id="the-top" class="absolute flex self-center">
<a class="px-3 py-1 text-sm -translate-y-8 rounded-b-lg bg-primary-200 focus:translate-y-0 dark:bg-neutral-600" <a
href="#main-content"><span class="px-3 py-1 text-sm -translate-y-8 rounded-b-lg bg-primary-200 focus:translate-y-0 dark:bg-neutral-600"
class="font-bold text-primary-600 ltr:pr-2 rtl:pl-2 dark:text-primary-400">&darr;</span>{{ i18n href="#main-content"
"nav.skip_to_main" }}</a> ><span class="font-bold text-primary-600 ltr:pr-2 rtl:pl-2 dark:text-primary-400">&darr;</span>{{ i18n
"nav.skip_to_main"
}}</a
>
</div> </div>
{{ $header := print "header/" .Site.Params.header.layout ".html" }} {{ $header := print "header/" .Site.Params.header.layout ".html" }}
{{ if templates.Exists ( printf "partials/%s" $header ) }} {{ if templates.Exists ( printf "partials/%s" $header ) }}
@ -35,8 +43,16 @@
</div> </div>
</body> </body>
{{ if .Site.Params.buymeacoffee.globalWidget | default false }} {{ if .Site.Params.buymeacoffee.globalWidget | default false }}
<script data-name="BMC-Widget" data-cfasync="false" src="https://cdnjs.buymeacoffee.com/1.0.0/widget.prod.min.js" <script
data-id="{{ .Site.Params.buymeacoffee.identifier }}" data-description="Support me on Buy me a coffee!" data-message="{{ .Site.Params.buymeacoffee.globalWidgetMessage | default "" }}" data-name="BMC-Widget"
data-color="{{ .Site.Params.buymeacoffee.globalWidgetColor | default "#FFDD00" }}" data-position="{{ .Site.Params.buymeacoffee.globalWidgetPosition | default "Left" }}" data-x_margin="18" data-y_margin="18"></script> data-cfasync="false"
src="https://cdnjs.buymeacoffee.com/1.0.0/widget.prod.min.js"
data-id="{{ .Site.Params.buymeacoffee.identifier }}"
data-description="Support me on Buy me a coffee!"
data-message="{{ .Site.Params.buymeacoffee.globalWidgetMessage | default "" }}"
data-color="{{ .Site.Params.buymeacoffee.globalWidgetColor | default "#FFDD00" }}"
data-position="{{ .Site.Params.buymeacoffee.globalWidgetPosition | default "Left" }}"
data-x_margin="18"
data-y_margin="18"></script>
{{ end }} {{ end }}
</html> </html>

View file

@ -26,13 +26,9 @@
{{ $lang := print "." .Lang ".md" }} {{ $lang := print "." .Lang ".md" }}
{{ $path = replace $path $lang ".md" }} {{ $path = replace $path $lang ".md" }}
{{end}} {{end}}
<script>
var oid = "views_{{ $path }}"
var oid_likes = "likes_{{ $path }}"
</script>
{{ $jsPage := resources.Get "js/page.js" }} {{ $jsPage := resources.Get "js/page.js" }}
{{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint "sha512" }} {{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint ($.Site.Params.fingerprintAlgorithm | default "sha512") }}
<script type="text/javascript" src="{{ $jsPage.RelPermalink }}" integrity="{{ $jsPage.Data.Integrity }}"></script> <script type="text/javascript" src="{{ $jsPage.RelPermalink }}" integrity="{{ $jsPage.Data.Integrity }}" data-oid="views_{{ $path }}" data-oid-likes="likes_{{ $path }}"></script>
{{ end }} {{ end }}
</header> </header>
<section class="{{ if $toc -}} <section class="{{ if $toc -}}
@ -91,7 +87,7 @@
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }} {{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
{{ if $cardViewScreenWidth }} {{ if $cardViewScreenWidth }}
<div class="relative w-screen max-w-[1600px] px-[30px]" style="left: calc(max(-50vw,-800px) + 50%);"> <div class="relative w-screen max-w-[1600px] px-[30px] left-[calc(max(-50vw,-800px)+50%)]">
{{ end }} {{ end }}
<h2 class="mt-12 mb-3 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300"> <h2 class="mt-12 mb-3 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300">
{{ .Key }} {{ .Key }}
@ -107,7 +103,7 @@
{{ else }} {{ else }}
{{ if $cardViewScreenWidth }} {{ if $cardViewScreenWidth }}
<div class="relative w-screen max-w-[1600px] px-[30px]" style="left: calc(max(-50vw,-800px) + 50%);"> <div class="relative w-screen max-w-[1600px] px-[30px] left-[calc(max(-50vw,-800px)+50%)]">
<section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5"> <section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5">
{{ else }} {{ else }}
<section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3"> <section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3">

View file

@ -1,6 +1,7 @@
{{ define "main" }} {{ define "main" }}
{{ .Scratch.Set "scope" "single" }} {{ .Scratch.Set "scope" "single" }}
<article> <article>
{{ if .Params.showHero | default (.Site.Params.article.showHero | default false) }} {{ if .Params.showHero | default (.Site.Params.article.showHero | default false) }}
{{ $heroStyle := .Params.heroStyle }} {{ $heroStyle := .Params.heroStyle }}
@ -13,6 +14,7 @@
{{ end }} {{ end }}
{{ end }} {{ end }}
<header id="single_header" class="mt-5 max-w-prose"> <header id="single_header" class="mt-5 max-w-prose">
{{ if .Params.showBreadcrumbs | default (.Site.Params.article.showBreadcrumbs | default false) }} {{ if .Params.showBreadcrumbs | default (.Site.Params.article.showBreadcrumbs | default false) }}
{{ partial "breadcrumbs.html" . }} {{ partial "breadcrumbs.html" . }}
@ -71,30 +73,44 @@
</header> </header>
<section class="flex flex-col max-w-full mt-0 prose dark:prose-invert lg:flex-row"> <section class="flex flex-col max-w-full mt-0 prose dark:prose-invert lg:flex-row">
{{ if or (and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in {{ if or (and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in
.TableOfContents "<ul")) (.Site.Params.article.showRelatedPosts | default false) }} <div .TableOfContents "<ul")) (.Site.Params.article.showRelatedPosts | default false)
class="order-first lg:ml-auto px-0 lg:order-last ltr:lg:pl-8 rtl:lg:pr-8"> }}
<div class="toc ltr:pl-5 rtl:pr-5 print:hidden lg:sticky {{ if hasPrefix .Site.Params.header.layout "fixed" -}} <div class="order-first lg:ml-auto px-0 lg:order-last ltr:lg:pl-8 rtl:lg:pr-8">
lg:top-[140px]{{ else }}lg:top-10{{ end }}"> <div
class="toc ltr:pl-5 rtl:pr-5 print:hidden lg:sticky {{ if hasPrefix .Site.Params.header.layout "fixed" -}}
lg:top-[140px]
{{ else }}
lg:top-10
{{ end }}
">
{{ if and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in {{ if and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in
.TableOfContents "<ul") }} {{ partial "toc.html" . }} {{ end }} {{ if .Site.Params.article.showRelatedPosts | .TableOfContents "<ul")
default false }} sd {{ end }} </div> }}
{{ partial "toc.html" . }}
{{ end }}
{{ if .Site.Params.article.showRelatedPosts |
default false
}}
sd
{{ end }}
</div>
</div> </div>
{{ end }} {{ end }}
<div class="min-w-0 min-h-0 max-w-fit">
<div class="min-w-0 min-h-0 max-w-fit">
{{ partial "series/series.html" . }} {{ partial "series/series.html" . }}
<div class="article-content max-w-prose mb-20"> <div class="article-content max-w-prose mb-20">
{{ .Content }} {{ .Content }}
{{ $defaultReplyByEmail := .Site.Params.replyByEmail }} {{ $defaultReplyByEmail := .Site.Params.replyByEmail }}
{{ $replyByEmail := default $defaultReplyByEmail .Params.replyByEmail }} {{ $replyByEmail := default $defaultReplyByEmail .Params.replyByEmail }}
{{ if $replyByEmail }} {{ if $replyByEmail }}
<strong class="block mt-8"> <strong class="block mt-8">
<a target="_blank" <a
target="_blank"
class="m-1 rounded bg-neutral-300 p-1.5 text-neutral-700 hover:bg-primary-500 hover:text-neutral dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" class="m-1 rounded bg-neutral-300 p-1.5 text-neutral-700 hover:bg-primary-500 hover:text-neutral dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800"
href="mailto:{{ .Site.Params.Author.email }}?subject={{ replace (printf "Reply to %s" .Title) "\"" "'" }}"> href="mailto:{{ .Site.Params.Author.email }}?subject={{ replace (printf "Reply to %s" .Title) "\"" "'" }}">
Reply by Email Reply by Email
@ -140,23 +156,23 @@
{{ $lang := print "." .Lang ".md" }} {{ $lang := print "." .Lang ".md" }}
{{ $path = replace $path $lang ".md" }} {{ $path = replace $path $lang ".md" }}
{{ end }} {{ end }}
<script>
var oid = "views_{{ $path }}"
var oid_likes = "likes_{{ $path }}"
</script>
{{ $jsPage := resources.Get "js/page.js" }} {{ $jsPage := resources.Get "js/page.js" }}
{{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint "sha512" }} {{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint ($.Site.Params.fingerprintAlgorithm | default "sha512") }}
<script type="text/javascript" src="{{ $jsPage.RelPermalink }}" integrity="{{ $jsPage.Data.Integrity }}"></script> <script
type="text/javascript"
src="{{ $jsPage.RelPermalink }}"
integrity="{{ $jsPage.Data.Integrity }}"
data-oid="views_{{ $path }}"
data-oid-likes="likes_{{ $path }}"></script>
{{ end }} {{ end }}
</section> </section>
<footer class="pt-8 max-w-prose print:hidden"> <footer class="pt-8 max-w-prose print:hidden">
{{ partial "article-pagination.html" . }} {{ partial "article-pagination.html" . }}
{{ if .Params.showComments | default (.Site.Params.article.showComments | default false) }} {{ if .Params.showComments | default (.Site.Params.article.showComments | default false) }}
{{ if templates.Exists "partials/comments.html" }} {{ if templates.Exists "partials/comments.html" }}
<div class="pt-3"> <div class="pt-3">
<hr class="border-dotted border-neutral-300 dark:border-neutral-600" /> <hr class="border-dotted border-neutral-300 dark:border-neutral-600">
<div class="pt-3"> <div class="pt-3">
{{ partial "comments.html" . }} {{ partial "comments.html" . }}
</div> </div>

View file

@ -1,5 +1,4 @@
{{ define "main" }} {{ define "main" }}
{{ .Scratch.Set "scope" "term" }} {{ .Scratch.Set "scope" "term" }}
{{ if .Site.Params.term.showHero | default false }} {{ if .Site.Params.term.showHero | default false }}
{{ $heroStyle := print "hero/" .Site.Params.term.heroStyle ".html" }} {{ $heroStyle := print "hero/" .Site.Params.term.heroStyle ".html" }}
@ -11,7 +10,9 @@
{{- end -}} {{- end -}}
{{ $toc := and (.Params.showTableOfContents | default (.Site.Params.term.showTableOfContents | default false)) (in {{ $toc := and (.Params.showTableOfContents | default (.Site.Params.term.showTableOfContents | default false)) (in
.TableOfContents "<ul") }} <header> .TableOfContents "<ul")
}}
<header>
{{ if .Params.showBreadcrumbs | default (.Site.Params.term.showBreadcrumbs | default false) }} {{ if .Params.showBreadcrumbs | default (.Site.Params.term.showBreadcrumbs | default false) }}
{{ partial "breadcrumbs.html" . }} {{ partial "breadcrumbs.html" . }}
{{ end }} {{ end }}
@ -26,19 +27,18 @@
<div class="min-w-0 min-h-0 max-w-prose"> <div class="min-w-0 min-h-0 max-w-prose">
{{ .Content }} {{ .Content }}
</div> </div>
<script>
var oid = "views_term_{{ .Data.Term }}"
var oid_likes = "likes_term_{{ .Data.Term }}"
</script>
{{ $jsPage := resources.Get "js/page.js" }} {{ $jsPage := resources.Get "js/page.js" }}
{{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint "sha512" }} {{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }}
<script type="text/javascript" src="{{ $jsPage.RelPermalink }}" integrity="{{ $jsPage.Data.Integrity }}"></script> <script
type="text/javascript"
src="{{ $jsPage.RelPermalink }}"
integrity="{{ $jsPage.Data.Integrity }}"
data-oid="views_term_{{ .Data.Term }}"
data-oid-likes="likes_term_{{ .Data.Term }}"></script>
{{ end }} {{ end }}
</section> </section>
{{ if gt .Pages 0 }} {{ if gt .Pages 0 }}
{{ $cardView := .Params.cardView | default (.Site.Params.term.cardView | default false) }} {{ $cardView := .Params.cardView | default (.Site.Params.term.cardView | default false) }}
{{ $cardViewScreenWidth := .Site.Params.term.cardViewScreenWidth | default false }} {{ $cardViewScreenWidth := .Site.Params.term.cardViewScreenWidth | default false }}
{{ $groupByYear := .Params.groupByYear | default ($.Site.Params.term.groupByYear | default false) }} {{ $groupByYear := .Params.groupByYear | default ($.Site.Params.term.groupByYear | default false) }}
@ -57,7 +57,6 @@
{{ end }} {{ end }}
{{ end }} {{ end }}
</section> </section>
{{ else if and $cardView (not $cardViewScreenWidth) }} {{ else if and $cardView (not $cardViewScreenWidth) }}
{{ if $groupByYear }} {{ if $groupByYear }}
@ -82,7 +81,6 @@
{{ end }} {{ end }}
{{ end }} {{ end }}
</section> </section>
{{ end }} {{ end }}
{{ else if and $cardView $cardViewScreenWidth }} {{ else if and $cardView $cardViewScreenWidth }}
@ -90,7 +88,7 @@
{{ if $groupByYear }} {{ if $groupByYear }}
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }} {{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
<div class="relative w-screen max-w-[1600px] px-[30px]" style="left: calc(max(-50vw,-800px) + 50%);"> <div class="relative w-screen max-w-[1600px] px-[30px] left-[calc(max(-50vw,-800px)+50%)]">
<h2 class="mt-12 mb-3 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300"> <h2 class="mt-12 mb-3 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300">
{{ .Key }} {{ .Key }}
</h2> </h2>
@ -104,7 +102,7 @@
{{ else }} {{ else }}
<div class="relative w-screen max-w-[1600px] px-[30px]" style="left: calc(max(-50vw,-800px) + 50%);"> <div class="relative w-screen max-w-[1600px] px-[30px] left-[calc(max(-50vw,-800px)+50%)]">
<section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5"> <section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5">
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }} {{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
{{ range .Pages }} {{ range .Pages }}
@ -113,7 +111,6 @@
{{ end }} {{ end }}
</section> </section>
</div> </div>
{{ end }} {{ end }}
{{ end }} {{ end }}

View file

@ -1,5 +1,4 @@
{{ define "main" }} {{ define "main" }}
{{ .Scratch.Set "scope" "list" }} {{ .Scratch.Set "scope" "list" }}
{{ if .Site.Params.taxonomy.showHero | default false }} {{ if .Site.Params.taxonomy.showHero | default false }}
{{ $heroStyle := print "hero/" .Site.Params.taxonomy.heroStyle ".html" }} {{ $heroStyle := print "hero/" .Site.Params.taxonomy.heroStyle ".html" }}
@ -11,7 +10,9 @@
{{- end -}} {{- end -}}
{{ $toc := and (.Params.showTableOfContents | default (.Site.Params.taxonomy.showTableOfContents | default false)) (in {{ $toc := and (.Params.showTableOfContents | default (.Site.Params.taxonomy.showTableOfContents | default false)) (in
.TableOfContents "<ul") }} .TableOfContents "<ul")
}}
<header> <header>
{{ if .Params.showBreadcrumbs | default (.Site.Params.taxonomy.showBreadcrumbs | default false) }} {{ if .Params.showBreadcrumbs | default (.Site.Params.taxonomy.showBreadcrumbs | default false) }}
@ -28,23 +29,22 @@
{{ .Content }} {{ .Content }}
</div> </div>
</section> </section>
<script>
var oid = "views_taxonomy_{{ .Data.Plural }}"
var oid_likes = "likes_taxonomy_{{ .Data.Plural }}"
</script>
{{ $jsPage := resources.Get "js/page.js" }} {{ $jsPage := resources.Get "js/page.js" }}
{{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint "sha512" }} {{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }}
<script type="text/javascript" src="{{ $jsPage.RelPermalink }}" integrity="{{ $jsPage.Data.Integrity }}"></script> <script
type="text/javascript"
src="{{ $jsPage.RelPermalink }}"
integrity="{{ $jsPage.Data.Integrity }}"
data-oid="views_taxonomy_{{ .Data.Plural }}"
data-oid-likes="likes_taxonomy_{{ .Data.Plural }}"></script>
{{ end }} {{ end }}
{{ if .Site.Params.taxonomy.cardView }} {{ if .Site.Params.taxonomy.cardView }}
<section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3"> <section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3">
{{ range .Data.Terms }} {{ range .Data.Terms }}
{{ partial "term-link/card.html" . }} {{ partial "term-link/card.html" . }}
{{ end }} {{ end }}
</section> </section>
{{ else }} {{ else }}
<section class="flex flex-wrap max-w-prose -mx-2 overflow-hidden"> <section class="flex flex-wrap max-w-prose -mx-2 overflow-hidden">
@ -52,8 +52,6 @@
{{ partial "term-link/text.html" . }} {{ partial "term-link/text.html" . }}
{{ end }} {{ end }}
</section> </section>
{{ end }} {{ end }}
{{ end }} {{ end }}

View file

@ -1,5 +1,11 @@
{{ if isset site.Params.fathomAnalytics "domain" }} {{ if isset site.Params.fathomAnalytics "domain" }}
<script defer src="https://{{ site.Params.fathomAnalytics.domain }}/script.js" data-site="{{ site.Params.fathomAnalytics.site }}"></script> <script
defer
src="https://{{ site.Params.fathomAnalytics.domain }}/script.js"
data-site="{{ site.Params.fathomAnalytics.site }}"></script>
{{ else }} {{ else }}
<script defer src="https://cdn.usefathom.com/script.js" data-site="{{ site.Params.fathomAnalytics.site }}"></script> <script
defer
src="https://cdn.usefathom.com/script.js"
data-site="{{ site.Params.fathomAnalytics.site }}"></script>
{{ end }} {{ end }}

View file

@ -1,4 +1,6 @@
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.Config.Services.GoogleAnalytics.ID }}"></script> <script
async
src="https://www.googletagmanager.com/gtag/js?id={{ site.Config.Services.GoogleAnalytics.ID }}"></script>
<script> <script>
window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);} function gtag(){dataLayer.push(arguments);}

View file

@ -1,17 +1,20 @@
<script async src="https://cdn.seline.so/seline.js" data-token="{{ site.Params.selineAnalytics.token }}" data-id="seline-script"></script> <script
async
src="https://cdn.seline.so/seline.js"
data-token="{{ site.Params.selineAnalytics.token }}"
data-id="seline-script"></script>
{{ if .Site.Params.selineAnalytics.enableTrackEvent | default true }} {{ if .Site.Params.selineAnalytics.enableTrackEvent | default true }}
<script type="text/javascript"> <script type="text/javascript">
document.querySelector('script[data-id="seline-script"]') document.querySelector('script[data-id="seline-script"]').addEventListener("load", function () {
.addEventListener('load', function () { const type = document.head.querySelector('meta[property = "og:type"]').getAttribute("content");
const type = document.head.querySelector('meta[property = "og:type"]').getAttribute('content'); let title = document.head.querySelector('meta[property = "og:title"]').getAttribute("content");
let title = document.head.querySelector('meta[property = "og:title"]').getAttribute('content'); let url = document.head.querySelector('meta[property = "og:url"]').getAttribute("content");
let url = document.head.querySelector('meta[property = "og:url"]').getAttribute('content');
seline.track("user:" + type + ':' + title, { seline.track("user:" + type + ":" + title, {
type: type, type: type,
title: title, title: title,
url: url url: url,
}); });
}); });
</script> </script>

View file

@ -1,23 +1,27 @@
{{/* prettier-ignore-start */}}
{{ if isset site.Params.umamiAnalytics "domain" }} {{ if isset site.Params.umamiAnalytics "domain" }}
<script data-id="umami-script" async <script
data-id="umami-script"
async
src="https://{{ site.Params.umamiAnalytics.domain }}/{{ with site.Params.umamiAnalytics.scriptName }}{{ . }}{{ else }}script.js{{ end }}" src="https://{{ site.Params.umamiAnalytics.domain }}/{{ with site.Params.umamiAnalytics.scriptName }}{{ . }}{{ else }}script.js{{ end }}"
data-website-id="{{ site.Params.umamiAnalytics.websiteid }}" data-website-id="{{ site.Params.umamiAnalytics.websiteid }}"
{{ with site.Params.umamiAnalytics.dataDomains }}data-domains="{{ . }}"{{ end }}> {{ with site.Params.umamiAnalytics.dataDomains }}data-domains="{{ . }}"{{ end }}></script>
</script>
{{ else }} {{ else }}
<script data-id="umami-script" async src="https://analytics.umami.is/script.js" <script
data-website-id="{{ site.Params.umamiAnalytics.websiteid }}"> data-id="umami-script"
</script> async
src="https://analytics.umami.is/script.js"
data-website-id="{{ site.Params.umamiAnalytics.websiteid }}"></script>
{{ end }} {{ end }}
{{/* prettier-ignore-end */}}
{{ if .Site.Params.umamiAnalytics.enableTrackEvent | default true }} {{ if .Site.Params.umamiAnalytics.enableTrackEvent | default true }}
<script type="text/javascript"> <script type="text/javascript">
document.querySelector('script[data-id="umami-script"]') document.querySelector('script[data-id="umami-script"]').addEventListener("load", function () {
.addEventListener('load', function () { const type = document.head.querySelector('meta[property = "og:type"]').getAttribute("content");
const type = document.head.querySelector('meta[property = "og:type"]').getAttribute('content'); let title = document.head.querySelector('meta[property = "og:title"]').getAttribute("content");
let title = document.head.querySelector('meta[property = "og:title"]').getAttribute('content'); let url = document.head.querySelector('meta[property = "og:url"]').getAttribute("content");
let url = document.head.querySelector('meta[property = "og:url"]').getAttribute('content'); umami.track(type + ":" + title, { url: url });
umami.track(type + ':' + title, {'url': url});
}); });
</script> </script>
{{ end }} {{ end }}

View file

@ -0,0 +1,5 @@
{{ with .Params.externalUrl }}
href="{{ . }}" target="_blank" rel="external"
{{ else }}
href="{{ .RelPermalink }}"
{{- end -}}

View file

@ -41,8 +41,8 @@
</span> </span>
{{ end }} {{ end }}
<div class="px-6 py-4">
<div class="px-6 py-4">
{{ with .Params.externalUrl }} {{ with .Params.externalUrl }}
<div> <div>
<div <div
@ -55,10 +55,14 @@
</div> </div>
</div> </div>
{{ else }} {{ else }}
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral" <div
href="{{ .RelPermalink }}">{{ .Title | emojify }}</div> class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="{{ .RelPermalink }}">
{{ .Title | emojify }}
</div>
{{ end }} {{ end }}
<div class="text-sm text-neutral-500 dark:text-neutral-400"> <div class="text-sm text-neutral-500 dark:text-neutral-400">
{{ partial "article-meta/basic.html" . }} {{ partial "article-meta/basic.html" . }}
</div> </div>
@ -69,8 +73,6 @@
</div> </div>
{{ end }} {{ end }}
</div> </div>
<div class="px-6 pt-4 pb-2"> <div class="px-6 pt-4 pb-2"></div>
</div>
</div> </div>
</a> </a>

View file

@ -35,15 +35,14 @@
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{ if and .Draft .Site.Params.article.showDraftLabel }} {{ if and .Draft .Site.Params.article.showDraftLabel }}
<span class="absolute top-0 right-0 m-2"> <span class="absolute top-0 right-0 m-2">
{{ partial "badge.html" (i18n "article.draft" | emojify) }} {{ partial "badge.html" (i18n "article.draft" | emojify) }}
</span> </span>
{{ end }} {{ end }}
<div class="px-6 py-4">
<div class="px-6 py-4">
{{ with .Params.externalUrl }} {{ with .Params.externalUrl }}
<div> <div>
<div <div
@ -56,10 +55,14 @@
</div> </div>
</div> </div>
{{ else }} {{ else }}
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral" <div
href="{{ .RelPermalink }}">{{ .Title | emojify }}</div> class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="{{ .RelPermalink }}">
{{ .Title | emojify }}
</div>
{{ end }} {{ end }}
<div class="text-sm text-neutral-500 dark:text-neutral-400"> <div class="text-sm text-neutral-500 dark:text-neutral-400">
{{ partial "article-meta/basic.html" . }} {{ partial "article-meta/basic.html" . }}
</div> </div>
@ -70,8 +73,6 @@
</div> </div>
{{ end }} {{ end }}
</div> </div>
<div class="px-6 pt-4 pb-2"> <div class="px-6 pt-4 pb-2"></div>
</div>
</div> </div>
</a> </a>

View file

@ -28,11 +28,7 @@
{{ end }} {{ end }}
{{ with .Params.externalUrl }} <a class="{{ $articleClasses }}" {{ partial "article-link/_external-link.html" . | safeHTMLAttr }}>
<a class="{{ $articleClasses }}" href="{{ . }}" target="_blank" rel="external">
{{ else }}
<a class="{{ $articleClasses }}" href="{{ .RelPermalink }}">
{{ end }}
{{- with $.Params.images -}} {{- with $.Params.images -}}
{{- range first 6 . }} {{- range first 6 . }}
<meta property="og:image" content="{{ . | absURL }}" />{{ end -}} <meta property="og:image" content="{{ . | absURL }}" />{{ end -}}
@ -77,8 +73,11 @@
</div> </div>
</div> </div>
{{ else }} {{ else }}
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral" <div
href="{{ .RelPermalink }}">{{ .Title | emojify }}</div> class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="{{ .RelPermalink }}">
{{ .Title | emojify }}
</div>
{{ end }} {{ end }}
{{ if and .Draft .Site.Params.article.showDraftLabel }} {{ if and .Draft .Site.Params.article.showDraftLabel }}
<div class=" ltr:ml-2 rtl:mr-2"> <div class=" ltr:ml-2 rtl:mr-2">

View file

@ -12,14 +12,25 @@
{{ $meta := newScratch }} {{ $meta := newScratch }}
{{/* Gather partials for this context */}} {{/* Gather partials for this context */}}
{{ $shouldShowDate := false }}
{{ if and (eq $scope "single") (.Params.showDateOnlyInArticle | default (.Site.Params.article.showDateOnlyInArticle | default false)) }}
{{ $shouldShowDate = true }}
{{ end }}
{{/* showDate has higher priority than showDateOnlyInArticle */}}
{{ if .Params.showDate | default (.Site.Params.article.showDate | default true) }} {{ if .Params.showDate | default (.Site.Params.article.showDate | default true) }}
{{ $meta.Add "partials" (slice (partial "meta/date.html" .Date)) }} {{ $shouldShowDate = true }}
{{else if and (eq $scope "single") (.Params.showDateOnlyInArticle | default (.Site.Params.article.showDateOnlyInArticle | default false)) }} {{ else }}
{{ $shouldShowDate = false }}
{{ end }}
{{ if $shouldShowDate }}
{{ $meta.Add "partials" (slice (partial "meta/date.html" .Date)) }} {{ $meta.Add "partials" (slice (partial "meta/date.html" .Date)) }}
{{ end }} {{ end }}
{{ if and (.Params.showDateUpdated | default (.Site.Params.article.showDateUpdated | default false)) (ne (partial {{ if and (.Params.showDateUpdated | default (.Site.Params.article.showDateUpdated | default false)) (ne (partial
"functions/date.html" .Date) (partial "functions/date.html" .Lastmod)) (gt (.Lastmod | time.Format "2006") 1) }} "functions/date.html" .Date) (partial "functions/date.html" .Lastmod)) (gt (.Lastmod | time.Format "2006") 1)
}}
{{ $meta.Add "partials" (slice (partial "meta/date-updated.html" .Lastmod)) }} {{ $meta.Add "partials" (slice (partial "meta/date-updated.html" .Lastmod)) }}
{{ end }} {{ end }}
@ -27,8 +38,7 @@
{{ $meta.Add "partials" (slice (partial "meta/word-count.html" .)) }} {{ $meta.Add "partials" (slice (partial "meta/word-count.html" .)) }}
{{ end }} {{ end }}
{{ if and (.Params.showReadingTime | default (.Site.Params.article.showReadingTime | default true)) (ne .ReadingTime 0) {{ if and (.Params.showReadingTime | default (.Site.Params.article.showReadingTime | default true)) (ne .ReadingTime 0) }}
}}
{{ $meta.Add "partials" (slice (partial "meta/reading-time.html" .)) }} {{ $meta.Add "partials" (slice (partial "meta/reading-time.html" .)) }}
{{ end }} {{ end }}
@ -71,7 +81,10 @@
{{ if (eq $taxonomy "authors") }} {{ if (eq $taxonomy "authors") }}
{{ if (gt (len ($context.GetTerms $taxonomy)) 0) }} {{ if (gt (len ($context.GetTerms $taxonomy)) 0) }}
{{ range $i, $a := $context.GetTerms $taxonomy }} {{ range $i, $a := $context.GetTerms $taxonomy }}
{{ if not (eq $i 0) }} ,&nbsp; {{ end }} <div style="cursor: pointer;" onclick="window.open({{ $a.RelPermalink }},'_self');return false;">{{ $a.LinkTitle }}</div> {{ if not (eq $i 0) }},&nbsp;{{ end }}
<div class="cursor-pointer" onclick="window.open({{ $a.RelPermalink }},'_self');return false;">
{{ $a.LinkTitle }}
</div>
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ end }} {{ end }}
@ -86,7 +99,9 @@
{{ if and (not (eq $taxonomy "authors")) (not (eq $taxonomy "series")) }} {{ if and (not (eq $taxonomy "authors")) (not (eq $taxonomy "series")) }}
{{ if (gt (len ($context.GetTerms $taxonomy)) 0) }} {{ if (gt (len ($context.GetTerms $taxonomy)) 0) }}
{{ range $context.GetTerms $taxonomy }} {{ range $context.GetTerms $taxonomy }}
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open({{ .RelPermalink }},'_self');return false;"> <span
class="mr-2 mt-[0.5rem]"
onclick="window.open({{ .RelPermalink }},'_self');return false;">
{{ partial "badge.html" .LinkTitle }} {{ partial "badge.html" .LinkTitle }}
</span> </span>
{{ end }} {{ end }}
@ -96,4 +111,15 @@
</div> </div>
{{ end }} {{ end }}
{{/* Output only category */}}
{{ if .Params.showCategoryOnly | default (.Site.Params.article.showCategoryOnly | default false) }}
<div class="flex flex-row flex-wrap items-center">
{{ range (.GetTerms "categories") }}
<span class="mr-2 mt-[0.5rem]" onclick="window.open({{ .RelPermalink }},'_self');return false;">
{{ partial "badge.html" .LinkTitle }}
</span>
{{ end }}
</div>
{{ end }}
{{ end }} {{ end }}

View file

@ -32,5 +32,4 @@
{{ delimit . "<span class=\"px-2 text-primary-500\">&middot;</span>" | safeHTML }} {{ delimit . "<span class=\"px-2 text-primary-500\">&middot;</span>" | safeHTML }}
{{ end }} {{ end }}
</div> </div>
{{ end }} {{ end }}

Some files were not shown because too many files have changed in this diff Show more