Compare commits

...
639 Commits
Author SHA1 Message Date
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
Nuno C. 9f2045746e Merge pull request #2700 from nunocoracao/dev
🔖 v2.97.0
2026-01-12 18:07:25 +00:00
Nuno Coração 071ab0de6c udpated users 2026-01-12 18:06:16 +00:00
Nuno C. d9ea382e81 Merge pull request #2704 from RxChi1d/fix/admonition-title-casing
fix(admonition): preserve custom title casing and integrate upstream improvements
2026-01-12 17:45:21 +00:00
Nuno C. 599ebb8610 Merge pull request #2717 from pwhittlesea/optional-new-tab-on-external-links
✨ Feat: Add option for external link in new tab
2026-01-12 17:44:47 +00:00
Nuno Coração 2540c8102f Merge branch 'dev' of https://github.com/nunocoracao/blowfish into dev 2026-01-12 17:42:22 +00:00
Nuno Coração b8fa87eca2 added views and updated docs 2026-01-12 17:42:10 +00:00
Nuno C. 9c8e3a1e2e Merge pull request #2729 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2026-01-12 17:40:14 +00:00
nunocoracao 7be81551d4 Update Hugo supported version 2026-01-12 06:09:41 +00:00
Nuno C. f08149b7db Merge pull request #2716 from ZhenShuo2021/stale
🔧 Chore: allow keeping issues
2026-01-12 00:54:44 +00:00
Nuno C. e5fc548eb5 Merge pull request #2714 from ZhenShuo2021/feat/compact
💄 Style(article-link): truncate long summary
2026-01-12 00:53:58 +00:00
Nuno C. 7a23e560c3 Merge pull request #2715 from ZhenShuo2021/stylee
💄 Style: multiple appearance improvements
2026-01-12 00:53:25 +00:00
Nuno C. 7090513545 Merge pull request #2713 from ZhenShuo2021/feat/tabs
✨ Feat(tabs): add icon, group, and default options
2026-01-12 00:52:30 +00:00
Nuno C. 4277590661 Merge pull request #2723 from davidwritesxyz/patch-1
Update users.json
2026-01-12 00:51:09 +00:00
Nuno C. d3109b4cc9 Merge pull request #2726 from nunocoracao/hugo-new-version 2026-01-11 16:54:00 +00:00
nunocoracao 9fd883fab5 Update Hugo supported version 2026-01-11 06:07:46 +00:00
Nuno C. e5d370cb2d Merge pull request #2702 from reyneese/patch-1 2026-01-10 02:03:42 +00:00
Nuno C. 228eaa164d Merge pull request #2705 from nunocoracao/hugo-new-version 2026-01-10 02:02:54 +00:00
David Thomas e27e55856e Update users.json
Request to add Blowfish site
2026-01-07 12:09:16 -07:00
ZhenShuo Leo 1d275134ad style(list): see details
- Align list TOC wrapper with single TOC wrapper
- Adjust margin
2026-01-08 00:40:24 +08:00
ZhenShuo Leo 10083786cb style(card-link): add line clamp and BEM classes
Add BEM class names for easier CSS targeting
2026-01-07 16:06:56 +08:00
nunocoracao 8121c3f032 Update Hugo supported version 2026-01-07 06:08:15 +00:00
Phillip Whittlesea-Clark 9c861e7c62 ✨ Feat: Add option for external link in new tab 2026-01-05 17:26:03 +00:00
rxchi1d 17906e63e2 refactor(admonition): simplify title handling logic
Replace complex title processing (9 lines) with single-line title filter approach.

Changes:
- Simplify $admonitionTitle definition from 5 variables to 1 line
- Remove $titleClass conditional logic (4 lines)
- Replace dynamic CSS class with static "grow" class
- Use Hugo title filter instead of CSS capitalize
- Remove TrimSpace processing per author feedback

This maintains the same visual behavior while significantly reducing code complexity.

Related: PR #2704 feedback from ZhenShuo2021
2026-01-04 23:25:28 +08:00
ZhenShuo Leo 2c7d234312 chore: allow keeping issues 2026-01-04 21:18:55 +08:00
ZhenShuo Leo 493bb3eb5c feat(tabs): update docs 2026-01-04 19:29:38 +08:00
ZhenShuo Leo 6fe75d5277 feat(tabs): wrap items 2026-01-04 19:29:38 +08:00
ZhenShuo Leo 601bb87559 feat(tabs): support default tab 2026-01-04 19:29:38 +08:00
ZhenShuo Leo dbb7d3f7f2 feat(tabs): support group 2026-01-04 19:29:38 +08:00
ZhenShuo Leo 2cac2bfe4a feat(tabs): support icon 2026-01-04 19:29:38 +08:00
ZhenShuo Leo 8c8a914fa9 style(admonition): tweak the dark bg
warning and caution are slightly different from the others to make them more distinguishable
2026-01-04 19:26:32 +08:00
ZhenShuo Leo c3e7d1b8b1 style(alert): add shadow to alert shortcode 2026-01-04 19:25:56 +08:00
ZhenShuo Leo 4a16b20d3f style(header): tweak fixed-fill-blur 2026-01-04 19:25:56 +08:00
ZhenShuo Leo 0083e927c1 style(doc): remove opacity from homepage contributors
images look gray
2026-01-04 01:28:53 +08:00
ZhenShuo Leo ec69178703 style(doc): tweak the icon color on the homepage 2026-01-04 01:28:41 +08:00
ZhenShuo Leo 14a2ea0c80 style(doc): build css for the new homepage 2026-01-04 01:28:35 +08:00
rxchi1d 966828efff fix(i18n): add admonition titles for en 2026-01-03 11:19:17 +08:00
rxchi1d fc9e6efb80 fix(render-blockquote): preserve custom title casing 2026-01-03 11:19:17 +08:00
reyneese 590d4c1479 Feat: add User Reyneese
a wow fiction storytelling blog powered by Blowfish
2026-01-03 06:05:06 +08:00
Nuno Coração b7dc7bc8a2 🔖 v2.97.0 2026-01-02 16:59:50 +00:00
Nuno C. f9eb1d4e81 Merge pull request #2696 from nunocoracao/dev
🔖 v2.96.0
2026-01-02 16:59:10 +00:00
Nuno C. 57591446ea Merge pull request #2699 from nunocoracao/sponsors-callout
update and add sponsors and contributors
2026-01-02 16:58:16 +00:00
Nuno Coração d79d17e807 update and add sponsors and contributors 2026-01-02 16:57:37 +00:00
Nuno C. bb4eeeeeee Merge pull request #2698 from ZhenShuo2021/fix/menu
🐛 Fix(mobile-menu): body not scrollable
2026-01-02 16:21:17 +00:00
Nuno C. 4ce7a3521a Merge pull request #2697 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2026-01-02 16:20:58 +00:00
ZhenShuo Leo 287e397b82 fix(mobile-menu): body not scrollable 2026-01-02 20:09:50 +08:00
nunocoracao a377e1b072 Update Hugo supported version 2026-01-02 06:08:12 +00:00
Nuno Coração 8281d9d990 🔖 v2.96.0 2026-01-02 00:00:16 +00:00
Nuno C. ec8a1b3d73 Merge pull request #2670 from nunocoracao/dev
🔖 v2.95.0
2026-01-01 23:58:32 +00:00
Nuno Coração e8d22f1f1b release polish 2026-01-01 23:56:30 +00:00
Nuno C. 949e367a01 Merge pull request #2684 from RxChi1d/feat/add-video-shortcode
feat(shortcodes): add video shortcode
2026-01-01 23:26:38 +00:00
Nuno C. c7f6955e80 Merge pull request #2682 from ZhenShuo2021/fix/tailwind
🔧 Chore: correct Tailwind
2026-01-01 23:25:23 +00:00
Nuno C. 1aba089483 Merge pull request #2683 from ZhenShuo2021/fix/header
✨ Feat: improve the appearance of the header
2026-01-01 23:24:20 +00:00
Nuno C. 314877d325 Merge pull request #2691 from ZhenShuo2021/feat/admonition
✨ Feat(admonition): support custom icon
2026-01-01 23:22:47 +00:00
Nuno C. 45b6a073e0 Merge pull request #2692 from ZhenShuo2021/fix/bold
🐛 Fix: make bold text inherit parent color
2026-01-01 23:19:53 +00:00
Nuno C. 9d819bc405 Merge pull request #2694 from ZhenShuo2021/fix/rss
🐛 Fix(rss): lastBuildDate and description
2026-01-01 23:19:30 +00:00
Nuno C. ec05d2c753 Merge pull request #2676 from RxChi1d/docs/hugo-min-version
docs: align Hugo minimum version
2026-01-01 23:18:20 +00:00
Nuno C. 865cca8eaa Merge pull request #2678 from noorkhafidzin/blowfish-user
Update users.json
2026-01-01 23:17:40 +00:00
Nuno C. 6cd3b88a8a Merge pull request #2672 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-4.1.18
📌 bump tailwindcss from 4.1.17 to 4.1.18
2026-01-01 23:16:54 +00:00
Nuno C. f408467bf5 Merge pull request #2673 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/cli-4.1.18
📌 bump @tailwindcss/cli from 4.1.17 to 4.1.18
2026-01-01 23:16:42 +00:00
dependabot[bot] db2f6b15e8 📌 bump tailwindcss from 4.1.17 to 4.1.18
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 4.1.17 to 4.1.18.
- [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.1.18/packages/tailwindcss)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-01 23:12:19 +00:00
Nuno C. 493c998742 Merge pull request #2674 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.34.0
📌 bump puppeteer from 24.32.1 to 24.34.0
2026-01-01 23:11:00 +00:00
Nuno C. a6f38c0e6f Merge pull request #2675 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/forms-0.5.11
📌 bump @tailwindcss/forms from 0.5.10 to 0.5.11
2026-01-01 23:06:58 +00:00
Nuno C. d3fd01c37d Merge pull request #2681 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2026-01-01 23:00:51 +00:00
nunocoracao b260175ebf Update Hugo supported version 2026-01-01 06:08:06 +00:00
ZhenShuo Leo 11845d4a7c fix(rss): lastBuildDate and description
align usage with Hugo

https://github.com/gohugoio/hugo/blob/v0.153.4/tpl/tplimpl/embedded/templates/rss.xml
2025-12-31 20:19:52 +08:00
ZhenShuo Leo 85a781a998 fix: make bold text inherit parent color
For example, given the following HTML:

<p class="text-primary-500"><strong>Hello</strong> world</p>

The rendered result shows `Hello` in the neutral color, while `world` is rendered in the primary color.

This change applies `color: inherit` to bold text so that both uses the primary color.
2025-12-31 17:42:29 +08:00
ZhenShuo Leo 3c534548df feat(admonition): allow full customization 2025-12-31 15:41:13 +08:00
ZhenShuo Leo bf0713c0cf feat(admonition): support arbitrary icon 2025-12-31 15:34:24 +08:00
rxchi1d ef9486f794 feat(shortcodes): add video shortcode 2025-12-27 18:42:04 +08:00
ZhenShuo Leo c78b3a1e6a fix: menu unreadable (#1790) 2025-12-27 17:33:20 +08:00
ZhenShuo Leo 230ee3ab16 feat: improve fixed-fill-blur
The original appearance is identical to `fixed-fill`
2025-12-27 17:32:04 +08:00
ZhenShuo Leo 8ab8807398 feat: better mobile menu 2025-12-27 17:32:00 +08:00
ZhenShuo Leo 522bdbe29e fix: menu vertical overflow 2025-12-27 17:31:53 +08:00
ZhenShuo Leo b0c5cd70da fix: correct CSS build
Fix because Tailwind scans the entire project

https://tailwindcss.com/docs/detecting-classes-in-source-files#which-files-are-scanned
2025-12-27 14:16:08 +08:00
Noor Khafidzin 8cd0aed78a Update users.json 2025-12-26 20:44:22 +07:00
rxchi1d 6f6323ff55 chore(docs): align Hugo minimum version 2025-12-24 14:27:21 +08:00
dependabot[bot] 446cf9541c 💄 Rebuild CSS 2025-12-24 05:02:32 +00:00
dependabot[bot] 6804d068cc 💄 Rebuild CSS 2025-12-24 05:02:09 +00:00
dependabot[bot] 7edef0ff7f 📌 bump @tailwindcss/forms from 0.5.10 to 0.5.11
Bumps [@tailwindcss/forms](https://github.com/tailwindlabs/tailwindcss-forms) from 0.5.10 to 0.5.11.
- [Release notes](https://github.com/tailwindlabs/tailwindcss-forms/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-forms/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.10...v0.5.11)

---
updated-dependencies:
- dependency-name: "@tailwindcss/forms"
  dependency-version: 0.5.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-24 05:02:02 +00:00
dependabot[bot] 8629e52b84 📌 bump puppeteer from 24.32.1 to 24.34.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.32.1 to 24.34.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.32.1...puppeteer-v24.34.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-24 05:01:57 +00:00
dependabot[bot] 9dd3fce747 📌 bump @tailwindcss/cli from 4.1.17 to 4.1.18
Bumps [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli) from 4.1.17 to 4.1.18.
- [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.1.18/packages/@tailwindcss-cli)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-24 05:01:44 +00:00
Nuno Coração 94fdf4fded 🔖 v2.5.0 2025-12-22 23:16:48 +00:00
Nuno C. 8c401da5f7 Merge pull request #2627 from nunocoracao/dev
🔖  v2.94.0
2025-12-22 23:05:44 +00:00
Nuno C. e00b6f674f Merge pull request #2668 from nunocoracao/trasnlations
🎏 Add 5 new languages to exampleSite: German, French, Spanish, PortuguesePT, and PortugueseBR
2025-12-22 23:03:10 +00:00
Nuno Coração 23ed8930bf update readmes 2025-12-22 23:02:08 +00:00
Nuno Coração 77070d4120 update readmes 2025-12-22 22:58:56 +00:00
Nuno CoraçãoandClaude Opus 4.5 1d88d5b296 Add 5 new languages to exampleSite: German, French, Spanish, Portuguese
Add complete translations for:
- German (de)
- French (fr)
- Spanish (es)
- Portuguese Brazil (pt-br)
- Portuguese Portugal (pt-pt)

Changes include:
- Language config files (languages.*.toml)
- Menu config files (menus.*.toml)
- Translated docs section (16 files x 5 langs)
- Translated homepage, guides, samples
- Translated examples, authors, tags sections
- Translated users section (112 dirs x 5 langs)
- Fixed YAML front matter formatting in user files

Hugo build now supports 9 languages total.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 22:49:50 +00:00
Nuno C. 4eacb62ff8 Merge pull request #2665 from nunocoracao/dependabot/npm_and_yarn/glob-11.1.0
chore(deps-dev): bump glob from 11.0.3 to 11.1.0
2025-12-22 19:09:52 +00:00
Nuno C. 63b3826c25 Merge branch 'dev' into dependabot/npm_and_yarn/glob-11.1.0 2025-12-22 19:09:43 +00:00
dependabot[bot] 78f462314b chore(deps-dev): bump glob from 11.0.3 to 11.1.0
Bumps [glob](https://github.com/isaacs/node-glob) from 11.0.3 to 11.1.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.3...v11.1.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 11.1.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-22 19:06:44 +00:00
Nuno C. 9ffc80db8c Merge pull request #2667 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2025-12-22 19:06:05 +00:00
nunocoracao 49e855b4e4 Update Hugo supported version 2025-12-22 18:59:51 +00:00
ZhenShuo2021 c32887c753 Merge pull request #2666 from ZhenShuo2021/patch
Fix #2653 gallery overflow
2025-12-23 02:25:51 +08:00
ZhenShuo Leo 7a1cfbb75d fix: overflow when the gallery is inside other containers [skip ci]
Fix the fix in #2653

This is a simple fix, hopefully it will be fully resolved in the future.
2025-12-23 02:23:21 +08:00
ZhenShuo Leo f3e91168d9 fix(schema): remove abstract field
- Search engines do not consume the abstract property
- Platforms (Docusaurus, Vitepress, WordPress, Medium) do not use it
- .Summary method does not match the definition of abstract in schema.org

redo 0d21750932 due to incorrect merge manipulate
2025-12-23 01:42:44 +08:00
Nuno Coração e41621dbbc updated users 2025-12-22 17:26:52 +00:00
Nuno C. 9f77b8b780 Merge pull request #2643 from RxChi1d/feature/callout-tailwind
✨ Feat: support GitHub Alerts (admonitions)
2025-12-22 17:25:02 +00:00
ZhenShuo Leo 81f2423d71 Merge branch 'dev' into feature/callout-tailwind 2025-12-23 01:21:40 +08:00
Nuno C. 0ee9667c35 Merge pull request #2654 from ZhenShuo2021/patch
🐛 Fix: multiple small patches
2025-12-22 17:19:56 +00:00
Nuno C. 4bab2b4e7e Merge pull request #2644 from NSStudent/hotfix/copy-safari-issue
Fix: Copy fallback for safari
2025-12-22 17:17:41 +00:00
Nuno C. eea9e106ab Merge pull request #2652 from Flexicon/feat-add-config-to-disable-styled-scrollbar
✨ feat: add config to disable styled scrollbar
2025-12-22 17:16:30 +00:00
ZhenShuo Leo 0d21750932 fix(schema): remove abstract field
- Search engines do not consume the abstract property
- Platforms (Docusaurus, Vitepress, WordPress, Medium) do not use it
- .Summary method does not match the definition of abstract in schema.org
2025-12-23 01:16:01 +08:00
ZhenShuo Leo e4ca3de291 feat(article-link): support front matter control of showCards option 2025-12-23 01:16:00 +08:00
Nuno C. 92a4c699cd Merge pull request #2647 from jannisdickmann/patch-1
💬 Translate article-related phrases to Italian
2025-12-22 17:15:45 +00:00
Nuno C. fababb8a49 Merge pull request #2645 from Coehill/main
Fix minor spelling mistake
2025-12-22 17:15:06 +00:00
Nuno C. 6d4968cdc6 Merge pull request #2660 from roib20/feature/new-user
📝 Add "Tower of Kubes" site entry to `users.json`
2025-12-22 17:14:28 +00:00
ZhenShuo Leo 327712d228 fix(list): content too narrow 2025-12-23 01:13:56 +08:00
ZhenShuo Leo 8b362f58d3 perf(schema): loop fusion 2025-12-23 01:13:56 +08:00
ZhenShuo Leo afa810841c feat(author): support svg image 2025-12-23 01:13:56 +08:00
ZhenShuo Leo 34fc0e619f chore(head): normalize color scheme name to lowercase
Many users configured the scheme with uppercase letters.

While uppercase works on macOS, it causes deployment failures on Ubuntu due to case sensitivity.
2025-12-23 01:13:55 +08:00
Nuno C. e2a9a62c1f Merge branch 'dev' into feature/new-user 2025-12-22 17:13:31 +00:00
Nuno C. 545a2dc5da Merge pull request #2662 from marko78700/main
add monpetitdev enrty to users.json
2025-12-22 17:12:34 +00:00
Nuno C. b6c00249c6 Merge pull request #2656 from ZhenShuo2021/feat/codeblock-title
✨ Feat: support title in code block
2025-12-22 17:11:53 +00:00
Nuno C. d913a512ad Merge pull request #2655 from ZhenShuo2021/feat/render-link
✨ Feat: adopt Hugo embed render-link logic
2025-12-22 17:11:38 +00:00
Nuno C. 9719d7ac6f Merge pull request #2653 from ZhenShuo2021/fix/gallery
🐛 Fix: gallery and carousel no width
2025-12-22 17:10:44 +00:00
Nuno C. 74650e4927 Merge pull request #2637 from ZhenShuo2021/feat/tabs
✨ Feat: add tabs shortcode
2025-12-22 17:09:40 +00:00
Nuno C. 0b54ddac94 Merge pull request #2630 from ZhenShuo2021/fix/contrast
🐛 Fix: improve contrast
2025-12-22 17:07:21 +00:00
Nuno C. 6bb5c83029 Merge pull request #2659 from nunocoracao/dependabot/github_actions/dev/actions/upload-artifact-6
👷 bump actions/upload-artifact from 5 to 6
2025-12-22 17:05:11 +00:00
Nuno C. d7a4feba44 Merge pull request #2648 from nunocoracao/dependabot/github_actions/dev/peter-evans/create-pull-request-8
👷 bump peter-evans/create-pull-request from 7 to 8
2025-12-22 17:04:56 +00:00
Nuno C. 07cfaa2156 Merge pull request #2651 from nunocoracao/dependabot/npm_and_yarn/dev/awmottaz/prettier-plugin-void-html-2.0.0
📌 bump @awmottaz/prettier-plugin-void-html from 1.9.0 to 2.0.0
2025-12-22 17:04:37 +00:00
Nuno C. bd3589f783 Merge pull request #2650 from nunocoracao/dependabot/npm_and_yarn/dev/katex-0.16.27
📌 bump katex from 0.16.25 to 0.16.27
2025-12-22 17:04:23 +00:00
Nuno C. 0971fee3ef Merge pull request #2649 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.32.1
📌 bump puppeteer from 24.31.0 to 24.32.1
2025-12-22 17:04:09 +00:00
Nuno C. fe08fdf792 Merge pull request #2642 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.7.4
📌 bump prettier from 3.6.2 to 3.7.4
2025-12-22 17:03:51 +00:00
Nuno C. 6d668745cf Merge pull request #2641 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.12.2
📌 bump mermaid from 11.12.1 to 11.12.2
2025-12-22 17:03:31 +00:00
Nuno C. 12ff643b75 Merge pull request #2640 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2025-12-22 17:02:59 +00:00
ZhenShuo Leo 07f2fec870 feat(admonition): polish
- sort by type names
- tweak colors of some types
- improve dark mode contrast
- prune css
- simplify render hook
2025-12-23 00:49:50 +08:00
rxchi1d 3f2891cc32 fix(admonitions): align paragraph spacing with prose 2025-12-22 15:42:07 +08:00
rxchi1d 57befe227f feat(admonitions): add header-only support 2025-12-22 14:18:31 +08:00
nunocoracao 73fc77b09e Update Hugo supported version 2025-12-22 06:08:55 +00:00
ZhenShuo Leo 0317f3aa0e refactor(admonition): simplify code 2025-12-22 12:29:12 +08:00
rxchi1d 775d5b1bbf feat: add admonitions 2025-12-22 09:53:58 +08:00
ZhenShuo Leo 1fc6058426 docs: update docs for admonitions 2025-12-22 09:53:58 +08:00
ZhenShuo2021 accf29dea3 Merge pull request #2664 from ZhenShuo2021/fix/img-ext 2025-12-22 09:52:25 +08:00
ZhenShuo Leo cc2c5c5205 fix: user thumbnail file extension 2025-12-21 23:21:48 +08:00
marko78700 c163661bd0 add monpetitdev enrty to users.json 2025-12-20 21:29:43 +01:00
roib20 bdd8a4a08d users: add "Tower of Kubes" entry
Add "Tower of Kubes" site entry to `users.json`
2025-12-18 21:37:32 +02:00
ZhenShuo Leo 0e3bad2be7 feat(codeblock): add title support 2025-12-18 02:38:31 +08:00
ZhenShuo Leo f487e616bf docs: update code block sample 2025-12-18 02:38:31 +08:00
dependabot[bot] 4e58ca0fb2 👷 bump actions/upload-artifact from 5 to 6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-17 05:01:34 +00:00
ZhenShuo Leo 4422c4b517 fix: gallery and carousel wouldn't show without other statically sized elements 2025-12-15 20:26:04 +08:00
ZhenShuo Leo f8417b8297 feat: adopt Hugo embed render-link logic 2025-12-15 18:20:26 +08:00
Mike Repec 9ff8cccc36 feat: Add config option to allow disabling styled tailwind scrollbar 2025-12-13 15:12:17 +01:00
dependabot[bot] f25fb65d42 📦 Update packaged KaTeX 2025-12-10 05:02:13 +00:00
dependabot[bot] 519915336e 📌 bump @awmottaz/prettier-plugin-void-html from 1.9.0 to 2.0.0
Bumps [@awmottaz/prettier-plugin-void-html](https://github.com/awmottaz/prettier-plugin-void-html) from 1.9.0 to 2.0.0.
- [Release notes](https://github.com/awmottaz/prettier-plugin-void-html/releases)
- [Changelog](https://github.com/awmottaz/prettier-plugin-void-html/blob/main/CHANGELOG.md)
- [Commits](https://github.com/awmottaz/prettier-plugin-void-html/compare/v1.9.0...v2.0.0)

---
updated-dependencies:
- dependency-name: "@awmottaz/prettier-plugin-void-html"
  dependency-version: 2.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-10 05:01:55 +00:00
dependabot[bot] 7fe94cc6d0 📌 bump katex from 0.16.25 to 0.16.27
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.25 to 0.16.27.
- [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.25...v0.16.27)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-10 05:01:48 +00:00
dependabot[bot] 09bbdc7125 📌 bump puppeteer from 24.31.0 to 24.32.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.31.0 to 24.32.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.31.0...puppeteer-v24.32.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-10 05:01:39 +00:00
dependabot[bot] 9bab52527f 👷 bump peter-evans/create-pull-request from 7 to 8
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7 to 8.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v7...v8)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-10 05:01:26 +00:00
Jannis Dickmann ca477899f2 Translate article-related phrases to Italian
In i18n/it.yaml, translated article->part_of_series, part, this_article, related_articles to Italian, which were previously in English.
2025-12-09 21:41:43 +01:00
Coehill e8086c811d Fix spelling in index.md 2025-12-08 22:23:05 -05:00
Coehill 2028ff15d3 Fix spelling in index.md 2025-12-08 22:22:26 -05:00
Coehill 0cf48a9361 Fix spelling in index.md 2025-12-08 22:21:23 -05:00
NSStudent 8ba07f0d59 fix copy fallback for safari
Signed-off-by: NSStudent <omarmn83@gmail.com>
2025-12-08 21:12:14 +01:00
ZhenShuo Leo ff9a860af9 style: line highlight for linenos=inline 2025-12-08 16:29:15 +08:00
dependabot[bot] 6bf7c7a019 📦 Update packaged Mermaid 2025-12-03 05:02:01 +00:00
dependabot[bot] 4e249c4a4b 📌 bump prettier from 3.6.2 to 3.7.4
Bumps [prettier](https://github.com/prettier/prettier) from 3.6.2 to 3.7.4.
- [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.6.2...3.7.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-03 05:01:49 +00:00
dependabot[bot] e7acfe97d2 📌 bump mermaid from 11.12.1 to 11.12.2
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.12.1 to 11.12.2.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.12.1...mermaid@11.12.2)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-version: 11.12.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-03 05:01:36 +00:00
ZhenShuo Leo eda9fc9bc3 feat(tabs): better usage 2025-12-01 21:14:15 +08:00
ZhenShuo Leo 20044af981 feat: add tabs 2025-12-01 20:24:26 +08:00
ZhenShuo Leo 7b5fe02079 feat(code): use github theme 2025-12-01 13:24:47 +08:00
ZhenShuo Leo c5b51e3491 style: specify dark mode selector 2025-11-30 11:00:10 +08:00
ZhenShuo Leo 2d3642c62b style: improve hr contrast 2025-11-30 11:00:10 +08:00
ZhenShuo Leo 960681efaf style: improve blockquote contrast 2025-11-30 11:00:10 +08:00
ZhenShuo Leo bb99b59528 style: improve toc contrast 2025-11-30 11:00:10 +08:00
ZhenShuo Leo f29e515147 style: improve code contrast 2025-11-30 11:00:10 +08:00
ZhenShuo Leo 112b22c0d9 style: improve article-link contrast
add background and tweak border
2025-11-29 04:10:47 +08:00
ZhenShuo Leo 31039584e8 style: add overlay for background blur 2025-11-29 04:10:47 +08:00
ZhenShuo Leo ec942b013a fix: remove alt in decorative images 2025-11-29 03:29:18 +08:00
Nuno C. 1be60f89da Merge pull request #2634 from nunocoracao/dependabot/npm_and_yarn/dev/rimraf-6.1.2
📌 bump rimraf from 6.1.0 to 6.1.2
2025-11-28 14:23:57 +00:00
Nuno C. 69ab24995c Merge pull request #2633 from nunocoracao/dependabot/npm_and_yarn/dev/lite-youtube-embed-0.3.4
📌 bump lite-youtube-embed from 0.3.3 to 0.3.4
2025-11-28 14:23:44 +00:00
Nuno C. e9b83400fe Merge pull request #2632 from nunocoracao/dependabot/github_actions/dev/actions/checkout-6
👷 bump actions/checkout from 5 to 6
2025-11-28 14:23:34 +00:00
Nuno C. 1048a10ba2 Merge pull request #2631 from flohoss/document-excludeFromSearch-parameter
📝 Document excludeFromSearch front matter parameter
2025-11-28 14:23:20 +00:00
Nuno C. 1c21efd54a Merge pull request #2629 from ZhenShuo2021/docs/colors
📝 Docs: theme switching and content clarity
2025-11-28 14:22:51 +00:00
ZhenShuo Leo 19ebf4f5d2 docs: remove duplicate en content in it doc 2025-11-27 15:38:37 +08:00
ZhenShuo Leo 825f9fec18 docs: clarify showHero 2025-11-27 15:38:37 +08:00
ZhenShuo Leo f9f9cf8e11 docs: use a simpler command in custom syntax highlighter
change command because tailwind v4 natively support css nesting
2025-11-27 15:38:37 +08:00
ZhenShuo Leo 0f105d2acb docs: add theme-switcher for color schemes 2025-11-27 14:53:07 +08:00
dependabot[bot] 4bc91159d6 📌 bump rimraf from 6.1.0 to 6.1.2
Bumps [rimraf](https://github.com/isaacs/rimraf) from 6.1.0 to 6.1.2.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v6.1.0...v6.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-26 05:01:43 +00:00
dependabot[bot] 2137efd700 📌 bump lite-youtube-embed from 0.3.3 to 0.3.4
Bumps [lite-youtube-embed](https://github.com/paulirish/lite-youtube-embed) from 0.3.3 to 0.3.4.
- [Release notes](https://github.com/paulirish/lite-youtube-embed/releases)
- [Commits](https://github.com/paulirish/lite-youtube-embed/compare/v0.3.3...v0.3.4)

---
updated-dependencies:
- dependency-name: lite-youtube-embed
  dependency-version: 0.3.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-26 05:01:37 +00:00
dependabot[bot] 7efecc2148 👷 bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-26 05:01:29 +00:00
Florian Hoss 0e8cc80a88 Document excludeFromSearch front matter parameter
Added documentation for the `excludeFromSearch` front matter parameter, explaining its default value and effect on sitemap and search index inclusion.
2025-11-25 05:00:51 +01:00
Nuno Coração 170671b357 🔖 v2.94.0 2025-11-24 23:57:24 +00:00
Nuno C. 7ce8be1d2f Merge pull request #2596 from nunocoracao/dev
🔖 v2.93.0
2025-11-24 23:56:47 +00:00
Nuno Coração ef023cf4bb polish 2025-11-24 23:55:56 +00:00
Nuno C. f72c75a562 Merge pull request #2624 from nunocoracao/dependabot/npm_and_yarn/glob-11.1.0
chore(deps-dev): bump glob from 11.0.0 to 11.1.0
2025-11-24 23:49:04 +00:00
Nuno C. 28cf554591 Merge branch 'dev' into dependabot/npm_and_yarn/glob-11.1.0 2025-11-24 23:37:01 +00:00
Nuno C. bdf5c84f19 Merge pull request #2621 from ZhenShuo2021/fix/author-zoom
🐛 Fix: author image stretch when zooming
2025-11-24 23:32:34 +00:00
Nuno C. 241a0e0373 Merge pull request #2617 from ZhenShuo2021/feat/breadcrumbList
✨ Feat(SEO): add enableStructuredBreadcrumbs
2025-11-24 23:31:39 +00:00
Nuno C. c64de6b1a7 Merge pull request #2614 from yozlog/dev
feat: Add i18n support for "Reply by Email"
2025-11-24 23:30:42 +00:00
Nuno C. f89ab9b53c Merge pull request #2610 from flohoss/fix-issue-2609
✨ Exclude pages from search index via param
2025-11-24 23:29:36 +00:00
Nuno C. c22297b182 Merge pull request #2608 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.29.1
📌 bump puppeteer from 24.26.1 to 24.29.1
2025-11-24 23:27:13 +00:00
dependabot[bot] 20ca60e726 chore(deps-dev): bump glob from 11.0.0 to 11.1.0
Bumps [glob](https://github.com/isaacs/node-glob) from 11.0.0 to 11.1.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.0...v11.1.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 11.1.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 23:24:09 +00:00
dependabot[bot] 6f63f1ce1d 📌 bump puppeteer from 24.26.1 to 24.29.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.26.1 to 24.29.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.26.1...puppeteer-v24.29.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 23:23:24 +00:00
Nuno C. a5440d0cfc Merge pull request #2625 from nunocoracao/dependabot/npm_and_yarn/js-yaml-4.1.1
chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1
2025-11-24 23:22:45 +00:00
Nuno C. 7a2086ed05 Merge pull request #2597 from nunocoracao/dependabot/npm_and_yarn/dev/rimraf-6.1.0
📌 bump rimraf from 6.0.1 to 6.1.0
2025-11-24 23:21:13 +00:00
Nuno C. 428b89860a Merge pull request #2599 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.12.1
📌 bump mermaid from 11.12.0 to 11.12.1
2025-11-24 23:21:03 +00:00
dependabot[bot] 69a8a256dc chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 23:20:51 +00:00
Nuno C. e1c1308662 Merge pull request #2603 from nicholas-alonzo/docs/add-new-colorScheme-options
📝  Docs: Add new github and one-light in colorScheme options
2025-11-24 23:20:43 +00:00
Nuno C. b0e6c4e5fd Merge pull request #2607 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/cli-4.1.17
📌 bump @tailwindcss/cli from 4.1.16 to 4.1.17
2025-11-24 23:20:08 +00:00
Nuno C. 1e5c006945 Merge pull request #2622 from zzamboni/newuser-zzamboni.org
New user entry: zzamboni.org
2025-11-24 23:18:44 +00:00
ZhenShuo2021 4248719f9c Merge pull request #2618 from ZhenShuo2021/feat/chroma 2025-11-25 05:17:36 +08:00
ZhenShuo Leo 62ce9f2e68 docs: document the Chroma customization steps 2025-11-22 07:30:17 +08:00
Diego Zamboni d6cfb639e6 New user entry: zzamboni.org 2025-11-21 23:48:01 +01:00
ZhenShuo Leo 8d5c2045a6 fix: author image stretch when zooming
fix this issue by using square image for data-zoom-src
2025-11-22 05:34:28 +08:00
ZhenShuo Leo 652462e326 fix: add JSON-LD to section page 2025-11-21 02:16:48 +08:00
ZhenShuo Leo 8ab2d8b68a feat: add BreadcrumbList (enableStructuredBreadcrumbs option)
also fix escape character in url of schema
2025-11-21 02:16:43 +08:00
YoZ e71f92b572 feat: Add i18n support for "Reply by Email" 2025-11-16 07:02:50 +09:00
Florian Hoss bf2d8ece62 ✨ Exclude non searchable pages from sitemap 2025-11-12 18:30:07 +01:00
Florian Hoss 53d243fab3 ✨ Exclude pages from search index via param
Pages with the 'excludeFromSearch' parameter set in their front matter are now omitted from the generated search index. This allows for finer control over which pages are searchable.
2025-11-12 18:17:58 +01:00
dependabot[bot] 2b55f9aa68 💄 Rebuild CSS 2025-11-12 05:02:17 +00:00
dependabot[bot] 666a887d79 📌 bump @tailwindcss/cli from 4.1.16 to 4.1.17
Bumps [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli) from 4.1.16 to 4.1.17.
- [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.1.17/packages/@tailwindcss-cli)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-12 05:01:50 +00:00
nicholas-alonzo fc73172652 Add new github and one-light in colorScheme 2025-11-05 23:20:19 -08:00
dependabot[bot] 3b9a4032a7 📦 Update packaged Mermaid 2025-11-05 05:02:53 +00:00
dependabot[bot] 720d795f78 📌 bump mermaid from 11.12.0 to 11.12.1
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.12.0 to 11.12.1.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.12.0...mermaid@11.12.1)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-version: 11.12.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-05 05:02:19 +00:00
dependabot[bot] 4344a076d8 📌 bump rimraf from 6.0.1 to 6.1.0
Bumps [rimraf](https://github.com/isaacs/rimraf) from 6.0.1 to 6.1.0.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v6.0.1...v6.1.0)

---
updated-dependencies:
- dependency-name: rimraf
  dependency-version: 6.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-05 05:01:48 +00:00
ZhenShuo Leo 32f452b25d feat(chroma): use cascade layer to allow override via custom.css
This allows users to customize Chroma CSS without building the TailwindCSS manually.

For example, add this to `custom.css`:

```
.chroma,
.chroma,
.chroma:is(.dark *),
.chroma:is(.dark *) * {
  color: unset;
  background-color: unset;
  font-weight: unset;
}
```

Then use:

```
hugo gen chromastyles --style=github | sed 's/\./html.dark ./' >> assets/css/custom.css

hugo gen chromastyles --style=github | sed 's/\./html:not(.dark) ./' >> exampleSite/assets/css/custom.css
```
2025-11-05 10:59:41 +08:00
Nuno Coração c9595934ea 🔖 v2.93.0 2025-11-03 22:40:55 +00:00
Nuno Coração fe51e8fb67 fix 2025-11-03 22:38:37 +00:00
Nuno C. 81f0e88710 Merge pull request #2544 from nunocoracao/dev
🔖 v2.92.0
2025-11-03 22:34:25 +00:00
Nuno Coração 121d240da2 polish 2025-11-03 22:31:06 +00:00
Nuno C. 05456d8fdb Merge pull request #2593 from nunocoracao/a11y
🐛 Fix(a11y): conditionally create disable_images button
2025-11-03 22:20:38 +00:00
Nuno C. c6aa447427 Merge pull request #2591 from pwhittlesea/support-markdown-attributes-on-images
✨ Support Hugo Markdown Attributes for Inline Images
2025-11-03 22:19:57 +00:00
Nuno C. 03578f8307 Merge pull request #2590 from tan5166/main
fix(term-link): replace removed _external-link.html partial with inline logic
2025-11-03 22:18:54 +00:00
Nuno C. 407cdb66c5 Merge pull request #2567 from ZhenShuo2021/feat/color-theme
✨ Feat: add new color schemes "github" and "one-light"
2025-11-03 22:17:10 +00:00
Nuno C. a1509e9064 Merge pull request #2566 from ZhenShuo2021/fix/keyword
🐛 Fix(keyword): trim empty spaces
2025-11-03 22:16:10 +00:00
Nuno C. cd73c4ab4d Merge pull request #2565 from ZhenShuo2021/fix/showDateOnlyInArticle
🐛 Fix: showDateOnlyInArticle
2025-11-03 22:14:41 +00:00
Nuno C. 7b08a2241c Merge pull request #2564 from ZhenShuo2021/fix/repo-card
🐛 Fix(repo-card): language dot colors not displaying
2025-11-03 22:14:04 +00:00
Nuno C. 998aee7bf3 Merge pull request #2562 from ZhenShuo2021/fix/scroll-to-top
🐛 Fix(scroll-to-top): handle nil value correctly
2025-11-03 22:13:12 +00:00
Nuno C. 427d44f472 Merge pull request #2589 from flohoss/main
💬 Add german translation
2025-11-03 22:08:08 +00:00
Nuno C. e9389be6ff Merge branch 'dev' into main 2025-11-03 22:07:53 +00:00
Nuno C. bfc47b118e Merge pull request #2579 from daytaur/daytaur-patch-1
Add daytaur.com portfolio site entry to users.json
2025-11-03 22:06:23 +00:00
Nuno C. 9a98c6e95a Merge branch 'dev' into daytaur-patch-1 2025-11-03 22:06:05 +00:00
Nuno C. 4560ad96d4 Merge pull request #2578 from istvanmerza/patch-1
Add merza.is to users.json
2025-11-03 22:04:06 +00:00
Nuno C. d38a1055bf Merge pull request #2561 from tekdahl/bugfix/article-links-broken
Fix(article shortcode): article links broken
2025-11-03 22:02:24 +00:00
Nuno C. f98ef89528 Merge pull request #2554 from tekdahl/patch-3
Update docs/shortcodes/index.md to fix example regex
2025-11-03 22:00:46 +00:00
Nuno C. 0e504a57af Merge pull request #2551 from Finkregh/patch-2
feat: extend german translation
2025-11-03 21:59:39 +00:00
Nuno C. 11baac5f89 Merge pull request #2577 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2025-11-03 21:58:25 +00:00
Nuno C. 7093887500 Merge pull request #2594 from nunocoracao/docs/install
📝 Docs: rename `config.toml` to `hugo.toml`
2025-11-03 21:57:35 +00:00
Nuno C. ebc2fa55a3 Merge pull request #2584 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-4.1.16
📌 bump tailwindcss from 4.1.14 to 4.1.16
2025-11-03 18:19:22 +00:00
Nuno C. 2cebe7c007 Merge pull request #2583 from nunocoracao/dependabot/github_actions/dev/actions/upload-artifact-5
👷 bump actions/upload-artifact from 4 to 5
2025-11-03 18:18:40 +00:00
Nuno C. 574d41791d Merge pull request #2585 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/cli-4.1.16
📌 bump @tailwindcss/cli from 4.1.14 to 4.1.16
2025-11-03 18:18:22 +00:00
Nuno C. 08305ed202 Merge pull request #2586 from nunocoracao/dependabot/npm_and_yarn/dev/commander-14.0.2
📌 bump commander from 14.0.1 to 14.0.2
2025-11-03 18:18:06 +00:00
Nuno C. 1f1d62d7c1 Merge pull request #2587 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.26.1
📌 bump puppeteer from 24.24.1 to 24.26.1
2025-11-03 18:17:55 +00:00
ZhenShuo Leo 3a1b44c177 docs: config.toml -> hugo.toml 2025-11-03 11:05:26 +08:00
ZhenShuo Leo 7f55de67d4 fix(a11y): i18n "Disable images" -> "Disable background image" 2025-11-03 10:30:59 +08:00
ZhenShuo Leo c51559dee5 fix(a11y): create disable_images button only when layout is background 2025-11-03 10:30:59 +08:00
Phillip Whittlesea-Clark 65ad575c9c ✨ Support Hugo Markdown Attributes for Inline Images 2025-11-01 18:21:42 +00:00
tan5166 f83bec6b7a fix(term-link): replace removed _external-link.html partial with inline logic
Fixes the issue introduced by commit 7cb8dcc which removed the
_external-link.html partial. The external link logic is now handled
inline in the card.html template to properly support both internal
and external URLs.
2025-11-02 01:36:37 +08:00
Florian Hoss de65642d01 Add german translation 2025-10-30 09:37:07 +01:00
dependabot[bot] aee443b910 💄 Rebuild CSS 2025-10-29 05:02:26 +00:00
dependabot[bot] 93316769fe 📌 bump puppeteer from 24.24.1 to 24.26.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.24.1 to 24.26.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.24.1...puppeteer-v24.26.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-29 05:02:21 +00:00
dependabot[bot] 0eea244097 📌 bump commander from 14.0.1 to 14.0.2
Bumps [commander](https://github.com/tj/commander.js) from 14.0.1 to 14.0.2.
- [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.1...v14.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-29 05:02:05 +00:00
dependabot[bot] cb3d124999 📌 bump @tailwindcss/cli from 4.1.14 to 4.1.16
Bumps [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli) from 4.1.14 to 4.1.16.
- [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.1.16/packages/@tailwindcss-cli)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-29 05:02:00 +00:00
dependabot[bot] b36b892901 📌 bump tailwindcss from 4.1.14 to 4.1.16
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 4.1.14 to 4.1.16.
- [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.1.16/packages/tailwindcss)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-29 05:01:50 +00:00
dependabot[bot] 17dfc5503c 👷 bump actions/upload-artifact from 4 to 5
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-29 05:01:43 +00:00
daytaur ae9ee3f069 Add portfolio site entry to users.json 2025-10-27 11:13:37 +02:00
istvanmerza 3ac8ed5556 Update users.json
Add merza.is
2025-10-26 23:19:10 +01:00
nunocoracao f6f36a851e Update Hugo supported version 2025-10-25 06:06:13 +00:00
ZhenShuo Leo a05ba20c85 feat: add new color scheme "one-light" 2025-10-20 21:34:16 +08:00
ZhenShuo Leo be89d0e2b3 feat: add new color scheme "github" 2025-10-20 21:34:16 +08:00
ZhenShuo Leo 1e99e63084 fix(keyword): trim empty spaces 2025-10-17 18:35:26 +08:00
ZhenShuo Leo d1f332b9cf fix: showDateOnlyInArticle 2025-10-17 14:52:25 +08:00
Nuno C. 8642fc75cf Merge pull request #2557 from nunocoracao/dependabot/github_actions/dev/stefanzweifel/git-auto-commit-action-7 2025-10-17 07:44:13 +01:00
Nuno C. 0789219758 Merge pull request #2556 from nunocoracao/dependabot/github_actions/dev/actions/setup-node-6 2025-10-17 07:44:00 +01:00
Nuno C. f8d4b06330 Merge pull request #2558 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.24.1 2025-10-17 07:43:32 +01:00
Nuno C. f768428e0b Merge pull request #2559 from nunocoracao/dependabot/npm_and_yarn/dev/katex-0.16.25 2025-10-17 07:43:15 +01:00
Nuno C. d9e1593377 Merge pull request #2560 from nunocoracao/dependabot/npm_and_yarn/dev/chart.js-4.5.1 2025-10-17 07:42:56 +01:00
Nuno C. 0fed115c96 Merge pull request #2563 from nunocoracao/hugo-new-version 2025-10-17 07:42:32 +01:00
ZhenShuo Leo 884d84363e Revert "perf(repo-card): only generate used CSS class"
This reverts commit af221fbf3b.

fix language dot colors in repo-card not displaying

This occurs because head.html is rendered before the page content,
making .Page.Store unavailable at that point in the template
execution order.

This issue doesn't appear in local development because page refreshes
trigger full re-renders, allowing the Store values to be properly
populated from shortcodes.

Alternative solutions considered:

1. templates.Defer: too complex and unreliable
2. Moving CSS to footer: confusing and delayed load
3. Inline styles: incurs CSP issue

Final I choose pre-generate CSS for all languages. After zstd
compression, the CSS file is only 8KB and benefits from browser
caching across all pages.
2025-10-17 14:38:24 +08:00
nunocoracao 4389aa5555 Update Hugo supported version 2025-10-17 06:07:14 +00:00
ZhenShuo Leo 03f078ba8e fix(scroll-to-top): handle nil value correctly 2025-10-16 00:42:07 +08:00
Ted 1ef3c02588 fix _external-link.html replacement variable refs 2025-10-15 09:35:42 -05:00
dependabot[bot] bca3c4dd99 📦 Update packaged ChartJS 2025-10-15 05:02:31 +00:00
dependabot[bot] ee8703a515 📦 Update packaged KaTeX 2025-10-15 05:02:29 +00:00
dependabot[bot] 4ee83032e9 📌 bump chart.js from 4.5.0 to 4.5.1
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v4.5.0...v4.5.1)

---
updated-dependencies:
- dependency-name: chart.js
  dependency-version: 4.5.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-15 05:02:07 +00:00
dependabot[bot] 5578f37a6b 📌 bump katex from 0.16.23 to 0.16.25
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.23 to 0.16.25.
- [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.23...v0.16.25)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-15 05:02:00 +00:00
dependabot[bot] 276e215ff6 📌 bump puppeteer from 24.23.0 to 24.24.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.23.0 to 24.24.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.23.0...puppeteer-v24.24.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-15 05:01:48 +00:00
dependabot[bot] 2cda8e72b3 👷 bump stefanzweifel/git-auto-commit-action from 6 to 7
Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 6 to 7.
- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)
- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: stefanzweifel/git-auto-commit-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-15 05:01:41 +00:00
dependabot[bot] ba79ed3442 👷 bump actions/setup-node from 5 to 6
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-15 05:01:37 +00:00
tekdahl f74b1bc2e6 Update docs/shortcodes/index.md to fix example regex
Minor documentation change. The carousel documentation is misleading, because the code example is broken. The spaces added break the globbing/regex used in the one actually embedded in the page.
2025-10-14 22:42:51 -05:00
Oluf Lorenzen 417606bde5 feat: extend german translation 2025-10-15 00:31:21 +02:00
ZhenShuo2021 a0d04df2b3 Merge pull request #2549 from ZhenShuo2021/patch
chore: rebuild CSS for the new release v2.91.0
2025-10-15 00:28:28 +08:00
ZhenShuo Leo de68f8d46e chore: rebuild CSS for the new release v2.91.0 2025-10-15 00:26:29 +08:00
Nuno Coração 2e3fb57ce8 v2.92.0 2025-10-14 10:30:56 +01:00
Nuno Coração d0db9190d4 fix on users.json 2025-10-14 10:29:39 +01:00
Nuno C. f6f6aa9577 Merge pull request #2542 from nunocoracao/dev
Dev
2025-10-14 10:22:14 +01:00
Nuno Coração 43dcc375d6 small fixes 2025-10-14 10:21:43 +01:00
Nuno C. 8db2442743 Merge pull request #2541 from nunocoracao/main
Sync
2025-10-14 10:16:29 +01:00
Nuno C. 452bdd408b Merge branch 'dev' into main 2025-10-14 10:16:20 +01:00
Nuno C. 80746a1fce Merge pull request #2515 from ZhenShuo2021/feat/image-position
✨ Feat: add `imagePosition` to allow align image
2025-10-14 10:14:27 +01:00
Nuno C. b29c6614dc Merge branch 'dev' into feat/image-position 2025-10-14 10:14:18 +01:00
Nuno C. 1597b4b356 Merge pull request #2525 from nunocoracao/dependabot/npm_and_yarn/tar-fs-3.1.1
chore(deps-dev): bump tar-fs from 3.1.0 to 3.1.1
2025-10-14 10:11:42 +01:00
Nuno C. 6e5a0769d3 Merge pull request #2539 from Flexicon/fix-heading-anchor-colour-flicker
🐛 Fix(render-heading): prevent colour flicker on anchor links
2025-10-14 10:11:19 +01:00
Nuno C. f441e653fb Merge pull request #2538 from thetorminal/patch-2
relLangUrl in $showMoreLinkDest
2025-10-14 10:10:48 +01:00
Nuno C. ad5295d335 Merge pull request #2537 from tveyben/add-danish
Adds danish translation
2025-10-14 10:10:07 +01:00
Nuno C. edab149fca Merge pull request #2536 from ZhenShuo2021/chore/contributing
🔧 Chore: CONTRIBUTING.md
2025-10-14 10:09:39 +01:00
Nuno C. fcd9b6cc89 Merge pull request #2535 from ZhenShuo2021/docs/patches
📝 Docs: small patches
2025-10-14 10:09:19 +01:00
Nuno C. 01dafef575 Merge pull request #2533 from ZhenShuo2021/feat/mermaid-dark
✨ Feat(mermaid): support dark mode
2025-10-14 10:08:26 +01:00
Nuno C. 7f4e044464 Merge pull request #2532 from ZhenShuo2021/fix/render-image
🐛 Fix(render-image): correct srcset and HTML structure
2025-10-14 10:07:52 +01:00
Nuno C. 7094f95a27 Merge pull request #2531 from ghlrobin/patch-1
Update Firebase CLI installation command
2025-10-14 10:07:10 +01:00
Nuno C. cc7989614a Merge pull request #2520 from Sunrongguo2008/patch-1
Update index.zh-cn.md
2025-10-14 10:06:03 +01:00
Nuno C. f2fd7a35cc Merge pull request #2519 from Sunrongguo2008/main
Update index.zh-cn.md
2025-10-14 10:05:34 +01:00
Nuno C. 9b6ed820e9 Merge pull request #2509 from ZhenShuo2021/fix/terms-typo
🐛 Fix: multiple small patches
2025-10-14 09:55:46 +01:00
Nuno C. 1a86ce0bd7 Merge pull request #2507 from tekdahl/carousel-aspectratio
Carousel support any aspect ratio
2025-10-14 09:53:15 +01:00
Nuno C. ce18bf1134 Merge pull request #2505 from ZhenShuo2021/feat/hotlink
✨ Feat: support `hotlinkFeatureImage`
2025-10-14 09:50:21 +01:00
Nuno C.andCopilot 719e505d01 Update layouts/partials/article-link/_shortcode.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-14 09:50:02 +01:00
Nuno C.andCopilot cac66e0fd7 Update layouts/partials/article-link/card-related.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-14 09:49:50 +01:00
Nuno C.andCopilot fba28d5274 Update layouts/partials/article-link/card.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-14 09:49:38 +01:00
Nuno C.andCopilot c714e91685 Update layouts/partials/article-link/simple.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-14 09:49:29 +01:00
Nuno C.andCopilot 831af00253 Update layouts/partials/hero/background.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-14 09:49:15 +01:00
Nuno C.andCopilot f153250887 Update layouts/partials/hero/basic.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-14 09:48:58 +01:00
Nuno C.andCopilot eef77a4a80 Update layouts/partials/hero/thumbAndBackground.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-14 09:48:32 +01:00
Nuno C.andCopilot 2e4e97c5b8 Update layouts/partials/hero/thumbAndBackground.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-14 09:48:02 +01:00
Nuno C. b91653687b Merge pull request #2499 from quasialex/main
Update head.html
2025-10-14 09:46:26 +01:00
Mike Repec b4a13da6d8 🐛 Fix(render-heading): prevent colour flicker on anchor links
The group-hover prefix is redundant and cause the colour to flicker
for the anchor link tag - the colour should actually stay the same
and only have it's opacity (visibility really) controlled via group-hover.
2025-10-13 09:18:45 +02:00
torminal 9c5ecfb45b relLangUrl in $showMoreLinkDest
Currently, the show more button doesnt support multilingual websites. Fixed with "| relLangURL"
2025-10-11 14:43:42 +02:00
TvE 4a19b81bd5 Adds danish translation 2025-10-11 11:19:49 +02:00
ZhenShuo Leo faeb1e1dea chore: move dev branch description to the front 2025-10-11 15:41:27 +08:00
ZhenShuo Leo 925065a5bd feat(mermaid): support dark mode 2025-10-11 15:24:21 +08:00
ZhenShuo Leo 792ec9a601 refactor(render-image): see detail
- trim white spaces which can't be eliminated by minify
- unify dict input usages
2025-10-11 15:07:20 +08:00
ZhenShuo Leo 8bfa9926c7 fix(render-image): improper srcset usage
- correct srcset image w descriptor value
- use compressed image for src fallback
2025-10-11 15:07:20 +08:00
ZhenShuo Leo 90e553541e fix: enable wrapStandAloneImageWithinParagraph by default
This fixes invalid HTML where figure tag is inside p tag.
However, this does not fix linked images, e.g., `[![alt](image)](url)`.
The cleanest way to resolve linked images is using markdown-attributes,
but markdown-attributes is not recommended by CommonMark.

See:

- https://discourse.gohugo.io/t/how-to-do-wrap-img-with-a-inside-figure-with-render-image-html/44843
- https://github.com/gohugoio/hugo/blob/master/markup/goldmark/images/transform.go
- https://gohugo.io/content-management/markdown-attributes/
- https://github.com/commonmark/commonmark-spec/wiki/Deployed-Extensions#attributes
2025-10-11 15:07:20 +08:00
ZhenShuo Leo a19edf471b chore(header): correct template naming 2025-10-11 03:11:00 +08:00
ZhenShuo Leo 40eea78d8c chore(footer): use logical properties 2025-10-11 03:10:00 +08:00
ZhenShuo Leo 4550723e94 fix: carousel CSS build path (#1545) 2025-10-11 15:19:36 +08:00
ZhenShuo Leo c9c8a36c16 fix: article-pagination
- simplify html
- fix rtl item alignment
- fix empty span tag when showDate is false
- align hover effect with other element, removes group hover underline
2025-10-11 15:19:36 +08:00
ZhenShuo Leo 6c8e0d7933 fix(header): add aria-label for icons 2025-10-11 15:19:36 +08:00
ZhenShuo Leo 9a043d83ab fix(single.html): toc not controlled by frontmatter (redo #2428) 2025-10-11 15:19:36 +08:00
ZhenShuo Leo 9b35cc2bae fix(toc): too wide when no related contents 2025-10-11 15:19:36 +08:00
ZhenShuo Leo d8ea1d81b5 fix: article shortcode padding 2025-10-11 15:19:35 +08:00
ZhenShuo Leo 751856fcc2 fix: show full size author image when zooming 2025-10-11 15:19:35 +08:00
ZhenShuo Leo ba45e11207 fix: repo card css output path conflict 2025-10-11 15:19:35 +08:00
ZhenShuo Leo de43ea47cb fix: scroll to top height offset on rtl sites 2025-10-11 15:19:35 +08:00
ZhenShuo Leo eb01381598 fix(header): remove logo alt 2025-10-11 15:19:35 +08:00
ZhenShuo Leo 9665fe953c fix(header): align width with body
remove all horizontal padding
align layout padding settings with body
split body classes into three variables
2025-10-11 15:19:35 +08:00
ZhenShuo Leo d4620d5318 fix(blur): remove small right-edge gap of blur on mobile devices 2025-10-11 15:19:35 +08:00
ZhenShuo Leo 2c6a95a755 fix(toc): incorrect active link in short paragraph 2025-10-11 15:19:35 +08:00
ZhenShuo Leo fefb7d2fb5 fix(katex): content hidden at container edges 2025-10-11 15:19:35 +08:00
ZhenShuo Leo ba8aac3a14 fix(terms): typo term -> taxonomy 2025-10-11 15:19:35 +08:00
Nuno C. 908c988d06 Merge pull request #2528 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.23.0 2025-10-10 18:03:08 +01:00
Ganghyeok Lee (Robin) d517626b4e Update Firebase CLI installation command 2025-10-10 14:56:05 +09:00
dependabot[bot] e608898f83 📌 Bump puppeteer from 24.22.3 to 24.23.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.22.3 to 24.23.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.22.3...puppeteer-v24.23.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-09 12:29:27 +00:00
Nuno C. c47160936b Merge pull request #2529 from nunocoracao/dependabot/npm_and_yarn/dev/katex-0.16.23 2025-10-09 13:28:40 +01:00
Nuno C. 44e02bbc13 Merge pull request #2527 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/cli-4.1.14 2025-10-09 13:28:19 +01:00
Nuno C. cfa5c6f32d Merge pull request #2526 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-4.1.14 2025-10-09 13:28:04 +01:00
ZhenShuo Leo 4afe06a57d docs: add margin to homepage switch button 2025-10-09 15:51:35 +08:00
ZhenShuo Leo f02776ff4f docs: add invertPagination to samples section 2025-10-09 15:51:34 +08:00
ZhenShuo Leo 60ed15f97c docs: headings not in descending order 2025-10-09 15:51:34 +08:00
ZhenShuo Leo 0eba74c3c6 docs: remove empty link from document site 2025-10-09 15:51:34 +08:00
ZhenShuo Leo 1802b07e29 docs: restore high-resolution images from old commit
Since the images are already in the commit history,
using new low-quality images does not help reduce the repo size

Images are from commit 37118381a6
2025-10-09 15:51:34 +08:00
ZhenShuo Leo 3918571644 chore(article-link): use old naming of css class name
though the new thumbnail--xxx naming is cleaner
but this kind of change should be postponed until a major release
2025-10-08 13:15:31 +08:00
ZhenShuo Leo a27d65ad36 fix(article-link): replace figure tag to div
this is not needed for decorative images
2025-10-08 13:06:24 +08:00
dependabot[bot] 84185205e1 📦 Update packaged KaTeX 2025-10-08 05:02:53 +00:00
dependabot[bot] 4417b41319 💄 Rebuild CSS 2025-10-08 05:02:33 +00:00
dependabot[bot] 57b5c2cf6e 📌 Bump katex from 0.16.22 to 0.16.23
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.22 to 0.16.23.
- [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.22...v0.16.23)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-08 05:02:26 +00:00
dependabot[bot] 4a9363b1bf 📌 Bump @tailwindcss/cli from 4.1.13 to 4.1.14
Bumps [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli) from 4.1.13 to 4.1.14.
- [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.1.14/packages/@tailwindcss-cli)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-08 05:02:02 +00:00
dependabot[bot] b993c203d3 📌 Bump tailwindcss from 4.1.13 to 4.1.14
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 4.1.13 to 4.1.14.
- [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.1.14/packages/tailwindcss)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-08 05:01:52 +00:00
dependabot[bot] 30a1bd281e 💄 Rebuild CSS 2025-10-07 22:16:33 +00:00
dependabot[bot] af3893546a chore(deps-dev): bump tar-fs from 3.1.0 to 3.1.1
Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 3.1.0 to 3.1.1.
- [Commits](https://github.com/mafintosh/tar-fs/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: tar-fs
  dependency-version: 3.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-07 22:16:08 +00:00
Nuno C. c7ed2261a3 Merge pull request #2467 from ZhenShuo2021/fix/head
🐛 Fix(head): meta handling and conditional analytics loading
2025-10-07 23:14:09 +01:00
Nuno C. 0ce00113cb Merge pull request #2510 from encelo/new-users
Add two new sites made with Blowfish
2025-10-07 23:13:40 +01:00
Nuno C. 9cd5e2e575 Merge branch 'dev' into new-users 2025-10-07 23:13:25 +01:00
Nuno C. a073bd45d9 Merge pull request #2511 from Metalhearf/Metalhearf-patch-1
Update users.json
2025-10-07 23:11:39 +01:00
Nuno C. e52cc05f63 Merge branch 'dev' into Metalhearf-patch-1 2025-10-07 23:11:33 +01:00
Nuno C. 0048f8b6dd Merge pull request #2517 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/typography-0.5.19
📌 Bump @tailwindcss/typography from 0.5.16 to 0.5.19
2025-10-07 23:10:00 +01:00
dependabot[bot] da627a0cc7 💄 Rebuild CSS 2025-10-07 17:42:10 +00:00
dependabot[bot] 98a73acbfa 📌 Bump @tailwindcss/typography from 0.5.16 to 0.5.19
Bumps [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) from 0.5.16 to 0.5.19.
- [Release notes](https://github.com/tailwindlabs/tailwindcss-typography/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-typography/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-typography/compare/v0.5.16...v0.5.19)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-07 17:41:41 +00:00
Nuno C. 7305c4ae0b Merge pull request #2518 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.22.3
📌 Bump puppeteer from 24.21.0 to 24.22.3
2025-10-07 18:40:49 +01:00
Nuno C. 94c6132efe Merge pull request #2516 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-2.2.9
📌 Bump @headlessui/react from 2.2.8 to 2.2.9
2025-10-07 18:40:07 +01:00
Nuno C. d7471833a9 Merge pull request #2504 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2025-10-07 18:39:56 +01:00
Nuno C. 3aa845e5cc Merge pull request #2502 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.12.0
📌 Bump mermaid from 11.11.0 to 11.12.0
2025-10-07 18:39:41 +01:00
Nuno C. f8124a6ac9 Merge pull request #2500 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/typography-0.5.18
📌 Bump @tailwindcss/typography from 0.5.16 to 0.5.18
2025-10-07 18:39:30 +01:00
Nuno C. 3344870b90 Add CODEOWNERS file for repository ownership 2025-10-07 18:29:15 +01:00
ZhenShuo Leo c599c3489e fix(head): scroll to top element not found error 2025-10-04 07:36:22 +08:00
nunocoracao 62a3ccc041 Update Hugo supported version 2025-10-03 06:06:58 +00:00
Sunong2008 2c39e2654c Update index.zh-cn.md 2025-10-02 09:07:57 +08:00
Sunong2008 9b6544fa09 Update index.zh-cn.md 2025-10-02 07:06:56 +08:00
Sunong2008 435c1050f9 Update index.zh-cn.md 2025-10-02 06:59:07 +08:00
ZhenShuo Leo b9a45ea2a9 fix(head): pass current context to analytics 2025-10-01 17:00:58 +08:00
ZhenShuo Leo 8b41f89455 fix(head): only load analytics when IsProduction 2025-10-01 17:00:58 +08:00
ZhenShuo Leo 374a0f51f7 fix(head): social image meta duplication 2025-10-01 17:00:58 +08:00
ZhenShuo Leo b3bc04cfc3 refactor(head): move meta to the front 2025-10-01 17:00:58 +08:00
ZhenShuo Leo 7b694613da refactor(head): remove unnecessary space trim 2025-10-01 17:00:58 +08:00
ZhenShuo Leo 2c9f1af5b2 refactor(head): remove unnecessary newScratch 2025-10-01 13:36:11 +08:00
dependabot[bot] e619196b81 📌 Bump puppeteer from 24.21.0 to 24.22.3
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.21.0 to 24.22.3.
- [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.21.0...puppeteer-v24.22.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 05:02:16 +00:00
dependabot[bot] d8dc422205 📌 Bump @headlessui/react from 2.2.8 to 2.2.9
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.2.8 to 2.2.9.
- [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.9/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 05:01:55 +00:00
ZhenShuo Leo ec8d9297f9 docs: add support for imagePosition config 2025-09-30 23:35:51 +08:00
ZhenShuo Leo f827f8e8d8 feat: add support for imagePosition config 2025-09-30 23:09:43 +08:00
Metalhearf 8e1c70b5f6 Add new user entry for metalhearf.fr 2025-09-29 17:30:17 +02:00
Angelo Theodorou 8823610faf Add two new sites made with Blowfish 2025-09-29 03:02:42 +02:00
Ted 132e932bd4 update shortcode carousel documentation 2025-09-28 09:55:21 -05:00
Ted 45c084afa0 Update carousel.html to support arbitrary aspect ratios 2025-09-28 09:29:30 -05:00
ZhenShuo Leo 22f097f92a chore: hotlinkFeatureImages -> hotlinkFeatureImage 2025-09-27 09:12:58 +08:00
ZhenShuo Leo 9eebb5b2aa fix: img attribute
add loading/decoding/fetchpriority

remove alt for decorative images
2025-09-26 22:37:56 +08:00
ZhenShuo Leo e6968d877f feat(hero): add support for hotlinkFeatureImages 2025-09-26 22:07:26 +08:00
ZhenShuo Leo 4b9e63fd99 feat(article-link): add support for hotlinkFeatureImages 2025-09-26 22:06:53 +08:00
dependabot[bot] d7fc5acd05 📦 Update packaged Mermaid 2025-09-24 05:02:36 +00:00
dependabot[bot] 44c20b3cf0 💄 Rebuild CSS 2025-09-24 05:02:17 +00:00
dependabot[bot] ab16811839 📌 Bump mermaid from 11.11.0 to 11.12.0
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.11.0 to 11.12.0.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.11.0...mermaid@11.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 05:02:07 +00:00
dependabot[bot] 3d2ffada0f 📌 Bump @tailwindcss/typography from 0.5.16 to 0.5.18
Bumps [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) from 0.5.16 to 0.5.18.
- [Release notes](https://github.com/tailwindlabs/tailwindcss-typography/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-typography/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-typography/compare/v0.5.16...v0.5.18)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 05:01:42 +00:00
quasialex 98f5b2c3b4 Update head.html
Correction: firebaseConfig authDomain
2025-09-23 20:28:50 +03:00
ZhenShuo Leo 7cb8dcc4a1 chore(article-link): remove _external-link.html
we don't need this anymore
2025-09-23 23:02:17 +08:00
Nuno C. e26666c001 Merge pull request #2497 from ZhenShuo2021/chore/icon-title
🔧 Chore: add title to icons
2025-09-23 15:56:36 +01:00
Nuno C. 646d1eca82 Merge pull request #2496 from ZhenShuo2021/fix/term
🐛 Fix(term): allow controled by frontmatter
2025-09-23 15:56:06 +01:00
Nuno C. 6f0238652b Merge pull request #2495 from ZhenShuo2021/fix/page-widget
🐛 Fix: page widget
2025-09-23 15:55:25 +01:00
Nuno C. 619fe502dc Merge pull request #2478 from milesbarr/dev
Fix HTML for menu items that only have an icon
2025-09-23 15:54:04 +01:00
ZhenShuo Leo 1159e78cc3 chore: rebuild css 2025-09-23 18:32:59 +08:00
ZhenShuo Leo 545febc7c0 chore: add title to icons 2025-09-23 18:01:19 +08:00
ZhenShuo Leo 17292857a7 fix(term): add margin to header 2025-09-23 18:01:08 +08:00
ZhenShuo Leo 7c4c740b25 fix(term): allow controled by frontmatter 2025-09-23 18:01:08 +08:00
ZhenShuo Leo 65ab50a901 fix(baseof): add offset to skip to main content 2025-09-23 17:57:58 +08:00
ZhenShuo Leo bcc9cf9f6c fix(baseof): correct typo 2025-09-23 17:57:58 +08:00
ZhenShuo Leo c330c17215 fix(buymeacoffee): widget position letter case and default value 2025-09-23 17:57:58 +08:00
ZhenShuo Leo b777d4e59e fix(scroll-to-top): resolve overlap with buy me a coffee button 2025-09-23 17:57:58 +08:00
Nuno C. 019388def8 Merge pull request #2493 from ZhenShuo2021/fix/carousel
🐛 Fix(carousel): prevent generating duplicate CSS files
2025-09-22 18:53:27 +01:00
Nuno C. 843677c383 Merge pull request #2489 from ZhenShuo2021/docs/lint
📝 DX(docs): remove extra spaces in long table
2025-09-22 18:52:25 +01:00
Nuno C. d35cb4012b Merge pull request #2487 from nunocoracao/dependabot/npm_and_yarn/dev/commander-14.0.1
📌 Bump commander from 14.0.0 to 14.0.1
2025-09-22 18:51:46 +01:00
Nuno C. 16bbb0f464 Merge pull request #2486 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.21.0
📌 Bump puppeteer from 24.19.0 to 24.21.0
2025-09-22 18:51:28 +01:00
Nuno C. b96e5120ef Merge pull request #2490 from marcriera/i18n-ca
🌐 Update Catalan i18n
2025-09-22 18:51:17 +01:00
Nuno C. 97b2f5c851 Merge pull request #2494 from tb1337/tb1337-update-users
Update users.json
2025-09-22 18:50:57 +01:00
Nuno C. 84163ad4ea Merge pull request #2485 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/cli-4.1.13
📌 Bump @tailwindcss/cli from 4.1.12 to 4.1.13
2025-09-22 18:47:34 +01:00
Nuno C. 8c1365d819 Merge pull request #2484 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-2.2.8
📌 Bump @headlessui/react from 2.2.7 to 2.2.8
2025-09-22 18:47:21 +01:00
Nuno C. f1a11b3357 Merge pull request #2483 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-4.1.13
📌 Bump tailwindcss from 4.1.12 to 4.1.13
2025-09-22 18:47:07 +01:00
tb ab385ef0e7 Update users.json 2025-09-21 19:38:47 +02:00
ZhenShuo Leo e1f59b6108 fix(carousel): prevent generating duplicate CSS files
use inline CSS to avoid extra workarounds
2025-09-20 01:09:15 +08:00
Marc Riera cfeab47b1b Update Catalan i18n 2025-09-18 11:13:02 +02:00
ZhenShuo Leo f04b850966 docs: remove extra spaces 2025-09-18 15:22:42 +08:00
dependabot[bot] 1cb5e9ab2f 💄 Rebuild CSS 2025-09-17 05:02:38 +00:00
dependabot[bot] cfa6913496 📌 Bump commander from 14.0.0 to 14.0.1
Bumps [commander](https://github.com/tj/commander.js) from 14.0.0 to 14.0.1.
- [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.0...v14.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 05:02:27 +00:00
dependabot[bot] ad7bac5432 📌 Bump puppeteer from 24.19.0 to 24.21.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.19.0 to 24.21.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.19.0...puppeteer-v24.21.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 05:02:21 +00:00
dependabot[bot] f68b90589c 📌 Bump @tailwindcss/cli from 4.1.12 to 4.1.13
Bumps [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli) from 4.1.12 to 4.1.13.
- [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.1.13/packages/@tailwindcss-cli)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 05:02:10 +00:00
dependabot[bot] 97fa4b4970 📌 Bump @headlessui/react from 2.2.7 to 2.2.8
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.2.7 to 2.2.8.
- [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.8/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 05:02:01 +00:00
dependabot[bot] 1bbe7b5173 📌 Bump tailwindcss from 4.1.12 to 4.1.13
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 4.1.12 to 4.1.13.
- [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.1.13/packages/tailwindcss)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 05:01:50 +00:00
Miles Barr 9872eebdde Merge branch 'dev' into dev 2025-09-16 07:56:02 -07:00
Nuno C. df859f1d70 Merge pull request #2482 from iunn-sh/main
✨ Feat: add cloud & cloud-moon icon
2025-09-16 11:11:08 +01:00
Nuno C. 6f6584e83a Merge pull request #2455 from ZhenShuo2021/feat/img-background
✨ Feat: Replace all background-image CSS with <img> tags
2025-09-16 11:10:32 +01:00
Nuno C. cd93ec0708 Merge pull request #2451 from ZhenShuo2021/feat/image-process
✨ Feat(article-link, hero): improve image handling
2025-09-16 11:10:04 +01:00
ZhenShuo Leo 3f0dc1d6e1 feat(hero): replace div with img tag
Changed: basic and thumbAndBackground layout
2025-09-16 15:08:36 +08:00
ZhenShuo Leo 340364f31a feat(article-link): use semantic HTML 2025-09-16 15:08:36 +08:00
ZhenShuo Leo d21a4e6e4a feat(term-link): implement the same behavior as article-link in term-link/card.html
use new hover logic
replace div with img tag
2025-09-16 15:08:36 +08:00
ZhenShuo Leo 01b998e070 feat(article-link): replace background div with img tag 2025-09-16 15:08:36 +08:00
ZhenShuo Leo 5bab41062a refactor(article-link): remove unnecessary with syntax 2025-09-16 15:08:35 +08:00
ZhenShuo Leo b1b7aa1f42 feat(article-link): reimplement card hover using ::before method
The previous method was not intuitive since there was nothing in the <a> tag,
and required group-xxx classes for every element.

The new pseudo element method fixes those problems, see:

https://kittygiraudel.com/2022/04/02/accessible-cards/
2025-09-16 15:08:35 +08:00
ZhenShuo Leo 8911ac843a chore(term-link): remove unused .Params.images 2025-09-16 15:08:35 +08:00
ZhenShuo Leo cb479d5693 feat(hero): support internal links for featureimage
This commit also gives the `featureimage` frontmatter the highest priority, preventing it from being overridden by hidden logic.
2025-09-16 15:08:35 +08:00
ZhenShuo Leo 9c1d56e0e7 feat(article-link): support internal links for featureimage
This commit also gives the `featureimage` frontmatter the highest priority, preventing it from being overridden by hidden logic.
2025-09-16 15:08:35 +08:00
ZhenShuo Leo 6d6b5d3946 fix(article-link): skip fetching images when hideFeatureImage is true 2025-09-16 15:08:35 +08:00
ZhenShuo Leo ff3a6b4253 fix(article-link): explicitly set featured priority 2025-09-16 15:08:35 +08:00
ZhenShuo Leo 0f7f27b916 refactor(article-link): separate Go templates from HTML rendering
Add descriptions for the purpose of each template.
It takes time to figure out their use every time.
2025-09-16 15:08:35 +08:00
ZhenShuo Leo c8ee5fc657 refactor(article-link): unify featured image rendering with MediaType check 2025-09-16 15:08:35 +08:00
ZhenShuo Leo e3194eca1e chore(article-link): remove unused .Params.images
The `.Params.images` and `.Site.Params.images` have existed since the creation of the files
but have never been referenced in the documentation since their initial commit (3cc1569fc1)

Also, Meta tags are not valid inside card elements
2025-09-16 15:08:22 +08:00
ish d25ec813f3 revert unrelated change 2025-09-16 10:10:40 +08:00
ish 5fe9f56561 Merge branch 'nunocoracao:main' into main 2025-09-16 10:00:05 +08:00
Nuno Coração ade5f2c6d6 🔖 v2.91.0 2025-09-15 23:30:30 +01:00
Nuno C. 3e652b3749 Merge pull request #2401 from nunocoracao/dev
🔖 v2.90.0
2025-09-15 23:26:09 +01:00
Nuno C. 986c67effc Merge branch 'main' into dev 2025-09-15 23:25:59 +01:00
Nuno Coração 174138d4b4 final polish 2025-09-15 23:25:23 +01:00
Nuno C. 488be56b5f Merge pull request #2466 from ZhenShuo2021/feat/repo-card-csp
✨ Feat(repo-card): remove inline style
2025-09-15 23:08:42 +01:00
Nuno C. 53eff2b690 Merge pull request #2465 from ZhenShuo2021/feat/timeline-md
✨ Feat(timeline): support markdown content
2025-09-15 23:08:24 +01:00
Nuno C. c14887e992 Merge pull request #2456 from ZhenShuo2021/fix/a11y
🐛 Fix(a11y): multiple a11y issues
2025-09-15 23:04:54 +01:00
Nuno C. dab39ebe02 Merge pull request #2428 from ZhenShuo2021/fix/frontmatter-toc
🐛 Fix(single.html): toc not controlled by frontmatter
2025-09-15 23:04:20 +01:00
Nuno C. e6cd7a9948 Merge pull request #2426 from ZhenShuo2021/fix/code-copy
🐛 Fix(code.js): filter line number on code copy
2025-09-15 23:03:55 +01:00
Nuno C. 64aed3c6e7 Merge pull request #2403 from ZhenShuo2021/fix/figure-link-area
🐛 Fix(figure): limit link hover area to image only
2025-09-15 23:03:33 +01:00
Nuno C. d8add6e15f Merge pull request #2399 from ZhenShuo2021/feat/enable-tailwind-colors
✨ Feat(tailwind): enable default colors
2025-09-15 23:02:55 +01:00
Nuno C. ecd990b5e5 Merge pull request #2397 from ZhenShuo2021/chore/prune-tailwind-classes
🔧 Chore: prune unused Tailwind classes
2025-09-15 23:02:30 +01:00
Nuno C. 295ce738be Merge pull request #2393 from ZhenShuo2021/fix/rtl-layout-issues
🐛 Fix(rtl): multiple layout issues
2025-09-15 23:02:11 +01:00
Nuno C. ed6fb66bbe Merge pull request #2391 from ZhenShuo2021/refactor/logical-properties
♻️ Refactor(CSS): use logical properties for language direction
2025-09-15 23:01:41 +01:00
Nuno C. 6e9fa7825b Merge pull request #2408 from bilyes/add-missing-share-mastodon-title
Fix(link-title): Add missing English title for the share to Mastodon link.
2025-09-15 22:59:50 +01:00
Nuno C. 8deb28fb6c Merge pull request #2409 from breard-r/author_link_title
Add a title to the author links
2025-09-15 22:59:27 +01:00
Nuno C. 6f5d15a938 Merge pull request #2427 from ZhenShuo2021/chore/issue-version-check
🔧 Chore: add Hugo version check to bug report
2025-09-15 22:58:13 +01:00
Nuno C. 2e52ed70cc Merge pull request #2457 from Flyburg/patch-doc
📝 Docs: Add description of "showThumbnail" option of GitHub shortcodes.
2025-09-15 22:55:43 +01:00
Nuno C. f67647f2f0 Merge pull request #2468 from ZhenShuo2021/docs/fingerprintAlgorithm
📝 Docs: update documentation for fingerprintAlgorithm
2025-09-15 22:55:18 +01:00
Nuno C. ce1b0abc7d Merge pull request #2458 from githubdand/patch-2
Update users.json
2025-09-15 22:54:22 +01:00
Nuno C. c6f205d41f Merge branch 'dev' into patch-2 2025-09-15 22:54:13 +01:00
Nuno C. 328bfb553f Merge pull request #2450 from LarvenStein/patch-1
Adding myself to users :)
2025-09-15 22:53:40 +01:00
Nuno C. 7586dd8997 Merge branch 'dev' into patch-1 2025-09-15 22:53:26 +01:00
Nuno C. 84a23d7e1f Merge pull request #2434 from kieran-lowe/feat/users
feat: add user to users
2025-09-15 22:52:55 +01:00
Nuno C. 7890d88c12 Merge branch 'dev' into feat/users 2025-09-15 22:52:23 +01:00
Nuno C. 541f40c370 Merge pull request #2432 from CodeBotD/patch-2
Added A Blowfish User 🐟
2025-09-15 22:51:34 +01:00
Nuno C. 73b3814e7b Merge branch 'dev' into patch-2 2025-09-15 22:51:27 +01:00
Nuno C. c52f47ae4b Merge pull request #2411 from jnonino/patch-1
Add Learn-Software.com to users.json
2025-09-15 22:50:12 +01:00
Nuno C. 2ff69874c1 Merge pull request #2394 from ZhenShuo2021/fix/fetch-repo
🐛 Fix(fetch-repo): skip DOM updates for invalid remote data
2025-09-15 22:48:56 +01:00
Nuno C. d4f703b397 Merge pull request #2407 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-2.2.7
📌 Bump @headlessui/react from 2.2.6 to 2.2.7
2025-09-15 22:45:19 +01:00
Nuno C. a2c4e88a06 Merge pull request #2418 from nunocoracao/dependabot/github_actions/dev/actions/checkout-5
👷 Bump actions/checkout from 4 to 5
2025-09-15 22:43:58 +01:00
Nuno C. 09d08ef3ed Merge pull request #2419 from nunocoracao/dependabot/github_actions/dev/actions/first-interaction-3
👷 Bump actions/first-interaction from 2 to 3
2025-09-15 22:43:50 +01:00
Nuno C. db48c825c6 Merge pull request #2442 from nunocoracao/dependabot/github_actions/dev/actions/upload-pages-artifact-4
👷 Bump actions/upload-pages-artifact from 3 to 4
2025-09-15 22:42:29 +01:00
Nuno C. 126941a98d Merge pull request #2443 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2025-09-15 22:42:19 +01:00
Nuno C. 97aaec0c5b Merge pull request #2470 from nunocoracao/dependabot/github_actions/dev/actions/stale-10
👷 Bump actions/stale from 9 to 10
2025-09-15 22:42:08 +01:00
Nuno C. e047f620d9 Merge pull request #2472 from nunocoracao/dependabot/github_actions/dev/actions/setup-node-5
👷 Bump actions/setup-node from 4 to 5
2025-09-15 22:41:57 +01:00
Nuno C. 1e80605801 Merge pull request #2473 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.19.0
📌 Bump puppeteer from 24.16.2 to 24.19.0
2025-09-15 22:41:46 +01:00
Nuno C. a4c349383b Merge pull request #2474 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.11.0
📌 Bump mermaid from 11.10.0 to 11.11.0
2025-09-15 22:41:29 +01:00
Miles Barr bf85845bc2 Fix HTML for menu items that only have an icon 2025-09-14 09:03:43 -07:00
ZhenShuo Leo 9906b03fa9 fix(single.html): toc not controlled by frontmatter (#2421) 2025-09-14 17:09:27 +08:00
ZhenShuo Leo e355715a3b feat(timeline): support markdown content 2025-09-12 20:25:35 +08:00
ZhenShuo Leo af221fbf3b perf(repo-card): only generate used CSS class 2025-09-12 11:13:23 +08:00
ZhenShuo Leo f94f60aef6 perf(repo-card): load CSS once globally instead of per card 2025-09-12 10:31:28 +08:00
ish c648324aca fix current color 2025-09-10 13:08:39 +08:00
ish 479e2efff4 fix conflict with dev 2025-09-10 13:03:47 +08:00
dependabot[bot] a66464e972 📦 Update packaged Mermaid 2025-09-10 05:02:17 +00:00
dependabot[bot] 6bf8cc6c9c 📌 Bump mermaid from 11.10.0 to 11.11.0
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.10.0 to 11.11.0.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.10.0...mermaid@11.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 05:01:51 +00:00
dependabot[bot] b48172bd63 📌 Bump puppeteer from 24.16.2 to 24.19.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.16.2 to 24.19.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.16.2...puppeteer-v24.19.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 05:01:41 +00:00
dependabot[bot] 99ae96f436 👷 Bump actions/setup-node from 4 to 5
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 05:01:28 +00:00
dependabot[bot] f4fb43dfaf 👷 Bump actions/stale from 9 to 10
Bumps [actions/stale](https://github.com/actions/stale) from 9 to 10.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v9...v10)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '10'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 05:01:25 +00:00
ish 4fa6542bf2 add icons: cloud, cloud-moon 2025-09-10 12:58:58 +08:00
ZhenShuo Leo 2ff90348e7 feat(repo-card): fix inline style CSP issue 2025-09-10 07:27:47 +08:00
nunocoracao fa8d3ed4ea Update Hugo supported version 2025-09-09 06:07:15 +00:00
ZhenShuo Leo b30e9da6cc docs: update docs for fingerprintAlgorithm 2025-09-07 15:46:04 +08:00
githubdand dde8b29674 Update users.json 2025-09-02 07:00:09 +10:00
ZhenShuo Leo 7af1ca359b chore(a11y): update german title translation 2025-09-01 21:10:30 +08:00
Fanovian 42f7e80bcd 📝 Docs: Add description of "showThumbnail" option of GitHub shortcodes in other lang 2025-09-01 11:53:49 +08:00
ZhenShuo Leo 539a776d1c chore(a11y): add title to i18n 2025-09-01 02:19:30 +08:00
aikhae 55efc7f208 Adding myself to users :) 2025-08-31 09:30:45 +02:00
dependabot[bot] d9151db6c0 👷 Bump actions/upload-pages-artifact from 3 to 4
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-27 15:48:19 +00:00
ZhenShuo Leo ccc7fc8a98 feat(tailwind): enable default colors 2025-08-22 04:15:44 +08:00
ZhenShuo Leo 9bf7c1dc0b chore: remove lighthouse.html in exampleSite 2025-08-22 04:14:06 +08:00
ZhenShuo Leo 4bb67ca1ca chore: remove text-white 2025-08-22 04:03:22 +08:00
ZhenShuo Leo 97b5a3acdd chore: remove from-gray-100 2025-08-22 04:03:22 +08:00
ZhenShuo Leo 76aa3741d1 chore: remove text-gray 2025-08-22 04:03:22 +08:00
ZhenShuo Leo 814df64d92 chore: remove bg-gray-100 2025-08-22 04:03:22 +08:00
ZhenShuo Leo aa76e94538 fix(rtl): correct article-link title direction (#2023) 2025-08-22 03:34:02 +08:00
ZhenShuo Leo 58b7a6be39 style(toc): add padding to the end
This improves appearance in chrome and safari
and fixes content being blocked in firefox
2025-08-22 03:34:02 +08:00
ZhenShuo Leo 2efd19e793 fix(rtl): homepage card layout broken on rtl site 2025-08-22 03:34:02 +08:00
ZhenShuo Leo 41f6b37e56 refactor(tailwind): use logical properties for language direction 2025-08-22 03:34:02 +08:00
ZhenShuo Leo 3150fb6631 fix(rtl): timeline shortcode broken on rtl site 2025-08-22 03:34:02 +08:00
ZhenShuo Leo 637c43a125 fix(rtl): cardViewScreenWidth broken on rtl site 2025-08-22 03:34:02 +08:00
ZhenShuo Leo b005096833 fix(rtl): incorrect article-link badge padding 2025-08-22 03:34:02 +08:00
Nuno C. 9cc808ea93 Merge pull request #2436 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-24.16.2
📌 Bump puppeteer from 24.15.0 to 24.16.2
2025-08-21 14:39:39 +01:00
Nuno C. 710709d527 Merge pull request #2437 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.10.0
📌 Bump mermaid from 11.9.0 to 11.10.0
2025-08-21 14:39:25 +01:00
Nuno C. 4b5403051d Merge pull request #2438 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/cli-4.1.12
📌 Bump @tailwindcss/cli from 4.1.11 to 4.1.12
2025-08-21 14:39:10 +01:00
ZhenShuo Leo 0840169724 chore(code.js): add linenos comments 2025-08-21 06:00:26 +08:00
ZhenShuo Leo 9d0aecf41f refactor(code.js): simplify code
uses optional chaining
inlines short functions
2025-08-21 05:40:30 +08:00
dependabot[bot] 545b25e786 💄 Rebuild CSS 2025-08-20 07:34:33 +00:00
dependabot[bot] cd4538bdb0 📌 Bump @tailwindcss/cli from 4.1.11 to 4.1.12
Bumps [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli) from 4.1.11 to 4.1.12.
- [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.1.12/packages/@tailwindcss-cli)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-20 07:33:59 +00:00
dependabot[bot] 2bdd3f1422 💄 Rebuild CSS 2025-08-20 07:11:04 +00:00
dependabot[bot] a6cc41ce54 📦 Update packaged Mermaid 2025-08-20 07:11:02 +00:00
dependabot[bot] 27ebe4edb4 📌 Bump mermaid from 11.9.0 to 11.10.0
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.9.0 to 11.10.0.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.9.0...mermaid@11.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-20 07:10:32 +00:00
dependabot[bot] 67b605d396 💄 Rebuild CSS 2025-08-20 06:58:49 +00:00
dependabot[bot] 784e1d3e37 📌 Bump puppeteer from 24.15.0 to 24.16.2
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.15.0 to 24.16.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.15.0...puppeteer-v24.16.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-20 06:58:14 +00:00
Kieran Lowe 273049009a feat: add user to users 2025-08-19 18:45:12 +00:00
Dimitrius Farida ec07de5be1 Update users.json 2025-08-19 09:35:42 -04:00
ZhenShuo Leo c5c8da20ae chore: add Hugo version check to bug report 2025-08-16 21:16:43 +08:00
ZhenShuo Leo 65637ec3f0 fix(code.js): filter line number on code copy 2025-08-16 20:58:06 +08:00
dependabot[bot] 4c9a059635 💄 Rebuild CSS 2025-08-13 05:55:08 +00:00
dependabot[bot] 226bcc0c70 👷 Bump actions/first-interaction from 2 to 3
Bumps [actions/first-interaction](https://github.com/actions/first-interaction) from 2 to 3.
- [Release notes](https://github.com/actions/first-interaction/releases)
- [Commits](https://github.com/actions/first-interaction/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/first-interaction
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 05:54:39 +00:00
dependabot[bot] 89f5e8d1de 💄 Rebuild CSS 2025-08-13 05:53:30 +00:00
dependabot[bot] 5095321809 👷 Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 05:53:01 +00:00
Julian Nonino a67f31aa06 Remove extra comma 2025-08-07 22:10:13 +01:00
Julian Nonino f57935e5ca Add Learn-Software.com to users.json 2025-08-07 22:07:30 +01:00
Rodolphe Bréard a3b6dfacd5 Add a title on author links 2025-08-06 17:03:08 +02:00
test a4f18b8242 Add missing English title for the share to Mastodon link. 2025-08-06 10:37:54 -04:00
dependabot[bot] 943b84401c 💄 Rebuild CSS 2025-08-06 05:48:43 +00:00
dependabot[bot] 5b119251df 📌 Bump @headlessui/react from 2.2.6 to 2.2.7
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.2.6 to 2.2.7.
- [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.7/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 05:48:16 +00:00
ZhenShuo Leo 4b9062f4c1 style(blur): rename data-target-id to data-blur-id 2025-08-05 18:36:25 +08:00
ZhenShuo Leo e78105429f fix(a11y): add underline links on article card 2025-08-05 18:36:24 +08:00
ZhenShuo Leo a070040538 fix(a11y): zen mode not working when showZenMode is false
load zen-mode.js in head.html for clarity
2025-08-05 18:36:24 +08:00
ZhenShuo Leo 344f7de0da fix(a11y): prevent disableImages FOUC 2025-08-05 18:23:16 +08:00
ZhenShuo Leo ade00547b3 fix(a11y): disableImages not working when layoutBackgroundBlur is false 2025-08-05 18:23:16 +08:00
ZhenShuo Leo 10ffbca4c0 refactor(a11y): simply code 2025-08-05 17:39:59 +08:00
ZhenShuo Leo 571b875f4a fix(figure): limit link hover area to image only 2025-08-03 19:17:12 +08:00
ZhenShuo Leo 6a4123f59f fix(fetch-repo): prevent DOM updates with invalid remote data 2025-08-03 17:09:24 +08:00
Nuno Coração f8d272d9ad new version 2025-08-03 02:14:14 +01:00
1797 changed files with 44417 additions and 21136 deletions

No files matched your search

+1
View File
@@ -0,0 +1 @@
* @nunocoracao
+8
View File
@@ -21,6 +21,14 @@ body:
options:
- label: I have checked existing Issues and I feel this bug has not been raised
required: true
- type: checkboxes
id: hugo-version-check
attributes:
label: Hugo Version Check
description: Please confirm that your Hugo version is within the supported range specified in the [config](https://github.com/nunocoracao/blowfish/blob/main/config.toml)
options:
- label: My Hugo version is within the supported range
required: true
- type: textarea
id: describe-bug
attributes:
+7 -7
View File
@@ -8,36 +8,36 @@ jobs:
if: ${{ github.actor == 'dependabot[bot]' }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
ref: "${{ github.head_ref }}"
- name: Install dependencies and Build Theme
uses: actions/setup-node@v4
uses: actions/setup-node@v6
- run: npm install
- run: npm run assets
- name: Commit and push Chart.js changes
uses: stefanzweifel/git-auto-commit-action@v6
uses: stefanzweifel/git-auto-commit-action@v7
with:
branch: "${{ github.head_ref }}"
push_options: "--dry-run"
file_pattern: "assets/lib/chart/*"
commit_message: "📦 Update packaged ChartJS"
- name: Commit Fuse changes
uses: stefanzweifel/git-auto-commit-action@v6
uses: stefanzweifel/git-auto-commit-action@v7
with:
branch: "${{ github.head_ref }}"
push_options: "--dry-run"
file_pattern: "assets/lib/fuse/*"
commit_message: "📦 Update packaged FuseJS"
- name: Commit KaTeX changes
uses: stefanzweifel/git-auto-commit-action@v6
uses: stefanzweifel/git-auto-commit-action@v7
with:
branch: "${{ github.head_ref }}"
push_options: "--dry-run"
file_pattern: "assets/lib/katex/*"
commit_message: "📦 Update packaged KaTeX"
- name: Commit Mermaid changes
uses: stefanzweifel/git-auto-commit-action@v6
uses: stefanzweifel/git-auto-commit-action@v7
with:
branch: "${{ github.head_ref }}"
push_options: "--dry-run"
@@ -45,7 +45,7 @@ jobs:
commit_message: "📦 Update packaged Mermaid"
- run: npm run build
- name: Commit CSS changes
uses: stefanzweifel/git-auto-commit-action@v6
uses: stefanzweifel/git-auto-commit-action@v7
with:
branch: "${{ github.head_ref }}"
push_options: "--dry-run"
+2 -2
View File
@@ -8,9 +8,9 @@ jobs:
zip:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- run: zip -r config-default.zip config/_default
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v6
with:
name: config-default
path: config-default.zip
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
issues: write
pull-requests: write
steps:
- uses: actions/first-interaction@v2
- uses: actions/first-interaction@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
issue-message: "Thanks for contributing to Blowfish"
+2 -2
View File
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
ref: dev
submodules: true # Fetch Hugo themes (true OR recursive)
@@ -38,7 +38,7 @@ jobs:
- name: Create Pull Request
if: steps.git-check.outputs.modified == 'true'
uses: peter-evans/create-pull-request@v7
uses: peter-evans/create-pull-request@v8
with:
commit-message: Update Hugo supported version
title: ⚙️ Update Hugo supported version
+2 -2
View File
@@ -37,7 +37,7 @@ jobs:
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: recursive
- name: Setup Pages
@@ -51,7 +51,7 @@ jobs:
run: |
hugo --minify -s exampleSite --themesDir ../.. -d ../docs --baseURL https://nunocoracao.github.io/blowfish/
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
uses: actions/upload-pages-artifact@v4
with:
path: ./docs
+2 -1
View File
@@ -18,7 +18,7 @@ jobs:
pull-requests: write
steps:
- uses: actions/stale@v9
- uses: actions/stale@v10
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message:
@@ -32,3 +32,4 @@ jobs:
days-before-close: 0
remove-stale-when-updated: true
operations-per-run: 100
exempt-issue-labels: 'keep,security'
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 0
+9
View File
@@ -23,6 +23,15 @@ exampleSite/resources/
node_modules
.hugo_build.lock
# Firebase scripts
scripts/serviceAccountKey.json
scripts/node_modules/
scripts/*.csv
# Google Analytics export (temporary)
ga-pageviews.csv
*.csv
# OS generated files
.DS_Store
.DS_Store?
+1 -1
View File
@@ -25,7 +25,7 @@ static
#
# This create an unclose node
layouts/_default/_markup/render-heading.html
layouts/_default/_markup
layouts/_default/index.json
layouts/shortcodes/screenshot.html
layouts/shortcodes/figure.html
-1
View File
@@ -6,7 +6,6 @@
"trailingComma": "all",
"proseWrap": "always",
"plugins": [
"@awmottaz/prettier-plugin-void-html",
"prettier-plugin-go-template"
],
"overrides": [
+47
View File
@@ -178,6 +178,53 @@
],
"description": "Output a set of up to three different colors. Blowfish swatches Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#swatches ",
},
"Tabs - Basic": {
"prefix": "tabs",
"body": [
"{{< tabs >}}",
"",
" {{< tab label=\"${1:Tab 1}\" >}}",
" $2",
" {{< /tab >}}",
"",
" {{< tab label=\"${3:Tab 2}\" >}}",
" $4",
" {{< /tab >}}",
"",
"{{< /tabs >}}"
],
"description": "Insert Hugo tabs shortcode"
},
"Tabs - Full Options": {
"prefix": "tabsfull",
"body": [
"{{< tabs group=\"${1:group-name}\" default=\"${2:Default Tab}\" >}}",
"",
" {{< tab label=\"${3:Tab 1}\" icon=\"${4:code}\" >}}",
" $5",
" {{< /tab >}}",
"",
" {{< tab label=\"${2:Default Tab}\" icon=\"${6:sun}\" >}}",
" $7",
" {{< /tab >}}",
"",
" {{< tab label=\"${8:Tab 3}\" icon=\"${9:moon}\" >}}",
" $0",
" {{< /tab >}}",
"",
"{{< /tabs >}}"
],
"description": "Insert Hugo tabs with group, default, and icons"
},
"Tab": {
"prefix": "tab",
"body": [
"{{< tab label=\"${1:Tab Label}\" >}}",
"$2",
"{{< /tab >}}"
],
"description": "Insert Hugo tab item"
},
"timeline": {
"prefix": ["BFS-timeline", "HSC-timeline", "timeline"],
"body": [
+2 -1
View File
@@ -1,5 +1,7 @@
## How to contribute to Blowfish
All development occurs on the `dev` branch and new PRs should be forked from here.
### Bugs & other issues
#### Found a bug? 🐛
@@ -11,7 +13,6 @@
#### Have a patch that fixes an issue?
- Great! Open a new GitHub pull request with the patch.
- All development occurs on the `dev` branch and new PRs should be forked from here.
- The commands `npm run example`, `npm run example:core`, and `npm run example:production` can be used to test local changes using the example site.
- Ensure the PR description clearly describes the problem and solution. Include the relevant issue number, if applicable.
- **Before submitting**, check the [coding conventions](#coding-conventions) section below to learn more about coding and commit message expectations.
+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",
]
+179
View File
@@ -0,0 +1,179 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | Deutsch | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.141.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.141.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
Blowfish ist ein leistungsstarkes, schlankes Theme für [Hugo](https://gohugo.io). Es wurde mit Tailwind CSS entwickelt und bietet ein klares, minimalistisches Design, das Ihre Inhalte in den Vordergrund stellt.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Demo-Website](https://blowfish.page/)
📑 [Theme-Dokumentation](https://blowfish.page/docs/)
💎 [Merchandise-Shop](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [Fehlerberichte & Issues](https://github.com/nunocoracao/blowfish/issues)
💡 [Fragen & Feature-Anfragen](https://github.com/nunocoracao/blowfish/discussions)
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
## Funktionen
- Vollständig responsives Layout mit Tailwind CSS 3.0
- Mehrere Farbschemata (oder vollständig anpassbar)
- Dark Mode (erzwungen ein/aus oder automatisch mit Benutzerumschaltung)
- Hochgradig anpassbare Konfiguration
- Firebase-Integration zur Unterstützung dynamischer Daten
- Ansichtszähler & Like-Mechanismus
- Verwandte Artikel
- Mehrere Homepage-Layouts
- Mehrere Autoren
- Artikelserien
- Datums- und gewichtsbasierte Artikelsortierung
- Zen-Modus zum Lesen von Artikeln
- Flexibel mit beliebigen Inhaltstypen, Taxonomien und Menüs
- Kopf- und Fußzeilenmenüs
- Verschachtelte Menüs & Unternavigationsmenüs
- Scrollbares Inhaltsverzeichnis
- Mehrsprachige Inhaltsunterstützung einschließlich RTL-Sprachen
- Möglichkeit, auf Beiträge auf Websites von Drittanbietern zu verlinken
- Unterstützung für mehrere Shortcodes wie Gallery, Timeline, GitHub-Karten und Carousels
- GitHub Alerts-Syntax, 15 Typen, zusammenklappbar
- Buymeacoffee-Integration
- Clientseitige Website-Suche mit Fuse.js
- Diagramme und Visualisierungen mit Mermaid
- Charts mit Chart.js
- TypeIt-Integration
- Youtube-Einbettungen mit Leistungsverbesserungen
- Mathematische Notation mit KaTeX
- SVG-Icons von FontAwesome 6
- Automatische Bildgrößenanpassung mit Hugo Pipes
- Überschriften-Anker, Inhaltsverzeichnisse, Code-Kopieren, Buttons, Badges und mehr
- HTML- und Emoji-Unterstützung in Artikeln 🎉
- SEO-freundlich mit Links zum Teilen in sozialen Medien
- Unterstützung für Fathom Analytics und Google Analytics
- RSS-Feeds, Favicons und Kommentare
- Erweiterte Anpassung mit einfachen Tailwind-Farbdefinitionen und -Stilen
- Optimiert für Leistung und Barrierefreiheit mit perfekten Lighthouse-Scores
- Vollständig dokumentiert mit regelmäßigen Updates
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Dokumentation
Blowfish verfügt über eine [umfangreiche Dokumentation](https://blowfish.page/docs/), die alle Aspekte des Themes abdeckt. Lesen Sie unbedingt die [Dokumentation](https://blowfish.page/docs/), um mehr über die Verwendung des Themes und seiner Funktionen zu erfahren.
---
## Installation
Blowfish unterstützt mehrere Installationsmethoden - als git submodule, als Hugo Module oder als vollständig manuelle Installation.
Detaillierte Anweisungen für jede Methode finden Sie in der [Installations-Dokumentation](https://blowfish.page/docs/installation). Für die einfachste Einrichtung sollten Sie die Dokumentation konsultieren. Im Folgenden finden Sie eine Schnellstartanleitung mit Submodulen, wenn Sie git verwenden, oder Hugo Modules, wenn Sie bereits Erfahrung mit der Installation von Hugo-Themes haben.
### Schnellstart mit Blowfish Tools
> **Hinweis:** Stellen Sie sicher, dass Sie **Node.js**, **Git** und **Hugo** installiert haben und dass Sie ein neues Hugo-Projekt erstellt haben, bevor Sie fortfahren.
Wir haben gerade ein neues CLI-Tool gestartet, das Ihnen beim Einstieg in Blowfish hilft. Es erstellt ein neues Hugo-Projekt, installiert das Theme und richtet die Theme-Konfigurationsdateien für Sie ein. Es befindet sich noch in der Beta-Phase, also [melden Sie bitte alle Probleme, die Sie finden](https://github.com/nunocoracao/blowfish-tools).
Installieren Sie das CLI-Tool global mit npm (oder einem anderen Paketmanager):
```shell
npm i -g blowfish-tools
```
Führen Sie dann den Befehl `blowfish-tools` aus, um eine interaktive Sitzung zu starten, die Sie durch Erstellungs- und Konfigurationsanwendungsfälle führt.
```shell
blowfish-tools
```
Sie können auch den Befehl `blowfish-tools new` ausführen, um ein neues Hugo-Projekt zu erstellen und das Theme in einem Schritt zu installieren. Weitere Informationen finden Sie in der CLI-Hilfe.
```shell
blowfish-tools new mynewsite
```
### Schnellstart mit git submodules
> **Hinweis:** Stellen Sie sicher, dass Sie **Git** und **Hugo** installiert haben und dass Sie ein neues Hugo-Projekt erstellt haben, bevor Sie fortfahren.
1. Initialisieren Sie git aus Ihrem Projektverzeichnis:
```shell
git init
```
2. Konfigurieren Sie Blowfish als git submodule:
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. Löschen Sie im Stammordner Ihrer Website die von Hugo generierte Datei `hugo.toml`. Kopieren Sie die `*.toml` Konfigurationsdateien aus dem Theme in Ihren `config/_default/` Ordner.
Sie finden diese Theme-Konfigurationsdateien im Hugo-Cache-Verzeichnis oder [laden Sie eine Kopie](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) von GitHub herunter.
4. Folgen Sie den Anweisungen unter [Erste Schritte](https://blowfish.page/docs/getting-started/), um Ihre Website zu konfigurieren.
### Schnellstart mit Hugo
> **Hinweis:** Stellen Sie sicher, dass Sie **Go** und **Hugo** installiert haben und dass Sie ein neues Hugo-Projekt erstellt haben, bevor Sie fortfahren.
1. Initialisieren Sie Hugo Modules aus Ihrem Projektverzeichnis:
```shell
hugo mod init github.com/<username>/<repo-name>
```
2. Erstellen Sie `config/_default/module.toml` und fügen Sie Folgendes hinzu:
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. Starten Sie Ihren Server mit `hugo server` und das Theme wird automatisch heruntergeladen.
4. Löschen Sie im Stammordner Ihrer Website die von Hugo generierte Datei `hugo.toml`. Kopieren Sie die `*.toml` Konfigurationsdateien aus dem Theme in Ihren `config/_default/` Ordner.
> **Hinweis:** Überschreiben Sie nicht die oben erstellte Datei `module.toml`!
Sie finden diese Theme-Konfigurationsdateien im Hugo-Cache-Verzeichnis oder [laden Sie eine Kopie](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) von GitHub herunter.
5. Folgen Sie den Anweisungen unter [Erste Schritte](https://blowfish.page/docs/getting-started/), um Ihre Website zu konfigurieren.
### Theme-Updates installieren
Wenn neue Versionen veröffentlicht werden, können Sie das Theme mit Hugo aktualisieren. Führen Sie einfach `hugo mod get -u` aus Ihrem Projektverzeichnis aus und das Theme wird automatisch auf die neueste Version aktualisiert.
Detaillierte [Update-Anweisungen](https://blowfish.page/docs/installation/#installing-updates) sind in der Dokumentation verfügbar.
---
## Mitwirken
Blowfish wird sich voraussichtlich im Laufe der Zeit weiterentwickeln. Ich beabsichtige, weiterhin Funktionen hinzuzufügen und nach Bedarf Änderungen vorzunehmen.
Melden Sie sich gerne mit Problemen oder Vorschlägen für neue Funktionen, die Sie gerne sehen würden.
- 🐛 **Fehlerberichte & Issues:** Verwenden Sie [GitHub Issues](https://github.com/nunocoracao/blowfish/issues)
- 💡 **Ideen für neue Funktionen:** Eröffnen Sie eine Diskussion auf [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
- 🙋‍♀️ **Allgemeine Fragen:** Gehen Sie zu [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
Wenn Sie in der Lage sind, einen Fehler zu beheben oder eine neue Funktion zu implementieren, sind Pull Requests zu diesem Zweck willkommen. Erfahren Sie mehr in den [Richtlinien für Mitwirkende](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md).
---
## Stargazers im Zeitverlauf
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
+179
View File
@@ -0,0 +1,179 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | Español | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.141.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.141.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
Blowfish está diseñado para ser un tema potente y ligero para [Hugo](https://gohugo.io). Está construido usando Tailwind CSS con un diseño limpio y minimalista que prioriza tu contenido.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Sitio de demostración](https://blowfish.page/)
📑 [Documentación del tema](https://blowfish.page/docs/)
💎 [Tienda de merchandising](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [Reportes de errores y problemas](https://github.com/nunocoracao/blowfish/issues)
💡 [Preguntas y solicitudes de funcionalidades](https://github.com/nunocoracao/blowfish/discussions)
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
## Características
- Diseño totalmente responsive construido con Tailwind CSS 3.0
- Múltiples esquemas de color (o personaliza completamente el tuyo propio)
- Modo oscuro (forzado activado/desactivado o cambio automático con opción de usuario)
- Configuración altamente personalizable
- Integración con Firebase para soportar datos dinámicos
- Contador de vistas y mecanismo de likes
- Artículos relacionados
- Múltiples diseños de página de inicio
- Múltiples autores
- Series de artículos
- Ordenación de artículos basada en fecha y peso
- Modo zen para lectura de artículos
- Flexible con cualquier tipo de contenido, taxonomías y menús
- Menús de encabezado y pie de página
- Menús anidados y menú de sub-navegación
- Tabla de contenidos con desplazamiento
- Soporte de contenido multilingüe incluyendo idiomas RTL
- Capacidad de enlazar a publicaciones en sitios web de terceros
- Soporte para varios shortcodes como Gallery, Timeline, GitHub cards y Carousels
- Sintaxis de GitHub Alerts, 15 tipos, soporte plegable
- Integración con Buymeacoffee
- Búsqueda en el sitio del lado del cliente impulsada por Fuse.js
- Diagramas y visualizaciones usando Mermaid
- Gráficos usando Chart.js
- Integración con TypeIt
- Incrustaciones de Youtube con mejoras de rendimiento
- Notación matemática usando KaTeX
- Iconos SVG de FontAwesome 6
- Redimensionamiento automático de imágenes usando Hugo Pipes
- Anclajes de encabezados, Tablas de contenidos, Copia de código, Botones, Insignias y más
- Soporte de HTML y Emoji en artículos 🎉
- SEO amigable con enlaces para compartir en redes sociales
- Soporte para Fathom Analytics y Google Analytics
- Feeds RSS, Favicons y soporte de comentarios
- Personalización avanzada usando definiciones de colores y estilos simples de Tailwind
- Optimizado para rendimiento y accesibilidad con puntuaciones perfectas en Lighthouse
- Completamente documentado con actualizaciones regulares
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Documentación
Blowfish tiene [documentación extensa](https://blowfish.page/docs/) que cubre todos los aspectos del tema. Asegúrate de [leer la documentación](https://blowfish.page/docs/) para aprender más sobre cómo usar el tema y sus características.
---
## Instalación
Blowfish soporta varios métodos de instalación - como submódulo de git, módulo de Hugo, o como una instalación completamente manual.
Las instrucciones detalladas para cada método se pueden encontrar en la documentación de [Instalación](https://blowfish.page/docs/installation). Deberías consultar la documentación para obtener la experiencia de configuración más simple. A continuación se presenta una guía de inicio rápido usando submódulos si estás usando git, o módulos de Hugo si ya tienes confianza instalando temas de Hugo.
### Inicio rápido usando Blowfish Tools
> **Nota:** Asegúrate de tener **Node.js**, **Git** y **Hugo** instalados, y de haber creado un nuevo proyecto Hugo antes de continuar.
Acabamos de lanzar una nueva herramienta CLI para ayudarte a comenzar con Blowfish. Creará un nuevo proyecto Hugo, instalará el tema y configurará los archivos de configuración del tema por ti. Todavía está en beta, así que por favor [reporta cualquier problema que encuentres](https://github.com/nunocoracao/blowfish-tools).
Instala la herramienta CLI globalmente usando npm (u otro gestor de paquetes):
```shell
npm i -g blowfish-tools
```
Luego ejecuta el comando `blowfish-tools` para iniciar una ejecución interactiva que te guiará a través de los casos de uso de creación y configuración.
```shell
blowfish-tools
```
También puedes ejecutar el comando `blowfish-tools new` para crear un nuevo proyecto Hugo e instalar el tema de una sola vez. Consulta la ayuda de CLI para más información.
```shell
blowfish-tools new mynewsite
```
### Inicio rápido usando submódulos de git
> **Nota:** Asegúrate de tener **Git** y **Hugo** instalados, y de haber creado un nuevo proyecto Hugo antes de continuar.
1. Desde el directorio de tu proyecto, inicializa git:
```shell
git init
```
2. Configura Blowfish como un submódulo de git:
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. En la carpeta raíz de tu sitio web, elimina el archivo `hugo.toml` que fue generado por Hugo. Copia los archivos de configuración `*.toml` del tema en tu carpeta `config/_default/`.
Encontrarás estos archivos de configuración del tema en el directorio de caché de Hugo, o [descarga una copia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) desde GitHub.
4. Sigue las instrucciones de [Primeros Pasos](https://blowfish.page/docs/getting-started/) para configurar tu sitio web.
### Inicio rápido usando Hugo
> **Nota:** Asegúrate de tener **Go** y **Hugo** instalados, y de haber creado un nuevo proyecto Hugo antes de continuar.
1. Desde el directorio de tu proyecto, inicializa los Módulos de Hugo:
```shell
hugo mod init github.com/<username>/<repo-name>
```
2. Crea `config/_default/module.toml` y agrega lo siguiente:
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. Inicia tu servidor usando `hugo server` y el tema se descargará automáticamente.
4. En la carpeta raíz de tu sitio web, elimina el archivo `hugo.toml` que fue generado por Hugo. Copia los archivos de configuración `*.toml` del tema en tu carpeta `config/_default/`.
> **Nota:** ¡No sobrescribas el archivo `module.toml` que creaste arriba!
Encontrarás estos archivos de configuración del tema en el directorio de caché de Hugo, o [descarga una copia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) desde GitHub.
5. Sigue las instrucciones de [Primeros Pasos](https://blowfish.page/docs/getting-started/) para configurar tu sitio web.
### Instalación de actualizaciones del tema
A medida que se publiquen nuevas versiones, puedes actualizar el tema usando Hugo. Simplemente ejecuta `hugo mod get -u` desde el directorio de tu proyecto y el tema se actualizará automáticamente a la última versión.
Las [instrucciones de actualización](https://blowfish.page/docs/installation/#installing-updates) detalladas están disponibles en la documentación.
---
## Contribuciones
Se espera que Blowfish evolucione con el tiempo. Tengo la intención de seguir agregando características y haciendo cambios según sea necesario.
Siéntete libre de ponerte en contacto con cualquier problema o sugerencia de nuevas características que te gustaría ver.
- 🐛 **Reportes de errores y problemas:** Usa [GitHub Issues](https://github.com/nunocoracao/blowfish/issues)
- 💡 **Ideas para nuevas características:** Abre una discusión en [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
- 🙋‍♀️ **Preguntas generales:** Dirígete a [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
Si puedes corregir un error o implementar una nueva característica, acepto PRs para este propósito. Aprende más en las [guías de contribución](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md).
---
## Stargazers a lo largo del tiempo
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
+179
View File
@@ -0,0 +1,179 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | Français | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.141.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.141.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
Blowfish est conçu pour être un thème puissant et léger pour [Hugo](https://gohugo.io). Il est construit avec Tailwind CSS avec un design épuré et minimaliste qui donne la priorité à votre contenu.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Site de démonstration](https://blowfish.page/)
📑 [Documentation du thème](https://blowfish.page/docs/)
💎 [Boutique de produits dérivés](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [Rapports de bugs et problèmes](https://github.com/nunocoracao/blowfish/issues)
💡 [Questions et demandes de fonctionnalités](https://github.com/nunocoracao/blowfish/discussions)
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
## Fonctionnalités
- Disposition entièrement responsive construite avec Tailwind CSS 3.0
- Plusieurs palettes de couleurs (ou personnalisez entièrement la vôtre)
- Mode sombre (forcé activé/désactivé ou basculement automatique avec commutateur utilisateur)
- Configuration hautement personnalisable
- Intégration Firebase pour prendre en charge les données dynamiques
- Compteur de vues et mécanisme de likes
- Articles connexes
- Plusieurs mises en page pour la page d'accueil
- Plusieurs auteurs
- Séries d'articles
- Tri des articles basé sur la date et le poids
- Mode Zen pour la lecture d'articles
- Flexible avec tous les types de contenu, taxonomies et menus
- Menus d'en-tête et de pied de page
- Menus imbriqués et menu de sous-navigation
- Table des matières défilable
- Support du contenu multilingue incluant la prise en charge des langues RTL
- Possibilité de lier des articles sur des sites web tiers
- Prise en charge de plusieurs shortcodes comme Gallery, Timeline, GitHub cards et Carousels
- Syntaxe GitHub Alerts, 15 types, support pliable
- Intégration Buymeacoffee
- Recherche côté client alimentée par Fuse.js
- Diagrammes et visualisations utilisant Mermaid
- Graphiques utilisant Chart.js
- Intégration TypeIt
- Intégrations Youtube avec améliorations de performance
- Notation mathématique utilisant KaTeX
- Icônes SVG de FontAwesome 6
- Redimensionnement automatique des images utilisant Hugo Pipes
- Ancres de titres, Tables des matières, Copie de code, Boutons, Badges et plus
- Support HTML et Emoji dans les articles 🎉
- SEO optimisé avec liens pour partage sur les réseaux sociaux
- Support de Fathom Analytics et Google Analytics
- Flux RSS, Favicons et support des commentaires
- Personnalisation avancée utilisant de simples définitions de couleurs et styles Tailwind
- Optimisé pour les performances et l'accessibilité avec des scores Lighthouse parfaits
- Entièrement documenté avec des mises à jour régulières
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Documentation
Blowfish dispose d'une [documentation complète](https://blowfish.page/docs/) qui couvre tous les aspects du thème. Assurez-vous de [lire la documentation](https://blowfish.page/docs/) pour en savoir plus sur l'utilisation du thème et de ses fonctionnalités.
---
## Installation
Blowfish prend en charge plusieurs méthodes d'installation - en tant que sous-module git, module Hugo, ou en tant qu'installation complètement manuelle.
Des instructions détaillées pour chaque méthode se trouvent dans la documentation [Installation](https://blowfish.page/docs/installation). Vous devriez consulter la documentation pour l'expérience de configuration la plus simple. Ci-dessous se trouve un guide de démarrage rapide utilisant les sous-modules si vous utilisez git, ou les modules Hugo si vous êtes déjà à l'aise avec l'installation de thèmes Hugo.
### Démarrage rapide avec Blowfish Tools
> **Note :** Assurez-vous d'avoir **Node.js**, **Git** et **Hugo** installés, et d'avoir créé un nouveau projet Hugo avant de continuer.
Nous venons de lancer un nouvel outil CLI pour vous aider à démarrer avec Blowfish. Il créera un nouveau projet Hugo, installera le thème et configurera les fichiers de configuration du thème pour vous. Il est encore en version bêta, veuillez donc [signaler tout problème que vous rencontrez](https://github.com/nunocoracao/blowfish-tools).
Installez l'outil CLI globalement en utilisant npm (ou un autre gestionnaire de paquets) :
```shell
npm i -g blowfish-tools
```
Ensuite, exécutez la commande `blowfish-tools` pour démarrer une exécution interactive qui vous guidera à travers les cas d'utilisation de création et de configuration.
```shell
blowfish-tools
```
Vous pouvez également exécuter la commande `blowfish-tools new` pour créer un nouveau projet Hugo et installer le thème en une seule fois. Consultez l'aide du CLI pour plus d'informations.
```shell
blowfish-tools new mynewsite
```
### Démarrage rapide avec les sous-modules git
> **Note :** Assurez-vous d'avoir **Git** et **Hugo** installés, et d'avoir créé un nouveau projet Hugo avant de continuer.
1. Depuis le répertoire de votre projet, initialisez git :
```shell
git init
```
2. Configurez Blowfish comme un sous-module git :
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. Dans le dossier racine de votre site web, supprimez le fichier `hugo.toml` qui a été généré par Hugo. Copiez les fichiers de configuration `*.toml` du thème dans votre dossier `config/_default/`.
Vous trouverez ces fichiers de configuration du thème dans le répertoire cache de Hugo, ou [téléchargez une copie](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) depuis GitHub.
4. Suivez les instructions [Pour commencer](https://blowfish.page/docs/getting-started/) pour configurer votre site web.
### Démarrage rapide avec Hugo
> **Note :** Assurez-vous d'avoir **Go** et **Hugo** installés, et d'avoir créé un nouveau projet Hugo avant de continuer.
1. Depuis le répertoire de votre projet, initialisez les modules Hugo :
```shell
hugo mod init github.com/<username>/<repo-name>
```
2. Créez `config/_default/module.toml` et ajoutez ce qui suit :
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. Démarrez votre serveur en utilisant `hugo server` et le thème sera téléchargé automatiquement.
4. Dans le dossier racine de votre site web, supprimez le fichier `hugo.toml` qui a été généré par Hugo. Copiez les fichiers de configuration `*.toml` du thème dans votre dossier `config/_default/`.
> **Note :** Ne remplacez pas le fichier `module.toml` que vous avez créé ci-dessus !
Vous trouverez ces fichiers de configuration du thème dans le répertoire cache de Hugo, ou [téléchargez une copie](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) depuis GitHub.
5. Suivez les instructions [Pour commencer](https://blowfish.page/docs/getting-started/) pour configurer votre site web.
### Installation des mises à jour du thème
Au fur et à mesure que de nouvelles versions sont publiées, vous pouvez mettre à jour le thème en utilisant Hugo. Exécutez simplement `hugo mod get -u` depuis le répertoire de votre projet et le thème se mettra automatiquement à jour vers la dernière version.
Des [instructions de mise à jour](https://blowfish.page/docs/installation/#installing-updates) détaillées sont disponibles dans la documentation.
---
## Contribuer
Blowfish est destiné à évoluer au fil du temps. J'ai l'intention de continuer à ajouter des fonctionnalités et à apporter des modifications selon les besoins.
N'hésitez pas à me contacter pour tout problème ou suggestion de nouvelles fonctionnalités que vous aimeriez voir.
- 🐛 **Rapports de bugs et problèmes :** Utilisez [GitHub Issues](https://github.com/nunocoracao/blowfish/issues)
- 💡 **Idées de nouvelles fonctionnalités :** Ouvrez une discussion sur [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
- 🙋‍♀️ **Questions générales :** Rendez-vous sur [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
Si vous êtes en mesure de corriger un bug ou de mettre en œuvre une nouvelle fonctionnalité, j'accueille les PR à cette fin. Apprenez-en plus dans les [directives de contribution](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md).
---
## Évolution des stargazers
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
+7 -6
View File
@@ -1,8 +1,8 @@
**[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | Indonesian | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md)**
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | Indonesian
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.141.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.141.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
@@ -40,7 +40,8 @@ Blowfish dirancang sebagai tema yang kuat dan ringan untuk [Hugo](https://gohugo
- Daftar isi yang dapat digulir
- Dukungan untuk konten multibahasa termasuk bahasa RTL
- Kemampuan untuk menautkan ke artikel di situs web pihak ketiga
- Dukungan untuk beberapa shortcode seperti Galeri, Timeline, Kartu GitHub, dan Carousel
- Dukungan untuk beberapa shortcode seperti Galeri, Timeline, Kartu GitHub, dan Carousel
- Sintaks GitHub Alerts, 15 jenis, dukungan lipat
- Integrasi BuyMeACoffee
- Pencarian situs berbasis klien dengan Fuse.js
- Diagram dan visualisasi menggunakan Mermaid
@@ -77,7 +78,7 @@ Instruksi terperinci untuk setiap metode dapat ditemukan dalam [dokumentasi inst
### Instalasi Cepat Menggunakan Blowfish Tools
> **Catatan:** Pastikan Anda sudah menginstal **Node.js**, **Git**, **Go**, dan **Hugo**, serta telah membuat proyek Hugo sebelum melanjutkan.
> **Catatan:** Pastikan Anda sudah menginstal **Node.js**, **Git**, dan **Hugo**, serta telah membuat proyek Hugo sebelum melanjutkan.
Kami baru saja meluncurkan alat CLI baru untuk membantu Anda memulai dengan Blowfish. Ini akan membuat proyek Hugo baru, menginstal tema, dan mengatur file konfigurasi tema untuk Anda.
@@ -98,7 +99,7 @@ blowfish-tools new mynewsite
### Instalasi Cepat Menggunakan Git Submodules
> **Catatan:** Pastikan Anda sudah menginstal **Git**, **Go**, dan **Hugo**, serta telah membuat proyek Hugo sebelum melanjutkan.
> **Catatan:** Pastikan Anda sudah menginstal **Git** dan **Hugo**, serta telah membuat proyek Hugo sebelum melanjutkan.
1. Dari direktori proyek Anda, inisialisasi git:
```shell
@@ -110,7 +111,7 @@ blowfish-tools new mynewsite
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. Hapus file `config.toml` di root proyek dan salin file `*.toml` dari tema ke dalam folder `config/_default/`.
3. Hapus file `hugo.toml` di root proyek dan salin file `*.toml` dari tema ke dalam folder `config/_default/`.
4. Ikuti petunjuk [Memulai](https://blowfish.page/docs/getting-started/) untuk mengonfigurasi situs web Anda.
+7 -6
View File
@@ -1,7 +1,7 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | 日本語
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | 日本語 | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.141.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.141.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
@@ -45,6 +45,7 @@ Blowfishは[Hugo](https://gohugo.io)のために設計された強力で軽量
- RTL 言語を含む多言語コンテンツのサポート
- サードパーティー ウェブサイトの投稿へのリンク
- ギャラリー、タイムライン、GitHub カード、カルーセルなど、複数のショートコードに対応
- GitHub Alerts 構文、15 種類、折りたたみ対応
- Buy Me a Coffee 連携
- Fuse.js を利用したクライアントサイドのサイト内検索
- Mermaid を使用したダイアグラムや視覚化
@@ -81,7 +82,7 @@ Blowfish は、git サブモジュール、Hugo モジュール、または完
### Blowfish Tools を使ったクイックスタート
> **注意:** **Node.js**、**Git**、**Go**、**Hugo** がインストールされていること、そして先に進む前に新しい Hugo プロジェクトが作成されていることを確認してください。
> **注意:** **Node.js**、**Git**、**Hugo** がインストールされていること、そして先に進む前に新しい Hugo プロジェクトが作成されていることを確認してください。
Blowfish を使い始めるのに役立つ新しい CLI ツールをリリースしました。このツールは、新しい Hugo プロジェクトを作成し、テーマをインストールし、テーマ設定ファイルをセットアップします。まだベータ版なので、[問題を見つけたら報告してください](https://github.com/nunocoracao/blowfish-tools)。
@@ -102,7 +103,7 @@ blowfish-tools new mynewsite
### git サブモジュールを使ったクイックスタート
> **注意:** **Git**、**Go**、**Hugo** がインストールされていること、そして先に進む前に新しい Hugo プロジェクトが作成されていることを確認してください。
> **注意:** **Git**、**Hugo** がインストールされていること、そして先に進む前に新しい Hugo プロジェクトが作成されていることを確認してください。
1. プロジェクトディレクトリで、git を初期化します。
@@ -116,7 +117,7 @@ blowfish-tools new mynewsite
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. ウェブサイトのルートフォルダで、Hugo によって生成された `config.toml` ファイルを削除します。テーマから `*.toml` 設定ファイルをコピーして、`config/_default/` フォルダに保存します。
3. ウェブサイトのルートフォルダで、Hugo によって生成された `hugo.toml` ファイルを削除します。テーマから `*.toml` 設定ファイルをコピーして、`config/_default/` フォルダに保存します。
これらのテーマ設定ファイルは、Hugo キャッシュディレクトリにあります。または、GitHub から[コピーをダウンロード](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip)できます。
@@ -141,7 +142,7 @@ blowfish-tools new mynewsite
3. `hugo server` を使用してサーバーを起動すると、テーマが自動的にダウンロードされます。
4. ウェブサイトのルートフォルダにある、Hugo によって生成された `config.toml` ファイルを削除します。テーマの `*.toml` 設定ファイルを `config/_default/` フォルダにコピーします。
4. ウェブサイトのルートフォルダにある、Hugo によって生成された `hugo.toml` ファイルを削除します。テーマの `*.toml` 設定ファイルを `config/_default/` フォルダにコピーします。
> **注意:** 上記で作成した `module.toml` ファイルを上書きしないでください!
+6 -5
View File
@@ -1,7 +1,7 @@
English | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md)
English | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.141.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.141.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
@@ -45,6 +45,7 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
- Multilingual content support including support for RTL languages
- Ability to link to posts on third-party websites
- Support for several shortcodes like Gallery, Timeline, GitHub cards, and Carousels
- GitHub Alerts syntax, 15 types, collapsible support
- Buymeacoffee integration
- Client-side site search powered by Fuse.js
- Diagrams and visualisations using Mermaid
@@ -81,7 +82,7 @@ Detailed instructions for each method can be found in the [Installation](https:/
### Quick start using Blowfish Tools
> **Note:** Ensure you have **Node.js**, **Git**, **Go** and **Hugo** installed, and that you have created a new Hugo project before proceeding.
> **Note:** Ensure you have **Node.js**, **Git** and **Hugo** installed, and that you have created a new Hugo project before proceeding.
We just launched a new CLI tool to help you get started with Blowfish. It will create a new Hugo project, install the theme and set up the theme configuration files for you. It's still in beta so please [report any issues you find](https://github.com/nunocoracao/blowfish-tools).
@@ -102,7 +103,7 @@ blowfish-tools new mynewsite
### Quick start using git submodules
> **Note:** Ensure you have **Git**, **Go**, and **Hugo** installed, and that you have created a new Hugo project before proceeding.
> **Note:** Ensure you have **Git** and **Hugo** installed, and that you have created a new Hugo project before proceeding.
1. From your project directory, initialise git:
@@ -116,7 +117,7 @@ blowfish-tools new mynewsite
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. In the root folder of your website, delete the `config.toml` file that was generated by Hugo. Copy the `*.toml` config files from the theme into your `config/_default/` folder.
3. In the root folder of your website, delete the `hugo.toml` file that was generated by Hugo. Copy the `*.toml` config files from the theme into your `config/_default/` folder.
You will find these theme config files in the Hugo cache directory, or [download a copy](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) from GitHub.
+179
View File
@@ -0,0 +1,179 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | Português (BR) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.141.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.141.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
Blowfish foi projetado para ser um tema poderoso e leve para [Hugo](https://gohugo.io). É construído usando Tailwind CSS com um design limpo e minimalista que prioriza o seu conteúdo.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Site de demonstração](https://blowfish.page/)
📑 [Documentação do tema](https://blowfish.page/docs/)
💎 [Loja de produtos](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [Relatórios de bugs e problemas](https://github.com/nunocoracao/blowfish/issues)
💡 [Perguntas e solicitações de recursos](https://github.com/nunocoracao/blowfish/discussions)
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
## Recursos
- Layout totalmente responsivo construído com Tailwind CSS 3.0
- Múltiplos esquemas de cores (ou personalize completamente o seu próprio)
- Modo escuro (forçado ligado/desligado ou alternância automática com botão do usuário)
- Configuração altamente personalizável
- Integração com Firebase para suportar dados dinâmicos
- Contagem de visualizações e mecanismo de curtidas
- Artigos relacionados
- Múltiplos layouts de página inicial
- Múltiplos autores
- Séries de artigos
- Ordenação de artigos baseada em data e peso
- Modo zen para leitura de artigos
- Flexível com qualquer tipo de conteúdo, taxonomias e menus
- Menus de cabeçalho e rodapé
- Menus aninhados e menu de sub-navegação
- Índice com rolagem
- Suporte a conteúdo multilíngue incluindo suporte para idiomas RTL
- Capacidade de linkar para posts em sites de terceiros
- Suporte para vários shortcodes como Gallery, Timeline, GitHub cards e Carousels
- Sintaxe de alertas do GitHub, 15 tipos, suporte recolhível
- Integração com Buymeacoffee
- Busca no site do lado do cliente alimentada por Fuse.js
- Diagramas e visualizações usando Mermaid
- Gráficos usando Chart.js
- Integração com TypeIt
- Embeds do Youtube com melhorias de performance
- Notação matemática usando KaTeX
- Ícones SVG do FontAwesome 6
- Redimensionamento automático de imagens usando Hugo Pipes
- Âncoras de cabeçalho, Índices, Cópia de código, Botões, Badges e mais
- Suporte a HTML e Emoji em artigos 🎉
- SEO amigável com links para compartilhamento em redes sociais
- Suporte a Fathom Analytics e Google Analytics
- Suporte a feeds RSS, Favicons e comentários
- Personalização avançada usando definições simples de cores e estilos do Tailwind
- Otimizado para performance e acessibilidade com pontuações perfeitas no Lighthouse
- Totalmente documentado com atualizações regulares
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Documentação
Blowfish possui [documentação extensa](https://blowfish.page/docs/) que cobre todos os aspectos do tema. Certifique-se de [ler a documentação](https://blowfish.page/docs/) para saber mais sobre como usar o tema e seus recursos.
---
## Instalação
Blowfish suporta vários métodos de instalação - como submódulo git, Hugo Module, ou como uma instalação completamente manual.
Instruções detalhadas para cada método podem ser encontradas na documentação de [Instalação](https://blowfish.page/docs/installation). Você deve consultar a documentação para a experiência de configuração mais simples. Abaixo está um guia de início rápido usando submódulos se você estiver usando git, ou Hugo modules se você já estiver confiante em instalar temas Hugo.
### Início rápido usando Blowfish Tools
> **Nota:** Certifique-se de ter **Node.js**, **Git** e **Hugo** instalados, e que você criou um novo projeto Hugo antes de prosseguir.
Acabamos de lançar uma nova ferramenta CLI para ajudá-lo a começar com Blowfish. Ela criará um novo projeto Hugo, instalará o tema e configurará os arquivos de configuração do tema para você. Ainda está em beta, então por favor [reporte quaisquer problemas que encontrar](https://github.com/nunocoracao/blowfish-tools).
Instale a ferramenta CLI globalmente usando npm (ou outro gerenciador de pacotes):
```shell
npm i -g blowfish-tools
```
Em seguida, execute o comando `blowfish-tools` para iniciar uma execução interativa que o guiará pelos casos de uso de criação e configuração.
```shell
blowfish-tools
```
Você também pode executar o comando `blowfish-tools new` para criar um novo projeto Hugo e instalar o tema de uma vez. Verifique a ajuda da CLI para mais informações.
```shell
blowfish-tools new mynewsite
```
### Início rápido usando submódulos git
> **Nota:** Certifique-se de ter **Git** e **Hugo** instalados, e que você criou um novo projeto Hugo antes de prosseguir.
1. Do diretório do seu projeto, inicialize o git:
```shell
git init
```
2. Configure Blowfish como um submódulo git:
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. Na pasta raiz do seu site, exclua o arquivo `hugo.toml` que foi gerado pelo Hugo. Copie os arquivos de configuração `*.toml` do tema para sua pasta `config/_default/`.
Você encontrará esses arquivos de configuração do tema no diretório de cache do Hugo, ou [baixe uma cópia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) do GitHub.
4. Siga as instruções de [Primeiros Passos](https://blowfish.page/docs/getting-started/) para configurar seu site.
### Início rápido usando Hugo
> **Nota:** Certifique-se de ter **Go** e **Hugo** instalados, e que você criou um novo projeto Hugo antes de prosseguir.
1. Do diretório do seu projeto, inicialize os Hugo Modules:
```shell
hugo mod init github.com/<username>/<repo-name>
```
2. Crie `config/_default/module.toml` e adicione o seguinte:
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. Inicie seu servidor usando `hugo server` e o tema será baixado automaticamente.
4. Na pasta raiz do seu site, exclua o arquivo `hugo.toml` que foi gerado pelo Hugo. Copie os arquivos de configuração `*.toml` do tema para sua pasta `config/_default/`.
> **Nota:** Não sobrescreva o arquivo `module.toml` que você criou acima!
Você encontrará esses arquivos de configuração do tema no diretório de cache do Hugo, ou [baixe uma cópia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) do GitHub.
5. Siga as instruções de [Primeiros Passos](https://blowfish.page/docs/getting-started/) para configurar seu site.
### Instalando atualizações do tema
À medida que novos lançamentos são publicados, você pode atualizar o tema usando Hugo. Simplesmente execute `hugo mod get -u` do diretório do seu projeto e o tema será atualizado automaticamente para a versão mais recente.
[Instruções detalhadas de atualização](https://blowfish.page/docs/installation/#installing-updates) estão disponíveis na documentação.
---
## Contribuindo
Blowfish deve evoluir ao longo do tempo. Pretendo continuar adicionando recursos e fazendo alterações conforme necessário.
Sinta-se à vontade para entrar em contato com quaisquer problemas ou sugestões de novos recursos que você gostaria de ver.
- 🐛 **Relatórios de bugs e problemas:** Use [GitHub Issues](https://github.com/nunocoracao/blowfish/issues)
- 💡 **Ideias para novos recursos:** Abra uma discussão em [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
- 🙋‍♀️ **Perguntas gerais:** Vá para [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
Se você for capaz de corrigir um bug ou implementar um novo recurso, dou as boas-vindas a PRs para este propósito. Saiba mais nas [diretrizes de contribuição](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md).
---
## Stargazers ao longo do tempo
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
+179
View File
@@ -0,0 +1,179 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | Português (PT) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.141.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.141.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
Blowfish foi desenhado para ser um tema poderoso e leve para [Hugo](https://gohugo.io). É construído com Tailwind CSS com um design limpo e minimalista que prioriza o seu conteúdo.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Site de demonstração](https://blowfish.page/)
📑 [Documentação do tema](https://blowfish.page/docs/)
💎 [Loja de merchandising](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [Relatórios de erros & problemas](https://github.com/nunocoracao/blowfish/issues)
💡 [Questões & pedidos de funcionalidades](https://github.com/nunocoracao/blowfish/discussions)
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
## Funcionalidades
- Layout totalmente responsivo construído com Tailwind CSS 3.0
- Múltiplos esquemas de cores (ou personalize completamente o seu próprio)
- Modo escuro (forçado ligado/desligado ou alternância automática com seletor do utilizador)
- Configuração altamente personalizável
- Integração com Firebase para suportar dados dinâmicos
- Contagem de visualizações & mecanismo de gostos
- Artigos relacionados
- Múltiplos layouts de página inicial
- Múltiplos autores
- Séries de artigos
- Ordenação de artigos baseada em data e peso
- Modo Zen para leitura de artigos
- Flexível com qualquer tipo de conteúdo, taxonomias e menus
- Menus de cabeçalho e rodapé
- Menus aninhados & menu de sub-navegação
- Índice de conteúdos com scroll
- Suporte para conteúdo multilingue incluindo suporte para línguas RTL
- Capacidade de criar links para publicações em sites de terceiros
- Suporte para vários shortcodes como Gallery, Timeline, GitHub cards e Carousels
- Sintaxe GitHub Alerts, 15 tipos, suporte para elementos expansíveis
- Integração Buymeacoffee
- Pesquisa no site do lado do cliente alimentada por Fuse.js
- Diagramas e visualizações usando Mermaid
- Gráficos usando Chart.js
- Integração TypeIt
- Embeds de Youtube com melhorias de desempenho
- Notação matemática usando KaTeX
- Ícones SVG do FontAwesome 6
- Redimensionamento automático de imagens usando Hugo Pipes
- Âncoras de cabeçalhos, Índices de Conteúdos, Cópia de código, Botões, Badges e mais
- Suporte HTML e Emoji em artigos 🎉
- Otimizado para SEO com links para partilha em redes sociais
- Suporte para Fathom Analytics e Google Analytics
- Feeds RSS, Favicons e suporte para comentários
- Personalização avançada usando definições simples de cores e estilos do Tailwind
- Otimizado para desempenho e acessibilidade com pontuações perfeitas no Lighthouse
- Totalmente documentado com atualizações regulares
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Documentação
Blowfish tem [documentação extensa](https://blowfish.page/docs/) que cobre todos os aspetos do tema. Certifique-se de [ler a documentação](https://blowfish.page/docs/) para saber mais sobre como usar o tema e as suas funcionalidades.
---
## Instalação
Blowfish suporta vários métodos de instalação - como um submódulo git, um Módulo Hugo, ou como uma instalação completamente manual.
Instruções detalhadas para cada método podem ser encontradas na documentação de [Instalação](https://blowfish.page/docs/installation). Deve consultar a documentação para a experiência de configuração mais simples. Abaixo está um guia de início rápido usando submódulos se estiver a usar git, ou módulos Hugo se já está confiante na instalação de temas Hugo.
### Início rápido usando Blowfish Tools
> **Nota:** Certifique-se de que tem **Node.js**, **Git** e **Hugo** instalados, e que criou um novo projeto Hugo antes de continuar.
Acabámos de lançar uma nova ferramenta CLI para ajudá-lo a começar com Blowfish. Ela irá criar um novo projeto Hugo, instalar o tema e configurar os ficheiros de configuração do tema para si. Ainda está em beta por isso [reporte quaisquer problemas que encontrar](https://github.com/nunocoracao/blowfish-tools).
Instale a ferramenta CLI globalmente usando npm (ou outro gestor de pacotes):
```shell
npm i -g blowfish-tools
```
Depois execute o comando `blowfish-tools` para iniciar uma execução interativa que irá guiá-lo através da criação e casos de uso de configuração.
```shell
blowfish-tools
```
Também pode executar o comando `blowfish-tools new` para criar um novo projeto Hugo e instalar o tema de uma só vez. Consulte a ajuda da CLI para mais informações.
```shell
blowfish-tools new mynewsite
```
### Início rápido usando submódulos git
> **Nota:** Certifique-se de que tem **Git** e **Hugo** instalados, e que criou um novo projeto Hugo antes de continuar.
1. A partir do diretório do seu projeto, inicialize o git:
```shell
git init
```
2. Configure Blowfish como um submódulo git:
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. Na pasta raiz do seu site, elimine o ficheiro `hugo.toml` que foi gerado pelo Hugo. Copie os ficheiros de configuração `*.toml` do tema para a sua pasta `config/_default/`.
Irá encontrar estes ficheiros de configuração do tema no diretório de cache do Hugo, ou [descarregue uma cópia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) do GitHub.
4. Siga as instruções de [Introdução](https://blowfish.page/docs/getting-started/) para configurar o seu site.
### Início rápido usando Hugo
> **Nota:** Certifique-se de que tem **Go** e **Hugo** instalados, e que criou um novo projeto Hugo antes de continuar.
1. A partir do diretório do seu projeto, inicialize os Módulos Hugo:
```shell
hugo mod init github.com/<username>/<repo-name>
```
2. Crie `config/_default/module.toml` e adicione o seguinte:
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. Inicie o seu servidor usando `hugo server` e o tema será descarregado automaticamente.
4. Na pasta raiz do seu site, elimine o ficheiro `hugo.toml` que foi gerado pelo Hugo. Copie os ficheiros de configuração `*.toml` do tema para a sua pasta `config/_default/`.
> **Nota:** Não sobrescreva o ficheiro `module.toml` que criou acima!
Irá encontrar estes ficheiros de configuração do tema no diretório de cache do Hugo, ou [descarregue uma cópia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) do GitHub.
5. Siga as instruções de [Introdução](https://blowfish.page/docs/getting-started/) para configurar o seu site.
### Instalar atualizações do tema
À medida que novas versões são publicadas, pode atualizar o tema usando Hugo. Simplesmente execute `hugo mod get -u` a partir do diretório do seu projeto e o tema será automaticamente atualizado para a versão mais recente.
[Instruções detalhadas de atualização](https://blowfish.page/docs/installation/#installing-updates) estão disponíveis na documentação.
---
## Contribuir
Espera-se que Blowfish evolua ao longo do tempo. Pretendo continuar a adicionar funcionalidades e fazer alterações conforme necessário.
Sinta-se à vontade para entrar em contacto com quaisquer problemas ou sugestões para novas funcionalidades que gostaria de ver.
- 🐛 **Relatórios de erros & problemas:** Use [GitHub Issues](https://github.com/nunocoracao/blowfish/issues)
- 💡 **Ideias para novas funcionalidades:** Abra uma discussão em [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
- 🙋‍♀️ **Questões gerais:** Dirija-se a [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
Se conseguir corrigir um erro ou implementar uma nova funcionalidade, aceito PRs para este propósito. Saiba mais nas [diretrizes de contribuição](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md).
---
## Stargazers ao longo do tempo
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
+7 -6
View File
@@ -1,7 +1,7 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md) | 简体中文 | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md)
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | 简体中文 | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.141.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.141.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
@@ -43,6 +43,7 @@ Blowfish 是一个轻量有力的 Hugo 主题。它使用 Tailwind CSS 构建,
- 支持多语言内容,包括 RTL 语言
- 可链接到第三方网站上的帖子
- 支持多种简码,如图库、时间轴、GitHub 卡片和图片灯箱
- 支持 GitHub Alerts 语法、15 种类型和可折叠功能
- 支持 Buymeacoffee
- 拥有由 Fuse.js 支持的客户端一侧网站搜索功能
- 植入了基于 Mermaid 的图表功能
@@ -78,7 +79,7 @@ Blowfish 支持多种安装方式,既能作为 git 子模块、Hugo 模块,
### 使用 Blowfish Tools 快速开始
> **注:** 请确保你已安装 **Node.js**、 **Git**、 **Go** 和 **Hugo** ,且已经创建了一个 Hugo 工程。
> **注:** 请确保你已安装 **Node.js**、 **Git** 和 **Hugo** ,且已经创建了一个 Hugo 工程。
我们最新推出了一个新的 CLI 工具,帮助你开始使用 Blowfish。它将为你创建一个新的 Hugo 项目、安装主题并设置主题配置文件。它仍处于测试阶段,因此请 [报告你发现的任何问题](https://github.com/nunocoracao/blowfish-tools)。
@@ -99,7 +100,7 @@ blowfish-tools new mynewsite
### 使用 git 子模块快速开始
> **注:** 请确保你已安装 **Node.js**、 **Git**、 **Go** 和 **Hugo** ,且已经创建了一个 Hugo 工程。
> **注:** 请确保你已安装 **Git** 和 **Hugo** ,且已经创建了一个 Hugo 工程。
1. 从你工程的所在目录初始化 git 仓库
@@ -113,7 +114,7 @@ blowfish-tools new mynewsite
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. 在你网站的根目录中删除由 Hugo 自动生成的 `config.toml`文件,并把主题文件夹中的`*.toml`配置文件复制到你的 `config/_default/`文件夹中
3. 在你网站的根目录中删除由 Hugo 自动生成的 `hugo.toml` 文件,并把主题文件夹中的 `*.toml` 配置文件复制到你的 `config/_default/` 文件夹中
你可在 Hugo 缓存目录中找到主题配置文件,或者也可以从[这里](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip)下载一份。
@@ -138,7 +139,7 @@ blowfish-tools new mynewsite
3. 运行 `hugo server` 启动你的本地服务器,本主题就会自动下载。
4. 在你网站的根目录中删除由 Hugo 自动生成的 `config.toml`文件,并把主题文件夹中的`*.toml`配置文件复制到你的 `config/_default/`文件夹中
4. 在你网站的根目录中删除由 Hugo 自动生成的 `hugo.toml`文件,并把主题文件夹中的`*.toml`配置文件复制到你的 `config/_default/`文件夹中
> **注** 不要覆盖之前的 `module.toml` !
+1492 -707
View File
File diff suppressed because it is too large. Load diff
+220
View File
@@ -0,0 +1,220 @@
/*
* Derived from KKKZOZ/hugo-admonitions (https://github.com/KKKZOZ/hugo-admonitions/)
* Copyright (c) 2024 KKKZOZ, Licensed under MIT License
*/
:root {
/* GitHub Core Types (5) */
--adm-note-border: theme("colors.sky.500");
--adm-note-bg: theme("colors.sky.50");
--adm-note-text: theme("colors.sky.900");
--adm-tip-border: theme("colors.emerald.500");
--adm-tip-bg: theme("colors.emerald.50");
--adm-tip-text: theme("colors.emerald.900");
--adm-important-border: theme("colors.purple.500");
--adm-important-bg: theme("colors.purple.50");
--adm-important-text: theme("colors.purple.900");
--adm-warning-border: theme("colors.orange.500");
--adm-warning-bg: theme("colors.orange.50");
--adm-warning-text: theme("colors.orange.900");
--adm-caution-border: theme("colors.red.500");
--adm-caution-bg: theme("colors.red.50");
--adm-caution-text: theme("colors.red.900");
/* Extended Types (10) */
--adm-abstract-border: theme("colors.cyan.500");
--adm-abstract-bg: theme("colors.cyan.50");
--adm-abstract-text: theme("colors.cyan.900");
--adm-bug-border: theme("colors.rose.500");
--adm-bug-bg: theme("colors.rose.50");
--adm-bug-text: theme("colors.rose.900");
--adm-danger-border: theme("colors.red.500");
--adm-danger-bg: theme("colors.red.50");
--adm-danger-text: theme("colors.red.900");
--adm-example-border: theme("colors.purple.600");
--adm-example-bg: theme("colors.purple.50");
--adm-example-text: theme("colors.purple.900");
--adm-failure-border: theme("colors.pink.500");
--adm-failure-bg: theme("colors.pink.50");
--adm-failure-text: theme("colors.pink.900");
--adm-info-border: theme("colors.blue.500");
--adm-info-bg: theme("colors.blue.50");
--adm-info-text: theme("colors.blue.900");
--adm-question-border: theme("colors.amber.500");
--adm-question-bg: theme("colors.amber.50");
--adm-question-text: theme("colors.amber.900");
--adm-quote-border: theme("colors.gray.500");
--adm-quote-bg: theme("colors.gray.50");
--adm-quote-text: theme("colors.gray.800");
--adm-success-border: theme("colors.emerald.500");
--adm-success-bg: theme("colors.emerald.50");
--adm-success-text: theme("colors.emerald.900");
--adm-todo-border: theme("colors.sky.500");
--adm-todo-bg: theme("colors.sky.50");
--adm-todo-text: theme("colors.sky.800");
}
html.dark {
/* GitHub Core Types (5) */
--adm-note-bg: color-mix(in srgb, theme("colors.sky.800"), #0f0f0f 50%);
--adm-note-text: theme("colors.sky.100");
--adm-tip-bg: color-mix(in srgb, theme("colors.emerald.800"), #0f0f0f 50%);
--adm-tip-text: theme("colors.emerald.100");
--adm-important-bg: color-mix(in srgb, theme("colors.purple.800"), #0f0f0f 50%);
--adm-important-text: theme("colors.purple.100");
--adm-warning-bg: color-mix(in srgb, theme("colors.orange.800"), #0f0f0f 45%);
--adm-warning-text: theme("colors.orange.100");
--adm-caution-bg: color-mix(in srgb, theme("colors.red.800"), #0f0f0f 45%);
--adm-caution-text: theme("colors.red.100");
/* Extended Types (10) */
--adm-abstract-bg: color-mix(in srgb, theme("colors.cyan.800"), #0f0f0f 50%);
--adm-abstract-text: theme("colors.cyan.100");
--adm-bug-bg: color-mix(in srgb, theme("colors.rose.800"), #0f0f0f 50%);
--adm-bug-text: theme("colors.rose.100");
--adm-danger-bg: color-mix(in srgb, theme("colors.red.800"), #0f0f0f 45%);
--adm-danger-text: theme("colors.red.100");
--adm-example-bg: color-mix(in srgb, theme("colors.purple.800"), #0f0f0f 50%);
--adm-example-text: theme("colors.purple.100");
--adm-failure-bg: color-mix(in srgb, theme("colors.pink.800"), #0f0f0f 50%);
--adm-failure-text: theme("colors.pink.100");
--adm-info-bg: color-mix(in srgb, theme("colors.blue.800"), #0f0f0f 50%);
--adm-info-text: theme("colors.blue.100");
--adm-question-bg: color-mix(in srgb, theme("colors.amber.800"), #0f0f0f 50%);
--adm-question-text: theme("colors.amber.100");
--adm-quote-bg: color-mix(in srgb, theme("colors.gray.800"), #0f0f0f 50%);
--adm-quote-text: theme("colors.gray.100");
--adm-success-bg: color-mix(in srgb, theme("colors.emerald.800"), #0f0f0f 50%);
--adm-success-text: theme("colors.emerald.100");
--adm-todo-bg: color-mix(in srgb, theme("colors.sky.800"), #0f0f0f 50%);
--adm-todo-text: theme("colors.sky.100");
}
/* Base Styles */
.admonition-content > :first-child {
margin-top: 0 !important;
}
.admonition-content > :last-child {
margin-bottom: 0 !important;
}
.admonition-content pre {
margin-block: 0 !important;
}
/* Type-Specific Palettes Using CSS Variables */
.admonition[data-type="note"] {
border-color: var(--adm-note-border);
background-color: var(--adm-note-bg);
color: var(--adm-note-text);
}
.admonition[data-type="tip"] {
border-color: var(--adm-tip-border);
background-color: var(--adm-tip-bg);
color: var(--adm-tip-text);
}
.admonition[data-type="important"] {
border-color: var(--adm-important-border);
background-color: var(--adm-important-bg);
color: var(--adm-important-text);
}
.admonition[data-type="warning"] {
border-color: var(--adm-warning-border);
background-color: var(--adm-warning-bg);
color: var(--adm-warning-text);
}
.admonition[data-type="caution"] {
border-color: var(--adm-caution-border);
background-color: var(--adm-caution-bg);
color: var(--adm-caution-text);
}
.admonition[data-type="abstract"] {
border-color: var(--adm-abstract-border);
background-color: var(--adm-abstract-bg);
color: var(--adm-abstract-text);
}
.admonition[data-type="bug"] {
border-color: var(--adm-bug-border);
background-color: var(--adm-bug-bg);
color: var(--adm-bug-text);
}
.admonition[data-type="danger"] {
border-color: var(--adm-danger-border);
background-color: var(--adm-danger-bg);
color: var(--adm-danger-text);
}
.admonition[data-type="example"] {
border-color: var(--adm-example-border);
background-color: var(--adm-example-bg);
color: var(--adm-example-text);
}
.admonition[data-type="failure"] {
border-color: var(--adm-failure-border);
background-color: var(--adm-failure-bg);
color: var(--adm-failure-text);
}
.admonition[data-type="info"] {
border-color: var(--adm-info-border);
background-color: var(--adm-info-bg);
color: var(--adm-info-text);
}
.admonition[data-type="question"] {
border-color: var(--adm-question-border);
background-color: var(--adm-question-bg);
color: var(--adm-question-text);
}
.admonition[data-type="quote"] {
border-color: var(--adm-quote-border);
background-color: var(--adm-quote-bg);
color: var(--adm-quote-text);
}
.admonition[data-type="success"] {
border-color: var(--adm-success-border);
background-color: var(--adm-success-bg);
color: var(--adm-success-text);
}
.admonition[data-type="todo"] {
border-color: var(--adm-todo-border);
background-color: var(--adm-todo-bg);
color: var(--adm-todo-text);
}
+178 -197
View File
@@ -1,8 +1,24 @@
/* -- Chroma Highlight -- */
/* Background */
.prose .chroma {
@apply static rounded-md text-neutral-700 bg-neutral-50 dark:bg-neutral-700 dark:text-neutral-200;
/* margins for codeblock title */
.highlight-wrapper {
@apply block relative z-0 overflow-hidden shadow rounded-md;
margin-top: 1.7142857em;
margin-bottom: 1.7142857em;
}
.highlight-wrapper pre,
.highlight-wrapper table, .highlight-wrapper div {
margin-top: 0;
margin-bottom: 0;
}
.highlight-wrapper:has(.codeblock-title) pre {
@apply rounded-none;
}
.codeblock-title {
@apply px-4 py-2 border-b border-neutral-200 dark:border-neutral-800;
@apply bg-white dark:bg-[#0d1117];
}
/* LineTableTD */
@@ -19,208 +35,173 @@
/* LineHighlight */
.chroma .hl {
@apply block w-auto px-4 -mx-4 bg-primary-100 dark:bg-primary-900;
@apply block w-auto px-4 -mx-4;
}
.chroma .lntd .hl {
@apply p-0 m-0;
}
/* LineNumbersTable */
/* LineNumbers */
.chroma .lnt,
.chroma .ln {
@apply text-neutral-600 dark:text-neutral-300 mr-[0.4em] px-[0.4em] py-0;
/* linenos=inline */
.chroma:not(:is(table *)) > code {
display: block;
min-width: max-content;
}
/* Keyword */
/* KeywordDeclaration */
/* KeywordNamespace */
/* KeywordPseudo */
/* KeywordReserved */
/* NameClass */
/* NameFunctionMagic */
/* NameNamespace */
/* NameVariableClass */
/* Operator */
.chroma .k,
.chroma .kd,
.chroma .kn,
.chroma .kp,
.chroma .kr,
.chroma .nc,
.chroma .fm,
.chroma .nn,
.chroma .vc,
.chroma .o {
@apply text-primary-600 dark:text-primary-300;
}
html:not(.dark) {
/* Generated using: hugo gen chromastyles --style=github */
/* KeywordConstant */
.chroma .kc {
@apply font-semibold text-secondary-400 dark:text-secondary-500;
/* Background */ .bg { background-color:#fff; }
/* PreWrapper */ .chroma { background-color:#fff; }
/* Error */ .chroma .err { color:#f6f8fa;background-color:#82071e }
/* LineLink */ .chroma .lnlinks { outline:none;text-decoration:none;color:inherit }
/* LineTableTD */ .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; }
/* LineTable */ .chroma .lntable { border-spacing:0; }
/* LineHighlight */ .chroma .hl { background-color:#e5e5e5 }
/* LineNumbersTable */ .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f }
/* LineNumbers */ .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f }
/* Line */ .chroma .line { display:flex; }
/* Keyword */ .chroma .k { color:#cf222e }
/* KeywordConstant */ .chroma .kc { color:#cf222e }
/* KeywordDeclaration */ .chroma .kd { color:#cf222e }
/* KeywordNamespace */ .chroma .kn { color:#cf222e }
/* KeywordPseudo */ .chroma .kp { color:#cf222e }
/* KeywordReserved */ .chroma .kr { color:#cf222e }
/* KeywordType */ .chroma .kt { color:#cf222e }
/* NameAttribute */ .chroma .na { color:#1f2328 }
/* NameClass */ .chroma .nc { color:#1f2328 }
/* NameConstant */ .chroma .no { color:#0550ae }
/* NameDecorator */ .chroma .nd { color:#0550ae }
/* NameEntity */ .chroma .ni { color:#6639ba }
/* NameLabel */ .chroma .nl { color:#900;font-weight:bold }
/* NameNamespace */ .chroma .nn { color:#24292e }
/* NameOther */ .chroma .nx { color:#1f2328 }
/* NameTag */ .chroma .nt { color:#0550ae }
/* NameBuiltin */ .chroma .nb { color:#6639ba }
/* NameBuiltinPseudo */ .chroma .bp { color:#6a737d }
/* NameVariable */ .chroma .nv { color:#953800 }
/* NameVariableClass */ .chroma .vc { color:#953800 }
/* NameVariableGlobal */ .chroma .vg { color:#953800 }
/* NameVariableInstance */ .chroma .vi { color:#953800 }
/* NameVariableMagic */ .chroma .vm { color:#953800 }
/* NameFunction */ .chroma .nf { color:#6639ba }
/* NameFunctionMagic */ .chroma .fm { color:#6639ba }
/* LiteralString */ .chroma .s { color:#0a3069 }
/* LiteralStringAffix */ .chroma .sa { color:#0a3069 }
/* LiteralStringBacktick */ .chroma .sb { color:#0a3069 }
/* LiteralStringChar */ .chroma .sc { color:#0a3069 }
/* LiteralStringDelimiter */ .chroma .dl { color:#0a3069 }
/* LiteralStringDoc */ .chroma .sd { color:#0a3069 }
/* LiteralStringDouble */ .chroma .s2 { color:#0a3069 }
/* LiteralStringEscape */ .chroma .se { color:#0a3069 }
/* LiteralStringHeredoc */ .chroma .sh { color:#0a3069 }
/* LiteralStringInterpol */ .chroma .si { color:#0a3069 }
/* LiteralStringOther */ .chroma .sx { color:#0a3069 }
/* LiteralStringRegex */ .chroma .sr { color:#0a3069 }
/* LiteralStringSingle */ .chroma .s1 { color:#0a3069 }
/* LiteralStringSymbol */ .chroma .ss { color:#032f62 }
/* LiteralNumber */ .chroma .m { color:#0550ae }
/* LiteralNumberBin */ .chroma .mb { color:#0550ae }
/* LiteralNumberFloat */ .chroma .mf { color:#0550ae }
/* LiteralNumberHex */ .chroma .mh { color:#0550ae }
/* LiteralNumberInteger */ .chroma .mi { color:#0550ae }
/* LiteralNumberIntegerLong */ .chroma .il { color:#0550ae }
/* LiteralNumberOct */ .chroma .mo { color:#0550ae }
/* Operator */ .chroma .o { color:#0550ae }
/* OperatorWord */ .chroma .ow { color:#0550ae }
/* Punctuation */ .chroma .p { color:#1f2328 }
/* Comment */ .chroma .c { color:#57606a }
/* CommentHashbang */ .chroma .ch { color:#57606a }
/* CommentMultiline */ .chroma .cm { color:#57606a }
/* CommentSingle */ .chroma .c1 { color:#57606a }
/* CommentSpecial */ .chroma .cs { color:#57606a }
/* CommentPreproc */ .chroma .cp { color:#57606a }
/* CommentPreprocFile */ .chroma .cpf { color:#57606a }
/* GenericDeleted */ .chroma .gd { color:#82071e;background-color:#ffebe9 }
/* GenericEmph */ .chroma .ge { color:#1f2328 }
/* GenericInserted */ .chroma .gi { color:#116329;background-color:#dafbe1 }
/* GenericOutput */ .chroma .go { color:#1f2328 }
/* GenericUnderline */ .chroma .gl { text-decoration:underline }
/* TextWhitespace */ .chroma .w { color:#fff }
}
html.dark {
/* Generated using: hugo gen chromastyles --style=github-dark */
/* KeywordType */
/* NameVariable */
/* NameVariableInstance */
/* NameVariableMagic */
/* LiteralNumber */
/* LiteralNumberBin */
/* LiteralNumberFloat */
/* LiteralNumberHex */
/* LiteralNumberInteger */
/* LiteralNumberIntegerLong */
/* LiteralNumberOct */
.chroma .kt,
.chroma .nv,
.chroma .vi,
.chroma .vm,
.chroma .m,
.chroma .mb,
.chroma .mf,
.chroma .mh,
.chroma .mi,
.chroma .il,
.chroma .mo {
@apply text-secondary-400 dark:text-secondary-600;
}
/* Name */
/* NameDecorator */
/* NameEntity */
/* NameLabel */
.chroma .n,
.chroma .nd,
.chroma .ni,
.chroma .nl {
@apply text-secondary-900 dark:text-secondary-200;
}
/* NameAttribute */
/* NameBuiltin */
/* NameBuiltinPseudo */
/* NameOther */
/* NameProperty */
/* NameTag */
.chroma .na,
.chroma .nb,
.chroma .bp,
.chroma .nx,
.chroma .py,
.chroma .nt {
@apply text-secondary-800 dark:text-secondary-300;
}
/* NameConstant */
/* NameException */
/* NameVariableGlobal */
.chroma .no,
.chroma .ne,
.chroma .vg {
@apply font-semibold text-secondary-400 dark:text-secondary-500;
}
/* NameFunction */
.chroma .nf {
@apply text-secondary-600 dark:text-secondary-500;
}
/* Literal */
/* LiteralDate */
/* LiteralString */
/* LiteralStringAffix */
/* LiteralStringBacktick */
/* LiteralStringChar */
/* LiteralStringDelimiter */
/* LiteralStringDoc */
/* LiteralStringDouble */
/* LiteralStringHeredoc */
/* LiteralStringInterpol */
/* LiteralStringOther */
/* LiteralStringSingle */
/* GenericInserted */
/* GenericOutput */
/* GenericPrompt */
.chroma .l,
.chroma .ld,
.chroma .s,
.chroma .sa,
.chroma .sb,
.chroma .sc,
.chroma .dl,
.chroma .sd,
.chroma .s2,
.chroma .sh,
.chroma .si,
.chroma .sx,
.chroma .s1,
.chroma .gi,
.chroma .go,
.chroma .gp {
@apply text-primary-800 dark:text-primary-400;
}
/* LiteralStringEscape */
.chroma .se {
@apply font-semibold text-secondary-400 dark:text-secondary-500;
}
/* LiteralStringRegex */
/* LiteralStringSymbol */
.chroma .sr,
.chroma .ss {
@apply font-semibold text-primary-800 dark:text-primary-400;
}
/* OperatorWord */
.chroma .ow {
@apply font-semibold text-primary-400 dark:text-primary-600;
}
/* Comment */
/* CommentMultiline */
/* CommentSingle */
/* CommentSpecial */
/* CommentPreproc */
/* CommentPreprocFile */
.chroma .c,
.chroma .cm,
.chroma .c1,
.chroma .cs,
.chroma .cp,
.chroma .cpf {
@apply italic text-neutral-500 dark:text-neutral-400;
}
/* CommentHashbang */
.chroma .ch {
@apply italic font-semibold text-neutral-500 dark:text-neutral-400;
}
/* GenericEmph */
.chroma .ge {
@apply italic;
}
/* GenericHeading */
.chroma .gh {
@apply font-semibold text-neutral-500;
}
/* GenericStrong */
.chroma .gs {
@apply font-semibold;
}
/* GenericSubheading */
/* GenericTraceback */
.chroma .gu,
.chroma .gt {
@apply text-neutral-500;
}
/* GenericUnderline */
.chroma .gl {
@apply underline;
/* Background */ .bg { color:#e6edf3;background-color:#0d1117; }
/* PreWrapper */ .chroma { color:#e6edf3;background-color:#0d1117; }
/* Error */ .chroma .err { color:#f85149 }
/* LineLink */ .chroma .lnlinks { outline:none;text-decoration:none;color:inherit }
/* LineTableTD */ .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; }
/* LineTable */ .chroma .lntable { border-spacing:0; }
/* LineHighlight */ .chroma .hl { background-color:#333 }
/* LineNumbersTable */ .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679 }
/* LineNumbers */ .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681 }
/* Line */ .chroma .line { display:flex; }
/* Keyword */ .chroma .k { color:#ff7b72 }
/* KeywordConstant */ .chroma .kc { color:#79c0ff }
/* KeywordDeclaration */ .chroma .kd { color:#ff7b72 }
/* KeywordNamespace */ .chroma .kn { color:#ff7b72 }
/* KeywordPseudo */ .chroma .kp { color:#79c0ff }
/* KeywordReserved */ .chroma .kr { color:#ff7b72 }
/* KeywordType */ .chroma .kt { color:#ff7b72 }
/* NameClass */ .chroma .nc { color:#f0883e;font-weight:bold }
/* NameConstant */ .chroma .no { color:#79c0ff;font-weight:bold }
/* NameDecorator */ .chroma .nd { color:#d2a8ff;font-weight:bold }
/* NameEntity */ .chroma .ni { color:#ffa657 }
/* NameException */ .chroma .ne { color:#f0883e;font-weight:bold }
/* NameLabel */ .chroma .nl { color:#79c0ff;font-weight:bold }
/* NameNamespace */ .chroma .nn { color:#ff7b72 }
/* NameProperty */ .chroma .py { color:#79c0ff }
/* NameTag */ .chroma .nt { color:#7ee787 }
/* NameVariable */ .chroma .nv { color:#79c0ff }
/* NameVariableClass */ .chroma .vc { color:#79c0ff }
/* NameVariableGlobal */ .chroma .vg { color:#79c0ff }
/* NameVariableInstance */ .chroma .vi { color:#79c0ff }
/* NameVariableMagic */ .chroma .vm { color:#79c0ff }
/* NameFunction */ .chroma .nf { color:#d2a8ff;font-weight:bold }
/* NameFunctionMagic */ .chroma .fm { color:#d2a8ff;font-weight:bold }
/* Literal */ .chroma .l { color:#a5d6ff }
/* LiteralDate */ .chroma .ld { color:#79c0ff }
/* LiteralString */ .chroma .s { color:#a5d6ff }
/* LiteralStringAffix */ .chroma .sa { color:#79c0ff }
/* LiteralStringBacktick */ .chroma .sb { color:#a5d6ff }
/* LiteralStringChar */ .chroma .sc { color:#a5d6ff }
/* LiteralStringDelimiter */ .chroma .dl { color:#79c0ff }
/* LiteralStringDoc */ .chroma .sd { color:#a5d6ff }
/* LiteralStringDouble */ .chroma .s2 { color:#a5d6ff }
/* LiteralStringEscape */ .chroma .se { color:#79c0ff }
/* LiteralStringHeredoc */ .chroma .sh { color:#79c0ff }
/* LiteralStringInterpol */ .chroma .si { color:#a5d6ff }
/* LiteralStringOther */ .chroma .sx { color:#a5d6ff }
/* LiteralStringRegex */ .chroma .sr { color:#79c0ff }
/* LiteralStringSingle */ .chroma .s1 { color:#a5d6ff }
/* LiteralStringSymbol */ .chroma .ss { color:#a5d6ff }
/* LiteralNumber */ .chroma .m { color:#a5d6ff }
/* LiteralNumberBin */ .chroma .mb { color:#a5d6ff }
/* LiteralNumberFloat */ .chroma .mf { color:#a5d6ff }
/* LiteralNumberHex */ .chroma .mh { color:#a5d6ff }
/* LiteralNumberInteger */ .chroma .mi { color:#a5d6ff }
/* LiteralNumberIntegerLong */ .chroma .il { color:#a5d6ff }
/* LiteralNumberOct */ .chroma .mo { color:#a5d6ff }
/* Operator */ .chroma .o { color:#ff7b72;font-weight:bold }
/* OperatorWord */ .chroma .ow { color:#ff7b72;font-weight:bold }
/* Comment */ .chroma .c { color:#8b949e;font-style:italic }
/* CommentHashbang */ .chroma .ch { color:#8b949e;font-style:italic }
/* CommentMultiline */ .chroma .cm { color:#8b949e;font-style:italic }
/* CommentSingle */ .chroma .c1 { color:#8b949e;font-style:italic }
/* CommentSpecial */ .chroma .cs { color:#8b949e;font-weight:bold;font-style:italic }
/* CommentPreproc */ .chroma .cp { color:#8b949e;font-weight:bold;font-style:italic }
/* CommentPreprocFile */ .chroma .cpf { color:#8b949e;font-weight:bold;font-style:italic }
/* GenericDeleted */ .chroma .gd { color:#ffa198;background-color:#490202 }
/* GenericEmph */ .chroma .ge { font-style:italic }
/* GenericError */ .chroma .gr { color:#ffa198 }
/* GenericHeading */ .chroma .gh { color:#79c0ff;font-weight:bold }
/* GenericInserted */ .chroma .gi { color:#56d364;background-color:#0f5323 }
/* GenericOutput */ .chroma .go { color:#8b949e }
/* GenericPrompt */ .chroma .gp { color:#8b949e }
/* GenericStrong */ .chroma .gs { font-weight:bold }
/* GenericSubheading */ .chroma .gu { color:#79c0ff }
/* GenericTraceback */ .chroma .gt { color:#ff7b72 }
/* GenericUnderline */ .chroma .gl { text-decoration:underline }
/* TextWhitespace */ .chroma .w { color:#6e7681 }
}
+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);
+9
View File
@@ -0,0 +1,9 @@
.tab__button.tab--active {
border-bottom: 2px solid rgb(var(--color-primary-500));
}
.tab__panel {
display: none;
}
.tab__panel.tab--active {
display: block;
}
+104 -73
View File
@@ -1,11 +1,21 @@
/*! Blowfish | MIT License | https://github.com/nunocoracao/blowfish */
@import "./components/zen-mode.css";
@import "./components/chroma.css";
@import "./components/a11y.css";
@config "../../tailwind.config.js";
@import "tailwindcss";
@config "../../tailwind.config.js";
@import "./components/chroma.css" layer(utilities);
@import "./components/tabs.css" layer(utilities);
@import "./components/zen-mode.css";
@import "./components/a11y.css";
@import "./components/admonition.css" layer(components);
html:not(.dark) {
color-scheme: light;
}
html.dark {
color-scheme: dark;
}
body a,
body button {
@@ -66,10 +76,6 @@ button,
}
/* Table of Contents */
#TableOfContents {
@apply lg:max-w-[25vw];
}
#TOCView {
max-height: calc(100vh - 150px);
min-height: 0;
@@ -86,7 +92,7 @@ button,
}
.toc a {
@apply font-normal text-neutral-700 dark:text-neutral-400;
@apply font-normal text-neutral-700 dark:text-neutral-300;
}
.toc ul > li {
@@ -94,15 +100,11 @@ button,
}
/* Code Copy */
.highlight-wrapper {
@apply block;
}
.highlight {
@apply relative z-0;
}
.highlight:hover > .copy-button {
.highlight-wrapper:hover > .copy-button {
@apply visible;
}
@@ -130,8 +132,8 @@ button,
/* Fix katex overflow https://github.com/nunocoracao/blowfish/issues/2138 */
.katex-display {
padding-right: 2px;
width: calc(100% - 2px);
padding: 1em;
width: calc(100% - 1em);
}
/* Fix long tables breaking out of article on mobile */
@@ -163,40 +165,13 @@ pre {
text-align: left;
}
.thumbnail,
.thumbnail_card,
.thumbnail_card_related,
.thumbnail_card_term,
.single_hero_basic,
.single_hero_background {
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}
.thumbnail {
min-width: 300px;
height: 180px;
}
.thumbnail_card {
height: 200px;
}
.thumbnail_card_related {
height: 150px;
}
.thumbnail_card_term {
height: 150px;
}
.single_hero_round {
max-height: 50vh;
object-fit: cover;
}
.single_hero_background {
width: calc(100% + 1px); /* patch for very small gap at right edge on mobile devices */
z-index: -10;
}
@@ -205,10 +180,42 @@ pre {
height: 100%;
}
.thumbnailshadow {
.thumbnail_card {
min-width: 300px;
height: 200px;
}
.thumbnail_card_related {
height: 150px;
}
.thumbnail {
width: 300px;
min-height: 180px;
}
@variant max-md {
.thumbnail {
width: 100%;
}
}
.thumbnail-shadow {
box-shadow: 5px 5px 20px 1px rgba(0, 0, 0, 0.3);
}
/* placeholder for gallery/carousel */
@variant max-md {
.width-patch {
width: 80vw;
}
}
@variant min-md {
.width-patch {
width: 65ch;
}
}
.anchor {
display: block;
position: relative;
@@ -223,22 +230,18 @@ pre {
scroll-margin-top: 145px;
}
/* patch for skip to main content */
#main-content {
scroll-margin-top: -125px;
}
@variant sm {
.thumbnail {
min-width: 100%;
height: 180px;
}
.article {
flex-wrap: wrap;
}
}
@variant md {
.thumbnail {
min-width: 300px;
min-height: 180px;
height: auto;
}
.article {
flex-wrap: nowrap;
}
@@ -248,29 +251,62 @@ pre {
z-index: 100;
}
.nested-menu:hover + .menuhide {
visibility: visible;
opacity: 1;
transition:
visibility 0.3s,
opacity 0.3s ease-in-out;
@layer utilities {
.bf-border-color {
@apply border-neutral-300 dark:border-neutral-700;
}
.bf-border-color-hover {
@apply hover:border-primary-600 dark:hover:border-primary-400;
}
.bf-icon-color-hover {
@apply hover:text-primary-600 dark:hover:text-primary-400;
}
.bf-scrollbar {
@apply scrollbar-thin scrollbar-track-neutral-200 scrollbar-thumb-neutral-400 dark:scrollbar-track-neutral-800 dark:scrollbar-thumb-neutral-600;
}
}
.menuhide:hover {
visibility: visible;
opacity: 1;
transition:
visibility 0.3s,
opacity 0.3s ease-in-out;
/* Prevent body scroll when mobile menu is open */
body:has(#mobile-menu-toggle:checked) {
overflow: hidden;
}
/* Reset body position for desktop after it was modified on mobile */
@media (min-width: 853px) {
body:has(#mobile-menu-toggle:checked) {
overflow: visible;
}
}
/* Hide buy me a coffee in mobile menu */
#bmc-wbtn {
z-index: 50 !important;
}
.nested-menu {
position: relative;
}
.menuhide {
visibility: hidden;
position: absolute;
z-index: 1000;
white-space: nowrap;
opacity: 0;
visibility: hidden;
transition:
visibility 0.3s,
opacity 0.3s ease-in-out;
z-index: 1000;
}
.nested-menu:hover .menuhide,
.nested-menu:focus-within .menuhide {
opacity: 1;
visibility: visible;
}
.active {
@@ -278,8 +314,3 @@ pre {
text-decoration-thickness: 3px;
text-underline-offset: 4px;
}
/* Cancel group hover if .group-hover-card contains .group-hover-cancel*/
.group-hover-card:hover:has(.group-hover-cancel:hover) .group-hover-card-title {
text-decoration: none !important;
}
+35
View File
@@ -0,0 +1,35 @@
:root {
--color-neutral: 255, 255, 255;
--color-neutral-50: 248, 250, 252;
--color-neutral-100: 241, 245, 249;
--color-neutral-200: 226, 232, 240;
--color-neutral-300: 203, 213, 225;
--color-neutral-400: 148, 163, 184;
--color-neutral-500: 100, 116, 139;
--color-neutral-600: 71, 85, 105;
--color-neutral-700: 51, 57, 65;
--color-neutral-800: 20, 25, 31;
--color-neutral-900: 15, 23, 42;
--color-primary-50: 226, 242, 255;
--color-primary-100: 186, 221, 255;
--color-primary-200: 141, 201, 255;
--color-primary-300: 91, 179, 255;
--color-primary-400: 50, 162, 255;
--color-primary-500: 0, 146, 255;
--color-primary-600: 23, 131, 255;
--color-primary-700: 31, 113, 235;
--color-primary-800: 35, 95, 216;
--color-primary-900: 38, 61, 185;
--color-secondary-50: 255, 236, 241;
--color-secondary-100: 255, 208, 218;
--color-secondary-200: 253, 157, 166;
--color-secondary-300: 249, 117, 130;
--color-secondary-400: 255, 79, 98;
--color-secondary-500: 255, 57, 73;
--color-secondary-600: 255, 48, 72;
--color-secondary-700: 237, 36, 65;
--color-secondary-800: 224, 27, 58;
--color-secondary-900: 209, 4, 45;
}
+35
View File
@@ -0,0 +1,35 @@
:root {
--color-neutral: 255, 255, 255;
--color-neutral-50: 248, 248, 248;
--color-neutral-100: 241, 241, 241;
--color-neutral-200: 226, 226, 226;
--color-neutral-300: 203, 203, 203;
--color-neutral-400: 188, 188, 188;
--color-neutral-500: 100, 100, 100;
--color-neutral-600: 71, 71, 71;
--color-neutral-700: 45, 45, 45;
--color-neutral-800: 23, 23, 23;
--color-neutral-900: 15, 15, 15;
--color-primary-50: 224, 244, 255;
--color-primary-100: 179, 224, 255;
--color-primary-200: 128, 202, 255;
--color-primary-300: 77, 179, 249;
--color-primary-400: 31, 158, 234;
--color-primary-500: 0, 122, 204;
--color-primary-600: 0, 110, 184;
--color-primary-700: 0, 94, 163;
--color-primary-800: 0, 79, 143;
--color-primary-900: 0, 57, 111;
--color-secondary-50: 225, 244, 238;
--color-secondary-100: 182, 227, 212;
--color-secondary-200: 135, 209, 184;
--color-secondary-300: 88, 190, 157;
--color-secondary-400: 55, 175, 137;
--color-secondary-500: 32, 160, 119;
--color-secondary-600: 28, 146, 107;
--color-secondary-700: 22, 130, 92;
--color-secondary-800: 12, 114, 79;
--color-secondary-900: 0, 86, 52;
}
+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"/>
</svg>

After

Width:  |  Height:  |  Size: 538 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80L96 511.9c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"/></svg>

After

Width:  |  Height:  |  Size: 700 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z"/></svg>

After

Width:  |  Height:  |  Size: 353 B

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
<path fill="currentColor" d="M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"/>
</svg>

After

Width:  |  Height:  |  Size: 479 B

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"/>
</svg>

After

Width:  |  Height:  |  Size: 787 B

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-13.3 0-24-10.7-24-24s10.7-24 24-24H64V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/>
</svg>

After

Width:  |  Height:  |  Size: 823 B

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor" d="M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V216z"/>
</svg>

After

Width:  |  Height:  |  Size: 451 B

+158 -182
View File
@@ -1,194 +1,170 @@
const getA11ySettings = () => {
const settings = localStorage.getItem("a11ySettings");
return settings
? JSON.parse(settings)
: {
disableBlur: false,
disableImages: false,
fontSize: "default",
underlineLinks: false,
zenMode: false,
};
};
window.A11yPanel = (() => {
const FEATURES = {
disableBlur: {
default: false,
apply: (enabled) => {
document.querySelectorAll("script[data-blur-id]").forEach((script) => {
const targetId = script.getAttribute("data-blur-id");
const scrollDivisor = Number(script.getAttribute("data-scroll-divisor") || 300);
if (typeof setBackgroundBlur === "function") {
setBackgroundBlur(targetId, scrollDivisor, enabled, targetId === "menu-blur");
}
});
},
},
const saveA11ySettings = (settings) => {
localStorage.setItem("a11ySettings", JSON.stringify(settings));
};
disableImages: {
default: false,
apply: (enabled) => {
const image = document.getElementById("background-image");
if (image) {
image.style.display = enabled ? "none" : "";
}
},
},
const applyImageState = (imageElement, imageUrl, disableImages) => {
if (!imageElement) return;
if (disableImages) {
imageElement.style.display = "none";
} else {
imageElement.style.display = "";
if (imageUrl && !imageElement.getAttribute("src")) {
imageElement.setAttribute("src", imageUrl);
fontSize: {
default: "default",
apply: (size) => {
document.documentElement.style.fontSize = size === "default" ? "" : size;
},
},
underlineLinks: {
default: false,
apply: (enabled) => {
const existing = document.getElementById("a11y-underline-links");
if (enabled && !existing) {
const style = document.createElement("style");
style.id = "a11y-underline-links";
style.textContent = `
a { text-decoration: underline !important; }
.group-hover-card-title { text-decoration: underline !important; }
.group-hover-card:hover .group-hover-card-title { text-decoration: underline !important; }`;
document.head.appendChild(style);
} else if (!enabled && existing) {
existing.remove();
}
},
},
zenMode: {
default: false,
apply: (enabled) => {
const isActive = document.body?.classList.contains("zen-mode-enable");
if (enabled !== isActive) {
const checkbox = document.querySelector('[id$="zen-mode"]');
if (checkbox && typeof _toggleZenMode === "function") {
_toggleZenMode(checkbox, { scrollToHeader: false });
}
}
},
},
};
let settings = null;
const getSettings = () => {
if (settings) return settings;
const defaults = Object.fromEntries(Object.entries(FEATURES).map(([key, config]) => [key, config.default]));
try {
const saved = localStorage.getItem("a11ySettings");
settings = { ...defaults, ...JSON.parse(saved || "{}") };
} catch {
settings = defaults;
}
}
};
return settings;
};
const applyFontSize = (fontSizePx) => {
const isDefaultSettings = localStorage.getItem("a11ySettings") === null;
if (!isDefaultSettings && fontSizePx !== "default") {
document.documentElement.style.fontSize = fontSizePx;
}
};
const applyUnderlineLinks = (enabled) => {
let styleElement = document.getElementById("a11y-underline-links");
if (enabled) {
if (!styleElement) {
styleElement = document.createElement("style");
styleElement.id = "a11y-underline-links";
styleElement.textContent = "a { text-decoration: underline !important; }";
document.head.appendChild(styleElement);
const updateSetting = (key, value) => {
const current = getSettings();
current[key] = value;
try {
localStorage.setItem("a11ySettings", JSON.stringify(current));
} catch (e) {
console.warn(`a11y.js: can not store settings: ${e}`);
}
} else {
if (styleElement) {
styleElement.remove();
}
}
};
FEATURES[key]?.apply(value);
};
const applyZenMode = (enabled) => {
const body = document.querySelector("body");
const isZenModeActive = body && body.classList.contains("zen-mode-enable");
const initPanel = (panelId) => {
const prefix = panelId.replace("a11y-panel", "");
const current = getSettings();
// Toggle only if current state doesn't match desired state
if (enabled !== isZenModeActive) {
const zenModeCheckbox = document.querySelector('[id$="zen-mode"]');
if (zenModeCheckbox && typeof _toggleZenMode === "function") {
_toggleZenMode(zenModeCheckbox, { scrollToHeader: false });
}
}
};
Object.entries(FEATURES).forEach(([key, config]) => {
const elementId = `${prefix}${key.replace(/([A-Z])/g, "-$1").toLowerCase()}`;
const element = document.getElementById(elementId) || document.getElementById(`${elementId}-select`);
const applyA11ySettings = () => {
const settings = getA11ySettings();
document.querySelectorAll("script[data-target-id]").forEach((script) => {
const targetId = script.getAttribute("data-target-id");
const scrollDivisor = Number(script.getAttribute("data-scroll-divisor") || 300);
const imageId = script.getAttribute("data-image-id");
const imageUrl = script.getAttribute("data-image-url");
const isMenuBlur = targetId === "menu-blur";
setBackgroundBlur(targetId, scrollDivisor, settings.disableBlur, isMenuBlur);
applyImageState(document.getElementById(imageId), imageUrl, settings.disableImages);
});
applyFontSize(settings.fontSize);
applyUnderlineLinks(settings.underlineLinks);
applyZenMode(settings.zenMode);
};
const updateA11ySetting = (key, value) => {
const settings = getA11ySettings();
settings[key] = value;
saveA11ySettings(settings);
applyA11ySettings();
};
const toggleA11yPanel = (prefix = "") => {
const panel = document.getElementById(`${prefix}a11y-panel`);
const overlay = document.getElementById(`${prefix}a11y-overlay`);
const button = document.getElementById(`${prefix}a11y-toggle`);
if (!panel || !overlay || !button) return;
if (overlay.classList.contains("hidden")) {
overlay.classList.remove("hidden");
panel.classList.remove("hidden");
button.setAttribute("aria-pressed", "true");
button.setAttribute("aria-expanded", "true");
} else {
overlay.classList.add("hidden");
panel.classList.add("hidden");
button.setAttribute("aria-pressed", "false");
button.setAttribute("aria-expanded", "false");
}
};
const initA11yPanel = (prefix = "") => {
const settings = getA11ySettings();
const checkboxBlur = document.getElementById(`${prefix}disable-blur`);
const checkboxImages = document.getElementById(`${prefix}disable-images`);
const checkboxUnderline = document.getElementById(`${prefix}underline-links`);
const checkboxZenMode = document.getElementById(`${prefix}zen-mode`);
const fontSizeSelect = document.getElementById(`${prefix}font-size-select`);
const toggleButton = document.getElementById(`${prefix}a11y-toggle`);
const closeButton = document.getElementById(`${prefix}a11y-close`);
const overlay = document.getElementById(`${prefix}a11y-overlay`);
if (
!checkboxBlur ||
!checkboxImages ||
!checkboxUnderline ||
!checkboxZenMode ||
!fontSizeSelect ||
!toggleButton ||
!closeButton ||
!overlay
) {
console.warn(`One or more a11y elements not found for prefix: ${prefix}`);
return;
}
checkboxBlur.checked = settings.disableBlur;
checkboxImages.checked = settings.disableImages;
checkboxUnderline.checked = settings.underlineLinks;
checkboxZenMode.checked = settings.zenMode;
fontSizeSelect.value = settings.fontSize;
checkboxBlur.addEventListener("change", (e) => updateA11ySetting("disableBlur", e.target.checked));
checkboxImages.addEventListener("change", (e) => updateA11ySetting("disableImages", e.target.checked));
checkboxUnderline.addEventListener("change", (e) => updateA11ySetting("underlineLinks", e.target.checked));
checkboxZenMode.addEventListener("change", (e) => {
// Only save setting, let applyZenMode handle the toggle logic
updateA11ySetting("zenMode", e.target.checked);
});
fontSizeSelect.addEventListener("change", (e) => {
// Remove fontSize from localStorage when default is selected
if (e.target.value === "default") {
const settings = getA11ySettings();
delete settings.fontSize;
saveA11ySettings(settings);
document.documentElement.style.fontSize = "";
} else {
updateA11ySetting("fontSize", e.target.value);
}
});
toggleButton.addEventListener("click", () => toggleA11yPanel(prefix));
closeButton.addEventListener("click", () => toggleA11yPanel(prefix));
overlay.addEventListener("click", (e) => {
if (e.target === overlay) {
toggleA11yPanel(prefix);
}
});
document.querySelectorAll(`.ios-toggle${prefix ? `[id^="${prefix}"]` : ""}`).forEach((toggle) => {
const checkbox = toggle.querySelector('input[type="checkbox"]');
if (!checkbox) return;
const newToggle = toggle.cloneNode(true);
toggle.parentNode.replaceChild(newToggle, toggle);
newToggle.addEventListener("click", () => {
const newCheckbox = newToggle.querySelector('input[type="checkbox"]');
if (newCheckbox) {
newCheckbox.checked = !newCheckbox.checked;
newCheckbox.dispatchEvent(new Event("change", { bubbles: true }));
if (element) {
if (element.type === "checkbox") {
element.checked = current[key];
element.onchange = (e) => updateSetting(key, e.target.checked);
} else if (element.tagName === "SELECT") {
element.value = current[key];
element.onchange = (e) => updateSetting(key, e.target.value);
}
}
});
});
};
document.querySelectorAll("script[data-target-id]").forEach((script) => {
const imageId = script.getAttribute("data-image-id");
const imageUrl = script.getAttribute("data-image-url");
const settings = getA11ySettings();
applyImageState(document.getElementById(imageId), imageUrl, settings.disableImages);
});
const togglePanel = () => {
const panel = document.getElementById(panelId);
const overlay = document.getElementById(`${prefix}a11y-overlay`);
const toggle = document.getElementById(`${prefix}a11y-toggle`);
document.addEventListener("DOMContentLoaded", () => {
applyA11ySettings();
const allPanels = document.querySelectorAll('[id$="a11y-panel"]');
allPanels.forEach((panel) => {
const prefix = panel.id.replace("a11y-panel", "");
initA11yPanel(prefix);
});
});
if (!panel || !overlay) return;
const isHidden = overlay.classList.contains("hidden");
overlay.classList.toggle("hidden");
panel.classList.toggle("hidden");
if (toggle) {
toggle.setAttribute("aria-pressed", String(isHidden));
toggle.setAttribute("aria-expanded", String(isHidden));
}
};
const toggle = document.getElementById(`${prefix}a11y-toggle`);
const close = document.getElementById(`${prefix}a11y-close`);
const overlay = document.getElementById(`${prefix}a11y-overlay`);
if (toggle) toggle.onclick = togglePanel;
if (close) close.onclick = togglePanel;
if (overlay) overlay.onclick = (e) => e.target === overlay && togglePanel();
};
const applyAll = () => {
const current = getSettings();
Object.entries(current).forEach(([key, value]) => {
FEATURES[key]?.apply(value);
});
};
const init = () => {
applyAll();
document.querySelectorAll('[id$="a11y-panel"]').forEach((panel) => {
initPanel(panel.id);
});
};
if (getSettings().disableImages) {
new MutationObserver(() => {
const img = document.getElementById("background-image");
if (img) img.style.display = "none";
}).observe(document, { childList: true, subtree: true });
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", init);
} else {
init();
}
return {
getSettings,
updateSetting,
addFeature: (name, config) => {
FEATURES[name] = config;
FEATURES[name].apply(getSettings()[name] || config.default);
},
};
})();
+33
View File
@@ -22,6 +22,34 @@ if (document.documentElement.getAttribute("data-auto-appearance") === "true") {
});
}
// Mermaid dark mode support
var updateMermaidTheme = () => {
if (typeof mermaid !== 'undefined') {
const isDark = document.documentElement.classList.contains("dark");
const mermaids = document.querySelectorAll('pre.mermaid');
mermaids.forEach(e => {
if (e.getAttribute('data-processed')) {
// Already rendered, clean the processed attributes
e.removeAttribute('data-processed');
// Replace the rendered HTML with the stored text
e.innerHTML = e.getAttribute('data-graph');
} else {
// First time, store the text
e.setAttribute('data-graph', e.textContent);
}
});
if (isDark) {
initMermaidDark();
mermaid.run();
} else {
initMermaidLight();
mermaid.run();
}
}
}
window.addEventListener("DOMContentLoaded", (event) => {
const switcher = document.getElementById("appearance-switcher");
const switcherMobile = document.getElementById("appearance-switcher-mobile");
@@ -29,6 +57,9 @@ window.addEventListener("DOMContentLoaded", (event) => {
updateMeta();
this.updateLogo?.(getTargetAppearance());
// Initialize mermaid theme on page load
updateMermaidTheme();
if (switcher) {
switcher.addEventListener("click", () => {
document.documentElement.classList.toggle("dark");
@@ -38,6 +69,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
targetAppearance
);
updateMeta();
updateMermaidTheme();
this.updateLogo?.(targetAppearance);
});
switcher.addEventListener("contextmenu", (event) => {
@@ -54,6 +86,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
targetAppearance
);
updateMeta();
updateMermaidTheme();
this.updateLogo?.(targetAppearance);
});
switcherMobile.addEventListener("contextmenu", (event) => {
+3 -16
View File
@@ -1,6 +1,6 @@
function setBackgroundBlur(targetId, scrollDivisor = 300, disableBlur = false, isMenuBlur = false) {
if (!targetId) {
console.error("data-target-id is null");
console.error("data-blur-id is null");
return;
}
const blurElement = document.getElementById(targetId);
@@ -29,24 +29,11 @@ function setBackgroundBlur(targetId, scrollDivisor = 300, disableBlur = false, i
updateBlur();
}
document.querySelectorAll("script[data-target-id]").forEach((script) => {
const targetId = script.getAttribute("data-target-id");
document.querySelectorAll("script[data-blur-id]").forEach((script) => {
const targetId = script.getAttribute("data-blur-id");
const scrollDivisor = Number(script.getAttribute("data-scroll-divisor") || 300);
const isMenuBlur = targetId === "menu-blur";
const settings = JSON.parse(localStorage.getItem("a11ySettings") || "{}");
const disableBlur = settings.disableBlur || false;
setBackgroundBlur(targetId, scrollDivisor, disableBlur, isMenuBlur);
});
// Prevent disableImages FOUC
// Note: I tried putting this in a11y.js but it did not work, and placing it here prevents FOUC
(() => {
const settings = JSON.parse(localStorage.getItem("a11ySettings") || "{}");
if (settings.disableImages) {
document.querySelectorAll("script[data-image-id]").forEach((script) => {
const imageId = script.getAttribute("data-image-id");
const image = imageId && document.getElementById(imageId);
if (image) image.style.display = "none";
});
}
})();
-4
View File
@@ -1,4 +0,0 @@
document.getElementById("button_likes") &&
document.getElementById("button_likes").addEventListener("click", () => {
process_article();
});
+52 -44
View File
@@ -1,70 +1,78 @@
var scriptBundle = document.getElementById("script-bundle");
var copyText =
scriptBundle && scriptBundle.getAttribute("data-copy") ? scriptBundle.getAttribute("data-copy") : "Copy";
var copiedText =
scriptBundle && scriptBundle.getAttribute("data-copied")
? scriptBundle.getAttribute("data-copied")
: "Copied";
var copyText = scriptBundle?.getAttribute("data-copy") || "Copy";
var copiedText = scriptBundle?.getAttribute("data-copied") || "Copied";
function createCopyButton(highlightDiv) {
function createCopyButton(highlightWrapper) {
const button = document.createElement("button");
button.className = "copy-button";
button.type = "button";
button.ariaLabel = copyText;
button.innerText = copyText;
button.addEventListener("click", () => copyCodeToClipboard(button, highlightDiv));
addCopyButtonToDom(button, highlightDiv);
button.addEventListener("click", () => copyCodeToClipboard(button, highlightWrapper));
highlightWrapper.insertBefore(button, highlightWrapper.firstChild);
}
async function copyCodeToClipboard(button, highlightDiv) {
const codeToCopy = highlightDiv.querySelector(":last-child").innerText;
async function copyCodeToClipboard(button, highlightWrapper) {
const codeToCopy = getCodeText(highlightWrapper);
function fallback(codeToCopy, highlightWrapper) {
const textArea = document.createElement("textArea");
textArea.contentEditable = "true";
textArea.readOnly = "false";
textArea.className = "copy-textarea";
textArea.value = codeToCopy;
highlightWrapper.insertBefore(textArea, highlightWrapper.firstChild);
const range = document.createRange();
range.selectNodeContents(textArea);
const sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
textArea.focus();
textArea.setSelectionRange(0, 999999);
document.execCommand("copy");
highlightWrapper.removeChild(textArea);
}
try {
result = await navigator.permissions.query({ name: "clipboard-write" });
if (result.state == "granted" || result.state == "prompt") {
await navigator.clipboard.writeText(codeToCopy);
} else {
copyCodeBlockExecCommand(codeToCopy, highlightDiv);
fallback(codeToCopy, highlightWrapper);
}
} catch (_) {
copyCodeBlockExecCommand(codeToCopy, highlightDiv);
fallback(codeToCopy, highlightWrapper);
} finally {
codeWasCopied(button);
button.blur();
button.innerText = copiedText;
setTimeout(function () {
button.innerText = copyText;
}, 2000);
}
}
function copyCodeBlockExecCommand(codeToCopy, highlightDiv) {
const textArea = document.createElement("textArea");
textArea.contentEditable = "true";
textArea.readOnly = "false";
textArea.className = "copy-textarea";
textArea.value = codeToCopy;
highlightDiv.insertBefore(textArea, highlightDiv.firstChild);
const range = document.createRange();
range.selectNodeContents(textArea);
const sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
textArea.setSelectionRange(0, 999999);
document.execCommand("copy");
highlightDiv.removeChild(textArea);
}
function getCodeText(highlightWrapper) {
const highlightDiv = highlightWrapper.querySelector(".highlight");
if (!highlightDiv) return "";
function codeWasCopied(button) {
button.blur();
button.innerText = copiedText;
setTimeout(function () {
button.innerText = copyText;
}, 2000);
}
const codeBlock = highlightDiv.querySelector("code");
const inlineLines = codeBlock?.querySelectorAll(".cl"); // linenos=inline
const tableCodeCell = highlightDiv?.querySelector(".lntable .lntd:last-child code"); // linenos=table
function addCopyButtonToDom(button, highlightDiv) {
highlightDiv.insertBefore(button, highlightDiv.firstChild);
const wrapper = document.createElement("div");
wrapper.className = "highlight-wrapper";
highlightDiv.parentNode.insertBefore(wrapper, highlightDiv);
wrapper.appendChild(highlightDiv);
if (!codeBlock) return "";
if (inlineLines.length > 0) {
const cleanedLines = Array.from(inlineLines).map((line) => line.textContent.replace(/\n$/, ""));
return cleanedLines.join("\n");
}
if (tableCodeCell) {
return tableCodeCell.textContent.trim();
}
return codeBlock.textContent.trim();
}
window.addEventListener("DOMContentLoaded", (event) => {
document.querySelectorAll(".highlight").forEach((highlightDiv) => createCopyButton(highlightDiv));
document.querySelectorAll(".highlight-wrapper").forEach((highlightWrapper) => createCopyButton(highlightWrapper));
});
+13 -1
View File
@@ -64,6 +64,16 @@
});
const data = await response.json();
if (!response.ok) {
console.error(`fetch-repo.js: HTTP Error: ${response.status} ${response.statusText}`);
return;
}
if (!data || typeof data !== "object") {
console.error("fetch-repo.js: Invalid or empty data received from remote");
return;
}
Object.entries(mapping).forEach(([dataField, elementSuffix]) => {
const element = document.getElementById(`${repoId}-${elementSuffix}`);
if (element) {
@@ -71,7 +81,9 @@
if (processors[platform]?.[dataField]) {
value = processors[platform][dataField](value);
}
element.innerHTML = value;
if (value != null && value !== "") {
element.innerHTML = value;
}
}
});
} catch (error) {
+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);
+28 -26
View File
@@ -2,30 +2,32 @@ function css(name) {
return "rgb(" + getComputedStyle(document.documentElement).getPropertyValue(name) + ")";
}
document.addEventListener("DOMContentLoaded", () => {
const mermaidDivs = document.querySelectorAll("div.mermaid");
function initMermaidLight() {
mermaid.initialize({
theme: "base",
themeVariables: {
background: css("--color-neutral"),
primaryColor: css("--color-primary-200"),
secondaryColor: css("--color-secondary-200"),
tertiaryColor: css("--color-neutral-100"),
primaryBorderColor: css("--color-primary-400"),
secondaryBorderColor: css("--color-secondary-400"),
tertiaryBorderColor: css("--color-neutral-400"),
lineColor: css("--color-neutral-600"),
fontFamily:
"ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,sans-serif",
fontSize: "16px",
},
});
}
for (const div of mermaidDivs) {
const preElement = div.querySelector("pre");
if (preElement) {
div.textContent = preElement.textContent;
}
}
});
mermaid.initialize({
theme: "base",
themeVariables: {
background: css("--color-neutral"),
primaryColor: css("--color-primary-200"),
secondaryColor: css("--color-secondary-200"),
tertiaryColor: css("--color-neutral-100"),
primaryBorderColor: css("--color-primary-400"),
secondaryBorderColor: css("--color-secondary-400"),
tertiaryBorderColor: css("--color-neutral-400"),
lineColor: css("--color-neutral-600"),
fontFamily:
"ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,sans-serif",
fontSize: "16px",
},
});
function initMermaidDark() {
mermaid.initialize({
theme: "dark",
themeVariables: {
fontFamily:
"ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,sans-serif",
fontSize: "16px",
},
});
}
-33
View File
@@ -1,33 +0,0 @@
var menuButton = document.getElementById("menu-button");
var menuCloseButton = document.getElementById("menu-close-button");
var menuWrapper = document.getElementById("menu-wrapper");
var menuOpen = false;
var openMenu = function () {
if (!menuOpen) {
menuOpen = true;
document.body.style.overflowY = "hidden";
menuButton.style.visibility = "hidden";
menuWrapper.style.visibility = "visible";
menuWrapper.style.opacity = "1";
window.onbeforeunload = function () {
closeMenu();
};
}
};
var closeMenu = function (e) {
if (menuOpen) {
menuOpen = false;
document.body.style.overflowY = "auto";
menuButton.style.visibility = "visible";
menuWrapper.style.visibility = "hidden";
menuWrapper.style.opacity = "0";
window.onbeforeunload = function () {};
e.stopPropagation();
}
};
menuButton && menuButton.addEventListener("click", openMenu);
menuCloseButton && menuCloseButton.addEventListener("click", closeMenu);
-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);
}
}
+17
View File
@@ -0,0 +1,17 @@
(function() {
'use strict';
var closedDetails = [];
window.addEventListener('beforeprint', function() {
var allDetails = document.querySelectorAll('details:not([open])');
for (var i = 0; i < allDetails.length; i++) {
allDetails[i].open = true;
closedDetails.push(allDetails[i]);
}
});
window.addEventListener('afterprint', function() {
for (var i = 0; i < closedDetails.length; i++) {
closedDetails[i].open = false;
}
closedDetails = [];
});
})();
-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);
});
}
+13
View File
@@ -0,0 +1,13 @@
function scrollToTop() {
const scrollToTop = document.getElementById("scroll-to-top");
if (window.scrollY > window.innerHeight * 0.5) {
scrollToTop.classList.remove("translate-y-4", "opacity-0");
scrollToTop.classList.add("translate-y-0", "opacity-100");
} else {
scrollToTop.classList.remove("translate-y-0", "opacity-100");
scrollToTop.classList.add("translate-y-4", "opacity-0");
}
}
window.addEventListener("scroll", scrollToTop);
window.addEventListener("load", scrollToTop);
+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();
});
})();
+59
View File
@@ -0,0 +1,59 @@
function initTabs() {
tabClickHandler = (event) => {
const button = event.target.closest(".tab__button");
if (!button) return;
const container = button.closest(".tab__container");
const tabIndex = parseInt(button.dataset.tabIndex);
const tabLabel = button.dataset.tabLabel;
const group = container.dataset.tabGroup;
if (group) {
const allGroupContainers = document.querySelectorAll(`.tab__container[data-tab-group="${group}"]`);
allGroupContainers.forEach((groupContainer) => {
const targetButton = Array.from(groupContainer.querySelectorAll(".tab__button")).find(
(btn) => btn.dataset.tabLabel === tabLabel,
);
if (targetButton) {
const targetIndex = parseInt(targetButton.dataset.tabIndex);
activateTab(groupContainer, targetIndex);
}
});
} else {
activateTab(container, tabIndex);
}
};
document.addEventListener("click", tabClickHandler);
}
function activateTab(container, activeIndex) {
const buttons = container.querySelectorAll(".tab__button");
const panels = container.querySelectorAll(".tab__panel");
buttons.forEach((btn, index) => {
if (index === activeIndex) {
btn.classList.add("tab--active");
btn.setAttribute("aria-selected", "true");
} else {
btn.classList.remove("tab--active");
btn.setAttribute("aria-selected", "false");
}
});
panels.forEach((panel, index) => {
if (index === activeIndex) {
panel.classList.add("tab--active");
} else {
panel.classList.remove("tab--active");
}
});
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initTabs);
} else {
initTabs();
}
+2 -2
View File
@@ -1,5 +1,5 @@
/*!
* Chart.js v4.5.0
* Chart.js v4.5.1
* https://www.chartjs.org
* (c) 2025 Chart.js Contributors
* Released under the MIT License
@@ -10,5 +10,5 @@
* https://github.com/kurkle/color#readme
* (c) 2023 Jukka Kurkela
* Released under the MIT License
*/function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e<i?6:0):e===n?(i-t)/s+2:(t-e)/s+4}(e,i,s,h,n),r=60*r+.5),[0|r,l||0,a]}function zt(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(Mt)}function Ft(t,e,i){return zt(Lt,t,e,i)}function Vt(t){return(t%360+360)%360}function Bt(t){const e=Tt.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?vt(+e[5]):Mt(+e[5]));const n=Vt(+e[2]),o=+e[3]/100,a=+e[4]/100;return i="hwb"===e[1]?function(t,e,i){return zt(Rt,t,e,i)}(n,o,a):"hsv"===e[1]?function(t,e,i){return zt(Et,t,e,i)}(n,o,a):Ft(n,o,a),{r:i[0],g:i[1],b:i[2],a:s}}const Wt={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Nt={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};let Ht;function jt(t){Ht||(Ht=function(){const t={},e=Object.keys(Nt),i=Object.keys(Wt);let s,n,o,a,r;for(s=0;s<e.length;s++){for(a=r=e[s],n=0;n<i.length;n++)o=i[n],r=r.replace(o,Wt[o]);o=parseInt(Nt[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),Line truncated
*/function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e<i?6:0):e===n?(i-t)/s+2:(t-e)/s+4}(e,i,s,h,n),r=60*r+.5),[0|r,l||0,a]}function zt(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(Mt)}function Ft(t,e,i){return zt(Lt,t,e,i)}function Vt(t){return(t%360+360)%360}function Bt(t){const e=Tt.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?vt(+e[5]):Mt(+e[5]));const n=Vt(+e[2]),o=+e[3]/100,a=+e[4]/100;return i="hwb"===e[1]?function(t,e,i){return zt(Rt,t,e,i)}(n,o,a):"hsv"===e[1]?function(t,e,i){return zt(Et,t,e,i)}(n,o,a):Ft(n,o,a),{r:i[0],g:i[1],b:i[2],a:s}}const Wt={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Nt={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};let Ht;function jt(t){Ht||(Ht=function(){const t={},e=Object.keys(Nt),i=Object.keys(Wt);let s,n,o,a,r;for(s=0;s<e.length;s++){for(a=r=e[s],n=0;n<i.length;n++)o=i[n],r=r.replace(o,Wt[o]);o=parseInt(Nt[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),Line truncated
//# sourceMappingURL=chart.umd.js.map
-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 @@
@font-face{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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.22"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1pLine 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={contains:function(e,t){return-1!==e.indexOf(t)},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 0Line 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 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
@@ -52,7 +52,7 @@ lite-youtube > iframe {
}
/* play button */
lite-youtube > .lty-playbtn {
lite-youtube > .lyt-playbtn {
display: block;
/* Make the button element cover the whole area for a large hover/click target… */
width: 100%;
@@ -69,8 +69,8 @@ lite-youtube > .lty-playbtn {
border: 0;
}
lite-youtube:hover > .lty-playbtn,
lite-youtube .lty-playbtn:focus {
lite-youtube:hover > .lyt-playbtn,
lite-youtube .lyt-playbtn:focus {
filter: none;
}
@@ -79,7 +79,7 @@ lite-youtube.lyt-activated {
cursor: unset;
}
lite-youtube.lyt-activated::before,
lite-youtube.lyt-activated > .lty-playbtn {
lite-youtube.lyt-activated > .lyt-playbtn {
opacity: 0;
pointer-events: none;
}
@@ -14,7 +14,7 @@ class LiteYTEmbed extends HTMLElement {
connectedCallback() {
this.videoId = this.getAttribute('videoid');
let playBtnEl = this.querySelector('.lty-playbtn');
let playBtnEl = this.querySelector('.lyt-playbtn,.lty-playbtn');
// A label for the button takes priority over a [playlabel] attribute on the custom-element
this.playLabel = (playBtnEl && playBtnEl.textContent.trim()) || this.getAttribute('playlabel') || 'Play';
@@ -34,7 +34,8 @@ class LiteYTEmbed extends HTMLElement {
if (!playBtnEl) {
playBtnEl = document.createElement('button');
playBtnEl.type = 'button';
playBtnEl.classList.add('lty-playbtn');
// Include the mispelled 'lty-' in case it's still being used. https://github.com/paulirish/lite-youtube-embed/issues/65
playBtnEl.classList.add('lyt-playbtn', 'lty-playbtn');
this.append(playBtnEl);
}
if (!playBtnEl.textContent) {
@@ -200,6 +201,8 @@ class LiteYTEmbed extends HTMLElement {
iframeEl.title = this.playLabel;
iframeEl.allow = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture';
iframeEl.allowFullscreen = true;
// Required by Youtube to fix Error 153
iframeEl.referrerPolicy = 'strict-origin-when-cross-origin';
// AFAIK, the encoding here isn't necessary for XSS, but we'll do it only because this is a URL
// https://stackoverflow.com/q/64959723/89484
iframeEl.src = `https://www.youtube-nocookie.com/embed/${encodeURIComponent(this.videoId)}?${this.getParams().toString()}`;
+806 -1436
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.148.2"
max = "0.155.3"
+6
View File
@@ -2,6 +2,12 @@
# These settings are required for the theme to function.
[goldmark]
[goldmark.parser]
wrapStandAloneImageWithinParagraph = false
[goldmark.parser.attribute]
block = true
[goldmark.renderer]
unsafe = true
+7 -2
View File
@@ -12,6 +12,8 @@ autoSwitchAppearance = true
enableA11y = false
enableSearch = true
enableCodeCopy = false
enableStructuredBreadcrumbs = false
# enableStyledScrollbar = true # disable to use native scrollbar style (defaults to true)
replyByEmail = false
@@ -23,9 +25,11 @@ disableImageOptimizationMD = false
disableTextInHeader = false
# backgroundImageWidth = 1200
# defaultBackgroundImage = "IMAGE.jpg" # used as default for background images
# defaultBackgroundImage = "IMAGE.jpg" # used as default for background images
# defaultFeaturedImage = "IMAGE.jpg" # used as default for featured images in all articles
# defaultSocialImage = "/android-chrome-512x512.png" # used as default for social media sharing (Open Graph and Twitter)
hotlinkFeatureImage = false
# imagePosition = "50% 50%"
# highlightCurrentMenuArea = true
# smartTOC = true
@@ -89,6 +93,7 @@ forgejoDefaultServer = "https://v11.next.forgejo.org"
showWordCount = true
# sharingLinks = [ "linkedin", "twitter", "bluesky", "mastodon", "reddit", "pinterest", "facebook", "email", "whatsapp", "telegram", "line"]
showZenMode = false
# externalLinkForceNewTab = false # disable to allow external links in the same tab (defaults to true)
[list]
showHero = false
@@ -160,7 +165,7 @@ forgejoDefaultServer = "https://v11.next.forgejo.org"
# globalWidget = true
# globalWidgetMessage = "Hello"
# globalWidgetColor = "#FFDD00"
# globalWidgetPosition = "Right"
# globalWidgetPosition = "right"
[verification]
# google = ""
File diff suppressed because it is too large. Load diff
+1
View File
@@ -0,0 +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/147227691?v=4\u0026s=128","profile_url":"https://github.com/AtmosphericIgnition","username":"AtmosphericIgnition"}]
@@ -0,0 +1,22 @@
languageCode = "de"
languageName = "Deutsch"
weight = 3
title = "Blowfish"
[params]
displayName = "Deutsch"
isoCode = "de"
rtl = false
dateFormat = "2. January 2006"
logo = "img/blowfish_logo_transparent.png"
description = "Ein leistungsstarkes, leichtgewichtiges Theme für Hugo."
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "Ein leistungsstarkes, leichtgewichtiges Theme für Hugo."
bio = "Ein leistungsstarkes, leichtgewichtiges Theme für Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -0,0 +1,22 @@
languageCode = "es"
languageName = "Español"
weight = 6
title = "Blowfish"
[params]
displayName = "Español"
isoCode = "es"
rtl = false
dateFormat = "2 de January de 2006"
logo = "img/blowfish_logo_transparent.png"
description = "Un tema potente y ligero para Hugo."
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "Un tema potente y ligero para Hugo."
bio = "Un tema potente y ligero para Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -0,0 +1,22 @@
languageCode = "fr"
languageName = "Français"
weight = 2
title = "Blowfish"
[params]
displayName = "Français"
isoCode = "fr"
rtl = false
dateFormat = "2 janvier 2006"
logo = "img/blowfish_logo_transparent.png"
description = "Un thème puissant et léger pour Hugo."
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "Un thème puissant et léger pour Hugo."
bio = "Un thème puissant et léger pour Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -1,6 +1,6 @@
languageCode = "it"
languageName = "Italiano"
weight = 2
weight = 4
title = "Blowfish"
[params]
@@ -1,6 +1,6 @@
languageCode = "ja"
languageName = "日本語"
weight = 3
weight = 8
title = "Blowfish"
[params]
@@ -0,0 +1,22 @@
languageCode = "pt-br"
languageName = "Português (Brasil)"
weight = 6
title = "Blowfish"
[params]
displayName = "Português (Brasil)"
isoCode = "pt-br"
rtl = false
dateFormat = "2 de January de 2006"
logo = "img/blowfish_logo_transparent.png"
description = "Um tema poderoso e leve para Hugo."
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "Um tema poderoso e leve para Hugo."
bio = "Um tema poderoso e leve para Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -0,0 +1,22 @@
languageCode = "pt-pt"
languageName = "Português (Portugal)"
weight = 5
title = "Blowfish"
[params]
displayName = "Português (Portugal)"
isoCode = "pt-pt"
rtl = false
dateFormat = "2 de January de 2006"
logo = "img/blowfish_logo_transparent.png"
description = "Um tema poderoso e leve para Hugo."
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "Um tema poderoso e leve para Hugo."
bio = "Um tema poderoso e leve para Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -1,6 +1,6 @@
languageCode = "zh-cn"
languageName = "简体中文"
weight = 4
weight = 9
title = "Blowfish"
[params]
+6
View File
@@ -2,6 +2,12 @@
# These settings are required for the theme to function.
[goldmark]
[goldmark.parser]
wrapStandAloneImageWithinParagraph = false
[goldmark.parser.attribute]
block = true
[goldmark.renderer]
unsafe = true
+69
View File
@@ -0,0 +1,69 @@
# -- Hauptmenü --
# Das Hauptmenü wird in der Kopfzeile oben auf der Seite angezeigt.
[[main]]
name = "Dokumentation"
pageRef = "docs"
weight = 10
[[main]]
name = "Shortcodes"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "Beispiele"
weight = 20
[[main]]
name = "Vorlagen"
parent = "Beispiele"
pageRef = "samples"
weight = 16
[[main]]
name = "Galerie"
parent = "Beispiele"
pageRef = "examples"
weight = 30
[[main]]
name = "Rezepte"
parent = "Beispiele"
pageRef = "guides"
weight = 40
[[main]]
name = "Benutzer"
pageRef = "users"
weight = 90
[[main]]
name = "Merch"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Fußzeilenmenü --
[[footer]]
name = "Tags"
pageRef = "tags"
weight = 10
[[footer]]
name = "Autoren"
pageRef = "authors"
weight = 20
+69
View File
@@ -0,0 +1,69 @@
# -- Menú Principal --
# El menú principal se muestra en el encabezado en la parte superior de la página.
[[main]]
name = "Documentación"
pageRef = "docs"
weight = 10
[[main]]
name = "Shortcodes"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "Ejemplos"
weight = 20
[[main]]
name = "Muestras"
parent = "Ejemplos"
pageRef = "samples"
weight = 16
[[main]]
name = "Galería"
parent = "Ejemplos"
pageRef = "examples"
weight = 30
[[main]]
name = "Recetas"
parent = "Ejemplos"
pageRef = "guides"
weight = 40
[[main]]
name = "Usuarios"
pageRef = "users"
weight = 90
[[main]]
name = "Merch"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Menú de Pie de Página --
[[footer]]
name = "Etiquetas"
pageRef = "tags"
weight = 10
[[footer]]
name = "Autores"
pageRef = "authors"
weight = 20
+69
View File
@@ -0,0 +1,69 @@
# -- Menu Principal --
# Le menu principal est affiché dans l'en-tête en haut de la page.
[[main]]
name = "Documentation"
pageRef = "docs"
weight = 10
[[main]]
name = "Shortcodes"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "Exemples"
weight = 20
[[main]]
name = "Échantillons"
parent = "Exemples"
pageRef = "samples"
weight = 16
[[main]]
name = "Vitrine"
parent = "Exemples"
pageRef = "examples"
weight = 30
[[main]]
name = "Recettes"
parent = "Exemples"
pageRef = "guides"
weight = 40
[[main]]
name = "Utilisateurs"
pageRef = "users"
weight = 90
[[main]]
name = "Merch"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Menu Pied de Page --
[[footer]]
name = "Tags"
pageRef = "tags"
weight = 10
[[footer]]
name = "Auteurs"
pageRef = "authors"
weight = 20
@@ -0,0 +1,69 @@
# -- Menu Principal --
# O menu principal é exibido no cabeçalho no topo da página.
[[main]]
name = "Documentação"
pageRef = "docs"
weight = 10
[[main]]
name = "Shortcodes"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "Exemplos"
weight = 20
[[main]]
name = "Amostras"
parent = "Exemplos"
pageRef = "samples"
weight = 16
[[main]]
name = "Galeria"
parent = "Exemplos"
pageRef = "examples"
weight = 30
[[main]]
name = "Receitas"
parent = "Exemplos"
pageRef = "guides"
weight = 40
[[main]]
name = "Usuários"
pageRef = "users"
weight = 90
[[main]]
name = "Merch"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Menu de Rodapé --
[[footer]]
name = "Tags"
pageRef = "tags"
weight = 10
[[footer]]
name = "Autores"
pageRef = "authors"
weight = 20
@@ -0,0 +1,69 @@
# -- Menu Principal --
# O menu principal é apresentado no cabeçalho no topo da página.
[[main]]
name = "Documentação"
pageRef = "docs"
weight = 10
[[main]]
name = "Shortcodes"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "Exemplos"
weight = 20
[[main]]
name = "Amostras"
parent = "Exemplos"
pageRef = "samples"
weight = 16
[[main]]
name = "Galeria"
parent = "Exemplos"
pageRef = "examples"
weight = 30
[[main]]
name = "Receitas"
parent = "Exemplos"
pageRef = "guides"
weight = 40
[[main]]
name = "Utilizadores"
pageRef = "users"
weight = 90
[[main]]
name = "Merch"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Menu de Rodapé --
[[footer]]
name = "Tags"
pageRef = "tags"
weight = 10
[[footer]]
name = "Autores"
pageRef = "authors"
weight = 20
+16 -13
View File
@@ -12,6 +12,7 @@ autoSwitchAppearance = true
enableA11y = false
enableSearch = true
enableCodeCopy = true
enableStructuredBreadcrumbs = true
replyByEmail = false
@@ -26,6 +27,8 @@ disableTextInHeader = false
defaultBackgroundImage = "/img/background.svg"
defaultFeaturedImage = "/img/featured.svg"
defaultSocialImage = "/img/blowfish_banner.png"
hotlinkFeatureImage = false
# imagePosition = "50% 50%"
highlightCurrentMenuArea = true
smartTOC = true
@@ -60,7 +63,7 @@ fingerprintAlgorithm = "sha512" # Valid values are "sha512" (default), "sha384",
[article]
showDate = false
showViews = false
showViews = true
showLikes = false
showDateOnlyInArticle = false
showDateUpdated = false
@@ -83,8 +86,8 @@ fingerprintAlgorithm = "sha512" # Valid values are "sha512" (default), "sha384",
showTableOfContents = true
showRelatedContent = true
relatedContentLimit = 9
showTaxonomies = true
showAuthorsBadges = true
showTaxonomies = true
showAuthorsBadges = true
showWordCount = false
sharingLinks = [ "linkedin", "twitter", "bluesky", "reddit", "whatsapp", "telegram", "pinterest", "facebook", "email", "line"]
showZenMode = true
@@ -129,15 +132,15 @@ fingerprintAlgorithm = "sha512" # Valid values are "sha512" (default), "sha384",
groupByYear = false
cardView = true
cardViewScreenWidth = false
[firebase]
#apiKey = "AIzaSyB5tqlqDky77Vb4Tc4apiHV4hRZI18KGiY"
#authDomain = "blowfish-21fff.firebaseapp.com"
#projectId = "blowfish-21fff"
#storageBucket = "blowfish-21fff.appspot.com"
#messagingSenderId = "60108104191"
#appId = "1:60108104191:web:039842ebe1370698b487ca"
#measurementId = "G-PEDMYR1V0K"
apiKey = "AIzaSyB5tqlqDky77Vb4Tc4apiHV4hRZI18KGiY"
authDomain = "blowfish-21fff.firebaseapp.com"
projectId = "blowfish-21fff"
storageBucket = "blowfish-21fff.appspot.com"
messagingSenderId = "60108104191"
appId = "1:60108104191:web:039842ebe1370698b487ca"
measurementId = "G-PEDMYR1V0K"
[fathomAnalytics]
# site = "ABC12345"
@@ -159,7 +162,7 @@ fingerprintAlgorithm = "sha512" # Valid values are "sha512" (default), "sha384",
globalWidget = true
globalWidgetMessage = ""
globalWidgetColor = "#FFDD00"
globalWidgetPosition = "Right"
globalWidgetPosition = "right"
[verification]
# google = ""
@@ -172,4 +175,4 @@ fingerprintAlgorithm = "sha512" # Valid values are "sha512" (default), "sha384",
# userId = ""
[advertisement]
# adsense = ""
# adsense = ""
+29
View File
@@ -0,0 +1,29 @@
---
title: "Willkommen bei Blowfish! :tada:"
description: "Diese Seite wurde mit dem Blowfish-Theme für Hugo erstellt."
---
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">Dies ist eine Demo des <code id="layout">background</code> Layouts.</span>
<button
id="switch-layout-button"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Layout wechseln &orarr;
</button>
</span>
</div>
```shell
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Blowfish-tools Demo" >}}
+29
View File
@@ -0,0 +1,29 @@
---
title: "¡Bienvenido a Blowfish! :tada:"
description: "Esta página fue creada usando el tema Blowfish para Hugo."
---
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">Esta es una demostración del layout <code id="layout">background</code>.</span>
<button
id="switch-layout-button"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Cambiar layout &orarr;
</button>
</span>
</div>
```shell
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Demo de Blowfish-tools" >}}
+29
View File
@@ -0,0 +1,29 @@
---
title: "Bienvenue sur Blowfish ! :tada:"
description: "Cette page a été créée avec le thème Blowfish pour Hugo."
---
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">Ceci est une démo du layout <code id="layout">background</code>.</span>
<button
id="switch-layout-button"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Changer de layout &orarr;
</button>
</span>
</div>
```shell
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Démo de Blowfish-tools" >}}
+3 -3
View File
@@ -3,14 +3,14 @@ title: "Benvenuti a Blowfish!"
description: "Questa pagina è stata creata utilizzando il tema Blowfish per Hugo."
---
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center ltr:pr-3 rtl:pl-3 text-primary-400">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">Questa è una demo del layout <code id="layout">background</code>.</span>
<button
id="switch-layout-button"
class="px-4 !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Cambia layout &orarr;
</button>
@@ -22,4 +22,4 @@ description: "Questa pagina è stata creata utilizzando il tema Blowfish per Hug
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Demo degli strumenti Blowfish" >}}
{{< youtubeLite id="SgXhGb-7QbU" label="Demo degli strumenti Blowfish" >}}
+2 -2
View File
@@ -5,14 +5,14 @@ description: "このページは Hugo の Blowfish テーマを利用して構
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center ltr:pr-3 rtl:pl-3 text-primary-400">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">こちらは <code id="layout">background</code> レイアウトのデモです。</span>
<button
id="switch-layout-button"
class="px-4 !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
レイアウトを変更する&orarr;
</button>
+2 -2
View File
@@ -5,14 +5,14 @@ description: "This page was built using the Blowfish theme for Hugo."
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center ltr:pr-3 rtl:pl-3 text-primary-400">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">This is a demo of the <code id="layout">background</code> layout.</span>
<button
id="switch-layout-button"
class="px-4 !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Switch layout &orarr;
</button>
+29
View File
@@ -0,0 +1,29 @@
---
title: "Bem-vindo ao Blowfish! :tada:"
description: "Esta página foi criada usando o tema Blowfish para Hugo."
---
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">Esta é uma demonstração do layout <code id="layout">background</code>.</span>
<button
id="switch-layout-button"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Mudar layout &orarr;
</button>
</span>
</div>
```shell
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Demo do Blowfish-tools" >}}
+29
View File
@@ -0,0 +1,29 @@
---
title: "Bem-vindo ao Blowfish! :tada:"
description: "Esta página foi criada utilizando o tema Blowfish para Hugo."
---
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">Esta é uma demonstração do layout <code id="layout">background</code>.</span>
<button
id="switch-layout-button"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Mudar layout &orarr;
</button>
</span>
</div>
```shell
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Demo do Blowfish-tools" >}}
+2 -2
View File
@@ -5,14 +5,14 @@ description: "此页面是使用 Hugo 的 Blowfish 主题搭建的"
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center ltr:pr-3 rtl:pl-3 text-primary-400">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert"> 这是 <code id="layout">background</code> 的样式示例。</span>
<button
id="switch-layout-button"
class="px-4 !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
切换 layout &orarr;
</button>
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
Nunos fantastische Beispielbiografie.
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
La increíble biografía ficticia de Nuno.
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
La super bio fictive de Nuno.
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
A incrível bio fictícia do Nuno.
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
A fantástica biografia fictícia do Nuno.
@@ -0,0 +1,5 @@
---
title: "Dummy Second Author"
---
Die fantastische Beispielbiografie des zweiten Beispielautors.
@@ -0,0 +1,5 @@
---
title: "Dummy Second Author"
---
La increíble biografía ficticia del segundo autor ficticio.
@@ -0,0 +1,5 @@
---
title: "Dummy Second Author"
---
La super bio fictive du deuxième auteur fictif.
@@ -0,0 +1,5 @@
---
title: "Dummy Second Author"
---
A incrível bio fictícia do segundo autor fictício.
@@ -0,0 +1,5 @@
---
title: "Dummy Second Author"
---
A fantástica biografia fictícia do segundo autor fictício.
Loaded 100 of 1797 files, more files were not shown because too many files have changed in this diff. Show more