Compare commits

...
278 Commits
Author SHA1 Message Date
Nuno CoraçãoandClaude Opus 4.6 f2e9eaa80f Add breaking changes policy and PR guidelines to CONTRIBUTING.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 22:46:11 +01:00
Nuno C. 8eb1f330c5 Merge pull request #2877 from jin-li/feature/thumbnail-aspect-ratio-global
feat: Allow configurable thumbnail aspect ratio for article cards
2026-04-13 22:43:18 +01:00
Nuno C. 44f787680b Merge pull request #2874 from aplgr/feat/hreflang-head-alternates
Add hreflang alternates to multilingual page head
2026-04-13 22:43:11 +01:00
Nuno C. 270a0a74d2 Merge pull request #2868 from L0kayata/dev
🐛 Fix `carousel` caption height overflow and layout jump
2026-04-13 22:41:46 +01:00
Nuno C. a57db858b4 Merge pull request #2866 from EricGusmao/fix/hugo-v0.158.0-deprecations
fix: migrate deprecated Hugo v0.158.0 language API
2026-04-13 22:40:39 +01:00
Nuno C. 2e195fc1e1 Merge pull request #2853 from MaikelChan/header_space_list
🐛 Fixed `layoutBackgroundBlur` and `layoutBackgroundHeaderSpace` not affecting term and taxonomy pages
2026-04-13 22:39:41 +01:00
Nuno C. a666aa54b8 Merge pull request #2852 from MaikelChan/badges
✨ Implemented category badges in secondary color and better granularity for showing categories or tags
2026-04-13 22:38:59 +01:00
Nuno CoraçãoandClaude Opus 4.6 89e261f8e4 Fix Umami event name for long page titles
Use a fixed event name (type:view) and pass the title as metadata
instead of embedding it in the event name, which caused issues with
long page titles.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 22:34:48 +01:00
Nuno C. d35a493ba0 Merge pull request #2837 from schneekluth/feat-email-shortcode
Shortcode for obfuscated mailto email link
2026-04-13 22:29:29 +01:00
Nuno C. 78341b1822 Merge pull request #2898 from unknown-gd/main
Localization for `article` shortcut
2026-04-13 22:29:26 +01:00
Nuno C. 58e075717e Merge pull request #2851 from nk9/plainify-title
[#2850] Run plainify on the title value before emojify
2026-04-13 22:29:23 +01:00
Nuno C. 137860d31a Merge pull request #2900 from alxhslm/feat/untappd-icon-v2
✨ Feat: Add Untappd icon and profile support
2026-04-13 22:29:20 +01:00
Nuno C. cee3e324fd Merge pull request #2899 from alxhslm/feat/strava-icon-v2
✨ Feat: Add Strava icon and profile support
2026-04-13 22:29:17 +01:00
Nuno CoraçãoandClaude Opus 4.6 2b83b517cc Fix sharing email link broken by email obfuscation PR
The email obfuscation PR (#2815) incorrectly replaced the "share via
email" link with the author's email as recipient. Sharing links have no
email address to obfuscate — they just open a mailto: with the article
URL and title prefilled.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 22:24:07 +01:00
Nuno CoraçãoandClaude Opus 4.6 cc5cd8f11a Update user data, screenshots, and translated content
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 22:19:11 +01:00
Nuno CoraçãoandClaude Opus 4.6 c6d40c6d3f Remove google-translate dep, upgrade firebase-admin, pin csv-parse, and improve processUsers.js
- Remove @iamtraction/google-translate (and undici vulnerability) — translation
  no longer needed, language files now copy English content directly
- Upgrade firebase-admin from ^12.0.0 to ^13.8.0
- Pin csv-parse to ~5.5.0 to avoid major version bump
- Use networkidle2 + 2s delay in processUsers.js for reliable screenshots

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 22:19:07 +01:00
Nuno Coração 8fda75b134 Merge branch 'main' of https://github.com/nunocoracao/blowfish 2026-04-13 21:41:34 +01:00
Nuno CoraçãoandClaude Opus 4.6 965b0ac6ef Pin fuse.js to ~7.2.0 — v7.3.0 dropped the UMD build needed for Hugo's script concatenation
fuse.js 7.3.0 removed dist/fuse.min.js (UMD), shipping only ESM/CJS.
Since Hugo concatenates vendor JS into a plain <script> tag, the ESM
export syntax causes a runtime error and breaks search. Pin to 7.2.0,
the last version with UMD support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 21:39:16 +01:00
Nuno C. 08f6ccd618 Merge pull request #2901 from nunocoracao/dependabot/npm_and_yarn/basic-ftp-5.2.2
Bump basic-ftp from 5.2.0 to 5.2.2
2026-04-13 21:38:43 +01:00
dependabot[bot] 3864f6f095 Bump basic-ftp from 5.2.0 to 5.2.2
Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.2.0 to 5.2.2.
- [Release notes](https://github.com/patrickjuchli/basic-ftp/releases)
- [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/patrickjuchli/basic-ftp/compare/v5.2.0...v5.2.2)

---
updated-dependencies:
- dependency-name: basic-ftp
  dependency-version: 5.2.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 20:32:01 +00:00
Nuno C. 9ec0e6810a Merge pull request #2895 from nunocoracao/dependabot/npm_and_yarn/main/fuse.js-7.3.0
📌 Bump fuse.js from 7.1.0 to 7.3.0
2026-04-13 21:29:25 +01:00
dependabot[bot] a132a9c5e6 📌 Bump fuse.js from 7.1.0 to 7.3.0
Bumps [fuse.js](https://github.com/krisk/Fuse) from 7.1.0 to 7.3.0.
- [Release notes](https://github.com/krisk/Fuse/releases)
- [Changelog](https://github.com/krisk/Fuse/blob/main/CHANGELOG.md)
- [Commits](https://github.com/krisk/Fuse/compare/v7.1.0...v7.3.0)

---
updated-dependencies:
- dependency-name: fuse.js
  dependency-version: 7.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 20:26:03 +00:00
Nuno C. 0e8848d9c8 Merge pull request #2896 from nunocoracao/dependabot/npm_and_yarn/main/mermaid-11.14.0
📌 Bump mermaid from 11.13.0 to 11.14.0
2026-04-13 21:25:29 +01:00
Nuno C. deffce8a02 Merge pull request #2894 from nunocoracao/dependabot/npm_and_yarn/main/katex-0.16.45
📌 Bump katex from 0.16.44 to 0.16.45
2026-04-13 21:24:46 +01:00
Nuno C. e2dfae4a64 Merge pull request #2893 from nunocoracao/dependabot/npm_and_yarn/main/headlessui/react-2.2.10
📌 Bump @headlessui/react from 2.2.9 to 2.2.10
2026-04-13 21:24:33 +01:00
Nuno C. 8aac2d7585 Merge pull request #2897 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2026-04-13 21:24:14 +01:00
Alex HaslamandClaude Sonnet 4.6 b9883c761d Merge upstream/main into feat/untappd-icon-v2
Resolve conflicts in icon sample pages by adopting upstream's {{< icon-ref >}}
shortcode, which dynamically generates the icon table.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 21:27:37 +01:00
Alex HaslamandClaude Sonnet 4.6 7b0fbea8ab Merge upstream/main into feat/strava-icon-v2
Resolve conflicts in icon sample pages by adopting upstream's {{< icon-ref >}}
shortcode, which dynamically generates the icon table (replacing the static
table the PR had added strava to).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 20:32:23 +01:00
Alex HaslamandClaude Sonnet 4.6 4d6a84b041 📝 Docs: Add Untappd icon to icon samples table
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 16:49:38 +00:00
Alex HaslamandClaude Sonnet 4.6 0bc71ebe8d 📝 Docs: Add Strava icon to icon samples table
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 16:49:27 +00:00
Alex HaslamandClaude Sonnet 4.6 ae9b25b69c ✨ Feat: Add Untappd icon and profile support
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 16:42:31 +00:00
Alex HaslamandClaude Sonnet 4.6 1475200ab4 ✨ Feat: Add Strava icon and profile support
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 16:42:26 +00:00
Unknown Developer f04dd3659a Update link formatting in article shortcode 2026-04-09 19:05:14 +04:00
nunocoracao 9986ed01ff Update Hugo supported version 2026-04-09 06:35:56 +00:00
dependabot[bot] 16acbfee52 💄 Rebuild CSS 2026-04-08 05:17:37 +00:00
dependabot[bot] 4b864d00e5 📦 Update packaged Mermaid 2026-04-08 05:17:35 +00:00
dependabot[bot] 5a274629e4 📦 Update packaged KaTeX 2026-04-08 05:17:21 +00:00
dependabot[bot] e917645fba 📌 Bump mermaid from 11.13.0 to 11.14.0
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.13.0 to 11.14.0.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.13.0...mermaid@11.14.0)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-version: 11.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 05:17:09 +00:00
dependabot[bot] 82aef982f1 📌 Bump katex from 0.16.44 to 0.16.45
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.44 to 0.16.45.
- [Release notes](https://github.com/KaTeX/KaTeX/releases)
- [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md)
- [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.44...v0.16.45)

---
updated-dependencies:
- dependency-name: katex
  dependency-version: 0.16.45
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 05:16:51 +00:00
dependabot[bot] cc91b648ec 📌 Bump @headlessui/react from 2.2.9 to 2.2.10
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.2.9 to 2.2.10.
- [Release notes](https://github.com/tailwindlabs/headlessui/releases)
- [Changelog](https://github.com/tailwindlabs/headlessui/blob/main/packages/@headlessui-react/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/headlessui/commits/@headlessui/react@v2.2.10/packages/@headlessui-react)

---
updated-dependencies:
- dependency-name: "@headlessui/react"
  dependency-version: 2.2.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 05:16:44 +00:00
Nuno C. 10314cff71 Merge pull request #2890 from nunocoracao/nunocoracao-patch-1
Bump version from 2.101.0 to 2.102.0
2026-04-06 11:25:46 +01:00
Nuno C. a7a04c6c5e Bump version from 2.101.0 to 2.102.0 2026-04-06 11:25:30 +01:00
Nuno C. c4bb9ab9b6 Merge pull request #2887 from EricGusmao/fix/hugo-v0.156.0-deprecations
Fix Hugo v0.156.0 template deprecations
2026-04-06 11:24:37 +01:00
Nuno C. 15299c15ab Merge pull request #2886 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2026-04-06 11:22:11 +01:00
nunocoracao 78fa726ebb Update Hugo supported version 2026-04-05 06:29:55 +00:00
Eric Gusmao b9ee790d5d Bump Netlify Hugo version to 0.159.1 2026-04-03 14:20:06 -03:00
Eric Gusmao ee2fc91522 Fix Hugo v0.156.0 template deprecations 2026-04-03 14:13:30 -03:00
Nuno C. 9bcb7d37d3 Merge pull request #2884 from nunocoracao/dependabot/npm_and_yarn/scripts/node-forge-1.4.0
Bump node-forge from 1.3.3 to 1.4.0 in /scripts
2026-03-30 23:54:05 +01:00
Nuno C. d8685e5c9c Merge pull request #2883 from nunocoracao/dependabot/npm_and_yarn/main/katex-0.16.44
📌 Bump katex from 0.16.42 to 0.16.44
2026-03-30 23:53:47 +01:00
Nuno C. 8a9fe666e4 Merge pull request #2882 from nunocoracao/dependabot/npm_and_yarn/main/iamtraction/google-translate-2.0.1
📌 Bump @iamtraction/google-translate from 1.1.2 to 2.0.1
2026-03-30 23:53:39 +01:00
Nuno C. a95f11fe56 Merge pull request #2881 from nunocoracao/dependabot/github_actions/main/actions/configure-pages-6
👷 Bump actions/configure-pages from 5 to 6
2026-03-30 23:52:49 +01:00
Nuno C. 0b5a29e251 Merge pull request #2880 from nunocoracao/dependabot/github_actions/main/actions/deploy-pages-5
👷 Bump actions/deploy-pages from 4 to 5
2026-03-30 23:52:38 +01:00
dependabot[bot] 03615baf92 📦 Update packaged KaTeX 2026-03-30 22:52:07 +00:00
dependabot[bot] 0e29ae9c52 Bump node-forge from 1.3.3 to 1.4.0 in /scripts
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.3 to 1.4.0.
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.3...v1.4.0)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-version: 1.4.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-30 22:52:03 +00:00
dependabot[bot] ce0d91fcd5 📌 Bump katex from 0.16.42 to 0.16.44
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.42 to 0.16.44.
- [Release notes](https://github.com/KaTeX/KaTeX/releases)
- [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md)
- [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.42...v0.16.44)

---
updated-dependencies:
- dependency-name: katex
  dependency-version: 0.16.44
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-30 22:51:43 +00:00
dependabot[bot] a18688473e 📌 Bump @iamtraction/google-translate from 1.1.2 to 2.0.1
Bumps [@iamtraction/google-translate](https://github.com/iamtraction/google-translate) from 1.1.2 to 2.0.1.
- [Release notes](https://github.com/iamtraction/google-translate/releases)
- [Commits](https://github.com/iamtraction/google-translate/compare/v1.1.2...v2.0.1)

---
updated-dependencies:
- dependency-name: "@iamtraction/google-translate"
  dependency-version: 2.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-30 22:51:34 +00:00
dependabot[bot] 2d5718dd11 👷 Bump actions/configure-pages from 5 to 6
Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 5 to 6.
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](https://github.com/actions/configure-pages/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/configure-pages
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-30 22:51:24 +00:00
dependabot[bot] 8779739162 👷 Bump actions/deploy-pages from 4 to 5
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-30 22:51:16 +00:00
Nuno C. cdcbc40d47 Merge pull request #2836 from nunocoracao/dev
🔖 v2.101.0
2026-03-30 23:50:42 +01:00
Nuno CoraçãoandClaude Opus 4.6 eb19b988ec Update branch references from dev to main, refresh users and GitHub data
- Switch all CI, dependabot, and docs references from dev to main
- Update users list and screenshots via processUsers
- Refresh contributors and sponsors data

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 23:45:20 +01:00
Nuno C. ca6fe5f967 Merge pull request #2860 from grahamuk2018/patch-2
Add new user entry for www.gsking.co.uk
2026-03-30 23:26:59 +01:00
Nuno C. 4996869378 Merge pull request #2857 from nunocoracao/dependabot/npm_and_yarn/minimatch-10.2.4
Bump minimatch from 10.2.1 to 10.2.4
2026-03-30 23:23:53 +01:00
Nuno C. b0e07a7c0d Merge pull request #2856 from nunocoracao/dependabot/npm_and_yarn/scripts/multi-3526163867
Bump fast-xml-parser and @google-cloud/storage in /scripts
2026-03-30 23:23:35 +01:00
Nuno C. 7fdb8ba1b1 Merge branch 'main' into dev 2026-03-30 23:22:07 +01:00
Nuno C. 03be92ad0f Merge pull request #2869 from urtzienriquez/basque-translation
🌐 Add Basque translation
2026-03-30 00:01:30 +01:00
Nuno C. 39adcba775 Merge pull request #2875 from wtchangdm/patch-1
remove blog.wtcx.dev from users
2026-03-29 23:59:38 +01:00
Nuno C. 70861235ba Merge pull request #2865 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.40.0
📌 Bump puppeteer from 24.39.1 to 24.40.0
2026-03-29 23:58:11 +01:00
Nuno C. 3f4636afc1 Merge pull request #2864 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/cli-4.2.2
📌 Bump @tailwindcss/cli from 4.2.1 to 4.2.2
2026-03-29 23:57:39 +01:00
Nuno C. 26790a12e6 Merge pull request #2863 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-4.2.2
📌 Bump tailwindcss from 4.2.1 to 4.2.2
2026-03-29 23:57:23 +01:00
Nuno C. a6dc9b52e4 Merge pull request #2862 from nunocoracao/dependabot/npm_and_yarn/dev/katex-0.16.42
📌 Bump katex from 0.16.38 to 0.16.42
2026-03-29 23:57:08 +01:00
jin-li a308a86365 feat: global thumbnail aspect ratio configuration
- Add thumbnailAspectRatio site parameter (default '1.5')
- Use decimal values instead of fractions for Hugo compatibility
- Sanitize user input to extract only numeric characters
- Apply to article cards, related cards, and term cards
- Update both source and compiled CSS

Closes #2839
2026-03-29 14:27:09 +02:00
Nuno C. 7691ee18ed Merge pull request #2867 from nunocoracao/hugo-new-version 2026-03-29 04:07:19 +01:00
W.T. Chang 830b36a9fa remove blog.wtcx.dev from users
remove blog.wtcx.dev from users
2026-03-29 05:52:20 +08:00
André Plöger 7ea30cb4f1 ✨ Add hreflang alternates to multilingual page head 2026-03-28 14:59:53 -03:00
Urtzi Enriquez-Urzelai 1f0b3672b5 add Basque translation 2026-03-27 15:37:44 +01:00
L0kayata 1f0a84a24b fix: Lock carousel caption area to measured max height
Measure caption heights across slides at runtime and apply a shared min-height so switching between slides with and without caption text does not cause layout jump.

Keep this behavior scoped to carousels with captions and recalculate on load and resize for responsive stability.
2026-03-27 12:27:59 +01:00
L0kayata 877a2609e9 fix: Fix carousel caption flow and scope controls to image bounds
Move carousel captions out of absolute positioning so they participate in normal height calculation and no longer overlap content below the carousel.

Constrain indicators and navigation buttons to the image region using container-based sizing, so controls do not extend into the caption area.
2026-03-27 12:27:21 +01:00
nunocoracao 18ac5b1920 Update Hugo supported version 2026-03-27 06:29:54 +00:00
Eric Gusmao 7c127074f9 fix: migrate deprecated Hugo v0.158.0 language API
Replace deprecated config keys and template methods per Hugo v0.158.0:

Config (10 files):
- languageCode → locale
- languageName → label

Templates:
- site.LanguageCode → site.Language.Locale (baseof.html, head.html, schema.html x2)
- site.Language.Lang → site.Language.Name (single.html)
- .Lang → .Language.Name (likes.html, views.html)

Ref: https://discourse.gohugo.io/t/deprecations-in-v0-158-0/56869
2026-03-25 11:15:20 -03:00
dependabot[bot] e9b51aadcd 💄 Rebuild CSS 2026-03-25 05:04:00 +00:00
dependabot[bot] c8d1b46316 📌 Bump puppeteer from 24.39.1 to 24.40.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.39.1 to 24.40.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.39.1...puppeteer-v24.40.0)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.40.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-25 05:03:44 +00:00
dependabot[bot] bad5bf18ac 💄 Rebuild CSS 2026-03-25 05:03:44 +00:00
dependabot[bot] ce60eab796 📦 Update packaged KaTeX 2026-03-25 05:03:41 +00:00
dependabot[bot] 99224f248c 📌 Bump @tailwindcss/cli from 4.2.1 to 4.2.2
Bumps [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.2/packages/@tailwindcss-cli)

---
updated-dependencies:
- dependency-name: "@tailwindcss/cli"
  dependency-version: 4.2.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-25 05:03:32 +00:00
dependabot[bot] d0b6ea29b4 📌 Bump tailwindcss from 4.2.1 to 4.2.2
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.2/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-version: 4.2.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-25 05:03:23 +00:00
dependabot[bot] 34c82f38ca 📌 Bump katex from 0.16.38 to 0.16.42
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.38 to 0.16.42.
- [Release notes](https://github.com/KaTeX/KaTeX/releases)
- [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md)
- [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.38...v0.16.42)

---
updated-dependencies:
- dependency-name: katex
  dependency-version: 0.16.42
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-25 05:03:14 +00:00
grahamuk2018 342b3451b3 Add new user entry for www.gsking.co.uk
Added a new user entry for www.gsking.co.uk.
2026-03-24 15:11:32 +00:00
dependabot[bot] 58b9aee2d0 Bump minimatch from 10.2.1 to 10.2.4
Bumps [minimatch](https://github.com/isaacs/minimatch) from 10.2.1 to 10.2.4.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v10.2.1...v10.2.4)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 10.2.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-24 14:18:34 +00:00
dependabot[bot] 524a6869c3 Bump fast-xml-parser and @google-cloud/storage in /scripts
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) and [@google-cloud/storage](https://github.com/googleapis/nodejs-storage). These dependencies needed to be updated together.

Updates `fast-xml-parser` from 4.5.3 to 5.5.9
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits)

Updates `@google-cloud/storage` from 7.18.0 to 7.19.0
- [Release notes](https://github.com/googleapis/nodejs-storage/releases)
- [Changelog](https://github.com/googleapis/nodejs-storage/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/nodejs-storage/compare/v7.18.0...v7.19.0)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.5.9
  dependency-type: indirect
- dependency-name: "@google-cloud/storage"
  dependency-version: 7.19.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-24 14:18:05 +00:00
Nuno C. b0c563bc15 Merge pull request #2858 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2026-03-24 14:15:37 +00:00
nunocoracao cbc8cf12cd Update Hugo supported version 2026-03-24 06:26:32 +00:00
MaikelChan 503f60fe75 Documentation improvements. 2026-03-24 03:08:43 +01:00
MaikelChan 167ee1fa4c Use dictionary to pass whether to use a secondaryColor for the badge. 2026-03-24 02:27:38 +01:00
MaikelChan 859685f0c2 Added documentation. 2026-03-23 08:30:21 +01:00
MaikelChan a0fc381ba9 Properly implement layoutBackgroundBlur and layoutBackgroundHeaderSpace in term and taxonomy 2026-03-23 08:00:37 +01:00
MaikelChan ef712c33f9 Fixed layoutBackgroundBlur and layoutBackgroundHeaderSpace not affecting the term page. 2026-03-23 07:32:50 +01:00
MaikelChan e84fc0e1c6 Implemented category badges in secondary color. 2026-03-23 05:45:46 +01:00
Nick Kocharhook 79a78bcef4 [#2850] Run plainify on the title value before emojify 2026-03-22 23:08:36 +00:00
Nuno C. cc94a0e6c8 Merge pull request #2847 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.13.0
📌 Bump mermaid from 11.12.3 to 11.13.0
2026-03-18 22:36:46 +00:00
Nuno C. ffa18c9c4f Merge pull request #2846 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.39.1
📌 Bump puppeteer from 24.37.5 to 24.39.1
2026-03-18 22:36:33 +00:00
Nuno C. 8549e06095 Merge pull request #2845 from nunocoracao/dependabot/npm_and_yarn/dev/katex-0.16.38
📌 Bump katex from 0.16.33 to 0.16.38
2026-03-18 22:36:17 +00:00
Nuno C. 01d8db1e4d Merge pull request #2844 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2026-03-18 22:36:01 +00:00
Nuno C. e71a4109cf Merge pull request #2842 from aplgr/feat/add-paraguay4life-user
Add Paraguay4Life to users list
2026-03-18 22:35:34 +00:00
dependabot[bot] 6e70744e9a 📦 Update packaged Mermaid 2026-03-18 05:04:13 +00:00
dependabot[bot] 471ee57621 📦 Update packaged KaTeX 2026-03-18 05:03:49 +00:00
dependabot[bot] 28a04921a7 📌 Bump mermaid from 11.12.3 to 11.13.0
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.12.3 to 11.13.0.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.12.3...mermaid@11.13.0)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-version: 11.13.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-18 05:03:44 +00:00
dependabot[bot] 5af20c6f9a 📌 Bump puppeteer from 24.37.5 to 24.39.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.37.5 to 24.39.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.37.5...puppeteer-v24.39.1)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-18 05:03:36 +00:00
dependabot[bot] 2aa15ce844 📌 Bump katex from 0.16.33 to 0.16.38
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.33 to 0.16.38.
- [Release notes](https://github.com/KaTeX/KaTeX/releases)
- [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md)
- [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.33...v0.16.38)

---
updated-dependencies:
- dependency-name: katex
  dependency-version: 0.16.38
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-18 05:03:21 +00:00
nunocoracao c92c0aa3ce Update Hugo supported version 2026-03-17 06:25:50 +00:00
André Plöger c9271d1df2 Remove trailing comma from new tags array 2026-03-15 21:40:02 -03:00
André Plöger c08f0a9ffa Add Paraguay4Life to users list 2026-03-15 21:01:02 -03:00
Nuno C. d7c2d69571 Merge pull request #2838 from fairchild26/patch-4
Add Robin Fairchild to users.json
2026-03-13 18:20:22 +00:00
Robin Fairchild 122d5c70aa Add Robin Fairchild to users.json 2026-03-13 16:20:10 +08:00
schneekluth 45c9acab9e docs updated for obfucated email shortcode 2026-03-12 15:48:49 +01:00
schneekluth bcdab29c30 added snippet for obfuscated email shortcode 2026-03-12 15:45:49 +01:00
schneekluth 1bec932730 Add email link shortcode to layouts
Added E-Mail Shortcode for new E-Mail obfuscation feature introduced in [v2.99.0](]https://github.com/nunocoracao/blowfish/releases/tag/v2.99.0 based on this discussion https://github.com/nunocoracao/blowfish/discussions/2828#discussioncomment-16096521)
2026-03-12 13:59:20 +01:00
Nuno Coração 217a143e6b 🔖 v2.101.0 2026-03-11 14:27:14 +00:00
Nuno C. faea1bb046 Merge pull request #2829 from nunocoracao/dev
🔖 v2.100.0
2026-03-11 14:23:51 +00:00
Nuno C. 26b89169e3 Merge pull request #2830 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.39.0
📌 Bump puppeteer from 24.37.5 to 24.39.0
2026-03-11 14:19:50 +00:00
Nuno C. 878ba448aa Merge pull request #2831 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.13.0
📌 Bump mermaid from 11.12.3 to 11.13.0
2026-03-11 14:19:32 +00:00
Nuno C. 87fe076689 Merge pull request #2832 from nunocoracao/dependabot/npm_and_yarn/dev/katex-0.16.38
📌 Bump katex from 0.16.33 to 0.16.38
2026-03-11 14:19:14 +00:00
Nuno C. 0b14915f54 Merge pull request #2834 from nunocoracao/revert-2814-logo-alt
Revert "✨ Feat: logo alt and remove logo JS"
2026-03-11 14:18:49 +00:00
Nuno C. d8416ee104 Revert "✨ Feat: logo alt and remove logo JS" 2026-03-11 14:16:49 +00:00
dependabot[bot] 4c7ef61265 📦 Update packaged KaTeX 2026-03-11 05:04:21 +00:00
dependabot[bot] b1d22fb30a 📦 Update packaged Mermaid 2026-03-11 05:04:16 +00:00
dependabot[bot] a839c82416 📌 Bump katex from 0.16.33 to 0.16.38
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.33 to 0.16.38.
- [Release notes](https://github.com/KaTeX/KaTeX/releases)
- [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md)
- [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.33...v0.16.38)

---
updated-dependencies:
- dependency-name: katex
  dependency-version: 0.16.38
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-11 05:03:55 +00:00
dependabot[bot] 4b5ff6ab59 📌 Bump mermaid from 11.12.3 to 11.13.0
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.12.3 to 11.13.0.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.12.3...mermaid@11.13.0)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-version: 11.13.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-11 05:03:49 +00:00
dependabot[bot] e9350de407 📌 Bump puppeteer from 24.37.5 to 24.39.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.37.5 to 24.39.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.37.5...puppeteer-v24.39.0)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.39.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-11 05:03:35 +00:00
Nuno Coração a7731a15be 🔖 v2.100.0 2026-03-11 01:11:17 +00:00
Nuno C. c0fadfb0b7 Merge pull request #2783 from nunocoracao/dev
🔖 v2.99.0
2026-03-11 01:07:54 +00:00
Nuno Coração 7af7ed9720 polish and finish 2026-03-11 01:07:34 +00:00
Nuno C. ab6c812198 Merge pull request #2788 from danielwagn3r/llmstxt
Add support for llms.txt
2026-03-11 00:53:07 +00:00
Nuno C. 20c6de4eb8 Merge pull request #2815 from ZhenShuo2021/email
✨ Feat: Email obfuscation
2026-03-11 00:49:20 +00:00
Nuno C. 3a912caf92 Merge pull request #2814 from ZhenShuo2021/logo-alt
✨ Feat: logo alt and remove logo JS
2026-03-11 00:49:03 +00:00
Nuno C. d049a3f020 Merge pull request #2790 from manio/main
✨ Feat: Add printables icon and profile support
2026-03-11 00:28:41 +00:00
Nuno C. 0036fb8c02 Merge pull request #2792 from alxhslm/fix-accordian-chevron
Fix: make accordian chevron behaviour match admonition
2026-03-11 00:27:33 +00:00
Nuno C. e6c8e05040 Merge pull request #2795 from alxhslm/tab-nested
fix: Tab shortcode supports nested shortcodes
2026-03-11 00:27:03 +00:00
Nuno C. 22a9b643de Merge pull request #2803 from danielwagn3r/umami-dnt
Umami Do Not Track browser setting configuration
2026-03-11 00:24:16 +00:00
Nuno C. 2d5bf43ea3 Merge pull request #2813 from ZhenShuo2021/gist
✨ Feat: add CSS for gist shortcode
2026-03-11 00:23:11 +00:00
Nuno C. 8a1669e1f4 Merge pull request #2816 from richtefee/feature/accordion-align
Add optional align parameter to accordion items shortcode.
2026-03-11 00:21:13 +00:00
Nuno C. a132c61d0c Merge pull request #2822 from bilyes/use-official-mastodon-share-link
Use Mastodon's official sharing link.
2026-03-11 00:18:30 +00:00
Nuno C. 3dea18a9cb Merge pull request #2825 from bitfoo1/fix/repo-cards-null-color-css
fix: skip null colors in repoColors when generating repo-cards CSS
2026-03-11 00:17:42 +00:00
Nuno C. 4cc9899469 Merge pull request #2826 from luizcarloscf/luizcarloscf-update-users
Add new user
2026-03-11 00:09:28 +00:00
Nuno C. e4fdf17032 Merge branch 'dev' into luizcarloscf-update-users 2026-03-11 00:09:21 +00:00
Nuno C. 4fddd9d1eb Merge pull request #2823 from cintiaching/patch-1
Add new user entries to users.json
2026-03-11 00:08:48 +00:00
Nuno C. ae27bba4e9 Merge branch 'dev' into patch-1 2026-03-11 00:08:39 +00:00
Nuno C. 71fc6ee8b8 Merge pull request #2821 from nunocoracao/dependabot/github_actions/dev/actions/upload-artifact-7
👷 Bump actions/upload-artifact from 6 to 7
2026-03-11 00:07:39 +00:00
Nuno C. 15c580ab86 Merge pull request #2820 from Kiwipapa/add-airika-user
Add airika user
2026-03-11 00:07:28 +00:00
Nuno C. 1d7579f3b0 Merge pull request #2818 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2026-03-11 00:05:08 +00:00
Luiz Carlos Cosmi Filho 3bc2b4b82e Add new user entry to users.json 2026-03-08 15:51:27 -03:00
Daniel von Eßen 9e0ad31ec8 fix: skip null colors in repoColors when generating repo-cards CSS
Languages with null entries in repoColors.json caused Go's fmt.Sprintf
to emit '%!s(<nil>)' as the color value, producing invalid CSS and
browser parse errors. Add a nil guard to skip those entries, letting
them fall back to the default dot color.

Fixes #2824
2026-03-06 16:27:23 +01:00
Cintia Ching 1b6df4c166 Add new user entries to users.json 2026-03-05 13:19:17 +08:00
Ilyess Bachiri 34610228ad Use Mastodon's official sharing link. 2026-03-04 19:09:18 -05:00
dependabot[bot] 4705b55e09 👷 Bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 05:03:07 +00:00
root 7fed4fa2d1 ✨ Add Airika to users list 2026-03-01 18:35:32 +08:00
nunocoracao 6f99fefab3 Update Hugo supported version 2026-02-26 06:24:15 +00:00
ZhenShuo Leo c74017c987 fix: auto detect mailto prefix 2026-02-26 13:35:29 +08:00
felix 641c16a150 Add optional align parameter to accordion items shoortcode. Updated docs. 2026-02-25 20:36:19 +03:00
ZhenShuo Leo be7f6b6f8f fix: author icon padding 2026-02-25 23:13:17 +08:00
ZhenShuo Leo 55f2f22849 feat: email obfuscation (#2711) 2026-02-25 23:13:16 +08:00
ZhenShuo Leo 812effc613 feat: gist css 2026-02-25 22:44:09 +08:00
ZhenShuo Leo 02a7397119 refactor: use css for logo switcher 2026-02-25 22:41:25 +08:00
ZhenShuo Leo e35bcc0f24 chore: logo alt text 2026-02-25 22:41:25 +08:00
Nuno C. f18c6a0564 Merge pull request #2812 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/cli-4.2.1
📌 Bump @tailwindcss/cli from 4.1.18 to 4.2.1
2026-02-25 14:14:09 +00:00
Nuno C. e1e59f0009 Merge pull request #2810 from nunocoracao/dependabot/npm_and_yarn/dev/katex-0.16.33
📌 Bump katex from 0.16.28 to 0.16.33
2026-02-25 14:13:46 +00:00
Nuno C. 6e96c55f0a Merge pull request #2809 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.37.5
📌 Bump puppeteer from 24.37.2 to 24.37.5
2026-02-25 14:13:31 +00:00
Nuno C. de0645aa3d Merge pull request #2797 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.12.3
📌 Bump mermaid from 10.9.5 to 11.12.3
2026-02-25 14:13:11 +00:00
Nuno C. 7e1ecd5480 Merge pull request #2807 from zarvelionzynji/add-user
update users.json
2026-02-25 14:11:15 +00:00
Nuno C. 1771c92213 Merge branch 'dev' into add-user 2026-02-25 14:11:00 +00:00
dependabot[bot] 350d669406 💄 Rebuild CSS 2026-02-25 05:04:26 +00:00
dependabot[bot] c747c623eb 📦 Update packaged KaTeX 2026-02-25 05:04:04 +00:00
dependabot[bot] fef811f3a1 📌 Bump @tailwindcss/cli from 4.1.18 to 4.2.1
Bumps [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli) from 4.1.18 to 4.2.1.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.1/packages/@tailwindcss-cli)

---
updated-dependencies:
- dependency-name: "@tailwindcss/cli"
  dependency-version: 4.2.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-25 05:03:58 +00:00
dependabot[bot] 4b7677ea89 📌 Bump katex from 0.16.28 to 0.16.33
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.28 to 0.16.33.
- [Release notes](https://github.com/KaTeX/KaTeX/releases)
- [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md)
- [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.28...v0.16.33)

---
updated-dependencies:
- dependency-name: katex
  dependency-version: 0.16.33
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-25 05:03:35 +00:00
dependabot[bot] 03b2f4502a 📌 Bump puppeteer from 24.37.2 to 24.37.5
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.37.2 to 24.37.5.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.37.2...puppeteer-v24.37.5)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.37.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-25 05:03:30 +00:00
Zarvelion Zynji 5fb61dee19 update users.json 2026-02-24 22:17:30 +07:00
dependabot[bot] 15bf0ea12a 💄 Rebuild CSS 2026-02-23 11:55:12 +00:00
dependabot[bot] 6cbe52620f 📦 Update packaged Mermaid 2026-02-23 11:55:10 +00:00
dependabot[bot] 81da343120 📌 Bump mermaid from 10.9.5 to 11.12.3
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.9.5 to 11.12.3.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/v10.9.5...mermaid@11.12.3)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-version: 11.12.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 11:54:47 +00:00
Nuno C. 8de5e47efd Merge pull request #2798 from nunocoracao/dependabot/npm_and_yarn/dev/rimraf-6.1.3
📌 Bump rimraf from 6.1.2 to 6.1.3
2026-02-23 11:53:59 +00:00
Nuno C. 91098a0135 Merge pull request #2800 from nunocoracao/dependabot/npm_and_yarn/dev/iamtraction/google-translate-2.0.1
📌 Bump @iamtraction/google-translate from 1.1.2 to 2.0.1
2026-02-23 11:53:20 +00:00
Daniel Wagner 9ffb78e7df Updated Umami documentation 2026-02-20 15:36:51 +01:00
Daniel Wagner e1c13d658d Add data-do-not-track attribute to Umami script 2026-02-19 21:55:06 +01:00
Nuno C. 7059f91d57 Merge pull request #2801 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2026-02-19 15:11:34 +00:00
nunocoracao 6076126e4c Update Hugo supported version 2026-02-19 06:25:14 +00:00
dependabot[bot] ebfe68673f 💄 Rebuild CSS 2026-02-18 05:04:26 +00:00
dependabot[bot] 774e2e05c1 💄 Rebuild CSS 2026-02-18 05:04:07 +00:00
dependabot[bot] 9d7798faa4 📌 Bump @iamtraction/google-translate from 1.1.2 to 2.0.1
Bumps [@iamtraction/google-translate](https://github.com/iamtraction/google-translate) from 1.1.2 to 2.0.1.
- [Release notes](https://github.com/iamtraction/google-translate/releases)
- [Commits](https://github.com/iamtraction/google-translate/compare/v1.1.2...v2.0.1)

---
updated-dependencies:
- dependency-name: "@iamtraction/google-translate"
  dependency-version: 2.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-18 05:03:58 +00:00
dependabot[bot] 8a2f58be77 📌 Bump rimraf from 6.1.2 to 6.1.3
Bumps [rimraf](https://github.com/isaacs/rimraf) from 6.1.2 to 6.1.3.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v6.1.2...v6.1.3)

---
updated-dependencies:
- dependency-name: rimraf
  dependency-version: 6.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-18 05:03:40 +00:00
Nuno C. b2ef80da49 Merge pull request #2794 from alst-ovh/patch-2
Add new user
2026-02-17 16:35:16 +00:00
Nuno C. 43c32d207b Merge branch 'dev' into patch-2 2026-02-17 16:34:26 +00:00
Nuno C. 47e08a5633 Merge pull request #2793 from schneekluth/patch-1
Add new user
2026-02-17 16:33:04 +00:00
Alex Haslam 857dc8de99 Update docs 2026-02-16 09:28:10 +00:00
Alex Haslam 19a4e5f5af Add md flag 2026-02-16 09:27:51 +00:00
alst-ovh bebff03d62 Add new user 2026-02-16 09:25:26 +01:00
schneekluth af75177900 Add new user
added my personal website
2026-02-16 00:59:23 +01:00
Alex Haslam b61ca7359f Make chevron rotate 2026-02-15 21:55:53 +00:00
Mariusz Bialonczyk 1b4de022c2 ✨ Feat: Add printables icon and profile support 2026-02-14 08:30:00 +01:00
Daniel Wagner e30ea0a5c9 Add support for llms.txt
The llms.txt file is an industry standard that helps LLMs index content more efficiently, see https://llmstxt.org/

/config/_default/hugo.toml =>
```toml
[outputFormats]
  [outputFormats.llms]
    mediaType = "text/plain"
    baseName = "llms"
    isPlainText = true
    notAlternative = true

[outputs]
  home = ["HTML", "RSS", "JSON", "llms"]
```

From https://github.com/adityatelange/hugo-PaperMod/commit/3bb0ca281fd17eff8e3489011a444f326d7c4c72
2026-02-13 15:57:12 +01:00
Nuno Coração 43da14b0b3 🔖 v2.99.0 2026-02-11 22:47:36 +00:00
Nuno C. d0a1a5b249 Merge pull request #2731 from nunocoracao/dev
🔖 v2.98.0
2026-02-11 22:29:46 +00:00
Nuno Coração 7742b4e239 bumped hugo version in netflix build 2026-02-11 22:27:07 +00:00
Nuno Coração faab08cec5 dependecies fix 2026-02-11 22:25:02 +00:00
Nuno Coração d38accc6ff release polish 2026-02-11 22:15:07 +00:00
Nuno C. 58799b9847 Merge pull request #2779 from suidpit/typeit-random-lines
Feat: typeit support for random shuffle with multiple lines
2026-02-11 21:53:06 +00:00
Nuno C. ad697ff032 Merge pull request #2776 from ZhenShuo2021/docs-icon
📝 Docs: add icon-ref shortcode
2026-02-11 21:52:00 +00:00
Nuno C. e753c191c3 Merge pull request #2775 from ZhenShuo2021/firebase
✨ Feat: improve Firebase
2026-02-11 21:51:05 +00:00
Nuno C. c53c0ce6d6 Merge pull request #2774 from abdalrahmanshaban0/dev
fix(a11y): add alt text to author profile image
2026-02-11 21:49:53 +00:00
Nuno C. 8bdb64c6d7 Merge pull request #2773 from alxhslm/carousel-captions
feat: Add captions argument to carousel shortcode
2026-02-11 21:49:26 +00:00
Nuno C. 8ac2ee05b8 Merge pull request #2772 from fairchild2026/patch-3
Translate shortcode documentation to Chinese
2026-02-11 21:48:14 +00:00
Nuno C. 326e3536e9 Merge pull request #2771 from alxhslm/gallery-captions
Feat: Allow images inside gallery to have captions
2026-02-11 21:47:24 +00:00
Nuno C. 0cc0b57139 Merge pull request #2770 from alxhslm/accordion-icon
Feat: add icon param to accordian
2026-02-11 21:46:36 +00:00
Nuno C. 3b46fb243b Merge pull request #2768 from fairchild2026/patch-1
Update index.zh-cn.md
2026-02-11 21:45:43 +00:00
Nuno C. 8cd533569e Merge pull request #2778 from AtmosphericIgnition/main
Add personal site
2026-02-11 21:31:58 +00:00
Nuno C. 889c87bf14 Merge branch 'dev' into main 2026-02-11 21:31:45 +00:00
Nuno C. 68cf60bd1d Merge pull request #2754 from EricGusmao/remove-jquery
Remove jQuery dependency and update theme version to 2.97.0
2026-02-11 21:28:13 +00:00
Nuno C. 92c7b3ecdf Merge branch 'dev' into remove-jquery 2026-02-11 21:27:54 +00:00
Nuno C. f017af8d84 Merge pull request #2780 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.37.2 2026-02-11 20:39:36 +00:00
Nuno C. d4c8c941e4 Merge pull request #2769 from nunocoracao/dependabot/npm_and_yarn/dev/commander-14.0.3 2026-02-11 20:39:19 +00:00
Nuno C. 72ca84791a Merge pull request #2767 from nunocoracao/hugo-new-version 2026-02-11 20:38:57 +00:00
dependabot[bot] 94ff143975 📌 Bump puppeteer from 24.36.1 to 24.37.2
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.36.1 to 24.37.2.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.36.1...puppeteer-v24.37.2)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.37.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-11 05:03:29 +00:00
suidpit 38a04ae80b typeit multiple lines shuffled in random order 2026-02-10 12:30:17 +01:00
ZhenShuo Leo 99d329c7b0 feat: reduce firebase blocking time
- use esm format
- defer loading with type="module"
- upgrade from v8.10.0 to v9.23.0
- allow homepage/taxonomy/term log
2026-02-10 06:52:05 +08:00
AtmosphericIgnition 1408e8bb53 Add personal site 2026-02-09 16:11:33 -05:00
nunocoracao 617c6f0c15 Update Hugo supported version 2026-02-09 06:28:14 +00:00
Alex Haslam 896bc473a8 Update docs 2026-02-08 15:50:11 +00:00
Alex Haslam 712cb48fb2 Allow markdown captions 2026-02-08 15:43:16 +00:00
Alex Haslam 73580313b4 Make caption visible again 2026-02-08 14:55:48 +00:00
Alex Haslam b509f51f9b Fix horizontal scrolling issue 2026-02-08 14:02:07 +00:00
ZhenShuo Leo bbe38534d5 docs: add icon-ref shortcode 2026-02-07 23:20:39 +08:00
ZhenShuo Leo 0e9a151ce5 refactor: gather firebase templates 2026-02-07 21:48:53 +08:00
abdalrahmanshaban0 54e7ebc4d9 fix(a11y): add alt text to author profile image 2026-02-06 22:14:25 +02:00
Alex Haslam 76a23c05af Reduce the diff 2026-02-06 13:09:58 +00:00
Alex Haslam 3dd3d0fae8 Make captions move 2026-02-06 13:06:58 +00:00
Alex Haslam 166a326dc7 Add captions argument to carousel 2026-02-06 12:56:14 +00:00
Robin Fairchild 5ee9c27876 Translate shortcode documentation to Chinese 2026-02-05 20:27:52 +08:00
Alex Haslam 76edd20456 Allow figure to be used inside a gallery 2026-02-04 18:00:52 +00:00
Alex Haslam eb09b4ec25 Add tab parameter 2026-02-04 17:41:55 +00:00
dependabot[bot] 8e1f46b102 📌 Bump commander from 14.0.2 to 14.0.3
Bumps [commander](https://github.com/tj/commander.js) from 14.0.2 to 14.0.3.
- [Release notes](https://github.com/tj/commander.js/releases)
- [Changelog](https://github.com/tj/commander.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tj/commander.js/compare/v14.0.2...v14.0.3)

---
updated-dependencies:
- dependency-name: commander
  dependency-version: 14.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-04 05:04:39 +00:00
Robin Fairchild 33d013309d Update index.zh-cn.md 2026-02-04 00:39:05 +08:00
Nuno C. 506740b1cf Merge pull request #2764 from alxhslm/accordian
✨ Feat: Add accordian shortcode
2026-02-03 00:04:54 +00:00
Nuno C. 7b04a6407a Merge pull request #2762 from rewse/add-rewse-blog
Add Tats Shibata's blog to users.json
2026-02-03 00:02:42 +00:00
Nuno C. 788493921e Merge branch 'dev' into add-rewse-blog 2026-02-03 00:01:57 +00:00
Nuno C. 25961a04d9 Merge pull request #2755 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.36.1
📌 Bump puppeteer from 24.35.0 to 24.36.1
2026-02-02 23:54:51 +00:00
Nuno C. 651804603a Merge pull request #2756 from nunocoracao/dependabot/npm_and_yarn/dev/katex-0.16.28
📌 Bump katex from 0.16.27 to 0.16.28
2026-02-02 23:54:41 +00:00
Nuno C. c107bc0c50 Merge pull request #2757 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.8.1
📌 Bump prettier from 3.8.0 to 3.8.1
2026-02-02 23:54:30 +00:00
Nuno C. 3960982afa Merge pull request #2758 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2026-02-02 23:54:03 +00:00
Nuno C. ab668ca55d Merge pull request #2752 from baozidai/main
Update sitemap.xml
2026-02-02 23:53:00 +00:00
Nuno C. e63154d379 Merge pull request #2751 from tyloch/patch-2
Add user Artur Tyloch with personal site details
2026-02-02 23:50:22 +00:00
Alex Haslam 7dec363f54 Tidy up examples in docs 2026-01-31 20:31:46 +00:00
Alex Haslam 827fab1ef9 Add space between items 2026-01-31 20:26:10 +00:00
Alex Haslam 63da02addc Add md flag 2026-01-31 20:25:24 +00:00
Alex Haslam 277f7a94cb Add markdown and short-codes to the example 2026-01-31 20:18:41 +00:00
Alex Haslam 750766a445 Add separated flag 2026-01-31 20:18:41 +00:00
Alex Haslam a975c43516 Add example with collapse mode 2026-01-31 20:18:41 +00:00
Alex Haslam 7a9baa1c50 Update to use existing compiled classes 2026-01-31 20:18:41 +00:00
Alex Haslam 82a593e0ed Add to docs 2026-01-31 20:18:39 +00:00
Alex Haslam b096d35b85 Implement accordion shortcode 2026-01-31 20:18:25 +00:00
nunocoracao 2da29e25d5 Update Hugo supported version 2026-01-31 06:12:24 +00:00
Shibata, Tats 96ef081d17 feat: add Tats Shibata's blog to users list 2026-01-29 23:37:23 +09:00
dependabot[bot] fbf833bce5 📌 Bump prettier from 3.8.0 to 3.8.1
Bumps [prettier](https://github.com/prettier/prettier) from 3.8.0 to 3.8.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.8.0...3.8.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.8.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-28 05:03:54 +00:00
dependabot[bot] 18ed97928f 📌 Bump katex from 0.16.27 to 0.16.28
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.27 to 0.16.28.
- [Release notes](https://github.com/KaTeX/KaTeX/releases)
- [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md)
- [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.27...v0.16.28)

---
updated-dependencies:
- dependency-name: katex
  dependency-version: 0.16.28
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-28 05:03:48 +00:00
dependabot[bot] b7eeb165d1 📌 Bump puppeteer from 24.35.0 to 24.36.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.35.0 to 24.36.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.35.0...puppeteer-v24.36.1)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.36.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-28 05:03:43 +00:00
Eric Gusmao 39209dbab3 Remove jQuery dependency and update theme version to 2.97.0 2026-01-26 20:36:32 -03:00
baozidai 31019347aa Update sitemap.xml
Ensure pages with .Sitemap.Disable=true are excluded from sitemap
2026-01-25 16:19:49 +08:00
Artur Tyloch faca690a95 Add user Artur Tyloch with personal site details 2026-01-24 11:47:30 +01:00
Nuno C. be564f4ae1 Merge pull request #2745 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.8.0
📌 Bump prettier from 3.7.4 to 3.8.0
2026-01-22 17:00:00 +00:00
Nuno C. 77ac889406 Merge pull request #2744 from nunocoracao/dependabot/npm_and_yarn/dev/jquery-4.0.0
📌 Bump jquery from 3.7.1 to 4.0.0
2026-01-22 16:58:43 +00:00
dependabot[bot] 8c9e51e310 📌 Bump prettier from 3.7.4 to 3.8.0
Bumps [prettier](https://github.com/prettier/prettier) from 3.7.4 to 3.8.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.7.4...3.8.0)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-21 05:04:02 +00:00
dependabot[bot] 269f09b8a6 📌 Bump jquery from 3.7.1 to 4.0.0
Bumps [jquery](https://github.com/jquery/jquery) from 3.7.1 to 4.0.0.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Changelog](https://github.com/jquery/jquery/blob/main/changelog.md)
- [Commits](https://github.com/jquery/jquery/compare/3.7.1...4.0.0)

---
updated-dependencies:
- dependency-name: jquery
  dependency-version: 4.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-21 05:03:54 +00:00
Nuno C. 3a9016a6d9 Update FUNDING.yml with additional funding options
Added support for various funding platforms and updated Buy Me a Coffee username.
2026-01-21 00:15:21 +00:00
Nuno C. a402822d8b Merge pull request #2738 from schaerfo/fix/hero-content-dark-mode
🐛 fix: respect value of disableHeroImageFilter for content
2026-01-17 16:36:28 +00:00
Nuno C. 6da1c6b870 Merge pull request #2735 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.35.0
📌 Bump puppeteer from 24.34.0 to 24.35.0
2026-01-17 16:35:46 +00:00
Christian Schärf ed75c36449 🐛 fix: respect value of disableHeroImageFilter for content 2026-01-15 22:49:34 +01:00
dependabot[bot] 2172b94fe6 💄 Rebuild CSS 2026-01-14 05:04:29 +00:00
dependabot[bot] 69775ac779 📌 Bump puppeteer from 24.34.0 to 24.35.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.34.0 to 24.35.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.34.0...puppeteer-v24.35.0)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.35.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-14 05:03:59 +00:00
Nuno C. 37b5015278 Merge pull request #2732 from GOODJINC/main
Update users.json
2026-01-13 16:02:42 +00:00
GOODJINC ce657d3351 Update users.json 2026-01-13 13:32:15 +09:00
Nuno Coração 9d5806220e 🔖 v2.98.0 2026-01-12 18:10:55 +00:00
1541 changed files with 8586 additions and 7769 deletions

No files matched your search

+2 -2
View File
@@ -5,7 +5,7 @@ version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
target-branch: "dev"
target-branch: "main"
schedule:
interval: "weekly"
day: "wednesday"
@@ -15,7 +15,7 @@ updates:
- "dependencies"
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "dev"
target-branch: "main"
schedule:
interval: "weekly"
day: "wednesday"
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
steps:
- uses: actions/checkout@v6
- run: zip -r config-default.zip config/_default
- uses: actions/upload-artifact@v6
- uses: actions/upload-artifact@v7
with:
name: config-default
path: config-default.zip
+2 -2
View File
@@ -13,7 +13,7 @@ jobs:
- name: Check out code into the Go module directory
uses: actions/checkout@v6
with:
ref: dev
ref: main
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
@@ -51,4 +51,4 @@ jobs:
[2]: https://github.com/peter-evans/create-pull-request
labels: dependencies, automated pr
branch: hugo-new-version
base: dev
base: main
+2 -2
View File
@@ -42,7 +42,7 @@ jobs:
submodules: recursive
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
uses: actions/configure-pages@v6
- name: Build with Hugo
env:
# For maximum backward compatibility with Hugo modules
@@ -65,4 +65,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5
-1
View File
@@ -6,7 +6,6 @@
"trailingComma": "all",
"proseWrap": "always",
"plugins": [
"@awmottaz/prettier-plugin-void-html",
"prettier-plugin-go-template"
],
"overrides": [
+9 -2
View File
@@ -79,7 +79,14 @@
"{{< /chart >}}"
],
"description": "Use the Chart.js library to embed charts into articles using simple structured data. Blowfish chart Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#chart ",
},
},
"email": {
"prefix": ["BFS-email", "HSC-email", "email"],
"body": [
"{{< email email=\"mailto:${1:hello@test.com}\" text=\"${2:text}\" subject=\"${3:Reply to awesome article}\" >}}$0",
],
"description": "Creates an obfuscated mailto link. Documentation: https://blowfish.page/docs/shortcodes/#email ",
},
"figure": {
"prefix": ["BFS-figure", "HSC-figure", "figure"],
"body": [
@@ -255,4 +262,4 @@
"description": "Typewriter-Like text. Blowfish typeit Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#typeit https://www.typeitjs.com/docs/vanilla/usage/ ",
},
}
}
+12 -1
View File
@@ -1,6 +1,6 @@
## How to contribute to Blowfish
All development occurs on the `dev` branch and new PRs should be forked from here.
All development occurs on the `main` branch and new PRs should be forked from here.
### Bugs & other issues
@@ -31,6 +31,17 @@ All development occurs on the `dev` branch and new PRs should be forked from her
- If you have a general question, these should be asked using [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions). Feel free to open a [new discussion](https://github.com/nunocoracao/blowfish/discussions/new) to ask your question using the "Q&A" category.
- Be sure to check if your question has already been answered by searching [existing Q&A discussions](https://github.com/nunocoracao/blowfish/discussions/categories/q-a).
### Breaking changes
- We do not accept breaking changes unless they are strictly required to keep supporting the project (e.g. a dependency deprecating a feature we rely on).
- Changes that would cause existing user customizations to silently stop working (such as renaming partial paths, removing config options, or changing template signatures) will be rejected.
- If you're unsure whether your change is breaking, open a discussion first.
### Pull request guidelines
- Keep PRs focused on a single change. Do not bundle unrelated modifications (e.g. bug fix + version bump + new user entry) into the same PR.
- PRs that mix multiple unrelated changes will be closed and the author will be asked to split them.
### Coding conventions
- Indent using 2 spaces (soft tabs).
+15 -3
View File
@@ -1,6 +1,18 @@
github: [nunocoracao]
custom:
# These are supported funding model platforms
github: [nunocoracao] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: nunocoracao # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
[
"https://www.paypal.me/nunocoracao",
"https://www.buymeacoffee.com/nunocoracao",
]
+163 -18
View File
@@ -1,4 +1,4 @@
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
/*! Blowfish | MIT License | https://github.com/nunocoracao/blowfish */
@layer properties;
@layer theme, base, components, utilities;
@@ -263,9 +263,15 @@
.-start-6 {
inset-inline-start: calc(var(--spacing) * -6);
}
.start {
inset-inline-start: var(--spacing);
}
.start-\[calc\(max\(-50vw\,-800px\)\+50\%\)\] {
inset-inline-start: calc(max(-50vw, -800px) + 50%);
}
.end {
inset-inline-end: var(--spacing);
}
.end-6 {
inset-inline-end: calc(var(--spacing) * 6);
}
@@ -276,7 +282,7 @@
top: calc(var(--spacing) * 0);
}
.top-1\/2 {
top: calc(1/2 * 100%);
top: calc(1 / 2 * 100%);
}
.top-5 {
top: calc(var(--spacing) * 5);
@@ -284,6 +290,9 @@
.top-20 {
top: calc(var(--spacing) * 20);
}
.top-full {
top: 100%;
}
.right-0 {
right: calc(var(--spacing) * 0);
}
@@ -300,7 +309,7 @@
left: calc(var(--spacing) * 0);
}
.left-1\/2 {
left: calc(1/2 * 100%);
left: calc(1 / 2 * 100%);
}
.-z-10 {
z-index: calc(10 * -1);
@@ -970,9 +979,6 @@
.mb-3 {
margin-bottom: calc(var(--spacing) * 3);
}
.mb-4 {
margin-bottom: calc(var(--spacing) * 4);
}
.mb-5 {
margin-bottom: calc(var(--spacing) * 5);
}
@@ -1100,7 +1106,7 @@
height: calc(var(--spacing) * 0);
}
.h-1\/2 {
height: calc(1/2 * 100%);
height: calc(1 / 2 * 100%);
}
.h-3 {
height: calc(var(--spacing) * 3);
@@ -1144,6 +1150,9 @@
.h-84 {
height: calc(var(--spacing) * 84);
}
.h-120 {
height: calc(var(--spacing) * 120);
}
.h-\[3px\] {
height: 3px;
}
@@ -1237,6 +1246,9 @@
.w-full {
width: 100%;
}
.w-max {
width: max-content;
}
.w-screen {
width: 100vw;
}
@@ -1249,6 +1261,9 @@
.max-w-20 {
max-width: calc(var(--spacing) * 20);
}
.max-w-48 {
max-width: calc(var(--spacing) * 48);
}
.max-w-\[200px\] {
max-width: 200px;
}
@@ -1319,7 +1334,7 @@
flex-basis: auto;
}
.-translate-x-1\/2 {
--tw-translate-x: calc(calc(1/2 * 100%) * -1);
--tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
.-translate-x-full {
@@ -1331,7 +1346,7 @@
translate: var(--tw-translate-x) var(--tw-translate-y);
}
.-translate-y-1\/2 {
--tw-translate-y: calc(calc(1/2 * 100%) * -1);
--tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
.-translate-y-8 {
@@ -1434,6 +1449,13 @@
.gap-4 {
gap: calc(var(--spacing) * 4);
}
.space-y-2 {
:where(& > :not(:last-child)) {
--tw-space-y-reverse: 0;
margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
}
}
.space-y-3 {
:where(& > :not(:last-child)) {
--tw-space-y-reverse: 0;
@@ -1624,6 +1646,10 @@
--tw-border-style: dotted;
border-style: dotted;
}
.border-none {
--tw-border-style: none;
border-style: none;
}
.border-solid {
--tw-border-style: solid;
border-style: solid;
@@ -1643,9 +1669,15 @@
.border-primary-500 {
border-color: rgba(var(--color-primary-500), 1);
}
.border-secondary-400 {
border-color: rgba(var(--color-secondary-400), 1);
}
.border-secondary-500 {
border-color: rgba(var(--color-secondary-500), 1);
}
.border-secondary-600 {
border-color: rgba(var(--color-secondary-600), 1);
}
.border-transparent {
border-color: transparent;
}
@@ -1730,6 +1762,9 @@
background-color: color-mix(in oklab, rgba(var(--color-neutral-500), 1) 50%, transparent);
}
}
.bg-neutral-900 {
background-color: rgba(var(--color-neutral-900), 1);
}
.bg-neutral\/25 {
background-color: color-mix(in srgb, rgba(rgba(var(--color-neutral), 1), 1) 25%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@@ -1932,9 +1967,6 @@
.pe-3 {
padding-inline-end: calc(var(--spacing) * 3);
}
.pt-1 {
padding-top: calc(var(--spacing) * 1);
}
.pt-2 {
padding-top: calc(var(--spacing) * 2);
}
@@ -2158,6 +2190,12 @@
.text-primary-800 {
color: rgba(var(--color-primary-800), 1);
}
.text-secondary-400 {
color: rgba(var(--color-secondary-400), 1);
}
.text-secondary-700 {
color: rgba(var(--color-secondary-700), 1);
}
.text-transparent {
color: transparent;
}
@@ -2252,6 +2290,10 @@
--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
.shadow-md {
--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
.shadow-sm {
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -2279,6 +2321,11 @@
--tw-blur: blur(8px) !important;
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,) !important;
}
.drop-shadow {
--tw-drop-shadow-size: drop-shadow(0 1px 2px var(--tw-drop-shadow-color, rgb(0 0 0 / 0.1))) drop-shadow(0 1px 1px var(--tw-drop-shadow-color, rgb(0 0 0 / 0.06)));
--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow( 0 1px 1px rgb(0 0 0 / 0.06));
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
}
.invert {
--tw-invert: invert(100%);
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
@@ -2425,6 +2472,23 @@
rotate: 0deg;
}
}
.group-focus-within\:visible {
&:is(:where(.group):focus-within *) {
visibility: visible;
}
}
.group-focus-within\:opacity-100 {
&:is(:where(.group):focus-within *) {
opacity: 100%;
}
}
.group-hover\:visible {
&:is(:where(.group):hover *) {
@media (hover: hover) {
visibility: visible;
}
}
}
.group-hover\:scale-110 {
&:is(:where(.group):hover *) {
@media (hover: hover) {
@@ -2848,7 +2912,7 @@
}
.sm\:w-1\/2 {
@media (width >= 640px) {
width: calc(1/2 * 100%);
width: calc(1 / 2 * 100%);
}
}
.sm\:grid-cols-2 {
@@ -2936,7 +3000,7 @@
}
.md\:w-1\/3 {
@media (width >= 853px) {
width: calc(1/3 * 100%);
width: calc(1 / 3 * 100%);
}
}
.md\:w-auto {
@@ -3051,7 +3115,7 @@
}
.lg\:w-1\/4 {
@media (width >= 1024px) {
width: calc(1/4 * 100%);
width: calc(1 / 4 * 100%);
}
}
.lg\:w-auto {
@@ -3131,7 +3195,7 @@
}
.xl\:w-1\/4 {
@media (width >= 1280px) {
width: calc(1/4 * 100%);
width: calc(1 / 4 * 100%);
}
}
.xl\:grid-cols-4 {
@@ -3219,6 +3283,16 @@
border-color: rgba(var(--color-primary-600), 1);
}
}
.dark\:border-secondary-600 {
&:is(.dark *) {
border-color: rgba(var(--color-secondary-600), 1);
}
}
.dark\:border-secondary-800 {
&:is(.dark *) {
border-color: rgba(var(--color-secondary-800), 1);
}
}
.dark\:border-white\/10 {
&:is(.dark *) {
border-color: color-mix(in oklab, #fff 10%, transparent);
@@ -3271,6 +3345,11 @@
}
}
}
.dark\:bg-neutral-100 {
&:is(.dark *) {
background-color: rgba(var(--color-neutral-100), 1);
}
}
.dark\:bg-neutral-400 {
&:is(.dark *) {
background-color: rgba(var(--color-neutral-400), 1);
@@ -3428,6 +3507,11 @@
color: rgba(var(--color-neutral-800), 1);
}
}
.dark\:text-neutral-900 {
&:is(.dark *) {
color: rgba(var(--color-neutral-900), 1);
}
}
.dark\:text-primary-200 {
&:is(.dark *) {
color: rgba(var(--color-primary-200), 1);
@@ -3438,6 +3522,16 @@
color: rgba(var(--color-primary-400), 1);
}
}
.dark\:text-secondary-200 {
&:is(.dark *) {
color: rgba(var(--color-secondary-200), 1);
}
}
.dark\:text-secondary-400 {
&:is(.dark *) {
color: rgba(var(--color-secondary-400), 1);
}
}
.dark\:text-white {
&:is(.dark *) {
color: #fff;
@@ -4158,6 +4252,55 @@ body.zen-mode-enable {
display: none !important;
}
}
.gist-container .gist {
h1 {
margin-bottom: calc(var(--spacing) * 4);
}
.gist-file {
border: 1px solid rgb(var(--color-neutral-300));
border-radius: 8px;
overflow: hidden;
}
.gist-meta {
background-color: white;
color: rgb(var(--color-neutral-600));
border-radius: 0 0 8px 8px;
}
.gist-meta a {
color: rgb(var(--color-primary-600));
}
.highlight tr {
border-bottom: none;
}
.gist-file .file {
margin-top: 0;
margin-bottom: 0;
}
.dark & {
.gist-file {
border-color: rgb(var(--color-neutral-800));
}
.gist-data {
background-color: rgb(var(--color-neutral-900));
border-bottom: 1px solid rgb(var(--color-neutral-800));
}
.gist-meta {
background-color: rgb(26, 26, 26);
color: rgb(var(--color-neutral-400));
}
.gist-meta a {
color: rgb(var(--color-primary-400));
}
.blob-wrapper {
filter: invert(0.9) hue-rotate(180deg);
background-color: #fff;
}
.gist-data {
background: rgb(26, 26, 26);
color: rgb(var(--color-neutral-100));
}
}
}
.a11y-panel-enter-active {
animation: slideInFromTop 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
@@ -4573,10 +4716,12 @@ pre {
}
.thumbnail_card {
min-width: 300px;
height: 200px;
aspect-ratio: var(--thumbnail-aspect-ratio, 1.5);
height: auto;
}
.thumbnail_card_related {
height: 150px;
aspect-ratio: var(--thumbnail-aspect-ratio, 1.5);
height: auto;
}
.thumbnail {
width: 300px;
+16
View File
@@ -83,6 +83,22 @@
width: calc(100% - 5px);
margin: 0px !important;
}
.gallery figure {
display: inline-block;
margin: 0;
}
.gallery figcaption {
margin-top: 0.25rem;
font-size: 0.875rem;
line-height: 1.25rem;
color: rgb(var(--color-neutral-600));
}
.dark .gallery figcaption {
color: rgb(var(--color-neutral-400));
}
@media (width >= 640px) {
.sm\:grid-w10 {
width: calc(10% - 5px);
+51
View File
@@ -0,0 +1,51 @@
.gist-container .gist {
h1 {
margin-bottom: calc(var(--spacing) * 4);
}
.gist-file {
border: 1px solid rgb(var(--color-neutral-300));
border-radius: 8px;
overflow: hidden;
}
.gist-meta {
background-color: white;
color: rgb(var(--color-neutral-600));
border-radius: 0 0 8px 8px;
}
.gist-meta a {
color: rgb(var(--color-primary-600));
}
.highlight tr {
border-bottom: none;
}
.gist-file .file {
margin-top: 0;
margin-bottom: 0;
}
/* Dark Mode */
.dark & {
.gist-file {
border-color: rgb(var(--color-neutral-800));
}
.gist-data {
background-color: rgb(var(--color-neutral-900));
border-bottom: 1px solid rgb(var(--color-neutral-800));
}
.gist-meta {
background-color: rgb(26, 26, 26);
color: rgb(var(--color-neutral-400));
}
.gist-meta a {
color: rgb(var(--color-primary-400));
}
.blob-wrapper {
filter: invert(0.9) hue-rotate(180deg);
background-color: #fff;
}
.gist-data {
background: rgb(26, 26, 26);
color: rgb(var(--color-neutral-100));
}
}
}
+5 -2
View File
@@ -6,6 +6,7 @@
@import "./components/chroma.css" layer(utilities);
@import "./components/tabs.css" layer(utilities);
@import "./components/zen-mode.css";
@import "./components/gist.css";
@import "./components/a11y.css";
@import "./components/admonition.css" layer(components);
@@ -182,11 +183,13 @@ pre {
.thumbnail_card {
min-width: 300px;
height: 200px;
aspect-ratio: var(--thumbnail-aspect-ratio, 1.5);
height: auto;
}
.thumbnail_card_related {
height: 150px;
aspect-ratio: var(--thumbnail-aspect-ratio, 1.5);
height: auto;
}
.thumbnail {
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 35"><path fill="currentColor" d="m0 35 12.172-7L0 21ZM12.172 0 0 7l12.172 7v14l12.172-7V7Z"></path></svg>

After

Width:  |  Height:  |  Size: 162 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z"/></svg>

After

Width:  |  Height:  |  Size: 205 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

-4
View File
@@ -1,4 +0,0 @@
document.getElementById("button_likes") &&
document.getElementById("button_likes").addEventListener("click", () => {
process_article();
});
+13
View File
@@ -0,0 +1,13 @@
(function () {
const links = document.querySelectorAll(".email-link");
links.forEach((link) => {
let email = atob(link.getAttribute("data-email"));
const subject = link.getAttribute("data-subject");
let mailto = email.startsWith("mailto:") ? email : "mailto:" + email;
if (subject) {
mailto += (mailto.includes("?") ? "&" : "?") + "subject=" + encodeURIComponent(subject);
}
link.href = mailto;
});
})();
+154
View File
@@ -0,0 +1,154 @@
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.23.0/firebase-app.js";
import {
getFirestore,
doc,
getDoc,
setDoc,
updateDoc,
increment,
onSnapshot,
} from "https://www.gstatic.com/firebasejs/9.23.0/firebase-firestore.js";
import { getAuth, signInAnonymously } from "https://www.gstatic.com/firebasejs/9.23.0/firebase-auth.js";
let app, db, auth, oids;
try {
const configEl = document.getElementById("firebase-config");
if (!configEl?.textContent) {
throw new Error("Firebase config element not found");
}
const data = JSON.parse(configEl.textContent);
app = initializeApp(data.config);
oids = {
views: configEl.getAttribute("data-views"),
likes: configEl.getAttribute("data-likes"),
};
db = getFirestore(app);
auth = getAuth(app);
} catch (e) {
console.error("Firebase initialization failed:", e.message);
throw e;
}
const id = oids?.views?.replaceAll("/", "-");
const id_likes = oids?.likes?.replaceAll("/", "-");
let liked = false;
let authReady = false;
function formatNumber(n) {
return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
function toggleLoaders(node) {
var classesString = node.className;
if (classesString == "") return;
var classes = classesString.split(" ");
for (var i in classes) {
node.classList.toggle(classes[i]);
}
}
function updateDisplay(collection, nodeId) {
const node = document.getElementById(nodeId);
if (!node) return;
const docId = nodeId.replaceAll("/", "-");
onSnapshot(
doc(db, collection, docId),
(snapshot) => {
node.innerText = snapshot.exists() ? formatNumber(snapshot.data()[collection]) : 0;
toggleLoaders(node);
},
(error) => {
console.error("Firebase snapshot update failed:", error);
},
);
}
async function recordView(id) {
if (!id || localStorage.getItem(id)) return;
try {
const ref = doc(db, "views", id);
const snap = await getDoc(ref);
snap.exists() ? await updateDoc(ref, { views: increment(1) }) : await setDoc(ref, { views: 1 });
localStorage.setItem(id, true);
} catch (e) {
console.error("Record view operation failed:", e.message);
}
}
function updateButton(isLiked) {
const hearts = document.querySelectorAll("span[id='button_likes_heart']");
const empties = document.querySelectorAll("span[id='button_likes_emtpty_heart']");
const texts = document.querySelectorAll("span[id='button_likes_text']");
hearts.forEach((el) => {
el.style.display = isLiked ? "" : "none";
});
empties.forEach((el) => {
el.style.display = isLiked ? "none" : "";
});
texts.forEach((el) => {
el.innerText = isLiked ? "" : "\xa0Like";
});
}
async function toggleLike(add) {
if (!id_likes || !authReady) return;
try {
const ref = doc(db, "likes", id_likes);
const snap = await getDoc(ref);
liked = add;
add ? localStorage.setItem(id_likes, true) : localStorage.removeItem(id_likes);
updateButton(add);
snap.exists()
? await updateDoc(ref, { likes: increment(add ? 1 : -1) })
: await setDoc(ref, { likes: add ? 1 : 0 });
} catch (e) {
console.error("Like operation failed:", e.message);
liked = !add;
add ? localStorage.removeItem(id_likes) : localStorage.setItem(id_likes, true);
updateButton(!add);
}
}
signInAnonymously(auth)
.then(() => {
authReady = true;
document.querySelectorAll("span[id^='views_']").forEach((node) => {
if (node.id) updateDisplay("views", node.id);
});
document.querySelectorAll("span[id^='likes_']").forEach((node) => {
if (node.id) updateDisplay("likes", node.id);
});
recordView(id);
if (id_likes && localStorage.getItem(id_likes)) {
liked = true;
updateButton(true);
}
const likeButton = document.getElementById("button_likes");
if (likeButton) {
likeButton.addEventListener("click", () => {
toggleLike(!liked);
});
}
})
.catch((error) => {
console.error("Firebase anonymous sign-in failed:", error.message);
authReady = false;
});
window.process_article = () => toggleLike(!liked);
-131
View File
@@ -1,131 +0,0 @@
const pageScriptElement = document.currentScript;
const oid =
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") {
const viewed = localStorage.getItem(id);
if (!viewed) {
auth
.signInAnonymously()
.then(() => {
const docRef = db.collection("views").doc(id);
localStorage.setItem(id, true);
docRef
.get()
.then((doc) => {
if (doc.exists) {
db.collection("views")
.doc(id)
.update({
views: firebase.firestore.FieldValue.increment(1),
});
} else {
db.collection("views").doc(id).set({ views: 1 });
}
})
.catch((error) => {
console.log("Error getting document:", error);
});
})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
console.error(errorCode, errorMessage);
});
}
const liked = localStorage.getItem(id_likes);
if (liked) {
liked_page = true;
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_text']")[0].innerText = "";
}
}
function like_article(id_likes) {
auth
.signInAnonymously()
.then(() => {
const docRef = db.collection("likes").doc(id_likes);
docRef
.get()
.then((doc) => {
liked_page = true;
localStorage.setItem(id_likes, true);
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_text']")[0].innerText = "";
if (doc.exists) {
db.collection("likes")
.doc(id_likes)
.update({
likes: firebase.firestore.FieldValue.increment(1),
});
} else {
db.collection("likes").doc(id_likes).set({ likes: 1 });
}
})
.catch((error) => {
console.log("Error getting document:", error);
});
})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
console.error(errorCode, errorMessage);
});
}
function remove_like_article(id_likes) {
auth
.signInAnonymously()
.then(() => {
const docRef = db.collection("likes").doc(id_likes);
docRef
.get()
.then((doc) => {
liked_page = false;
localStorage.removeItem(id_likes);
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_text']")[0].innerText = "\xa0Like";
if (doc.exists) {
db.collection("likes")
.doc(id_likes)
.update({
likes: firebase.firestore.FieldValue.increment(-1),
});
} else {
db.collection("likes").doc(id_likes).set({ likes: 0 });
}
})
.catch((error) => {
console.log("Error getting document:", error);
});
})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
console.error(errorCode, errorMessage);
});
}
function process_article() {
if (!liked_page) {
like_article(id_likes);
} else {
remove_like_article(id_likes);
}
}
-70
View File
@@ -1,70 +0,0 @@
if (typeof auth !== "undefined") {
var viewsCollection = db.collection("views");
var likesCollection = db.collection("likes");
function numberWithCommas(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
function toggleLoaders(node) {
var classesString = node.className;
if (classesString == "") return;
var classes = classesString.split(" ");
for (var i in classes) {
node.classList.toggle(classes[i]);
}
}
var update_views = function (node, id) {
viewsCollection.doc(id).onSnapshot((doc) => {
var data = doc.data();
if (data) {
node.innerText = numberWithCommas(data.views);
} else {
node.innerText = 0;
}
toggleLoaders(node);
});
};
var update_likes = function (node, id) {
likesCollection.doc(id).onSnapshot((doc) => {
var data = doc.data();
if (data) {
node.innerText = numberWithCommas(data.likes);
} else {
node.innerText = 0;
}
toggleLoaders(node);
});
};
auth
.signInAnonymously()
.then(() => {
var views_nodes = document.querySelectorAll("span[id^='views_']");
for (var i in views_nodes) {
var node = views_nodes[i];
var id = node.id ? node.id.replaceAll("/", "-") : node.id;
if (id) {
update_views(node, id);
}
}
var likes_nodes = document.querySelectorAll("span[id^='likes_']");
for (var i in likes_nodes) {
var node = likes_nodes[i];
var id = node.id ? node.id.replaceAll("/", "-") : node.id;
if (id) {
update_likes(node, id);
}
}
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
console.error(errorCode, errorMessage);
});
}
+1 -2
View File
@@ -27,7 +27,7 @@ function _getPackeryOptions(nodeGallery) {
}
(function init() {
$(window).on("load", function () {
window.addEventListener("load", function () {
let packeries = [];
let nodeGalleries = document.querySelectorAll(".gallery");
@@ -35,6 +35,5 @@ function _getPackeryOptions(nodeGallery) {
let packery = new Packery(nodeGallery, _getPackeryOptions(nodeGallery));
packeries.push(packery);
});
console.groupEnd();
});
})();
+3 -3
View File
@@ -1,9 +1,9 @@
/**
* Fuse.js v7.1.0 - Lightweight fuzzy-search (http://fusejs.io)
* Fuse.js v7.2.0 - Lightweight fuzzy-search (http://fusejs.io)
*
* Copyright (c) 2025 Kiro Risk (http://kiro.me)
* Copyright (c) 2026 Kiro Risk (http://kiro.me)
* All Rights Reserved. Apache Software License 2.0
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){o(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,v(r.key),r)}}function u(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function o(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&s(e,t)}function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function h(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=a(e);if(t){var i=a(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return h(this,n)}}function f(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function g(e){return Array.isArray?Array.isArray(e):"[object Array]"===M(e)}var y=1/0;function p(e){return null==e?"":function(e){if("string"==typeof e)return e;var t=e+"";return"0"==t&&1/e==-y?"-0":t}(e)}function A(e){return"string"==typeof e}function m(e){return"number"==typeof e}function C(e){return!0===e||!1===e||function(e){return k(e)&&null!==e}(e)&&"[object Boolean]"==M(e)}function k(e){return"object"===n(e)}function E(e){return null!=e}function F(e){return!e.trim().length}function M(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var b=function(e){return"Missing ".concat(e," property in key")},D=function(e){return"Property 'weight' in key '".concat(e,"' must be a positive integer")},B=Object.prototype.hasOwnProperty,x=function(){function e(t){var n=this;r(this,e),this._keys=[],this._keyMap={};var i=0;t.forEach((function(e){var t=w(e);n._keys.push(t),n._keyMap[t.id]=t,i+=t.weight})),this._keys.forEach((function(e){e.weight/=i}))}return u(e,[{key:"get",value:function(e){return this._keyMap[e]}},{key:"keys",value:function(){return this._keys}},{key:"toJSON",value:function(){return JSON.stringify(this._keys)}}]),e}();function w(e){var t=null,n=null,r=null,i=1,u=null;if(A(e)||g(e))r=e,t=S(e),n=L(e);else{if(!B.call(e,"name"))throw new ErLine truncated
var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){o(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,v(r.key),r)}}function u(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function o(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&a(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function a(e,t){return a=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},a(e,t)}function h(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return h(this,n)}}function f(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function g(e){return Array.isArray?Array.isArray(e):"[object Array]"===M(e)}var y=1/0;function p(e){return null==e?"":function(e){if("string"==typeof e)return e;var t=e+"";return"0"==t&&1/e==-y?"-0":t}(e)}function A(e){return"string"==typeof e}function m(e){return"number"==typeof e}function C(e){return!0===e||!1===e||function(e){return k(e)&&null!==e}(e)&&"[object Boolean]"==M(e)}function k(e){return"object"===n(e)}function F(e){return null!=e}function b(e){return!e.trim().length}function M(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var E=function(e){return"Missing ".concat(e," property in key")},D=function(e){return"Property 'weight' in key '".concat(e,"' must be a positive integer")},B=Object.prototype.hasOwnProperty,x=function(){function e(t){var n=this;r(this,e),this._keys=[],this._keyMap={};var i=0;t.forEach((function(e){var t=_(e);n._keys.push(t),n._keyMap[t.id]=t,i+=t.weight})),this._keys.forEach((function(e){e.weight/=i}))}return u(e,[{key:"get",value:function(e){return this._keyMap[e]}},{key:"keys",value:function(){return this._keys}},{key:"toJSON",value:function(){return JSON.stringify(this._keys)}}]),e}();function _(e){var t=null,n=null,r=null,i=1,u=null;if(A(e)||g(e))r=e,t=S(e),n=w(e);else{if(!B.call(e,"name"))throw new ErLine truncated
-2
View File
@@ -1,2 +0,0 @@
/*! jQuery v3.7.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/animatedSelector,-effects/Tween | (c) OpenJS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},m=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||m).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/animatedSelector,-effects/Tween",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(!i)while(t=e[r++])n+=ce.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var de=oe.pop,pe=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function d(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+Line truncated
+1 -1
View File
@@ -1 +1 @@
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={757:function(t){t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var o={};r.d(o,{default:function(){return p}});var i=r(757),a=r.n(i);const l=function(e,t,n){let r=n,o=0;const i=e.length;for(;r<t.length;){const n=t[r];if(o<=0&&t.slice(r,r+i)===e)return r;"\\"===n?r++:"{"===n?o++:"}"===n&&o--,r++}return-1},s=/^\\begin{/;var d=function(e,t){let n;const r=[],o=new RegExp("("+t.map((e=>e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"))).join("|")+")");for(;n=e.search(o),-1!==n;){n>0&&(r.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));const o=t.findIndex((t=>e.startsWith(t.left)));if(n=l(t[o].right,e,t[o].left.length),-1===n)break;const i=e.slice(0,n+t[o].right.length),a=s.test(i)?i:e.slice(t[o].left.length,n);r.push({type:"math",data:a,rawData:i,display:t[o].display}),e=e.slice(n+t[o].right.length)}return""!==e&&r.push({type:"text",data:e}),r};const c=function(e,t){const n=d(e,t.delimiters);if(1===n.length&&"text"===n[0].type)return null;const r=document.createDocumentFragment();for(let e=0;e<n.length;e++)if("text"===n[e].type)r.appendChild(document.createTextNode(n[e].data));else{const o=document.createElement("span");let i=n[e].data;t.displayMode=n[e].display;try{t.preProcess&&(i=t.preProcess(i)),a().render(i,o,t)}catch(o){if(!(o instanceof a().ParseError))throw o;t.errorCallback("KaTeX auto-render: Failed to parse `"+n[e].data+"` with ",o),r.appendChild(document.createTextNode(n[e].rawData));continue}r.appendChild(o)}return r},f=function(e,t){for(let n=0;n<e.childNodes.length;n++){const r=e.childNodes[n];if(3===r.nodeType){let o=r.textContent,i=r.nextSibling,a=0;for(;i&&i.nodeType===Node.TEXT_NODE;)o+=i.textContent,i=i.nextSibling,a++;const l=c(o,t);if(l){for(let e=0;e<a;e++)r.nextSibling.remove();n+=l.childNodes.length-1,e.replaceChild(l,r)}else n+=a}else if(1===r.nodeType){const e=" "+r.className+" ";-1===t.ignoredTags.indexOf(r.nodeName.toLowerCase())&&t.ignoredClasses.every((t=>-1===e.indexOf(" "+t+" ")))&&f(r,t)}}};var p=function(e,t){if(!e)throw new Error("No element provided to render");const n={};for(const e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);n.delimiters=n.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],n.ignoredTags=n.ignoredTags||["script","noscript","style","textarea","pre","code","option"],n.ignoredClasses=n.ignoredClasses||[],n.errorCallback=n.errorCallback||console.error,n.macros=n.macros||{},f(e,n)};return o=o.default}()}));
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,function(e){return function(){"use strict";var t={757:function(t){t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var o={};r.d(o,{default:function(){return p}});var i=r(757),a=r.n(i);const l=function(e,t,n){let r=n,o=0;const i=e.length;for(;r<t.length;){const n=t[r];if(o<=0&&t.slice(r,r+i)===e)return r;"\\"===n?r++:"{"===n?o++:"}"===n&&o--,r++}return-1},s=/^\\begin{/;var d=function(e,t){let n;const r=[],o=new RegExp("("+t.map(e=>e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")).join("|")+")");for(;n=e.search(o),-1!==n;){n>0&&(r.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));const o=t.findIndex(t=>e.startsWith(t.left));if(n=l(t[o].right,e,t[o].left.length),-1===n)break;const i=e.slice(0,n+t[o].right.length),a=s.test(i)?i:e.slice(t[o].left.length,n);r.push({type:"math",data:a,rawData:i,display:t[o].display}),e=e.slice(n+t[o].right.length)}return""!==e&&r.push({type:"text",data:e}),r};const c=function(e,t){const n=d(e,t.delimiters);if(1===n.length&&"text"===n[0].type)return null;const r=document.createDocumentFragment();for(let e=0;e<n.length;e++)if("text"===n[e].type)r.appendChild(document.createTextNode(n[e].data));else{const o=document.createElement("span");let i=n[e].data;t.displayMode=n[e].display;try{t.preProcess&&(i=t.preProcess(i)),a().render(i,o,t)}catch(o){if(!(o instanceof a().ParseError))throw o;t.errorCallback("KaTeX auto-render: Failed to parse `"+n[e].data+"` with ",o),r.appendChild(document.createTextNode(n[e].rawData));continue}r.appendChild(o)}return r},f=function(e,t){for(let o=0;o<e.childNodes.length;o++){const i=e.childNodes[o];if(3===i.nodeType){var n;let a=null!=(n=i.textContent)?n:"",l=i.nextSibling,s=0;for(;l&&l.nodeType===Node.TEXT_NODE;){var r;a+=null!=(r=l.textContent)?r:"",l=l.nextSibling,s++}const d=c(a,t);if(d){for(let e=0;e<s;e++)i.nextSibling.remove();o+=d.childNodes.length-1,e.replaceChild(d,i)}else o+=s}else if(1===i.nodeType){const e=" "+i.className+" ";!t.ignoredTags.has(i.nodeName.toLowerCase())&&t.ignoredClasses.every(t=>!e.includes(" "+t+" "))&&f(i,t)}}};var p=function(e,t){if(!e)throw new Error("No element provided to render");const n={};Object.assign(n,t),n.delimiters=n.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],n.ignoredTags=new Set((null==t?void 0:t.ignoredTags)||["script","noscript","style","textarea","pre","code","option"]),n.ignoredClasses=n.ignoredClasses||[],n.errorCallback=n.errorCallback||console.error,n.macros=n.macros||{},f(e,n)};return o=o.default}()});
+1 -1
View File
@@ -1 +1 @@
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-ReguLine truncated
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-ReguLine truncated
+1 -1
View File
@@ -1 +1 @@
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.katex=t():e.katex=t()}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return Wn}});class r{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;let n,o,s="KaTeX parse error: "+e;const i=t&&t.loc;if(i&&i.start<=i.end){const e=i.lexer.input;n=i.start,o=i.end,n===e.length?s+=" at end of input: ":s+=" at position "+(n+1)+": ";const t=e.slice(n,o).replace(/[^]/g,"$&\u0332");let r,a;r=n>15?"\u2026"+e.slice(n-15,n):e.slice(0,n),a=o+15<e.length?e.slice(o,o+15)+"\u2026":e.slice(o),s+=r+t+a}const a=new Error(s);return a.name="ParseError",a.__proto__=r.prototype,a.position=n,null!=n&&null!=o&&(a.length=o-n),a.rawMessage=e,a}}r.prototype.__proto__=Error.prototype;var n=r;const o=/([A-Z])/g,s={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},i=/[&><"']/g;const a=function(e){return"ordgroup"===e.type||"color"===e.type?1===e.body.length?a(e.body[0]):e:"font"===e.type?a(e.body):e};var l={deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(i,(e=>s[e]))},hyphenate:function(e){return e.replace(o,"-$1").toLowerCase()},getBaseElem:a,isCharacterBox:function(e){const t=a(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){const t=/^[\x00-\x20]*([^\\/#?]*?)(:|&#0*58|&#x0*3a|&colon)/i.exec(e);return t?":"!==t[2]?null:/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?t[1].toLowerCase():null:"_relative"}};const h={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format <type>"},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color <color>",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro <def>",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness <size>",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size <n>",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand <n>",cliProcessor:e=>"Infinity"===e?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function c(e){if(e.default)return e.default;const t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class m{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.Line truncated
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.katex=t():e.katex=t()}("undefined"!=typeof self?self:this,function(){return function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return io}});class r extends Error{constructor(e,t){let n,o,s="KaTeX parse error: "+e;const i=t&&t.loc;if(i&&i.start<=i.end){const e=i.lexer.input;n=i.start,o=i.end,n===e.length?s+=" at end of input: ":s+=" at position "+(n+1)+": ";const t=e.slice(n,o).replace(/[^]/g,"$&\u0332");let r,l;r=n>15?"\u2026"+e.slice(n-15,n):e.slice(0,n),l=o+15<e.length?e.slice(o,o+15)+"\u2026":e.slice(o),s+=r+t+l}super(s),this.name="ParseError",Object.setPrototypeOf(this,r.prototype),this.position=n,null!=n&&null!=o&&(this.length=o-n),this.rawMessage=e}}var n=r;const o=/([A-Z])/g,s=e=>e.replace(o,"-$1").toLowerCase(),i={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},l=/[&><"']/g,a=e=>String(e).replace(l,e=>i[e]),c=e=>"ordgroup"===e.type||"color"===e.type?1===e.body.length?c(e.body[0]):e:"font"===e.type?c(e.body):e,h=new Set(["mathord","textord","atom"]),m=e=>h.has(c(e).type),u={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format <type>"},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color <color>",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro <def>",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness <size>",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size <n>",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand <n>",cliProcessor:e=>"Infinity"===e?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function p(e){if("default"in e)return e.default;const t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class d{constructor(e){void 0===e&&(e={}),e=e||{};for(const t of Object.keys(u)){const r=u[t],n=e[t];this[t]=void 0!==n?r.processor?r.processor(n):n:p(r)}}reportNonstrict(e,t,r){let o=this.strict;if("function"==typeof o&&(o=o(e,t,r)),o&&"ignore"!==o){if(!0===o||"error"===o)throw new n("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r);"warn"===o?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+o+"': "+t+" ["+e+"]")}}useStrictBehavior(e,t,r)Line truncated
+984 -497
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -2,4 +2,4 @@
[module.hugoVersion]
extended = true
min = "0.141.0"
max = "0.154.5"
max = "0.160.1"
+5 -2
View File
@@ -1,6 +1,6 @@
disabled = false
languageCode = "en"
languageName = "English"
locale = "en"
label = "English"
weight = 1
title = "Blowfish"
@@ -62,15 +62,18 @@ title = "Blowfish"
# { spotify = "https://open.spotify.com/user/userid" },
# { stack-overflow = "https://stackoverflow.com/users/userid/username" },
# { steam = "https://steamcommunity.com/profiles/userid" },
# { strava = "https://www.strava.com/athletes/username" },
# { telegram = "https://t.me/username" },
# { threads = "https://www.threads.net/@username" },
# { tiktok = "https://tiktok.com/@username" },
# { tumblr = "https://username.tumblr.com" },
# { twitch = "https://twitch.tv/username" },
# { untappd = "https://untappd.com/user/username" },
# { twitter = "https://twitter.com/username" },
# { x-twitter = "https://twitter.com/username" },
# { whatsapp = "https://wa.me/phone-number" },
# { youtube = "https://youtube.com/username" },
# { ko-fi = "https://ko-fi.com/username" },
# { codeberg = "https://codeberg.org/username"},
# { printables = "https://www.printables.com/@username"},
# ]
+10 -2
View File
@@ -29,6 +29,8 @@ disableTextInHeader = false
# 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)
hotlinkFeatureImage = false
# Thumbnail aspect ratio as a number (e.g., "1.5", "1.0", "1.777")
# thumbnailAspectRatio = "1.5"
# imagePosition = "50% 50%"
# highlightCurrentMenuArea = true
@@ -87,8 +89,10 @@ forgejoDefaultServer = "https://v11.next.forgejo.org"
showTableOfContents = false
# showRelatedContent = false
# relatedContentLimit = 3
showTaxonomies = false # use showTaxonomies OR showCategoryOnly, not both
showCategoryOnly = false # use showTaxonomies OR showCategoryOnly, not both
showTaxonomies = false # Enable the display of taxonomies for the related article.
showCategories = true # These will show if showTaxonomies is true.
showTags = true # These will show if showTaxonomies is true.
showCategoriesInSecondaryColor = false # This will change the color of category badges, so the user can better distinguish between the two. Only if showTaxonomies is true.
showAuthorsBadges = false
showWordCount = true
# sharingLinks = [ "linkedin", "twitter", "bluesky", "mastodon", "reddit", "pinterest", "facebook", "email", "whatsapp", "telegram", "line"]
@@ -119,6 +123,8 @@ forgejoDefaultServer = "https://v11.next.forgejo.org"
showTermCount = true
showHero = false
# heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
layoutBackgroundBlur = true # only used when heroStyle equals background or thumbAndBackground
layoutBackgroundHeaderSpace = true # only used when heroStyle equals background
showBreadcrumbs = false
showViews = false
showLikes = false
@@ -128,6 +134,8 @@ forgejoDefaultServer = "https://v11.next.forgejo.org"
[term]
showHero = false
# heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
layoutBackgroundBlur = true # only used when heroStyle equals background or thumbAndBackground
layoutBackgroundHeaderSpace = true # only used when heroStyle equals background
showBreadcrumbs = false
showViews = false
showLikes = false
+448 -304
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -52,6 +52,6 @@
"mastodon": {
"icon": "mastodon",
"title": "sharing.mastodon",
"url": "https://s2f.kytta.dev/?text=%[2]s %[1]s"
"url": "https://share.joinmastodon.org/#text=%[2]s %[1]s"
}
}
+1 -1
View File
@@ -1 +1 @@
[{"avatar_url":"https://avatars.githubusercontent.com/u/928965?u=f5d781ca0eb5cb5c7ce9e5ee5d3b24dae3d6e987\u0026v=4\u0026s=128","profile_url":"https://github.com/nazar-pc","username":"nazar-pc"},{"avatar_url":"https://avatars.githubusercontent.com/u/17061177?v=4\u0026s=128","profile_url":"https://github.com/ytocquet","username":"ytocquet"},{"avatar_url":"https://avatars.githubusercontent.com/u/49299328?v=4\u0026s=128","profile_url":"https://github.com/LITUATUI","username":"LITUATUI"}]
[{"avatar_url":"https://avatars.githubusercontent.com/u/928965?u=f5d781ca0eb5cb5c7ce9e5ee5d3b24dae3d6e987\u0026v=4\u0026s=128","profile_url":"https://github.com/nazar-pc","username":"nazar-pc"},{"avatar_url":"https://avatars.githubusercontent.com/u/17061177?u=dfc0b44e86fa09e96605ec9c7775f4f98df90a20\u0026v=4\u0026s=128","profile_url":"https://github.com/ytocquet","username":"ytocquet"},{"avatar_url":"https://avatars.githubusercontent.com/u/147227691?v=4\u0026s=128","profile_url":"https://github.com/AtmosphericIgnition","username":"AtmosphericIgnition"}]
@@ -1,5 +1,5 @@
languageCode = "de"
languageName = "Deutsch"
locale = "de"
label = "Deutsch"
weight = 3
title = "Blowfish"
@@ -1,5 +1,5 @@
languageCode = "en"
languageName = "English"
locale = "en"
label = "English"
weight = 1
title = "Blowfish"
@@ -1,5 +1,5 @@
languageCode = "es"
languageName = "Español"
locale = "es"
label = "Español"
weight = 6
title = "Blowfish"
@@ -1,5 +1,5 @@
languageCode = "fr"
languageName = "Français"
locale = "fr"
label = "Français"
weight = 2
title = "Blowfish"
@@ -1,5 +1,5 @@
languageCode = "it"
languageName = "Italiano"
locale = "it"
label = "Italiano"
weight = 4
title = "Blowfish"
@@ -1,5 +1,5 @@
languageCode = "ja"
languageName = "日本語"
locale = "ja"
label = "日本語"
weight = 8
title = "Blowfish"
@@ -1,5 +1,5 @@
languageCode = "pt-br"
languageName = "Português (Brasil)"
locale = "pt-br"
label = "Português (Brasil)"
weight = 6
title = "Blowfish"
@@ -1,5 +1,5 @@
languageCode = "pt-pt"
languageName = "Português (Portugal)"
locale = "pt-pt"
label = "Português (Portugal)"
weight = 5
title = "Blowfish"
@@ -1,5 +1,5 @@
languageCode = "zh-cn"
languageName = "简体中文"
locale = "zh-cn"
label = "简体中文"
weight = 9
title = "Blowfish"
@@ -67,6 +67,7 @@ The theme currently supports the following languages by default:
| Language | Code |
| ---------------------------- | ------- |
| Arabic | `ar` |
| Basque | `eu` |
| Bulgarian | `bg` |
| Bengali | `bn` |
| Catalan | `ca` |
@@ -244,8 +245,8 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `article.showAuthorBottom` | `false` | Author boxes are displayed at the bottom of each page instead of the top. |
| `article.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each article page. |
| `article.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `article.showHero = true`. |
| `article.layoutBackgroundBlur` | `true` | Makes the background image in the background article heroStyle blur with the scroll |
| `article.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. |
| `article.layoutBackgroundBlur` | `true` | Makes the background image in the background article heroStyle blur with the scroll. Only used when `heroStyle` equals `background` or `thumbAndBackground`. |
| `article.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. Only used when `heroStyle` equals `background`. |
| `article.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the article header. |
| `article.showDraftLabel` | `true` | Whether or not the draft indicator is shown next to articles when site is built with `--buildDrafts`. |
| `article.showEdit` | `false` | Whether or not the link to edit the article content should be displayed. |
@@ -260,7 +261,9 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `article.showRelatedContent` | `false` | Display related content for each post. Might required additional configuration to your `hugo.toml`. Please check the theme `hugo.toml` if you want to enable this feature and copy all the relevant _related_ entries. Also check [Hugo's docs](https://gohugo.io/content-management/related/) on related content. |
| `article.relatedContentLimit` | `3` | Limit of related articles to display if `showRelatedContent` is turned on. |
| `article.showTaxonomies` | `false` | Whether or not all the taxonomies related to this article are displayed. |
| `article.showCategoryOnly` | `false` | Whether or not the "category" taxonomy is displayed. `showTaxonomies` should be `false` when this param is used, otherwise duplicates will appear. |
| `article.showCategories` | `true` | Whether or not the `category` taxonomies are displayed. Requires `showTaxonomies` to be `true`. |
| `article.showTags` | `true` | Whether or not the `tag` taxonomies are displayed. Requires `showTaxonomies` to be `true`. |
| `article.showCategoriesInSecondaryColor` | `false` | This will make the `category` taxonomy badges to show in a secondary color, so the user can better distinguish between categories and tags. Requires `showTaxonomies` to be `true`. |
| `article.showAuthorsBadges` | `false` | Whether the `authors` taxonomies are are displayed in the article or list header. This requires the setup of `multiple authors` and the `authors` taxonomy. Check [this page]({{< ref "multi-author" >}}) for more details on how to configure that feature. |
| `article.showWordCount` | `false` | Whether or not article word counts are displayed. |
| `article.showComments` | `false` | Whether or not the [comments partial]({{< ref "partials#comments" >}}) is included after the article footer. |
@@ -274,9 +277,9 @@ Many of the article defaults here can be overridden on a per article basis by sp
| --- | --- | --- |
| `list.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each list page. |
| `list.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `list.showHero = true`. |
| `list.layoutBackgroundBlur` | `true` | Makes the background image in the background list heroStyle blur with the scroll. Only used when `heroStyle` equals `background` or `thumbAndBackground`. |
| `list.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. Only used when `heroStyle` equals `background`. |
| `list.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the header on list pages. |
| `list.layoutBackgroundBlur` | `true` | Makes the background image in the background list heroStyle blur with the scroll |
| `list.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. |
| `list.showTableOfContents` | `false` | Whether or not the table of contents is displayed on list pages. |
| `list.showSummary` | `false` | Whether or not article summaries are displayed on list pages. If a summary is not provided in the [front matter]({{< ref "front-matter" >}}), one will be auto generated using the `summaryLength` parameter in the [site configuration](#site-configuration). |
| `list.showViews` | `false` | Whether or not list views are displayed. This requires firebase integrations to be enabled, look below. |
@@ -302,6 +305,8 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `taxonomy.showTermCount` | `true` | Whether or not the number of articles within a taxonomy term is displayed on the taxonomy listing. |
| `taxonomy.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each taxonomy page. |
| `taxonomy.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `taxonomy.showHero = true`. |
| `taxonomy.layoutBackgroundBlur` | `true` | Makes the background image in the background taxonomy heroStyle blur with the scroll. Only used when `heroStyle` equals `background` or `thumbAndBackground`. |
| `taxonomy.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. Only used when `heroStyle` equals `background`. |
| `taxonomy.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the taxonomy header. |
| `taxonomy.showViews` | `false` | Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. |
| `taxonomy.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
@@ -314,6 +319,8 @@ Many of the article defaults here can be overridden on a per article basis by sp
| --- | --- | --- |
| `term.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each term page. |
| `term.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `term.showHero = true`. |
| `term.layoutBackgroundBlur` | `true` | Makes the background image in the background term heroStyle blur with the scroll. Only used when `heroStyle` equals `background` or `thumbAndBackground`. |
| `term.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. Only used when `heroStyle` equals `background`. |
| `term.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the term header. |
| `term.showViews` | `false` | Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. |
| `term.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
@@ -9,7 +9,7 @@ series: ["部署教程"]
series_order: 4
---
Blowfish 适宜个高度定制化的主题,使用到了一些 Hugo 中最新的特性来简化配置方式。
Blowfish 是一个高度定制化的主题,使用到了一些 Hugo 中最新的特性来简化配置方式。
主题附带了默认配置,可以让你快速启动一个基本的博客或静态网站。
@@ -46,6 +46,8 @@ Um die Umami Analytics-Unterstützung zu aktivieren, geben Sie einfach Ihren [Um
Wenn Sie auch die benutzerdefinierte Domain-Funktion von Umami verwenden und deren Skript von Ihrer Domain bereitstellen möchten, können Sie zusätzlich den Konfigurationswert `domain` angeben. Wenn Sie keinen `domain`-Wert angeben, wird das Skript direkt von Umami DNS (analytics.umami.is) geladen.
Wenn Sie möchten, dass der Tracker nur auf bestimmten Domains ausgeführt wird, können Sie den Konfigurationswert `dataDomains` angeben. Wenn Sie keinen `dataDomains`-Wert angeben, wird das Skript auf jeder Website ausgeführt, bei der `domain` und `websiteid` übereinstimmen. Wenn die Umgebungsvariable `TRACKER_SCRIPT_NAME` konfiguriert ist, können Sie einen benutzerdefinierten Skriptnamen `scriptName` angeben. Wenn sie nicht konfiguriert ist, kommentieren Sie sie entweder aus oder verwenden Sie den Standard `script.js`.
Wenn Sie die Do Not Track Einstellung im Browser berücksichtigen möchten, dann setzen Sie `doNotTrack` auf `true`, Blowfish berücksichtigt die Do Not Track Einstellung standardmäßig nicht.
{{< alert >}}
**Hinweis:** Wenn Sie Umami Analytics aktivieren, unterstützt Blowfish [Umami Track Event](https://umami.is/docs/track-events) automatisch. Wenn Sie Track Event nicht unterstützen möchten, muss der Parameter `enableTrackEvent` auf `false` gesetzt werden.
{{< /alert >}}
@@ -58,6 +60,7 @@ Wenn Sie möchten, dass der Tracker nur auf bestimmten Domains ausgeführt wird,
domain = "llama.yoursite.com"
dataDomains = "yoursite.com,yoursite2.com"
scriptName = "TRACKER_SCRIPT_NAME"
doNotTrack = false
enableTrackEvent = true
```
@@ -46,6 +46,8 @@ To enable Umami Analytics support, simply provide your [Umami tracking code](htt
If you also use the custom domain feature of Umami and would like to serve their script from your domain, you can also additionally provide the `domain` configuration value. If you don't provide a `domain` value, the script will load directly from Umami DNS (analytics.umami.is).
If you want the tracker to only run on specific domains, you can provide the `dataDomains` configuration value. If you don't provide a `dataDomains` value, the script will run on any website where the `domain` and`websiteid` match. If the environment variable `TRACKER_SCRIPT_NAME` is configured, you can specify a custom script name `scriptName`. If it is not configured, either comment it out or use the default `script.js`.
If you want to honor the Do Not Track setting of the users browser, you have to set `doNotTrack` to `true`. Blowfish does not honor the Do Not Track setting per default.
{{< alert >}}
**Note:** If you enable Umami Analytics, Blowfish will support [Umami Track Event](https://umami.is/docs/track-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
{{< /alert >}}
@@ -59,6 +61,7 @@ If you want the tracker to only run on specific domains, you can provide the `da
dataDomains = "yoursite.com,yoursite2.com"
scriptName = "TRACKER_SCRIPT_NAME"
enableTrackEvent = true
doNotTrack = false
```
### Seline Analytics
+137 -4
View File
@@ -96,6 +96,94 @@ The alert sign (`+` or `-`) is optional to control whether the admonition is fol
> [!INFO]- Customize admonition
> See the [admonition customization guide](https://github.com/nunocoracao/blowfish/blob/main/layouts/_default/_markup/render-blockquote.html).
## Accordion
`accordion` creates a collapsible set of panels. Use the `accordionItem` sub-shortcode to define each item. You can control whether multiple items can be open at the same time using the `mode` parameter.
<!-- prettier-ignore-start -->
| Parameter | Description |
| --------- | ------------------------------------------------------------------------------------------------- |
| `mode` | **Optional.** `collapse` (single open) or `open` (multiple open). Defaults to `collapse`. |
| `separated` | **Optional.** `true` to show each item as a separate card. Defaults to `false` (joined list). |
<!-- prettier-ignore-end -->
`accordionItem` parameters:
<!-- prettier-ignore-start -->
| Parameter | Description |
| --------- | --------------------------------------------------------------------------------------------------- |
| `title` | **Required.** Title shown in the item header. |
| `open` | **Optional.** Set to `true` to have the item open by default. |
| `header` | **Optional.** Alias for `title`, kept for compatibility with other shortcodes. |
| `icon` | **Optional.** Icon name to display before the title. |
| `align` | **Optional.** Align text within the item: `left`, `center`, `right` |
<!-- prettier-ignore-end -->
**Example 1: `mode="open"` (multiple items can be open) + `separated=true`**
```md
{{</* accordion mode="open" separated=true */>}}
{{</* accordionItem title="Markdown example" icon="code" open=true */>}}
This item demonstrates Markdown rendering:
- **Bold text**
- Lists
- `inline code`
{{</* /accordionItem */>}}
{{</* accordionItem title="Shortcode example" md=false */>}}
This item demonstrates shortcode rendering with <code>md=false</code>:
{{</* alert */>}}This is an inline alert.{{</* /alert */>}}
{{</* /accordionItem */>}}
{{</* /accordion */>}}
```
{{< accordion mode="open" separated=true >}}
{{< accordionItem title="Markdown example" icon="code" open=true >}}
This item demonstrates Markdown rendering:
- **Bold text**
- Lists
- `inline code`
{{< /accordionItem >}}
{{< accordionItem title="Shortcode example" md=false >}}
This item demonstrates shortcode rendering with <code>md=false</code>:
{{< alert >}}This is an inline alert.{{< /alert >}}
{{< /accordionItem >}}
{{< /accordion >}}
**Example 2: `mode="collapse"` (only one item open at a time)**
```md
{{</* accordion mode="collapse" */>}}
{{</* accordionItem title="First item" open=true */>}}
This item uses Markdown with a short list:
1. One
2. Two
3. Three
{{</* /accordionItem */>}}
{{</* accordionItem title="Second item" md=false */>}}
This item includes another shortcode:
{{</* badge */>}}Tip{{</* /badge */>}}
{{</* /accordionItem */>}}
{{</* /accordion */>}}
```
{{< accordion mode="collapse" >}}
{{< accordionItem title="First item" open=true >}}
This item uses Markdown with a short list:
1. One
2. Two
3. Three
{{< /accordionItem >}}
{{< accordionItem title="Second item" md=false >}}
This item includes another shortcode:
{{< badge >}}Tip{{< /badge >}}
{{< /accordionItem >}}
{{< /accordion >}}
<br/><br/><br/>
@@ -165,10 +253,13 @@ Call to action
| Parameter | Description |
| --- | --- |
| `images` | **Required.** A regex string to match image names or URLs. |
| `captions` | **Optional.** A list of `key:caption` pairs. Keys can be image filenames (for local images) or full URLs (for remote images). Captions support Markdown. |
| `aspectRatio` | **Optional.** The aspect ratio for the carousel. It is set to `16-9` by default. |
| `interval` | **Optional.** The interval for the auto-scrooling, specified in milliseconds. Defaults to `2000` (2s) |
<!-- prettier-ignore-end -->
Captions are matched by key. For local images, use the filename (e.g. `01.jpg`). For remote images, use the full URL.
**Example 1:** 16:9 aspect ratio and verbose list of images
```md
@@ -185,6 +276,14 @@ Call to action
{{< carousel images="gallery/*" aspectRatio="21-9" interval="2500" >}}
**Example 3:** Add captions
```md
{{</* carousel images="gallery/*" captions="{01.jpg:First image with *formatting*,02.jpg:Second image with a [link](https://example.com)}" */>}}
```
{{< carousel images="gallery/*" captions="{01.jpg:First image with *formatting*,02.jpg:Second image with a [link](https://example.com)}" >}}
<br/><br/><br/>
## Chart
@@ -277,6 +376,18 @@ This shortcode is for importing code from external sources easily without copyin
<br/><br/><br/>
## Email
Creates an obfuscated mailto link:
```md
{{</* email email="mailto:hello@test.com" text="text" subject="Reply to awesome article" */>}}
```
{{< email email="mailto:hello@test.com" text="text" subject="Reply to awesome article" >}}
<br/><br/><br/>
## Figure
Blowfish includes a `figure` shortcode for adding images to content. The shortcode replaces the base Hugo functionality in order to provide additional performance benefits.
@@ -292,6 +403,7 @@ The `figure` shortcode accepts six parameters:
| `alt` | [Alternative text description](https://moz.com/learn/seo/alt-text) for the image. |
| `caption` | Markdown for the image caption, which will be displayed below the image. |
| `class` | Additional CSS classes to apply to the image. |
| `figureClass` | Additional CSS classes to apply to the `<figure>` wrapper. Useful for galleries. |
| `href` | URL that the image should be linked to. |
| `target` | The target attribute for the `href` URL. |
| `nozoom` | `nozoom=true` disables the image "zoom" functionality. This is most useful in combination with a `href` link. |
@@ -349,6 +461,8 @@ Blowfish also supports automatic conversion of images included using standard Ma
In order to add images to the gallery, use `img` tags for each image and add `class="grid-wXX"` in order for the gallery to be able to identify the column width for each image. The widths available by default start at 10% and go all the way to 100% in 5% increments. For example, to set the width to 65%, set the class to `grid-w65`. Additionally, widths for 33% and 66% are also available in order to build galleries with 3 cols. You can also leverage tailwind's responsive indicators to have a reponsive grid.
If you need captions, you can use the `figure` shortcode inside the gallery. When doing so, set the grid width on the `figure` using `figureClass`, and use `caption` for the text.
**Example 1: normal gallery**
```md
@@ -401,6 +515,24 @@ In order to add images to the gallery, use `img` tags for each image and add `cl
<br/><br/><br/>
**Example 3: gallery with captions (using `figure`)**
```md
{{</* gallery */>}}
{{</* figure src="gallery/01.jpg" alt="Gallery image 1" caption="First caption" figureClass="grid-w33" */>}}
{{</* figure src="gallery/02.jpg" alt="Gallery image 2" caption="Second caption" figureClass="grid-w33" */>}}
{{</* figure src="gallery/03.jpg" alt="Gallery image 3" caption="Third caption" figureClass="grid-w33" */>}}
{{</* /gallery */>}}
```
{{< gallery >}}
{{< figure src="gallery/01.jpg" alt="Gallery image 1" caption="First caption" figureClass="grid-w33" >}}
{{< figure src="gallery/02.jpg" alt="Gallery image 2" caption="Second caption" figureClass="grid-w33" >}}
{{< figure src="gallery/03.jpg" alt="Gallery image 3" caption="Third caption" figureClass="grid-w33" >}}
{{< /gallery >}}
<br/><br/><br/>
## Gist
`gist` shortcode allows you to embed a GitHub Gist directly into your content by specifying the Gist user, ID, and optionally a specific file.
@@ -759,6 +891,7 @@ The `tabs` shortcode is commonly used to present different variants of a particu
| `default` | **Optional.** Label of the tab to be active by default. If not set, the first tab will be active. |
| `label` | **Required.** The text label displayed on the tab button. |
| `icon` | **Optional.** Icon name to display before the label. |
| `md` | **Optional.** Render tab content as Markdown (default `true`). Set `md=false` to allow nested shortcodes inside tab content. |
**Example 1: Basic Usage**
@@ -785,8 +918,8 @@ The `tabs` shortcode is commonly used to present different variants of a particu
```
{{</* /tab */>}}
{{</* tab label="Linux" */>}}
See [documentation](https://code.visualstudio.com/docs/setup/linux#_install-vs-code-on-linux).
{{</* tab label="Linux" md=false */>}}
{{</* alert */>}}See [documentation](https://code.visualstudio.com/docs/setup/linux#_install-vs-code-on-linux).{{</* /alert */>}}
{{</* /tab */>}}
{{</* /tabs */>}}
@@ -816,8 +949,8 @@ The `tabs` shortcode is commonly used to present different variants of a particu
```
{{< /tab >}}
{{< tab label="Linux" >}}
See [documentation](https://code.visualstudio.com/docs/setup/linux#_install-vs-code-on-linux).
{{< tab label="Linux" md=false >}}
{{< alert >}}See [documentation](https://code.visualstudio.com/docs/setup/linux#_install-vs-code-on-linux).{{< /alert >}}
{{< /tab >}}
{{< /tabs >}}
@@ -11,7 +11,7 @@ series_order: 8
除了所有[默认 Hugo 简码](https://gohugo.io/content-management/shortcodes/) 之外,Blowfish 还添加了一些额外的功能。
## Alert
## 醒目框
`alert` 可以将其中内容输出为文章中的风格化消息框。它对于吸引读者注意您不想让读者错过的重要信息很有用。
@@ -64,7 +64,7 @@ This is an error!
<br/><br/><br/>
## Admonition
## 提示框
Admonition 用于在内容中插入醒目提示。
@@ -99,7 +99,7 @@ Admonition 的用途与 alert shortcode 类似,但其实现方式是通过 Hug
<br/><br/><br/>
## Article
## 文章嵌入
`Article` 将把一篇文章嵌入到一个 markdown 文件中。 参数中的 `link`应该是要嵌入的文件的 `.RelPermalink`。请注意,如果简码引用其父级文件,则它不会显示任何内容。 *注意:如果您在 Blowfish(即 /blowfish/)等子文件夹中运行网站,请在链接中包含该路径。*
@@ -121,7 +121,7 @@ Admonition 的用途与 alert shortcode 类似,但其实现方式是通过 Hug
<br/><br/><br/>
## Badge
## 徽章
`badge` 输出一个美观的徽章组件,该组件对于显示元数据很有用。
@@ -139,7 +139,7 @@ New article!
<br/><br/><br/>
## Button
## 按钮
`button` 输出一个样式化的按钮组件,可用于突出显示主要操作。它有三个可选变量 `href`、`target` 和 `rel`,可用于指定链接的 URL、目标和关系。
@@ -157,7 +157,7 @@ Call to action
<br/><br/><br/>
## Carousel
## 滑动画册
`carousel` 用于生成可交互且具有视觉吸引力的方式展示多个图像的画廊。这允许用户滑动浏览多个图像,同时仅占用单个图像的垂直空间。 所有图像均使用父组件的完整宽度并使用预定义的宽高比 `16:9` 、 `21:9` 或 `32:9` 之一显示。
@@ -187,7 +187,7 @@ Call to action
<br/><br/><br/>
## Chart
## 图表
`chart` 使用 Chart.js 库将图表嵌入到使用简单结构化数据的文章中。它支持多种[不同的图表样式](https://www.chartjs.org/docs/latest/samples/),并且所有内容都可以在简码中进行配置。只需在简码中提供图表参数,Chart.js 将完成剩下的工作。
@@ -225,7 +225,7 @@ data: {
<br/><br/><br/>
## Code Importer
## 导入源码
此短代码用于轻松从外部源导入代码,无需复制和粘贴
@@ -306,7 +306,7 @@ Blowfish 还支持使用标准 Markdown 语法自动转换图像。只需使用
![Alt text](image.jpg "Image caption")
```
## Forgejo Card
## Forgejo 卡片
`forgejo` allows you to quickly link a Forgejo repository via the forgejo API, providing real-time updates on stats such as stars and forks.
@@ -345,7 +345,7 @@ Blowfish 还支持使用标准 Markdown 语法自动转换图像。只需使用
<br/><br/><br/>
## Gallery
## 排布画册
`gallery` 允许您以响应式一次展示多个图像,并具有更加多样化和有趣的布局的图库。
@@ -612,7 +612,7 @@ Blowfish 还支持使用标准 Markdown 语法自动转换图像。只需使用
<br/><br/><br/>
## Lead
## 开篇语
`lead` 用于强调文章的开头。它可以用来设计介绍的样式,或者指出一条重要的信息。只需将任何 Markdown 内容包装在 `lead` 简码中即可。
+1 -1
View File
@@ -26,7 +26,7 @@ Una característica muy solicitada: ¡Blowfish ahora es multilingüe! Si publica
<div class="text-2xl text-center" style="font-size: 2.8rem">🇬🇧 🇩🇪 🇫🇷 🇪🇸 🇨🇳 🇧🇷 🇹🇷 🇧🇩</div>
Gracias a las contribuciones de la comunidad, Blowfish ya ha sido traducido a [treinta idiomas](https://github.com/nunocoracao/blowfish/tree/main/i18n), y se añadirán más con el tiempo. Por cierto, ¡los [pull requests](https://github.com/nunocoracao/blowfish/pulls) para nuevos idiomas siempre son bienvenidos!
Gracias a las contribuciones de la comunidad, Blowfish ya ha sido traducido a [treinta y dos idiomas](https://github.com/nunocoracao/blowfish/tree/main/i18n), y se añadirán más con el tiempo. Por cierto, ¡los [pull requests](https://github.com/nunocoracao/blowfish/pulls) para nuevos idiomas siempre son bienvenidos!
## Soporte para idiomas RTL
+1 -1
View File
@@ -26,7 +26,7 @@ A highly requested feature, Blowfish is now multilingual! If you publish your co
<div class="text-2xl text-center" style="font-size: 2.8rem">🇬🇧 🇩🇪 🇫🇷 🇪🇸 🇨🇳 🇧🇷 🇹🇷 🇧🇩</div>
Thanks to submissions from the community, Blowfish has already been translated into [thirty languages](https://github.com/nunocoracao/blowfish/tree/main/i18n) with more to be added over time. By the way, [pull requests](https://github.com/nunocoracao/blowfish/pulls) for new languages are always welcome!
Thanks to submissions from the community, Blowfish has already been translated into [thirty-two languages](https://github.com/nunocoracao/blowfish/tree/main/i18n) with more to be added over time. By the way, [pull requests](https://github.com/nunocoracao/blowfish/pulls) for new languages are always welcome!
## RTL language support
+1 -113
View File
@@ -15,116 +15,4 @@ Zusätzlich werden benutzerdefinierte Icons vollständig unterstützt. Stellen S
Die vollständige Liste der integrierten Icons und ihre entsprechenden Namen finden Sie unten.
| Icon-Name | Vorschau |
| -------------------- | --------------------------------- |
| amazon | {{< icon amazon >}} |
| apple | {{< icon apple >}} |
| bars | {{< icon bars >}} |
| bell | {{< icon bell >}} |
| blogger | {{< icon blogger >}} |
| bluesky | {{< icon bluesky >}} |
| bomb | {{< icon bomb >}} |
| bug | {{< icon bug >}} |
| check | {{< icon check >}} |
| circle-info | {{< icon circle-info >}} |
| cloud | {{< icon cloud >}} |
| cloud-moon | {{< icon cloud-moon >}} |
| code | {{< icon code>}} |
| codeberg | {{< icon codeberg >}} |
| codepen | {{< icon codepen >}} |
| comment | {{< icon comment >}} |
| dev | {{< icon dev >}} |
| discourse | {{< icon discourse >}} |
| docker | {{< icon docker >}} |
| download | {{< icon download >}} |
| dribbble | {{< icon dribbble >}} |
| edit | {{< icon edit >}} |
| email | {{< icon email >}} |
| envelope | {{< icon envelope >}} |
| expand | {{< icon expand >}} |
| eye | {{< icon eye >}} |
| facebook | {{< icon facebook >}} |
| fediverse | {{< icon fediverse >}} |
| fire | {{< icon fire >}} |
| flickr | {{< icon flickr >}} |
| fork | {{< icon fork >}} |
| foursquare | {{< icon foursquare >}} |
| ghost | {{< icon ghost >}} |
| github | {{< icon github >}} |
| gitlab | {{< icon gitlab >}} |
| globe | {{< icon globe >}} |
| goodreads | {{< icon goodreads >}} |
| google | {{< icon google >}} |
| google-scholar | {{< icon google-scholar >}} |
| graduation-cap | {{< icon graduation-cap >}} |
| hackernews | {{< icon hackernews >}} |
| hashnode | {{< icon hashnode >}} |
| heart-empty | {{< icon heart-empty >}} |
| heart | {{< icon heart >}} |
| image | {{< icon image >}} |
| instagram | {{< icon instagram >}} |
| itch-io | {{< icon itch-io >}} |
| keybase | {{< icon keybase >}} |
| keyoxide | {{< icon keyoxide >}} |
| kickstarter | {{< icon kickstarter >}} |
| ko-fi | {{< icon ko-fi >}} |
| language | {{< icon language >}} |
| lastfm | {{< icon lastfm >}} |
| lightbulb | {{< icon lightbulb >}} |
| line | {{< icon line >}} |
| link | {{< icon link >}} |
| linkedin | {{< icon linkedin >}} |
| list | {{< icon list >}} |
| location-dot | {{< icon location-dot >}} |
| lock | {{< icon lock >}} |
| mastodon | {{< icon mastodon >}} |
| matrix | {{< icon matrix >}} |
| medium | {{< icon medium >}} |
| microsoft | {{< icon microsoft >}} |
| moon | {{< icon moon >}} |
| mug-hot | {{< icon mug-hot >}} |
| music | {{< icon music >}} |
| orcid | {{< icon orcid >}} |
| patreon | {{< icon patreon >}} |
| paypal | {{< icon paypal >}} |
| peertube | {{< icon peertube >}} |
| pencil | {{< icon pencil >}} |
| pgpkey | {{< icon pgpkey >}} |
| phone | {{< icon phone >}} |
| pinterest | {{< icon pinterest >}} |
| pixelfed | {{< icon pixelfed >}} |
| poo | {{< icon poo >}} |
| reddit | {{< icon reddit >}} |
| researchgate | {{< icon researchgate >}} |
| rss | {{< icon rss >}} |
| rss-square | {{< icon rss-square >}} |
| scale-balanced | {{< icon scale-balanced >}} |
| search | {{< icon search >}} |
| shield | {{< icon shield >}} |
| signal | {{< icon signal >}} |
| skull-crossbones | {{< icon skull-crossbones >}} |
| slack | {{< icon slack >}} |
| snapchat | {{< icon snapchat >}} |
| soundcloud | {{< icon soundcloud >}} |
| spotify | {{< icon spotify >}} |
| stack-overflow | {{< icon stack-overflow >}} |
| star | {{< icon star >}} |
| steam | {{< icon steam >}} |
| stripe | {{< icon stripe >}} |
| substack | {{< icon substack >}} |
| sun | {{< icon sun >}} |
| tag | {{< icon tag >}} |
| telegram | {{< icon telegram >}} |
| threads | {{< icon threads >}} |
| tiktok | {{< icon tiktok >}} |
| triangle-exclamation | {{< icon triangle-exclamation >}} |
| tumblr | {{< icon tumblr >}} |
| twitch | {{< icon twitch >}} |
| twitter | {{< icon twitter >}} |
| wand-magic-sparkles | {{< icon wand-magic-sparkles >}} |
| whatsapp | {{< icon whatsapp >}} |
| worktree | {{< icon worktree >}} |
| x-twitter | {{< icon x-twitter >}} |
| xing | {{< icon xing >}} |
| xmark | {{< icon xmark >}} |
| youtube | {{< icon youtube >}} |
{{< icon-ref >}}
+1 -113
View File
@@ -15,116 +15,4 @@ Además, los iconos personalizados también son totalmente compatibles. Simpleme
La lista completa de iconos integrados y sus nombres correspondientes se puede consultar a continuación.
| Nombre del icono | Vista previa |
| -------------------- | --------------------------------- |
| amazon | {{< icon amazon >}} |
| apple | {{< icon apple >}} |
| bars | {{< icon bars >}} |
| bell | {{< icon bell >}} |
| blogger | {{< icon blogger >}} |
| bluesky | {{< icon bluesky >}} |
| bomb | {{< icon bomb >}} |
| bug | {{< icon bug >}} |
| check | {{< icon check >}} |
| circle-info | {{< icon circle-info >}} |
| cloud | {{< icon cloud >}} |
| cloud-moon | {{< icon cloud-moon >}} |
| code | {{< icon code>}} |
| codeberg | {{< icon codeberg >}} |
| codepen | {{< icon codepen >}} |
| comment | {{< icon comment >}} |
| dev | {{< icon dev >}} |
| discourse | {{< icon discourse >}} |
| docker | {{< icon docker >}} |
| download | {{< icon download >}} |
| dribbble | {{< icon dribbble >}} |
| edit | {{< icon edit >}} |
| email | {{< icon email >}} |
| envelope | {{< icon envelope >}} |
| expand | {{< icon expand >}} |
| eye | {{< icon eye >}} |
| facebook | {{< icon facebook >}} |
| fediverse | {{< icon fediverse >}} |
| fire | {{< icon fire >}} |
| flickr | {{< icon flickr >}} |
| fork | {{< icon fork >}} |
| foursquare | {{< icon foursquare >}} |
| ghost | {{< icon ghost >}} |
| github | {{< icon github >}} |
| gitlab | {{< icon gitlab >}} |
| globe | {{< icon globe >}} |
| goodreads | {{< icon goodreads >}} |
| google | {{< icon google >}} |
| google-scholar | {{< icon google-scholar >}} |
| graduation-cap | {{< icon graduation-cap >}} |
| hackernews | {{< icon hackernews >}} |
| hashnode | {{< icon hashnode >}} |
| heart-empty | {{< icon heart-empty >}} |
| heart | {{< icon heart >}} |
| image | {{< icon image >}} |
| instagram | {{< icon instagram >}} |
| itch-io | {{< icon itch-io >}} |
| keybase | {{< icon keybase >}} |
| keyoxide | {{< icon keyoxide >}} |
| kickstarter | {{< icon kickstarter >}} |
| ko-fi | {{< icon ko-fi >}} |
| language | {{< icon language >}} |
| lastfm | {{< icon lastfm >}} |
| lightbulb | {{< icon lightbulb >}} |
| line | {{< icon line >}} |
| link | {{< icon link >}} |
| linkedin | {{< icon linkedin >}} |
| list | {{< icon list >}} |
| location-dot | {{< icon location-dot >}} |
| lock | {{< icon lock >}} |
| mastodon | {{< icon mastodon >}} |
| matrix | {{< icon matrix >}} |
| medium | {{< icon medium >}} |
| microsoft | {{< icon microsoft >}} |
| moon | {{< icon moon >}} |
| mug-hot | {{< icon mug-hot >}} |
| music | {{< icon music >}} |
| orcid | {{< icon orcid >}} |
| patreon | {{< icon patreon >}} |
| paypal | {{< icon paypal >}} |
| peertube | {{< icon peertube >}} |
| pencil | {{< icon pencil >}} |
| pgpkey | {{< icon pgpkey >}} |
| phone | {{< icon phone >}} |
| pinterest | {{< icon pinterest >}} |
| pixelfed | {{< icon pixelfed >}} |
| poo | {{< icon poo >}} |
| reddit | {{< icon reddit >}} |
| researchgate | {{< icon researchgate >}} |
| rss | {{< icon rss >}} |
| rss-square | {{< icon rss-square >}} |
| scale-balanced | {{< icon scale-balanced >}} |
| search | {{< icon search >}} |
| shield | {{< icon shield >}} |
| signal | {{< icon signal >}} |
| skull-crossbones | {{< icon skull-crossbones >}} |
| slack | {{< icon slack >}} |
| snapchat | {{< icon snapchat >}} |
| soundcloud | {{< icon soundcloud >}} |
| spotify | {{< icon spotify >}} |
| stack-overflow | {{< icon stack-overflow >}} |
| star | {{< icon star >}} |
| steam | {{< icon steam >}} |
| stripe | {{< icon stripe >}} |
| substack | {{< icon substack >}} |
| sun | {{< icon sun >}} |
| tag | {{< icon tag >}} |
| telegram | {{< icon telegram >}} |
| threads | {{< icon threads >}} |
| tiktok | {{< icon tiktok >}} |
| triangle-exclamation | {{< icon triangle-exclamation >}} |
| tumblr | {{< icon tumblr >}} |
| twitch | {{< icon twitch >}} |
| twitter | {{< icon twitter >}} |
| wand-magic-sparkles | {{< icon wand-magic-sparkles >}} |
| whatsapp | {{< icon whatsapp >}} |
| worktree | {{< icon worktree >}} |
| x-twitter | {{< icon x-twitter >}} |
| xing | {{< icon xing >}} |
| xmark | {{< icon xmark >}} |
| youtube | {{< icon youtube >}} |
{{< icon-ref >}}
+1 -113
View File
@@ -15,116 +15,4 @@ De plus, les icônes personnalisées sont entièrement prises en charge. Fournis
La liste complète des icônes intégrées et leurs noms correspondants est référencée ci-dessous.
| Nom de l'icône | Aperçu |
| -------------------- | --------------------------------- |
| amazon | {{< icon amazon >}} |
| apple | {{< icon apple >}} |
| bars | {{< icon bars >}} |
| bell | {{< icon bell >}} |
| blogger | {{< icon blogger >}} |
| bluesky | {{< icon bluesky >}} |
| bomb | {{< icon bomb >}} |
| bug | {{< icon bug >}} |
| check | {{< icon check >}} |
| circle-info | {{< icon circle-info >}} |
| cloud | {{< icon cloud >}} |
| cloud-moon | {{< icon cloud-moon >}} |
| code | {{< icon code>}} |
| codeberg | {{< icon codeberg >}} |
| codepen | {{< icon codepen >}} |
| comment | {{< icon comment >}} |
| dev | {{< icon dev >}} |
| discourse | {{< icon discourse >}} |
| docker | {{< icon docker >}} |
| download | {{< icon download >}} |
| dribbble | {{< icon dribbble >}} |
| edit | {{< icon edit >}} |
| email | {{< icon email >}} |
| envelope | {{< icon envelope >}} |
| expand | {{< icon expand >}} |
| eye | {{< icon eye >}} |
| facebook | {{< icon facebook >}} |
| fediverse | {{< icon fediverse >}} |
| fire | {{< icon fire >}} |
| flickr | {{< icon flickr >}} |
| fork | {{< icon fork >}} |
| foursquare | {{< icon foursquare >}} |
| ghost | {{< icon ghost >}} |
| github | {{< icon github >}} |
| gitlab | {{< icon gitlab >}} |
| globe | {{< icon globe >}} |
| goodreads | {{< icon goodreads >}} |
| google | {{< icon google >}} |
| google-scholar | {{< icon google-scholar >}} |
| graduation-cap | {{< icon graduation-cap >}} |
| hackernews | {{< icon hackernews >}} |
| hashnode | {{< icon hashnode >}} |
| heart-empty | {{< icon heart-empty >}} |
| heart | {{< icon heart >}} |
| image | {{< icon image >}} |
| instagram | {{< icon instagram >}} |
| itch-io | {{< icon itch-io >}} |
| keybase | {{< icon keybase >}} |
| keyoxide | {{< icon keyoxide >}} |
| kickstarter | {{< icon kickstarter >}} |
| ko-fi | {{< icon ko-fi >}} |
| language | {{< icon language >}} |
| lastfm | {{< icon lastfm >}} |
| lightbulb | {{< icon lightbulb >}} |
| line | {{< icon line >}} |
| link | {{< icon link >}} |
| linkedin | {{< icon linkedin >}} |
| list | {{< icon list >}} |
| location-dot | {{< icon location-dot >}} |
| lock | {{< icon lock >}} |
| mastodon | {{< icon mastodon >}} |
| matrix | {{< icon matrix >}} |
| medium | {{< icon medium >}} |
| microsoft | {{< icon microsoft >}} |
| moon | {{< icon moon >}} |
| mug-hot | {{< icon mug-hot >}} |
| music | {{< icon music >}} |
| orcid | {{< icon orcid >}} |
| patreon | {{< icon patreon >}} |
| paypal | {{< icon paypal >}} |
| peertube | {{< icon peertube >}} |
| pencil | {{< icon pencil >}} |
| pgpkey | {{< icon pgpkey >}} |
| phone | {{< icon phone >}} |
| pinterest | {{< icon pinterest >}} |
| pixelfed | {{< icon pixelfed >}} |
| poo | {{< icon poo >}} |
| reddit | {{< icon reddit >}} |
| researchgate | {{< icon researchgate >}} |
| rss | {{< icon rss >}} |
| rss-square | {{< icon rss-square >}} |
| scale-balanced | {{< icon scale-balanced >}} |
| search | {{< icon search >}} |
| shield | {{< icon shield >}} |
| signal | {{< icon signal >}} |
| skull-crossbones | {{< icon skull-crossbones >}} |
| slack | {{< icon slack >}} |
| snapchat | {{< icon snapchat >}} |
| soundcloud | {{< icon soundcloud >}} |
| spotify | {{< icon spotify >}} |
| stack-overflow | {{< icon stack-overflow >}} |
| star | {{< icon star >}} |
| steam | {{< icon steam >}} |
| stripe | {{< icon stripe >}} |
| substack | {{< icon substack >}} |
| sun | {{< icon sun >}} |
| tag | {{< icon tag >}} |
| telegram | {{< icon telegram >}} |
| threads | {{< icon threads >}} |
| tiktok | {{< icon tiktok >}} |
| triangle-exclamation | {{< icon triangle-exclamation >}} |
| tumblr | {{< icon tumblr >}} |
| twitch | {{< icon twitch >}} |
| twitter | {{< icon twitter >}} |
| wand-magic-sparkles | {{< icon wand-magic-sparkles >}} |
| whatsapp | {{< icon whatsapp >}} |
| worktree | {{< icon worktree >}} |
| x-twitter | {{< icon x-twitter >}} |
| xing | {{< icon xing >}} |
| xmark | {{< icon xmark >}} |
| youtube | {{< icon youtube >}} |
{{< icon-ref >}}
+1 -113
View File
@@ -15,116 +15,4 @@ Additionally, custom icons are also fully supported. Simply provide your own SVG
The full list of built-in icons and their corresponding names can referenced below.
| Icon name | Preview |
| -------------------- | --------------------------------- |
| amazon | {{< icon amazon >}} |
| apple | {{< icon apple >}} |
| bars | {{< icon bars >}} |
| bell | {{< icon bell >}} |
| blogger | {{< icon blogger >}} |
| bluesky | {{< icon bluesky >}} |
| bomb | {{< icon bomb >}} |
| bug | {{< icon bug >}} |
| check | {{< icon check >}} |
| circle-info | {{< icon circle-info >}} |
| cloud | {{< icon cloud >}} |
| cloud-moon | {{< icon cloud-moon >}} |
| code | {{< icon code>}} |
| codeberg | {{< icon codeberg >}} |
| codepen | {{< icon codepen >}} |
| comment | {{< icon comment >}} |
| dev | {{< icon dev >}} |
| discourse | {{< icon discourse >}} |
| docker | {{< icon docker >}} |
| download | {{< icon download >}} |
| dribbble | {{< icon dribbble >}} |
| edit | {{< icon edit >}} |
| email | {{< icon email >}} |
| envelope | {{< icon envelope >}} |
| expand | {{< icon expand >}} |
| eye | {{< icon eye >}} |
| facebook | {{< icon facebook >}} |
| fediverse | {{< icon fediverse >}} |
| fire | {{< icon fire >}} |
| flickr | {{< icon flickr >}} |
| fork | {{< icon fork >}} |
| foursquare | {{< icon foursquare >}} |
| ghost | {{< icon ghost >}} |
| github | {{< icon github >}} |
| gitlab | {{< icon gitlab >}} |
| globe | {{< icon globe >}} |
| goodreads | {{< icon goodreads >}} |
| google | {{< icon google >}} |
| google-scholar | {{< icon google-scholar >}} |
| graduation-cap | {{< icon graduation-cap >}} |
| hackernews | {{< icon hackernews >}} |
| hashnode | {{< icon hashnode >}} |
| heart-empty | {{< icon heart-empty >}} |
| heart | {{< icon heart >}} |
| image | {{< icon image >}} |
| instagram | {{< icon instagram >}} |
| itch-io | {{< icon itch-io >}} |
| keybase | {{< icon keybase >}} |
| keyoxide | {{< icon keyoxide >}} |
| kickstarter | {{< icon kickstarter >}} |
| ko-fi | {{< icon ko-fi >}} |
| language | {{< icon language >}} |
| lastfm | {{< icon lastfm >}} |
| lightbulb | {{< icon lightbulb >}} |
| line | {{< icon line >}} |
| link | {{< icon link >}} |
| linkedin | {{< icon linkedin >}} |
| list | {{< icon list >}} |
| location-dot | {{< icon location-dot >}} |
| lock | {{< icon lock >}} |
| mastodon | {{< icon mastodon >}} |
| matrix | {{< icon matrix >}} |
| medium | {{< icon medium >}} |
| microsoft | {{< icon microsoft >}} |
| moon | {{< icon moon >}} |
| mug-hot | {{< icon mug-hot >}} |
| music | {{< icon music >}} |
| orcid | {{< icon orcid >}} |
| patreon | {{< icon patreon >}} |
| paypal | {{< icon paypal >}} |
| peertube | {{< icon peertube >}} |
| pencil | {{< icon pencil >}} |
| pgpkey | {{< icon pgpkey >}} |
| phone | {{< icon phone >}} |
| pinterest | {{< icon pinterest >}} |
| pixelfed | {{< icon pixelfed >}} |
| poo | {{< icon poo >}} |
| reddit | {{< icon reddit >}} |
| researchgate | {{< icon researchgate >}} |
| rss | {{< icon rss >}} |
| rss-square | {{< icon rss-square >}} |
| scale-balanced | {{< icon scale-balanced >}} |
| search | {{< icon search >}} |
| shield | {{< icon shield >}} |
| signal | {{< icon signal >}} |
| skull-crossbones | {{< icon skull-crossbones >}} |
| slack | {{< icon slack >}} |
| snapchat | {{< icon snapchat >}} |
| soundcloud | {{< icon soundcloud >}} |
| spotify | {{< icon spotify >}} |
| stack-overflow | {{< icon stack-overflow >}} |
| star | {{< icon star >}} |
| steam | {{< icon steam >}} |
| stripe | {{< icon stripe >}} |
| substack | {{< icon substack >}} |
| sun | {{< icon sun >}} |
| tag | {{< icon tag >}} |
| telegram | {{< icon telegram >}} |
| threads | {{< icon threads >}} |
| tiktok | {{< icon tiktok >}} |
| triangle-exclamation | {{< icon triangle-exclamation >}} |
| tumblr | {{< icon tumblr >}} |
| twitch | {{< icon twitch >}} |
| twitter | {{< icon twitter >}} |
| wand-magic-sparkles | {{< icon wand-magic-sparkles >}} |
| whatsapp | {{< icon whatsapp >}} |
| worktree | {{< icon worktree >}} |
| x-twitter | {{< icon x-twitter >}} |
| xing | {{< icon xing >}} |
| xmark | {{< icon xmark >}} |
| youtube | {{< icon youtube >}} |
{{< icon-ref >}}
+1 -113
View File
@@ -15,116 +15,4 @@ Blowfish はいくつもの [FontAwesome 6](https://fontawesome.com/icons) の
組み込んでいるアイコンと対応する名称の全リストは以下を参照してください。
| アイコン名 | プレビュー |
| -------------------- | --------------------------------- |
| amazon | {{< icon amazon >}} |
| apple | {{< icon apple >}} |
| bars | {{< icon bars >}} |
| bell | {{< icon bell >}} |
| blogger | {{< icon blogger >}} |
| bluesky | {{< icon bluesky >}} |
| bomb | {{< icon bomb >}} |
| bug | {{< icon bug >}} |
| check | {{< icon check >}} |
| circle-info | {{< icon circle-info >}} |
| cloud | {{< icon cloud >}} |
| cloud-moon | {{< icon cloud-moon >}} |
| code | {{< icon code>}} |
| codeberg | {{< icon codeberg >}} |
| codepen | {{< icon codepen >}} |
| comment | {{< icon comment >}} |
| dev | {{< icon dev >}} |
| discourse | {{< icon discourse >}} |
| docker | {{< icon docker >}} |
| download | {{< icon download >}} |
| dribbble | {{< icon dribbble >}} |
| edit | {{< icon edit >}} |
| email | {{< icon email >}} |
| envelope | {{< icon envelope >}} |
| expand | {{< icon expand >}} |
| eye | {{< icon eye >}} |
| facebook | {{< icon facebook >}} |
| fediverse | {{< icon fediverse >}} |
| fire | {{< icon fire >}} |
| flickr | {{< icon flickr >}} |
| fork | {{< icon fork >}} |
| foursquare | {{< icon foursquare >}} |
| ghost | {{< icon ghost >}} |
| github | {{< icon github >}} |
| gitlab | {{< icon gitlab >}} |
| globe | {{< icon globe >}} |
| goodreads | {{< icon goodreads >}} |
| google | {{< icon google >}} |
| google-scholar | {{< icon google-scholar >}} |
| graduation-cap | {{< icon graduation-cap >}} |
| hackernews | {{< icon hackernews >}} |
| hashnode | {{< icon hashnode >}} |
| heart-empty | {{< icon heart-empty >}} |
| heart | {{< icon heart >}} |
| image | {{< icon image >}} |
| instagram | {{< icon instagram >}} |
| itch-io | {{< icon itch-io >}} |
| keybase | {{< icon keybase >}} |
| keyoxide | {{< icon keyoxide >}} |
| kickstarter | {{< icon kickstarter >}} |
| ko-fi | {{< icon ko-fi >}} |
| language | {{< icon language >}} |
| lastfm | {{< icon lastfm >}} |
| lightbulb | {{< icon lightbulb >}} |
| line | {{< icon line >}} |
| link | {{< icon link >}} |
| linkedin | {{< icon linkedin >}} |
| list | {{< icon list >}} |
| location-dot | {{< icon location-dot >}} |
| lock | {{< icon lock >}} |
| mastodon | {{< icon mastodon >}} |
| matrix | {{< icon matrix >}} |
| medium | {{< icon medium >}} |
| microsoft | {{< icon microsoft >}} |
| moon | {{< icon moon >}} |
| mug-hot | {{< icon mug-hot >}} |
| music | {{< icon music >}} |
| orcid | {{< icon orcid >}} |
| patreon | {{< icon patreon >}} |
| paypal | {{< icon paypal >}} |
| peertube | {{< icon peertube >}} |
| pencil | {{< icon pencil >}} |
| pgpkey | {{< icon pgpkey >}} |
| phone | {{< icon phone >}} |
| pinterest | {{< icon pinterest >}} |
| pixelfed | {{< icon pixelfed >}} |
| poo | {{< icon poo >}} |
| reddit | {{< icon reddit >}} |
| researchgate | {{< icon researchgate >}} |
| rss | {{< icon rss >}} |
| rss-square | {{< icon rss-square >}} |
| scale-balanced | {{< icon scale-balanced >}} |
| search | {{< icon search >}} |
| shield | {{< icon shield >}} |
| signal | {{< icon signal >}} |
| skull-crossbones | {{< icon skull-crossbones >}} |
| slack | {{< icon slack >}} |
| snapchat | {{< icon snapchat >}} |
| soundcloud | {{< icon soundcloud >}} |
| spotify | {{< icon spotify >}} |
| stack-overflow | {{< icon stack-overflow >}} |
| star | {{< icon star >}} |
| steam | {{< icon steam >}} |
| stripe | {{< icon stripe >}} |
| substack | {{< icon substack >}} |
| sun | {{< icon sun >}} |
| tag | {{< icon tag >}} |
| telegram | {{< icon telegram >}} |
| threads | {{< icon threads >}} |
| tiktok | {{< icon tiktok >}} |
| triangle-exclamation | {{< icon triangle-exclamation >}} |
| tumblr | {{< icon tumblr >}} |
| twitch | {{< icon twitch >}} |
| twitter | {{< icon twitter >}} |
| wand-magic-sparkles | {{< icon wand-magic-sparkles >}} |
| whatsapp | {{< icon whatsapp >}} |
| worktree | {{< icon worktree >}} |
| x-twitter | {{< icon x-twitter >}} |
| xing | {{< icon xing >}} |
| xmark | {{< icon xmark >}} |
| youtube | {{< icon youtube >}} |
{{< icon-ref >}}
+1 -113
View File
@@ -15,116 +15,4 @@ Additionally, custom icons are also fully supported. Simply provide your own SVG
The full list of built-in icons and their corresponding names can referenced below.
| Icon name | Preview |
| -------------------- | --------------------------------- |
| amazon | {{< icon amazon >}} |
| apple | {{< icon apple >}} |
| bars | {{< icon bars >}} |
| bell | {{< icon bell >}} |
| blogger | {{< icon blogger >}} |
| bluesky | {{< icon bluesky >}} |
| bomb | {{< icon bomb >}} |
| bug | {{< icon bug >}} |
| check | {{< icon check >}} |
| circle-info | {{< icon circle-info >}} |
| cloud | {{< icon cloud >}} |
| cloud-moon | {{< icon cloud-moon >}} |
| code | {{< icon code>}} |
| codeberg | {{< icon codeberg >}} |
| codepen | {{< icon codepen >}} |
| comment | {{< icon comment >}} |
| dev | {{< icon dev >}} |
| discourse | {{< icon discourse >}} |
| docker | {{< icon docker >}} |
| download | {{< icon download >}} |
| dribbble | {{< icon dribbble >}} |
| edit | {{< icon edit >}} |
| email | {{< icon email >}} |
| envelope | {{< icon envelope >}} |
| expand | {{< icon expand >}} |
| eye | {{< icon eye >}} |
| facebook | {{< icon facebook >}} |
| fediverse | {{< icon fediverse >}} |
| fire | {{< icon fire >}} |
| flickr | {{< icon flickr >}} |
| fork | {{< icon fork >}} |
| foursquare | {{< icon foursquare >}} |
| ghost | {{< icon ghost >}} |
| github | {{< icon github >}} |
| gitlab | {{< icon gitlab >}} |
| globe | {{< icon globe >}} |
| goodreads | {{< icon goodreads >}} |
| google | {{< icon google >}} |
| google-scholar | {{< icon google-scholar >}} |
| graduation-cap | {{< icon graduation-cap >}} |
| hackernews | {{< icon hackernews >}} |
| hashnode | {{< icon hashnode >}} |
| heart-empty | {{< icon heart-empty >}} |
| heart | {{< icon heart >}} |
| image | {{< icon image >}} |
| instagram | {{< icon instagram >}} |
| itch-io | {{< icon itch-io >}} |
| keybase | {{< icon keybase >}} |
| keyoxide | {{< icon keyoxide >}} |
| kickstarter | {{< icon kickstarter >}} |
| ko-fi | {{< icon ko-fi >}} |
| language | {{< icon language >}} |
| lastfm | {{< icon lastfm >}} |
| lightbulb | {{< icon lightbulb >}} |
| line | {{< icon line >}} |
| link | {{< icon link >}} |
| linkedin | {{< icon linkedin >}} |
| list | {{< icon list >}} |
| location-dot | {{< icon location-dot >}} |
| lock | {{< icon lock >}} |
| mastodon | {{< icon mastodon >}} |
| matrix | {{< icon matrix >}} |
| medium | {{< icon medium >}} |
| microsoft | {{< icon microsoft >}} |
| moon | {{< icon moon >}} |
| mug-hot | {{< icon mug-hot >}} |
| music | {{< icon music >}} |
| orcid | {{< icon orcid >}} |
| patreon | {{< icon patreon >}} |
| paypal | {{< icon paypal >}} |
| peertube | {{< icon peertube >}} |
| pencil | {{< icon pencil >}} |
| pgpkey | {{< icon pgpkey >}} |
| phone | {{< icon phone >}} |
| pinterest | {{< icon pinterest >}} |
| pixelfed | {{< icon pixelfed >}} |
| poo | {{< icon poo >}} |
| reddit | {{< icon reddit >}} |
| researchgate | {{< icon researchgate >}} |
| rss | {{< icon rss >}} |
| rss-square | {{< icon rss-square >}} |
| scale-balanced | {{< icon scale-balanced >}} |
| search | {{< icon search >}} |
| shield | {{< icon shield >}} |
| signal | {{< icon signal >}} |
| skull-crossbones | {{< icon skull-crossbones >}} |
| slack | {{< icon slack >}} |
| snapchat | {{< icon snapchat >}} |
| soundcloud | {{< icon soundcloud >}} |
| spotify | {{< icon spotify >}} |
| stack-overflow | {{< icon stack-overflow >}} |
| star | {{< icon star >}} |
| steam | {{< icon steam >}} |
| stripe | {{< icon stripe >}} |
| substack | {{< icon substack >}} |
| sun | {{< icon sun >}} |
| tag | {{< icon tag >}} |
| telegram | {{< icon telegram >}} |
| threads | {{< icon threads >}} |
| tiktok | {{< icon tiktok >}} |
| triangle-exclamation | {{< icon triangle-exclamation >}} |
| tumblr | {{< icon tumblr >}} |
| twitch | {{< icon twitch >}} |
| twitter | {{< icon twitter >}} |
| wand-magic-sparkles | {{< icon wand-magic-sparkles >}} |
| whatsapp | {{< icon whatsapp >}} |
| worktree | {{< icon worktree >}} |
| x-twitter | {{< icon x-twitter >}} |
| xing | {{< icon xing >}} |
| xmark | {{< icon xmark >}} |
| youtube | {{< icon youtube >}} |
{{< icon-ref >}}
@@ -15,116 +15,4 @@ Além disso, ícones personalizados também são totalmente suportados. Simplesm
A lista completa de ícones integrados e seus nomes correspondentes pode ser consultada abaixo.
| Nome do ícone | Visualização |
| -------------------- | --------------------------------- |
| amazon | {{< icon amazon >}} |
| apple | {{< icon apple >}} |
| bars | {{< icon bars >}} |
| bell | {{< icon bell >}} |
| blogger | {{< icon blogger >}} |
| bluesky | {{< icon bluesky >}} |
| bomb | {{< icon bomb >}} |
| bug | {{< icon bug >}} |
| check | {{< icon check >}} |
| circle-info | {{< icon circle-info >}} |
| cloud | {{< icon cloud >}} |
| cloud-moon | {{< icon cloud-moon >}} |
| code | {{< icon code>}} |
| codeberg | {{< icon codeberg >}} |
| codepen | {{< icon codepen >}} |
| comment | {{< icon comment >}} |
| dev | {{< icon dev >}} |
| discourse | {{< icon discourse >}} |
| docker | {{< icon docker >}} |
| download | {{< icon download >}} |
| dribbble | {{< icon dribbble >}} |
| edit | {{< icon edit >}} |
| email | {{< icon email >}} |
| envelope | {{< icon envelope >}} |
| expand | {{< icon expand >}} |
| eye | {{< icon eye >}} |
| facebook | {{< icon facebook >}} |
| fediverse | {{< icon fediverse >}} |
| fire | {{< icon fire >}} |
| flickr | {{< icon flickr >}} |
| fork | {{< icon fork >}} |
| foursquare | {{< icon foursquare >}} |
| ghost | {{< icon ghost >}} |
| github | {{< icon github >}} |
| gitlab | {{< icon gitlab >}} |
| globe | {{< icon globe >}} |
| goodreads | {{< icon goodreads >}} |
| google | {{< icon google >}} |
| google-scholar | {{< icon google-scholar >}} |
| graduation-cap | {{< icon graduation-cap >}} |
| hackernews | {{< icon hackernews >}} |
| hashnode | {{< icon hashnode >}} |
| heart-empty | {{< icon heart-empty >}} |
| heart | {{< icon heart >}} |
| image | {{< icon image >}} |
| instagram | {{< icon instagram >}} |
| itch-io | {{< icon itch-io >}} |
| keybase | {{< icon keybase >}} |
| keyoxide | {{< icon keyoxide >}} |
| kickstarter | {{< icon kickstarter >}} |
| ko-fi | {{< icon ko-fi >}} |
| language | {{< icon language >}} |
| lastfm | {{< icon lastfm >}} |
| lightbulb | {{< icon lightbulb >}} |
| line | {{< icon line >}} |
| link | {{< icon link >}} |
| linkedin | {{< icon linkedin >}} |
| list | {{< icon list >}} |
| location-dot | {{< icon location-dot >}} |
| lock | {{< icon lock >}} |
| mastodon | {{< icon mastodon >}} |
| matrix | {{< icon matrix >}} |
| medium | {{< icon medium >}} |
| microsoft | {{< icon microsoft >}} |
| moon | {{< icon moon >}} |
| mug-hot | {{< icon mug-hot >}} |
| music | {{< icon music >}} |
| orcid | {{< icon orcid >}} |
| patreon | {{< icon patreon >}} |
| paypal | {{< icon paypal >}} |
| peertube | {{< icon peertube >}} |
| pencil | {{< icon pencil >}} |
| pgpkey | {{< icon pgpkey >}} |
| phone | {{< icon phone >}} |
| pinterest | {{< icon pinterest >}} |
| pixelfed | {{< icon pixelfed >}} |
| poo | {{< icon poo >}} |
| reddit | {{< icon reddit >}} |
| researchgate | {{< icon researchgate >}} |
| rss | {{< icon rss >}} |
| rss-square | {{< icon rss-square >}} |
| scale-balanced | {{< icon scale-balanced >}} |
| search | {{< icon search >}} |
| shield | {{< icon shield >}} |
| signal | {{< icon signal >}} |
| skull-crossbones | {{< icon skull-crossbones >}} |
| slack | {{< icon slack >}} |
| snapchat | {{< icon snapchat >}} |
| soundcloud | {{< icon soundcloud >}} |
| spotify | {{< icon spotify >}} |
| stack-overflow | {{< icon stack-overflow >}} |
| star | {{< icon star >}} |
| steam | {{< icon steam >}} |
| stripe | {{< icon stripe >}} |
| substack | {{< icon substack >}} |
| sun | {{< icon sun >}} |
| tag | {{< icon tag >}} |
| telegram | {{< icon telegram >}} |
| threads | {{< icon threads >}} |
| tiktok | {{< icon tiktok >}} |
| triangle-exclamation | {{< icon triangle-exclamation >}} |
| tumblr | {{< icon tumblr >}} |
| twitch | {{< icon twitch >}} |
| twitter | {{< icon twitter >}} |
| wand-magic-sparkles | {{< icon wand-magic-sparkles >}} |
| whatsapp | {{< icon whatsapp >}} |
| worktree | {{< icon worktree >}} |
| x-twitter | {{< icon x-twitter >}} |
| xing | {{< icon xing >}} |
| xmark | {{< icon xmark >}} |
| youtube | {{< icon youtube >}} |
{{< icon-ref >}}
@@ -15,116 +15,4 @@ Além disso, os ícones personalizados também são totalmente suportados. Simpl
A lista completa de ícones integrados e os seus nomes correspondentes pode ser consultada abaixo.
| Nome do ícone | Pré-visualização |
| -------------------- | --------------------------------- |
| amazon | {{< icon amazon >}} |
| apple | {{< icon apple >}} |
| bars | {{< icon bars >}} |
| bell | {{< icon bell >}} |
| blogger | {{< icon blogger >}} |
| bluesky | {{< icon bluesky >}} |
| bomb | {{< icon bomb >}} |
| bug | {{< icon bug >}} |
| check | {{< icon check >}} |
| circle-info | {{< icon circle-info >}} |
| cloud | {{< icon cloud >}} |
| cloud-moon | {{< icon cloud-moon >}} |
| code | {{< icon code>}} |
| codeberg | {{< icon codeberg >}} |
| codepen | {{< icon codepen >}} |
| comment | {{< icon comment >}} |
| dev | {{< icon dev >}} |
| discourse | {{< icon discourse >}} |
| docker | {{< icon docker >}} |
| download | {{< icon download >}} |
| dribbble | {{< icon dribbble >}} |
| edit | {{< icon edit >}} |
| email | {{< icon email >}} |
| envelope | {{< icon envelope >}} |
| expand | {{< icon expand >}} |
| eye | {{< icon eye >}} |
| facebook | {{< icon facebook >}} |
| fediverse | {{< icon fediverse >}} |
| fire | {{< icon fire >}} |
| flickr | {{< icon flickr >}} |
| fork | {{< icon fork >}} |
| foursquare | {{< icon foursquare >}} |
| ghost | {{< icon ghost >}} |
| github | {{< icon github >}} |
| gitlab | {{< icon gitlab >}} |
| globe | {{< icon globe >}} |
| goodreads | {{< icon goodreads >}} |
| google | {{< icon google >}} |
| google-scholar | {{< icon google-scholar >}} |
| graduation-cap | {{< icon graduation-cap >}} |
| hackernews | {{< icon hackernews >}} |
| hashnode | {{< icon hashnode >}} |
| heart-empty | {{< icon heart-empty >}} |
| heart | {{< icon heart >}} |
| image | {{< icon image >}} |
| instagram | {{< icon instagram >}} |
| itch-io | {{< icon itch-io >}} |
| keybase | {{< icon keybase >}} |
| keyoxide | {{< icon keyoxide >}} |
| kickstarter | {{< icon kickstarter >}} |
| ko-fi | {{< icon ko-fi >}} |
| language | {{< icon language >}} |
| lastfm | {{< icon lastfm >}} |
| lightbulb | {{< icon lightbulb >}} |
| line | {{< icon line >}} |
| link | {{< icon link >}} |
| linkedin | {{< icon linkedin >}} |
| list | {{< icon list >}} |
| location-dot | {{< icon location-dot >}} |
| lock | {{< icon lock >}} |
| mastodon | {{< icon mastodon >}} |
| matrix | {{< icon matrix >}} |
| medium | {{< icon medium >}} |
| microsoft | {{< icon microsoft >}} |
| moon | {{< icon moon >}} |
| mug-hot | {{< icon mug-hot >}} |
| music | {{< icon music >}} |
| orcid | {{< icon orcid >}} |
| patreon | {{< icon patreon >}} |
| paypal | {{< icon paypal >}} |
| peertube | {{< icon peertube >}} |
| pencil | {{< icon pencil >}} |
| pgpkey | {{< icon pgpkey >}} |
| phone | {{< icon phone >}} |
| pinterest | {{< icon pinterest >}} |
| pixelfed | {{< icon pixelfed >}} |
| poo | {{< icon poo >}} |
| reddit | {{< icon reddit >}} |
| researchgate | {{< icon researchgate >}} |
| rss | {{< icon rss >}} |
| rss-square | {{< icon rss-square >}} |
| scale-balanced | {{< icon scale-balanced >}} |
| search | {{< icon search >}} |
| shield | {{< icon shield >}} |
| signal | {{< icon signal >}} |
| skull-crossbones | {{< icon skull-crossbones >}} |
| slack | {{< icon slack >}} |
| snapchat | {{< icon snapchat >}} |
| soundcloud | {{< icon soundcloud >}} |
| spotify | {{< icon spotify >}} |
| stack-overflow | {{< icon stack-overflow >}} |
| star | {{< icon star >}} |
| steam | {{< icon steam >}} |
| stripe | {{< icon stripe >}} |
| substack | {{< icon substack >}} |
| sun | {{< icon sun >}} |
| tag | {{< icon tag >}} |
| telegram | {{< icon telegram >}} |
| threads | {{< icon threads >}} |
| tiktok | {{< icon tiktok >}} |
| triangle-exclamation | {{< icon triangle-exclamation >}} |
| tumblr | {{< icon tumblr >}} |
| twitch | {{< icon twitch >}} |
| twitter | {{< icon twitter >}} |
| wand-magic-sparkles | {{< icon wand-magic-sparkles >}} |
| whatsapp | {{< icon whatsapp >}} |
| worktree | {{< icon worktree >}} |
| x-twitter | {{< icon x-twitter >}} |
| xing | {{< icon xing >}} |
| xmark | {{< icon xmark >}} |
| youtube | {{< icon youtube >}} |
{{< icon-ref >}}
@@ -15,116 +15,4 @@ Blowfish 内置了许多 [FontAwesome 6](https://fontawesome.com/icons) 中的
下面是所有的内置图标及其名称。
| 图标名称 | 预览 |
| -------------------- | --------------------------------- |
| amazon | {{< icon amazon >}} |
| apple | {{< icon apple >}} |
| bars | {{< icon bars >}} |
| bell | {{< icon bell >}} |
| blogger | {{< icon blogger >}} |
| bluesky | {{< icon bluesky >}} |
| bomb | {{< icon bomb >}} |
| bug | {{< icon bug >}} |
| check | {{< icon check >}} |
| circle-info | {{< icon circle-info >}} |
| cloud | {{< icon cloud >}} |
| cloud-moon | {{< icon cloud-moon >}} |
| code | {{< icon code>}} |
| codeberg | {{< icon codeberg >}} |
| codepen | {{< icon codepen >}} |
| comment | {{< icon comment >}} |
| dev | {{< icon dev >}} |
| discourse | {{< icon discourse >}} |
| docker | {{< icon docker >}} |
| download | {{< icon download >}} |
| dribbble | {{< icon dribbble >}} |
| edit | {{< icon edit >}} |
| email | {{< icon email >}} |
| envelope | {{< icon envelope >}} |
| expand | {{< icon expand >}} |
| eye | {{< icon eye >}} |
| facebook | {{< icon facebook >}} |
| fediverse | {{< icon fediverse >}} |
| fire | {{< icon fire >}} |
| flickr | {{< icon flickr >}} |
| fork | {{< icon fork >}} |
| foursquare | {{< icon foursquare >}} |
| ghost | {{< icon ghost >}} |
| github | {{< icon github >}} |
| gitlab | {{< icon gitlab >}} |
| globe | {{< icon globe >}} |
| goodreads | {{< icon goodreads >}} |
| google | {{< icon google >}} |
| google-scholar | {{< icon google-scholar >}} |
| graduation-cap | {{< icon graduation-cap >}} |
| hackernews | {{< icon hackernews >}} |
| hashnode | {{< icon hashnode >}} |
| heart-empty | {{< icon heart-empty >}} |
| heart | {{< icon heart >}} |
| image | {{< icon image >}} |
| instagram | {{< icon instagram >}} |
| itch-io | {{< icon itch-io >}} |
| keybase | {{< icon keybase >}} |
| keyoxide | {{< icon keyoxide >}} |
| kickstarter | {{< icon kickstarter >}} |
| ko-fi | {{< icon ko-fi >}} |
| language | {{< icon language >}} |
| lastfm | {{< icon lastfm >}} |
| lightbulb | {{< icon lightbulb >}} |
| line | {{< icon line >}} |
| link | {{< icon link >}} |
| linkedin | {{< icon linkedin >}} |
| list | {{< icon list >}} |
| location-dot | {{< icon location-dot >}} |
| lock | {{< icon lock >}} |
| mastodon | {{< icon mastodon >}} |
| matrix | {{< icon matrix >}} |
| medium | {{< icon medium >}} |
| microsoft | {{< icon microsoft >}} |
| moon | {{< icon moon >}} |
| mug-hot | {{< icon mug-hot >}} |
| music | {{< icon music >}} |
| orcid | {{< icon orcid >}} |
| patreon | {{< icon patreon >}} |
| paypal | {{< icon paypal >}} |
| peertube | {{< icon peertube >}} |
| pencil | {{< icon pencil >}} |
| pgpkey | {{< icon pgpkey >}} |
| phone | {{< icon phone >}} |
| pinterest | {{< icon pinterest >}} |
| pixelfed | {{< icon pixelfed >}} |
| poo | {{< icon poo >}} |
| reddit | {{< icon reddit >}} |
| researchgate | {{< icon researchgate >}} |
| rss | {{< icon rss >}} |
| rss-square | {{< icon rss-square >}} |
| scale-balanced | {{< icon scale-balanced >}} |
| search | {{< icon search >}} |
| shield | {{< icon shield >}} |
| signal | {{< icon signal >}} |
| skull-crossbones | {{< icon skull-crossbones >}} |
| slack | {{< icon slack >}} |
| snapchat | {{< icon snapchat >}} |
| soundcloud | {{< icon soundcloud >}} |
| spotify | {{< icon spotify >}} |
| stack-overflow | {{< icon stack-overflow >}} |
| star | {{< icon star >}} |
| steam | {{< icon steam >}} |
| stripe | {{< icon stripe >}} |
| substack | {{< icon substack >}} |
| sun | {{< icon sun >}} |
| tag | {{< icon tag >}} |
| telegram | {{< icon telegram >}} |
| threads | {{< icon threads >}} |
| tiktok | {{< icon tiktok >}} |
| triangle-exclamation | {{< icon triangle-exclamation >}} |
| tumblr | {{< icon tumblr >}} |
| twitch | {{< icon twitch >}} |
| twitter | {{< icon twitter >}} |
| wand-magic-sparkles | {{< icon wand-magic-sparkles >}} |
| whatsapp | {{< icon whatsapp >}} |
| worktree | {{< icon worktree >}} |
| x-twitter | {{< icon x-twitter >}} |
| xing | {{< icon xing >}} |
| xmark | {{< icon xmark >}} |
| youtube | {{< icon youtube >}} |
{{< icon-ref >}}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 27 KiB

@@ -1,6 +1,6 @@
---
title: "n9o.xyz"
tags: [Persönliche Seite, Themenautor]
tags: [Personal site,Theme author]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "n9o.xyz"
tags: [sitio personal, Autor del tema]
tags: [Personal site,Theme author]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "n9o.xyz"
tags: [Site personnel, Auteur du thème]
tags: [Personal site,Theme author]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "n9o.xyz"
tags: [Sito personale, Autore del tema]
tags: [Personal site,Theme author]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "n9o.xyz"
tags: [個人サイト, テーマ作者]
tags: [Personal site,Theme author]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "n9o.xyz"
tags: [Site pessoal, Autor do tema]
tags: [Personal site,Theme author]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "n9o.xyz"
tags: [Site pessoal, Autor do tema]
tags: [Personal site,Theme author]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "n9o.xyz"
tags: [个人网站, 主题作者]
tags: [Personal site,Theme author]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

@@ -1,6 +1,6 @@
---
title: "madoke.org"
tags: [Persönliche Seite]
tags: [Personal site]
externalUrl: "https://madoke.org/"
weight: 2
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "madoke.org"
tags: [sitio personal]
tags: [Personal site]
externalUrl: "https://madoke.org/"
weight: 2
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "madoke.org"
tags: [Site personnel]
tags: [Personal site]
externalUrl: "https://madoke.org/"
weight: 2
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "madoke.org"
tags: [Sito personale]
tags: [Personal site]
externalUrl: "https://madoke.org/"
weight: 2
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "madoke.org"
tags: [個人サイト]
tags: [Personal site]
externalUrl: "https://madoke.org/"
weight: 2
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "madoke.org"
tags: [Site pessoal]
tags: [Personal site]
externalUrl: "https://madoke.org/"
weight: 2
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "madoke.org"
tags: [Site pessoal]
tags: [Personal site]
externalUrl: "https://madoke.org/"
weight: 2
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "madoke.org"
tags: [个人网站]
tags: [Personal site]
externalUrl: "https://madoke.org/"
weight: 2
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 32 KiB

@@ -1,6 +1,6 @@
---
title: "insidemordecai.com"
tags: [Persönliche Seite]
tags: [Personal site]
externalUrl: "https://insidemordecai.com"
weight: 11
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "insidemordecai.com"
tags: [sitio personal]
tags: [Personal site]
externalUrl: "https://insidemordecai.com"
weight: 11
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "insidemordecai.com"
tags: [Site personnel]
tags: [Personal site]
externalUrl: "https://insidemordecai.com"
weight: 11
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "insidemordecai.com"
tags: [Sito personale]
tags: [Personal site]
externalUrl: "https://insidemordecai.com"
weight: 11
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "insidemordecai.com"
tags: [個人サイト]
tags: [Personal site]
externalUrl: "https://insidemordecai.com"
weight: 11
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "insidemordecai.com"
tags: [Site pessoal]
tags: [Personal site]
externalUrl: "https://insidemordecai.com"
weight: 11
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "insidemordecai.com"
tags: [Site pessoal]
tags: [Personal site]
externalUrl: "https://insidemordecai.com"
weight: 11
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,6 +1,6 @@
---
title: "insidemordecai.com"
tags: [个人网站]
tags: [Personal site]
externalUrl: "https://insidemordecai.com"
weight: 11
showDate: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

@@ -1,8 +1,8 @@
---
title: "daytaur.com"
tags: [Portfolio, Umgebungsdesign]
tags: [Portfolio,Environment design]
externalUrl: "https://daytaur.com/"
weight: 105
weight: 101
showDate: false
showAuthor: false
showReadingTime: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,8 +1,8 @@
---
title: "daytaur.com"
tags: [Cartera, Diseño ambiental]
tags: [Portfolio,Environment design]
externalUrl: "https://daytaur.com/"
weight: 105
weight: 101
showDate: false
showAuthor: false
showReadingTime: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -0,0 +1,13 @@
---
title: "daytaur.com"
tags: [Portfolio,Environment design]
externalUrl: "https://daytaur.com/"
weight: 101
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -0,0 +1,13 @@
---
title: "daytaur.com"
tags: [Portfolio,Environment design]
externalUrl: "https://daytaur.com/"
weight: 101
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -0,0 +1,13 @@
---
title: "daytaur.com"
tags: [Portfolio,Environment design]
externalUrl: "https://daytaur.com/"
weight: 101
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -2,7 +2,7 @@
title: "daytaur.com"
tags: [Portfolio,Environment design]
externalUrl: "https://daytaur.com/"
weight: 105
weight: 101
showDate: false
showAuthor: false
showReadingTime: false
@@ -0,0 +1,13 @@
---
title: "daytaur.com"
tags: [Portfolio,Environment design]
externalUrl: "https://daytaur.com/"
weight: 101
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -0,0 +1,13 @@
---
title: "daytaur.com"
tags: [Portfolio,Environment design]
externalUrl: "https://daytaur.com/"
weight: 101
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---
@@ -1,8 +1,8 @@
---
title: "daytaur.com"
tags: [文件夹, 环境设计]
tags: [Portfolio,Environment design]
externalUrl: "https://daytaur.com/"
weight: 105
weight: 101
showDate: false
showAuthor: false
showReadingTime: false
@@ -11,4 +11,3 @@
showViews: false
layoutBackgroundHeaderSpace: false
---
Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

@@ -1,14 +0,0 @@
---
title: "encelo.github.io"
tags: [個人サイト, ブログ]
externalUrl: "https://encelo.github.io/"
weight: 102
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---
Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Loaded 100 of 1541 files, more files were not shown because too many files have changed in this diff. Show more