Compare commits

...
892 Commits
Author SHA1 Message Date
Nuno Coração 16716dbb14 Merge pull request #1863 from nunocoracao/dev
🔖 v2.81.0
2025-01-10 23:29:17 +00:00
Nuno Coração 5ed3305106 updated gh actions 2025-01-10 23:27:31 +00:00
Nuno Coração 31e19a6bc5 Merge branch 'main' into dev 2025-01-10 23:22:27 +00:00
Nuno Coração 3888252df9 updated user list 2025-01-10 23:16:29 +00:00
Nuno Coração 25386511f5 Merge pull request #1902 from morethan987/dev
support the day/night mod change for SVG logo
2025-01-10 23:09:20 +00:00
Nuno Coração ef5186ce4c Merge pull request #1886 from AzzamAlsharafi/dev
🐛 RTL top nav bar layout fix.
2025-01-10 23:04:33 +00:00
Nuno Coração 7736a480e3 Merge pull request #1884 from laterre39/main
PR request to add a User.json blog listing and Korean emoji
2025-01-10 23:01:36 +00:00
Nuno Coração c4af18e2b8 Merge branch 'dev' into main 2025-01-10 23:01:29 +00:00
Nuno Coração dfb3dcef7b Update ko.yaml 2025-01-10 23:00:38 +00:00
Nuno Coração 4d8fd4f89a fixed typo in users.json 2025-01-10 22:59:22 +00:00
Nuno Coração 3b356312d4 Merge pull request #1883 from StepaniaH/main
Add my (StepaniaH) blog in user.json
2025-01-10 22:58:28 +00:00
Nuno Coração 4de11801b7 Merge pull request #1873 from mrtruongvu/main
Added my website to the users.json file
2025-01-10 22:57:41 +00:00
Nuno Coração 21a7eafd89 Merge pull request #1872 from racehd/config-zip
⚙️Update `Create Config Zip` pipeline to trigger on release
2025-01-10 22:55:41 +00:00
Nuno Coração 078a023f28 Merge branch 'main' into config-zip 2025-01-10 22:55:09 +00:00
Nuno Coração 1e435bd3c7 Merge pull request #1899 from nunocoracao/dependabot/npm_and_yarn/dev/chart.js-4.4.7
📌 Bump chart.js from 4.4.6 to 4.4.7
2025-01-10 22:53:05 +00:00
Nuno Coração e23181bf3c Merge branch 'dev' into dependabot/npm_and_yarn/dev/chart.js-4.4.7 2025-01-10 22:52:58 +00:00
Nuno Coração d2a0c0a9e5 Merge pull request #1898 from nunocoracao/dependabot/npm_and_yarn/dev/commander-13.0.0
📌 Bump commander from 12.1.0 to 13.0.0
2025-01-10 22:51:51 +00:00
Nuno Coração eebbf00941 corrected 2025-01-10 22:50:01 +00:00
dependabot[bot] 829b41c689 📌 Bump commander from 12.1.0 to 13.0.0
Bumps [commander](https://github.com/tj/commander.js) from 12.1.0 to 13.0.0.
- [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/v12.1.0...v13.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-10 22:38:37 +00:00
Nuno Coração f5dbd609c3 Merge pull request #1896 from nunocoracao/dependabot/npm_and_yarn/dev/katex-0.16.19
📌 Bump katex from 0.16.11 to 0.16.19
2025-01-10 22:37:54 +00:00
Nuno Coração cd4a4fb651 Merge pull request #1897 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.4.17
📌 Bump tailwindcss from 3.4.14 to 3.4.17
2025-01-10 22:37:42 +00:00
Nuno Coração b4900a92bb Merge pull request #1903 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/typography-0.5.16
📌 Bump @tailwindcss/typography from 0.5.15 to 0.5.16
2025-01-10 22:37:23 +00:00
Nuno Coração a3698d957f Merge pull request #1895 from nunocoracao/dependabot/github_actions/dev/actions/checkout-4
👷 Bump actions/checkout from 3 to 4
2025-01-10 22:37:08 +00:00
Nuno Coração 99d377ed1a Merge pull request #1864 from ZhenShuo2021/fix/zen-mode-expand-title
fix: expand article title in zen mode
2025-01-10 22:35:16 +00:00
Nuno Coração 93d5dfbe87 corrected documentation links 2025-01-10 22:34:01 +00:00
dependabot[bot] 5f7e9964cf 📌 Bump @tailwindcss/typography from 0.5.15 to 0.5.16
Bumps [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) from 0.5.15 to 0.5.16.
- [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.15...v0.5.16)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-08 05:42:35 +00:00
morethan987 4a0b135331 support the day/night mod change for SVG logo
Relevant issue: #1900
I add some code to support the day/night mod change for SVG logo.
It's based on the issue: #676
2025-01-04 11:33:23 +08:00
dependabot[bot] e051dc7501 👷 Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [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/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 16:09:05 +00:00
Nuno Coração 199d9f4cce Merge pull request #1894 from nunocoracao/dependabot/github_actions/dev/actions/upload-artifact-4
👷 Bump actions/upload-artifact from 3 to 4
2025-01-01 16:08:22 +00:00
Nuno Coração 77c6dad63d Merge pull request #1893 from nunocoracao/dependabot/github_actions/dev/softprops/action-gh-release-2
👷 Bump softprops/action-gh-release from 1 to 2
2025-01-01 16:08:05 +00:00
Nuno Coração ff2b8ffccc Merge pull request #1876 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2025-01-01 16:07:44 +00:00
dependabot[bot] a2fd514f85 📦 Update packaged ChartJS 2025-01-01 05:59:04 +00:00
dependabot[bot] 553e7a6a81 💄 Rebuild CSS 2025-01-01 05:58:52 +00:00
dependabot[bot] 7aba38cb0c 📦 Update packaged KaTeX 2025-01-01 05:58:38 +00:00
dependabot[bot] 54b8788e1a 📌 Bump chart.js from 4.4.6 to 4.4.7
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.4.6 to 4.4.7.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v4.4.6...v4.4.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 05:58:36 +00:00
dependabot[bot] 346e17774b 📌 Bump tailwindcss from 3.4.14 to 3.4.17
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.14 to 3.4.17.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.17/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.14...v3.4.17)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 05:58:24 +00:00
dependabot[bot] f047261996 📌 Bump katex from 0.16.11 to 0.16.19
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.11 to 0.16.19.
- [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.11...v0.16.19)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 05:58:11 +00:00
dependabot[bot] 12e7042e9e 👷 Bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 05:16:01 +00:00
dependabot[bot] 5afa11c2e1 👷 Bump softprops/action-gh-release from 1 to 2
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 05:15:59 +00:00
nunocoracao 80cfb06797 Update Hugo supported version 2024-12-31 06:05:49 +00:00
Nuno Coração 7d3c37c226 Merge pull request #1892 from nunocoracao/dependabot/npm_and_yarn/nanoid-3.3.8
Bump nanoid from 3.3.6 to 3.3.8
2024-12-30 18:40:26 +00:00
dependabot[bot] 8022ada78a Bump nanoid from 3.3.6 to 3.3.8
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.6 to 3.3.8.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.6...3.3.8)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 18:18:05 +00:00
Nuno Coração b9eb4e9db7 Merge pull request #1870 from nunocoracao/dependabot/npm_and_yarn/dev/heroicons/react-2.2.0
📌 Bump @heroicons/react from 2.1.5 to 2.2.0
2024-12-30 18:16:54 +00:00
Nuno Coração 1cd0c0b76c Merge pull request #1869 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.4.1
📌 Bump mermaid from 11.4.0 to 11.4.1
2024-12-30 18:16:30 +00:00
Nuno Coração 775d86da5a Merge pull request #1877 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.4.2
📌 Bump prettier from 3.3.3 to 3.4.2
2024-12-30 18:15:20 +00:00
Nuno Coração db2404977f Merge pull request #1889 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-23.11.1
📌 Bump puppeteer from 23.7.1 to 23.11.1
2024-12-30 18:14:48 +00:00
dependabot[bot] 10e4949a41 📌 Bump puppeteer from 23.7.1 to 23.11.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 23.7.1 to 23.11.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v23.7.1...puppeteer-v23.11.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-25 05:57:26 +00:00
Azzam Alsharafi 904e077b74 Fix top nav bar layout in RTL languages
Modify the margin direction in RTL layouts, and replace some occurrences of space-x to gap-x, for better RTL handling
2024-12-19 15:24:21 +08:00
Laterre b042075ad2 fix: 불필요한 잔여파일 제거 2024-12-17 20:01:10 +09:00
Changil Kim 456a805bb0 Update users.json
PR REQ ...
2024-12-17 19:44:44 +09:00
Changil Kim 3f476412ac Merge branch 'nunocoracao:main' into main 2024-12-17 19:40:06 +09:00
StepaniaH 6f836381c3 Add my (StepaniaH) blog in user.json 2024-12-16 14:00:18 +08:00
dependabot[bot] bf1ab08a24 📌 Bump prettier from 3.3.3 to 3.4.2
Bumps [prettier](https://github.com/prettier/prettier) from 3.3.3 to 3.4.2.
- [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.3.3...3.4.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-11 05:22:33 +00:00
Dinh Truong Vu 9d29c280a2 added my website 2024-12-05 23:01:17 +01:00
racehd 235767e212 Update Config-Zip bundle to trigger on release
- When new release is made, config-zip bundle is made and attached to release. It will also be made available under static url
https://github.com/nunocoracao/blowfish/releases/download/latest/config-default.zip
2024-12-04 13:07:55 -05:00
dependabot[bot] 5427850be0 📦 Update packaged Mermaid 2024-12-04 05:05:58 +00:00
dependabot[bot] fb33c0790b 📌 Bump @heroicons/react from 2.1.5 to 2.2.0
Bumps [@heroicons/react](https://github.com/tailwindlabs/heroicons) from 2.1.5 to 2.2.0.
- [Release notes](https://github.com/tailwindlabs/heroicons/releases)
- [Changelog](https://github.com/tailwindlabs/heroicons/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/heroicons/compare/v2.1.5...v2.2.0)

---
updated-dependencies:
- dependency-name: "@heroicons/react"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-04 05:05:37 +00:00
dependabot[bot] ccf6178a31 📌 Bump mermaid from 11.4.0 to 11.4.1
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.4.0 to 11.4.1.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.4.0...mermaid@11.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-04 05:05:31 +00:00
Nuno Coração 4eed37fc2c update docs to new config.zip 2024-12-02 23:28:59 +00:00
Nuno Coração 396692e017 Update README.md 2024-12-02 23:26:07 +00:00
Nuno Coração ee5646f91b Update create-config-zip.yml 2024-12-02 23:20:13 +00:00
Nuno Coração 07bf4e93e0 Update create-config-zip.yml 2024-12-02 23:16:27 +00:00
Nuno Coração 3bdb1205d9 Update create-config-zip.yml 2024-12-02 23:08:08 +00:00
Nuno Coração 305816b51f Update create-config-zip.yml 2024-12-02 23:06:10 +00:00
Nuno Coração f9c5373300 Update create-config-zip.yml 2024-12-02 23:01:41 +00:00
Nuno Coração 2bd5ad0353 Merge pull request #1865 from racehd/config-zip
⚙️ Add CI/CD pipeline to bundle config files
2024-12-02 22:57:09 +00:00
racehd 272e69f01b Merge branch 'config-zip' of https://github.com/racehd/blowfish into config-zip 2024-12-02 13:39:33 -05:00
racehd 9f700552bc Add CI/CD pipeline to bundle config files
The CI/CD pipeline will trigger when changes are pushed to config/_default/**. The pipeline will then package the config files into a zip and make them available at a static URL: https://github.com/nunocoracao/blowfish/releases/download/latest/config-default.zip
2024-12-02 13:38:45 -05:00
racehd 08bfbf4cae Update config zip for main branch, and add manual toggle button 2024-12-02 13:31:14 -05:00
racehd 297cc1aef5 Arbitrary Change for initial config zip 2024-12-02 13:26:22 -05:00
racehd ec7a3ed420 Arbitrary Change for initial config zip 2024-12-02 13:25:59 -05:00
racehd c8cf84cf9f Add CI/CD pipeline to bundle config files
The CI/CD pipeline will trigger when changes are pushed to config/_default/**. The pipeline will then package the config files into a zip and make them available at a static URL: https://github.com/nunocoracao/blowfish/releases/download/latest/config-default.zip
2024-12-02 13:25:33 -05:00
ZhenShuo2021 6d20417fd5 fix: expand article title in zen mode 2024-12-02 22:30:52 +08:00
Nuno Coração 00a24c2448 prep new verison 2024-12-01 19:05:28 +00:00
Nuno Coração e61c34249f Merge pull request #1833 from nunocoracao/dev
🔖 v2.80.0
2024-12-01 19:01:13 +00:00
Nuno Coração 4dd078be9d final version polish 2024-12-01 19:01:04 +00:00
Nuno Coração b58bbbede6 Merge pull request #1850 from Weaxs/dev
support rssnext/follow to claim feed as your own
2024-12-01 18:58:50 +00:00
Nuno Coração fa33a779cf Merge pull request #1854 from deltaclock/patch-1
Update basic.html so navigation doesn't bubble up.
2024-12-01 18:57:37 +00:00
Nuno Coração db83544894 Merge pull request #1843 from julianocosta89/doc-add-bluesky-and-mastodon
✏️ Add bluesky and mastodon to list of article.sharingLinks
2024-12-01 18:51:35 +00:00
Nuno Coração f05818ee04 Merge pull request #1858 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-12-01 18:50:14 +00:00
nunocoracao 8c2250cf44 Update Hugo supported version 2024-11-30 06:05:36 +00:00
Nuno Coração 30062aa335 update to user process script 2024-11-29 16:45:32 +00:00
Nuno Coração 82f5a0721c Merge branch 'dev' of https://github.com/nunocoracao/blowfish into dev 2024-11-29 16:36:54 +00:00
Nuno Coração 5c8c1af029 update to user process script 2024-11-29 16:36:41 +00:00
Nuno Coração 6effb88c54 Merge pull request #1841 from sabac-co/main
Update users.json
2024-11-29 16:34:55 +00:00
Nuno Coração ae0b6b5f8d Merge branch 'dev' into main 2024-11-29 16:34:45 +00:00
Nuno Coração 62892f1987 Merge pull request #1840 from acamiz/main
Add user to users.json
2024-11-29 16:33:45 +00:00
Nuno Coração 304b042964 Merge pull request #1849 from nunocoracao/dependabot/npm_and_yarn/dev/typeit-8.8.7
📌 Bump typeit from 8.8.5 to 8.8.7
2024-11-29 16:32:03 +00:00
Nuno Coração ddfdc86137 Merge pull request #1852 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.6.9
📌 Bump prettier-plugin-tailwindcss from 0.6.8 to 0.6.9
2024-11-29 16:31:55 +00:00
dependabot[bot] cbf4347d52 📌 Bump typeit from 8.8.5 to 8.8.7
Bumps [typeit](https://github.com/alexmacarthur/typeit) from 8.8.5 to 8.8.7.
- [Release notes](https://github.com/alexmacarthur/typeit/releases)
- [Commits](https://github.com/alexmacarthur/typeit/compare/v8.8.5...v8.8.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-29 16:18:54 +00:00
dependabot[bot] c2245c07a2 📌 Bump prettier-plugin-tailwindcss from 0.6.8 to 0.6.9
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.6.8 to 0.6.9.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.8...v0.6.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-29 16:18:53 +00:00
Nuno Coração d3c64c2580 Merge pull request #1848 from nunocoracao/dependabot/npm_and_yarn/dev/chart.js-4.4.6
📌 Bump chart.js from 4.4.5 to 4.4.6
2024-11-29 16:18:05 +00:00
Nuno Coração da7ae4a72a Merge pull request #1847 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.4.0
📌 Bump mermaid from 11.3.0 to 11.4.0
2024-11-29 16:17:50 +00:00
Nuno Coração 123a6e48ff Merge pull request #1846 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.4.14
📌 Bump tailwindcss from 3.4.13 to 3.4.14
2024-11-29 16:17:39 +00:00
Nuno Coração 1dc47fcc32 Merge pull request #1851 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-11-29 16:17:23 +00:00
Nick 7bbc108651 Update basic.html so navigation doesn't bubble up. 2024-11-28 21:53:05 +02:00
nunocoracao e8afdb5eaf Update Hugo supported version 2024-11-24 06:06:18 +00:00
Weaxs 369812f77f support rssnext/follow to claim feed 2024-11-15 17:54:44 +08:00
dependabot[bot] 0254c095ed 📦 Update packaged ChartJS 2024-11-13 05:42:49 +00:00
dependabot[bot] bca65aaa01 📦 Update packaged Mermaid 2024-11-13 05:42:41 +00:00
dependabot[bot] 166427eafc 💄 Rebuild CSS 2024-11-13 05:42:36 +00:00
dependabot[bot] 4e870ee86c 📌 Bump chart.js from 4.4.5 to 4.4.6
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.4.5 to 4.4.6.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v4.4.5...v4.4.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-13 05:42:20 +00:00
dependabot[bot] c2a965304e 📌 Bump mermaid from 11.3.0 to 11.4.0
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.3.0 to 11.4.0.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.3.0...mermaid@11.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-13 05:42:14 +00:00
dependabot[bot] af9eb0006c 📌 Bump tailwindcss from 3.4.13 to 3.4.14
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.13 to 3.4.14.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.14/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.13...v3.4.14)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-13 05:42:07 +00:00
Juliano Costa da82429133 Add bluesky and mastodon to list of article.sharingLinks 2024-11-11 22:14:32 +01:00
sabac-co c95f7afcaf Update users.json 2024-11-10 13:50:18 -05:00
sabac-co e41df121e5 Update users.json 2024-11-10 13:48:15 -05:00
acamiz b77617ce86 Update users.json 2024-11-09 09:27:05 -05:00
Nuno Coração cf6c0ab6cc v2.80.0 2024-11-08 18:09:12 +00:00
Nuno Coração 3a50c14d2f Merge pull request #1772 from nunocoracao/dev
🔖 v2.79.0
2024-11-08 18:07:59 +00:00
Nuno Coração a21d70697f final polish and bug fixes 2024-11-08 18:03:19 +00:00
Nuno Coração c2e76d7a12 Merge pull request #1828 from das-g/params.author
📝 change [author] to [params.author] also in "Basic configuration" docs
2024-11-08 17:56:40 +00:00
Nuno Coração 78c3b581ab Merge pull request #1823 from mauromorales/main
Add Dutch translations
2024-11-08 17:56:20 +00:00
Nuno Coração 478cab6da0 Merge pull request #1813 from eallion/feat/umami
feat: custom umami script name
2024-11-08 17:40:56 +00:00
Nuno Coração 699df484b5 Merge pull request #1812 from pjkundert/fix/mobile_menus
Fix mobile menus to allow access to menu content
2024-11-08 17:37:20 +00:00
Nuno Coração 01b0b80d4a Merge pull request #1809 from Ast3risk-ops/patch-1
Fix: Emoji on Welcome to Blowfish page
2024-11-08 17:25:26 +00:00
Nuno Coração 2d9a14aa7f Merge pull request #1806 from deining/dev
paginate: fix deprecation warning
2024-11-08 17:22:44 +00:00
Nuno Coração a365e1c040 Merge branch 'dev' into dev 2024-11-08 17:20:22 +00:00
Nuno Coração 75875e6d98 Merge pull request #1775 from MayMeow/dev/fedi-author-attr
Added fediverse Author attribution attribute
2024-11-08 17:13:08 +00:00
Nuno Coração b1b781b9a6 update user list 2024-11-08 17:11:15 +00:00
Nuno Coração 024de8035d Merge pull request #1792 from unacro/dev
chore: add a new user
2024-11-08 17:05:36 +00:00
Nuno Coração 4e0e3aa87c Merge branch 'dev' into dev 2024-11-08 17:05:30 +00:00
Nuno Coração 1daae2dbe0 Merge pull request #1791 from bemnlam/main
feat: add user bemnlam
2024-11-08 17:04:17 +00:00
Nuno Coração b7a033503e Merge branch 'dev' into main 2024-11-08 17:04:08 +00:00
Nuno Coração 65708bbe4f Merge pull request #1831 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-23.7.1
📌 Bump puppeteer from 23.5.0 to 23.7.1
2024-11-08 17:02:30 +00:00
Nuno Coração 18f406820b Merge pull request #1825 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-2.2.0
📌 Bump @headlessui/react from 2.1.8 to 2.2.0
2024-11-08 17:02:19 +00:00
Nuno Coração acc2d0b21a Merge pull request #1780 from michaeldorner/patch-2
Add new user to users page
2024-11-08 17:01:32 +00:00
Nuno Coração 90211d1a55 Merge branch 'dev' into patch-2 2024-11-08 17:01:24 +00:00
Nuno Coração efab80ad78 Merge pull request #1773 from p3rception/add-user-p3rception
Add user p3rception
2024-11-08 17:00:23 +00:00
dependabot[bot] 4840073ad6 📌 Bump puppeteer from 23.5.0 to 23.7.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 23.5.0 to 23.7.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v23.5.0...puppeteer-v23.7.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-08 16:58:30 +00:00
Nuno Coração c9a257162c Merge pull request #1801 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-11-08 16:58:11 +00:00
Nuno Coração a9fbe00438 Merge pull request #1799 from nunocoracao/dependabot/npm_and_yarn/dev/chart.js-4.4.5
📌 Bump chart.js from 4.4.4 to 4.4.5
2024-11-08 16:57:51 +00:00
Nuno Coração d1f89af71e Merge pull request #1777 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.3.0
📌 Bump mermaid from 11.2.1 to 11.3.0
2024-11-08 16:57:33 +00:00
Nuno Coração be3d698d3b Merge pull request #1776 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.4.13
📌 Bump tailwindcss from 3.4.10 to 3.4.13
2024-11-08 16:57:05 +00:00
nunocoracao 2496210812 Update Hugo supported version 2024-11-07 06:05:38 +00:00
Raphael Das Gupta 020f03e683 📝 change [author] to [params.author] also in "Basic configuration" docs 2024-11-04 17:18:45 +01:00
dependabot[bot] 237e860a47 📌 Bump @headlessui/react from 2.1.8 to 2.2.0
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.1.8 to 2.2.0.
- [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.0/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-30 05:28:44 +00:00
Mauro Morales 860e792064 Add Dutch translations 2024-10-29 10:25:16 +01:00
May Meow 2a6078588b Update description 2024-10-25 21:16:24 +00:00
Charles Chin 924953a0a2 feat: custom umami script name
* https://umami.is/docs/environment-variables#TRACKER_SCRIPT_NAME
2024-10-24 18:48:17 +08:00
Perry Kundert 9951816b08 Fix mobile menus to allow access to menu content 2024-10-23 15:48:56 -06:00
May Meow ad81bcc034 Clarification of description for fedi verification 2024-10-22 22:12:45 +00:00
May Meow 22999a341b Update docs 2024-10-22 22:09:41 +00:00
Asterisk 5125c2debb fix(welcome): language emojis 2024-10-22 11:25:42 -04:00
Andreas Deininger 4ab18490cd paginate: fix deprecation warning 2024-10-18 21:56:47 +02:00
dependabot[bot] 5c72109045 📦 Update packaged ChartJS 2024-10-16 05:02:22 +00:00
dependabot[bot] 63b56b9c05 📌 Bump chart.js from 4.4.4 to 4.4.5
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.4.4 to 4.4.5.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v4.4.4...v4.4.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-16 05:01:55 +00:00
unacro 2a61aadd7a chore: typos 2024-10-13 09:24:03 +08:00
unacro b543764ef3 chore: add a new user 2024-10-13 09:17:05 +08:00
Bemn 69ff783616 feat: add user bemnlam 2024-10-12 20:00:54 -05:00
Michael Dorner d08898ba67 Add temse.education to user list 2024-10-09 10:19:24 +02:00
dependabot[bot] 953500d193 📦 Update packaged Mermaid 2024-10-09 05:17:36 +00:00
dependabot[bot] 78a827991a 💄 Rebuild CSS 2024-10-09 05:17:26 +00:00
dependabot[bot] 8fb8ddbb1b 📌 Bump mermaid from 11.2.1 to 11.3.0
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.2.1 to 11.3.0.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.2.1...mermaid@11.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-09 05:17:03 +00:00
dependabot[bot] 3d81e00ac3 📌 Bump tailwindcss from 3.4.10 to 3.4.13
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.10 to 3.4.13.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.13/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.10...v3.4.13)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-09 05:16:56 +00:00
May Meow eedb814199 Add fediverse attribution 2024-10-09 00:26:42 +02:00
Dimitris Pergelidis 39c1d4069f Add user: p3rception 2024-10-06 01:16:26 +03:00
Nuno Coração c2db79ee4b start dev 2.79.0 2024-10-04 16:04:11 +01:00
Nuno Coração fec955c0b6 start dev 2.79.0 2024-10-04 16:04:02 +01:00
Nuno Coração 2ee519e779 start dev 2.79.0 2024-10-04 16:03:09 +01:00
Nuno Coração f037da3120 Merge pull request #1720 from nunocoracao/dev
🔖 v2.78.0
2024-10-04 16:01:50 +01:00
Nuno Coração 738f136984 final polish 2.78.0 2024-10-04 15:59:56 +01:00
Nuno Coração 155c750026 Merge pull request #1770 from nunocoracao/dependabot/npm_and_yarn/dompurify-3.1.7
Bump dompurify from 3.0.9 to 3.1.7
2024-10-04 15:43:39 +01:00
Nuno Coração 5dabf59887 Merge branch 'dev' into dependabot/npm_and_yarn/dompurify-3.1.7 2024-10-04 15:43:13 +01:00
Nuno Coração 17e4692174 Merge pull request #1769 from nunocoracao/dependabot/npm_and_yarn/micromatch-4.0.8
Bump micromatch from 4.0.5 to 4.0.8
2024-10-04 15:42:15 +01:00
Nuno Coração a0b1f2d6bd Merge branch 'dev' into dependabot/npm_and_yarn/micromatch-4.0.8 2024-10-04 15:42:05 +01:00
dependabot[bot] fc2c99de42 Bump dompurify from 3.0.9 to 3.1.7
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.0.9 to 3.1.7.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.0.9...3.1.7)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 14:40:27 +00:00
dependabot[bot] 118d021a69 Bump micromatch from 4.0.5 to 4.0.8
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.5 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 14:40:03 +00:00
Nuno Coração 6dd2640439 Merge pull request #1754 from RolandMarchand/add-lazarus-user
Update users.json
2024-10-04 15:38:56 +01:00
Nuno Coração 884c6d5bc9 Merge branch 'dev' into add-lazarus-user 2024-10-04 15:38:47 +01:00
Nuno Coração d3cdb21cf2 Merge pull request #1748 from Xeonzilla/main
Update users.json
2024-10-04 15:37:44 +01:00
Nuno Coração 08525e6829 Merge branch 'dev' into main 2024-10-04 15:37:35 +01:00
Nuno Coração cbf083ff9a Merge pull request #1747 from deining/paginate
🧰 paginate: fix deprecation warning
2024-10-04 15:34:15 +01:00
Nuno Coração d8f5fb6213 Merge branch 'dev' into paginate 2024-10-04 15:34:08 +01:00
Nuno Coração c842d11364 Merge pull request #1742 from LuizGlomyer/main
Update users.json
2024-10-04 15:32:40 +01:00
Nuno Coração ea0a500139 Merge pull request #1741 from utrodus/patch-1
Update users.json
2024-10-04 15:32:19 +01:00
Nuno Coração 76d9e284a7 Merge pull request #1767 from wermos/fix-share-title
Add a title for sharing via WhatsApp and Telegram.
2024-10-04 15:30:12 +01:00
Nuno Coração 6345645094 Merge pull request #1759 from das-g/eo
🌐 Add Esperanto translation & update docs accordingly
2024-10-04 15:29:37 +01:00
Nuno Coração 84dcb63a65 Merge pull request #1745 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-2.1.8
📌 Bump @headlessui/react from 2.1.4 to 2.1.8
2024-10-04 15:28:05 +01:00
Nuno Coração 5dc59aefbd Merge pull request #1768 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-23.5.0
📌 Bump puppeteer from 23.4.0 to 23.5.0
2024-10-04 15:27:55 +01:00
Nuno Coração c6f1ea85f7 Merge pull request #1756 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-10-04 15:27:40 +01:00
Nuno Coração 9353b468bd Merge pull request #1764 from nunocoracao/dependabot/npm_and_yarn/dev/typeit-8.8.5
📌 Bump typeit from 8.8.4 to 8.8.5
2024-10-04 15:27:20 +01:00
dependabot[bot] 0e48700847 📌 Bump puppeteer from 23.4.0 to 23.5.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 23.4.0 to 23.5.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v23.4.0...puppeteer-v23.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 13:41:57 +00:00
Nuno Coração 234fdf8f3b Merge pull request #1762 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.2.1
📌 Bump mermaid from 11.2.0 to 11.2.1
2024-10-04 14:40:50 +01:00
Nuno Coração c881801600 Merge pull request #1765 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.6.8
📌 Bump prettier-plugin-tailwindcss from 0.6.6 to 0.6.8
2024-10-04 14:40:38 +01:00
wermos a0ab030937 Add a title for sharing via WhatsApp and Telegram. 2024-10-04 15:34:16 +05:30
dependabot[bot] e6a00754eb 📦 Update packaged Mermaid 2024-10-02 05:39:44 +00:00
dependabot[bot] ef37c92237 📌 Bump prettier-plugin-tailwindcss from 0.6.6 to 0.6.8
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.6.6 to 0.6.8.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.6...v0.6.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-02 05:39:36 +00:00
dependabot[bot] bbd36a2ef7 📌 Bump typeit from 8.8.4 to 8.8.5
Bumps [typeit](https://github.com/alexmacarthur/typeit) from 8.8.4 to 8.8.5.
- [Release notes](https://github.com/alexmacarthur/typeit/releases)
- [Commits](https://github.com/alexmacarthur/typeit/compare/v8.8.4...v8.8.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-02 05:39:29 +00:00
dependabot[bot] 9e8b165eb9 📌 Bump mermaid from 11.2.0 to 11.2.1
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.2.0 to 11.2.1.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.2.0...mermaid@11.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-02 05:39:10 +00:00
Utrodus Said Al Baqi 317cd183b1 Merge branch 'dev' into patch-1 2024-10-02 07:46:59 +07:00
Raphael Borun Das Gupta 18f17a9c51 🌐 Add Esperanto translation & update docs accordingly 2024-09-29 22:40:42 +02:00
nunocoracao ec91103321 Update Hugo supported version 2024-09-28 06:05:04 +00:00
dependabot[bot] 9b5339db57 📌 Bump @headlessui/react from 2.1.4 to 2.1.8
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.1.4 to 2.1.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.1.8/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-27 16:54:27 +00:00
Nuno Coração 4de04aec44 Merge pull request #1740 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/forms-0.5.9
📌 Bump @tailwindcss/forms from 0.5.8 to 0.5.9
2024-09-27 17:53:18 +01:00
Nuno Coração c6ba36a470 Merge pull request #1738 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/typography-0.5.15
📌 Bump @tailwindcss/typography from 0.5.14 to 0.5.15
2024-09-27 17:52:41 +01:00
Nuno Coração 703cb68f80 Merge pull request #1737 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.2.0
📌 Bump mermaid from 11.1.0 to 11.2.0
2024-09-27 17:51:37 +01:00
Nuno Coração 0ca678531c Merge pull request #1753 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-23.4.0
📌 Bump puppeteer from 23.2.2 to 23.4.0
2024-09-27 17:51:00 +01:00
Nuno Coração f20d063d7c Merge pull request #1730 from HeTongRe4per/patch-1
Update users.json
2024-09-27 17:49:02 +01:00
Nuno Coração 0b50f6ce22 Merge pull request #1733 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-09-27 17:47:44 +01:00
Roland Marchand 8534ee5e65 Update users.json 2024-09-27 10:11:17 -04:00
dependabot[bot] d7a2d9450f 📌 Bump puppeteer from 23.2.2 to 23.4.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 23.2.2 to 23.4.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v23.2.2...puppeteer-v23.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-25 05:13:00 +00:00
Xeonzilla 81a2aa35f9 Update users.json 2024-09-21 11:22:09 +08:00
nunocoracao 221fe896eb Update Hugo supported version 2024-09-20 06:05:59 +00:00
Andreas Deininger 8e67e8e55f paginate: fix deprecation warning 2024-09-19 21:54:27 +02:00
Luiz Glomyer bc290dcc6c Update users.json 2024-09-16 19:44:22 -04:00
Utrodus Said Al Baqi 77fcb98e75 Update users.json
Hi Nuno Coração!

I hope you're doing well. Could you add my website, [utrodus.com](https://utrodus.com), to the Blowfish Users section?

It's a portfolio and blog developed with Blowfish where I showcase my work in Flutter development and blogging.

Thank you so much for your help!
2024-09-15 01:06:11 +07:00
dependabot[bot] 596bc11cc6 📦 Update packaged Mermaid 2024-09-11 05:57:20 +00:00
dependabot[bot] fbe468e21c 📌 Bump @tailwindcss/forms from 0.5.8 to 0.5.9
Bumps [@tailwindcss/forms](https://github.com/tailwindlabs/tailwindcss-forms) from 0.5.8 to 0.5.9.
- [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.8...v0.5.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-11 05:57:13 +00:00
dependabot[bot] 6537023a09 📌 Bump @tailwindcss/typography from 0.5.14 to 0.5.15
Bumps [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) from 0.5.14 to 0.5.15.
- [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.14...v0.5.15)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-11 05:56:59 +00:00
dependabot[bot] a88dab3179 📌 Bump mermaid from 11.1.0 to 11.2.0
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.1.0 to 11.2.0.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.1.0...mermaid@11.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-11 05:56:54 +00:00
褐瞳さん ba8454a790 Update users.json 2024-09-04 19:16:56 +08:00
Nuno Coração 2abd24dcb1 Merge pull request #1721 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-11.1.0
📌 Bump mermaid from 10.9.1 to 11.1.0
2024-09-04 09:50:41 +01:00
Nuno Coração 178a2f4849 Merge pull request #1722 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-2.1.4
📌 Bump @headlessui/react from 2.1.2 to 2.1.4
2024-09-04 09:50:28 +01:00
Nuno Coração 706b694303 Merge pull request #1723 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-23.2.2
📌 Bump puppeteer from 23.2.0 to 23.2.2
2024-09-04 09:50:16 +01:00
Nuno Coração f506883a91 Merge pull request #1724 from nunocoracao/dependabot/npm_and_yarn/dev/chart.js-4.4.4
📌 Bump chart.js from 4.4.3 to 4.4.4
2024-09-04 09:50:01 +01:00
Nuno Coração 7c7c0c2114 Merge pull request #1725 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/forms-0.5.8
📌 Bump @tailwindcss/forms from 0.5.7 to 0.5.8
2024-09-04 09:49:51 +01:00
Nuno Coração 274b566734 Merge pull request #1726 from nunocoracao/dependabot/github_actions/dev/peter-evans/create-pull-request-7
👷 Bump peter-evans/create-pull-request from 6 to 7
2024-09-04 09:49:37 +01:00
Nuno Coração 64cfe7b102 Merge pull request #1727 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-09-04 09:48:38 +01:00
nunocoracao 6f95415af4 Update Hugo supported version 2024-09-04 06:05:48 +00:00
dependabot[bot] 5e33decff2 👷 Bump peter-evans/create-pull-request from 6 to 7
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-04 05:25:29 +00:00
dependabot[bot] 947558cbe7 📦 Update packaged ChartJS 2024-09-04 05:20:55 +00:00
dependabot[bot] b36fc3c94c 📦 Update packaged Mermaid 2024-09-04 05:20:35 +00:00
dependabot[bot] 3f9e2c9687 📌 Bump @tailwindcss/forms from 0.5.7 to 0.5.8
Bumps [@tailwindcss/forms](https://github.com/tailwindlabs/tailwindcss-forms) from 0.5.7 to 0.5.8.
- [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.7...v0.5.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-04 05:20:31 +00:00
dependabot[bot] 4dccd5f297 📌 Bump chart.js from 4.4.3 to 4.4.4
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.4.3 to 4.4.4.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v4.4.3...v4.4.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-04 05:20:27 +00:00
dependabot[bot] e45c0485bc 📌 Bump puppeteer from 23.2.0 to 23.2.2
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 23.2.0 to 23.2.2.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v23.2.0...puppeteer-v23.2.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-04 05:20:21 +00:00
dependabot[bot] 18c3a6156e 📌 Bump @headlessui/react from 2.1.2 to 2.1.4
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.1.2 to 2.1.4.
- [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.1.4/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-04 05:20:13 +00:00
dependabot[bot] c87b0156f1 📌 Bump mermaid from 10.9.1 to 11.1.0
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.9.1 to 11.1.0.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/mermaid-js/mermaid/compare/v10.9.1...mermaid@11.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-04 05:20:06 +00:00
Nuno Coração 6cff148d61 bump version 2024-09-04 00:11:55 +01:00
Nuno Coração 471704ebe8 Merge pull request #1718 from nunocoracao/dev
🔖 v2.77.1
2024-09-04 00:10:47 +01:00
Nuno Coração 8e9e5d0f33 fixed issue with previous release 2024-09-04 00:10:11 +01:00
Nuno Coração 5018b8b680 bump version 2024-09-03 23:46:41 +01:00
Nuno Coração b07ba75916 Merge pull request #1707 from nunocoracao/dev
🔖 v2.77.0
2024-09-03 23:45:55 +01:00
Nuno Coração e02dc652db update user list and version supported 2024-09-03 23:44:20 +01:00
Nuno Coração 97bd4f9e34 Merge pull request #1716 from nunocoracao/1695-update-mobile-menu-logic-to-rely-on-js
✨ Update mobile menu logic to rely on JS
2024-09-03 23:41:44 +01:00
Nuno Coração de1fa4a58d fix https://github.com/nunocoracao/blowfish/issues/1695 2024-09-03 23:40:54 +01:00
Nuno Coração 5ff365bd27 Merge pull request #1708 from Ast3risk-ops/docs-author-fix
✏️ Change author to params.author in the docs
2024-09-03 22:25:18 +01:00
Nuno Coração f514abfc98 Merge pull request #1710 from CommanderKen/patch-1
Update users.json
2024-09-03 22:24:46 +01:00
Commander Keen 51e94eddad Update users.json 2024-08-31 13:53:35 +02:00
Asterisk 09db4ca3f6 author -> params.author 2024-08-29 10:10:09 -04:00
Nuno Coração d5db97fb2d new version 2024-08-28 16:56:45 +01:00
Nuno Coração 52d6eb7bb1 Merge pull request #1675 from nunocoracao/dev
🔖 v2.76.0
2024-08-28 16:49:01 +01:00
Nuno Coração a517624b70 final changes 2024-08-28 16:48:38 +01:00
Nuno Coração d2143149cd Merge pull request #1681 from unacro/dev
⚙️ Move .Site.Author to .Site.Params.Author
2024-08-28 16:42:52 +01:00
Nuno Coração afbf2f66d7 Merge pull request #1678 from sculptor189/main
✨ Add rel attribute to button shortcode
2024-08-28 16:36:38 +01:00
Nuno Coração 4a4c13f3a0 update 2024-08-28 13:25:57 +01:00
Nuno Coração c0af00b628 Merge pull request #1677 from Ast3risk-ops/patch-2
✨Add Mastodon to sharing links
2024-08-28 13:15:52 +01:00
Nuno Coração 363ba66e14 Merge pull request #1679 from sculptor189/date-modify
Correct time format
2024-08-28 13:10:07 +01:00
Nuno Coração 5ccea15f3f Merge pull request #1693 from panjinbo/main
🐛 Do not prevent default for Enter
2024-08-28 12:54:32 +01:00
Nuno Coração ff7539933e Merge pull request #1699 from akatsukiro/main
🎏  Fix small typo in Chinese doc
2024-08-28 12:50:06 +01:00
Nuno Coração 2be439622b Merge pull request #1694 from sculptor189/lastmod-dev
Avoid showing incorrect lastmod "0001-01-01"
2024-08-28 12:46:21 +01:00
Nuno Coração 9d07830623 Merge pull request #1701 from BabaRagnarok/main
🎏 Add more translate content
2024-08-28 12:45:34 +01:00
Nuno Coração e69e326725 Merge pull request #1687 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.6.6
📌 Bump prettier-plugin-tailwindcss from 0.6.5 to 0.6.6
2024-08-28 12:39:14 +01:00
Nuno Coração fa9c3439ba Merge pull request #1676 from wtchangdm/fix_show_more_link
add trailing slash for homepage.showMoreLinkDest
2024-08-28 12:38:58 +01:00
dependabot[bot] 9a28e25251 📌 Bump prettier-plugin-tailwindcss from 0.6.5 to 0.6.6
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.6.5 to 0.6.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.5...v0.6.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-28 11:38:34 +00:00
Nuno Coração 61c3fb2625 Merge pull request #1685 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-08-28 12:37:28 +01:00
Nuno Coração df7474ca19 Merge pull request #1686 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.4.10
📌 Bump tailwindcss from 3.4.7 to 3.4.10
2024-08-28 12:37:07 +01:00
Nuno Coração 7811e36534 Merge pull request #1688 from nunocoracao/dependabot/npm_and_yarn/dev/lite-youtube-embed-0.3.3
📌 Bump lite-youtube-embed from 0.3.2 to 0.3.3
2024-08-28 12:36:45 +01:00
Nuno Coração 3092ea4523 Merge pull request #1689 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/typography-0.5.14
📌 Bump @tailwindcss/typography from 0.5.13 to 0.5.14
2024-08-28 12:36:35 +01:00
Nuno Coração 9bfb7adf95 Merge pull request #1705 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-23.2.0
📌 Bump puppeteer from 22.15.0 to 23.2.0
2024-08-28 12:36:19 +01:00
dependabot[bot] 2e16b49adb 📌 Bump puppeteer from 22.15.0 to 23.2.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.15.0 to 23.2.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.15.0...puppeteer-v23.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-28 05:59:54 +00:00
nunocoracao 3b3a64c9b9 Update Hugo supported version 2024-08-27 06:05:36 +00:00
BabaRagnarok d966187073 Merge branch 'main' into main 2024-08-24 12:36:25 +02:00
BabaRagnarok 4152e27e35 translate homepage-layout 2024-08-24 12:25:35 +02:00
BabaRagnarok 8713e4429b translete getting-started 2024-08-24 12:17:33 +02:00
BabaRagnarok 7ac9d0ce24 Update index.it.md 2024-08-24 12:17:08 +02:00
BabaRagnarok 5b617bce69 translate getting-started 2024-08-24 12:16:18 +02:00
BabaRagnarok d573317640 translate front-metter 2024-08-24 12:10:50 +02:00
Shiro 6f8c427a36 Update index.zh-cn.md
small typo fix.
2024-08-23 17:45:45 +08:00
sculptor189 9e5d3f7758 avoid showing incorrect lastmod "0001-01-01" 2024-08-16 19:51:30 -04:00
Jinbo Pan dcde4feef3 Do not prevent default for Enter
Do not prevent default for "Enter" if search is not visible. Old logic would prevent comment system adding new line using "Enter"
2024-08-15 17:17:07 -07:00
dependabot[bot] a47a7e3bf5 💄 Rebuild CSS 2024-08-14 05:57:21 +00:00
dependabot[bot] d7f618a92e 💄 Rebuild CSS 2024-08-14 05:57:03 +00:00
dependabot[bot] 5f181d02db 📌 Bump @tailwindcss/typography from 0.5.13 to 0.5.14
Bumps [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) from 0.5.13 to 0.5.14.
- [Release notes](https://github.com/tailwindlabs/tailwindcss-typography/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-typography/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-typography/compare/v0.5.13...v0.5.14)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 05:56:54 +00:00
dependabot[bot] c5dd873351 📌 Bump lite-youtube-embed from 0.3.2 to 0.3.3
Bumps [lite-youtube-embed](https://github.com/paulirish/lite-youtube-embed) from 0.3.2 to 0.3.3.
- [Release notes](https://github.com/paulirish/lite-youtube-embed/releases)
- [Commits](https://github.com/paulirish/lite-youtube-embed/compare/v0.3.2...v0.3.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 05:56:48 +00:00
dependabot[bot] 1fbb47f5d5 📌 Bump tailwindcss from 3.4.7 to 3.4.10
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.7 to 3.4.10.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.10/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.7...v3.4.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 05:56:36 +00:00
unacro d6873cf1b1 chore: Move .Site.Author to .Site.Params.Author 2024-08-11 20:45:05 +08:00
sculptor189 3ea13cfe37 correct time format 2024-08-10 19:23:16 -04:00
sculptor189 213880a1a3 add rel attribute to button shortcode 2024-08-10 15:15:59 -04:00
Asterisk e7a24c2e86 toot is now share2fedi (sharing.json) 2024-08-10 12:29:57 -04:00
Asterisk a5e9ac3997 edit default sharing link config 2024-08-10 11:40:07 -04:00
Asterisk 565837e0f5 Merge branch 'dev' into patch-2 2024-08-10 11:29:43 -04:00
Asterisk be6ce389c6 Update sharing.json 2024-08-10 11:28:30 -04:00
Asterisk 042eca79b2 fix period 2024-08-10 11:26:17 -04:00
Asterisk 40422fe062 Add mastodon sharing link 2024-08-10 11:17:52 -04:00
W.T. Chang c35242e912 add trailing slash for homepage.showMoreLinkDest 2024-08-10 19:21:45 +08:00
Nuno Coração 41615910a7 new version 2024-08-10 11:27:52 +01:00
Nuno Coração 580f36f0de Merge pull request #1621 from nunocoracao/dev
🔖 v2.75.0
2024-08-10 11:24:13 +01:00
Nuno Coração 80417d4238 final polish 2024-08-10 11:23:56 +01:00
Nuno Coração 32af8f189a Merge pull request #1659 from insidemordecai/dev
✨ Add 'Reply by Email' feature
2024-08-10 11:04:04 +01:00
Nuno Coração addf561a06 Merge branch 'dev' into dev 2024-08-10 11:02:44 +01:00
Nuno Coração 8a8ba86ab2 Merge pull request #1670 from ragibson/main
Consistently include js/page.js in relevant statement scopes
2024-08-10 11:00:47 +01:00
Nuno Coração f29b2cf002 Merge pull request #1671 from ragibson/break-long-urls
Word break long urls in CSS to avoid overflowing site width
2024-08-10 11:00:22 +01:00
Nuno Coração 4ba49d789d Merge pull request #1649 from ldericher/workaround-datetime-no-md
🐛 workaround for #1647
2024-08-10 10:59:25 +01:00
Nuno Coração c3f398058e Merge pull request #1646 from ldericher/support-svg-logo
✨ add SVG support for logos
2024-08-10 10:57:40 +01:00
Nuno Coração 0086ecdca5 Merge pull request #1642 from zizicici/main
Update README.md - Installation Part
2024-08-10 10:56:39 +01:00
Nuno Coração cff363fe77 Merge pull request #1640 from Weaxs/main
✨ Support Seline Analysis
2024-08-10 10:56:01 +01:00
Nuno Coração c18545b157 Merge pull request #1668 from ldericher/image-quality
✨ add parameters for finer adjustment of image quality
2024-08-10 10:53:37 +01:00
Nuno Coração dba26eb03f Merge pull request #1662 from dahisea/main
Update index.zh-cn.md
2024-08-10 10:51:13 +01:00
Nuno Coração bf77092865 Merge pull request #1660 from SmileGuide/dev
Add README.zh-cn.md
2024-08-10 10:50:52 +01:00
Nuno Coração 100aec8707 Merge pull request #1653 from StepaniaH/doc-chinese-optimization
Doc Chinese Optimization
2024-08-10 10:50:19 +01:00
Nuno Coração 7fc9a47b33 Merge pull request #1664 from sculptor189/main
Update Japanese translation
2024-08-10 10:49:18 +01:00
Nuno Coração a11112bfed Merge pull request #1666 from ldericher/selfhosted-git
✨ Add support for selfhosted git servers
2024-08-10 10:48:37 +01:00
Nuno Coração ad956ad51f Merge pull request #1628 from kurokobo/author_link
fix: correct links for the author pages
2024-08-10 10:46:13 +01:00
Nuno Coração 2f26d4d33e Merge pull request #1629 from ILoveBacteria/new-language
New fa.yaml for Persian language
2024-08-10 10:45:33 +01:00
Nuno Coração e796e4195a Merge pull request #1667 from ldericher/fix-typos
🐛 Fix typos
2024-08-10 10:44:43 +01:00
Nuno Coração fb0fc90df6 Merge pull request #1638 from wtchangdm/add-hash-to-libs
Add hash for jquery, zoom, typeit, and youtube lite URLs
2024-08-10 10:41:16 +01:00
Nuno Coração 5409cefcce Merge pull request #1637 from wtchangdm/add-trailing-slash
Add trailing slash for show more link
2024-08-10 10:40:33 +01:00
Nuno Coração bb6f8baf12 Merge pull request #1625 from wtchangdm/main
Fix warning caused by data.GetJSON
2024-08-10 10:39:26 +01:00
Nuno Coração 94411b39c0 Merge pull request #1654 from LesserCat/patch-1
update user list
2024-08-10 10:38:45 +01:00
Nuno Coração 4334878081 Merge branch 'dev' into patch-1 2024-08-10 10:38:36 +01:00
Nuno Coração 681586b5bc Merge pull request #1631 from micheledinelli/main
Update user list
2024-08-10 10:37:19 +01:00
Nuno Coração 9796ba1f20 Merge branch 'main' into main 2024-08-10 10:36:45 +01:00
Nuno Coração b2c27bed1b Merge pull request #1630 from nveshaan/main
update user list
2024-08-10 10:35:30 +01:00
Nuno Coração e46e45c9e6 Merge pull request #1633 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.3.3
📌 Bump prettier from 3.3.2 to 3.3.3
2024-08-10 10:34:16 +01:00
Nuno Coração 038c9f7d35 Merge pull request #1665 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.15.0
📌 Bump puppeteer from 22.14.0 to 22.15.0
2024-08-10 10:34:02 +01:00
Ryan Gibson ddb508446c Recompile CSS 2024-08-08 23:29:25 -04:00
Ryan Gibson b81ef0b227 Fix long URLs breaking out of article bounds on mobile 2024-08-08 23:29:25 -04:00
Ryan Gibson c12753c069 Consistently include js/page.js in relevant statement scopes 2024-08-08 23:02:30 -04:00
Jörn-Michael Miehe 148b45f12d forgejo icon stroke transparency 2024-08-09 00:19:31 +02:00
Jörn-Michael Miehe 190f011f88 🐛 icon fixes 2024-08-08 15:16:56 +02:00
Jörn-Michael Miehe 5926504cf3 move "default server" param documentation to docs/configuration 2024-08-08 02:01:38 +02:00
Jörn-Michael Miehe 0477c2018d ✨ add documentation to the exampleSite 2024-08-08 02:01:38 +02:00
Jörn-Michael Miehe 5762ecaf1b ✨ add shortcodes
- "forgejo" and "gitea"
- add copies as giteaColors.json resp. forgejoColors.json
- add params "giteaDefaultServer" and "forgejoDefaultServer"
2024-08-08 02:01:38 +02:00
Jörn-Michael Miehe fce2c4908b ✨ add icons
- forgejo.svg and gitea.svg (minified)
2024-08-08 02:01:38 +02:00
Jörn-Michael Miehe b772b5ed97 parameter backgroundImageWidth default function usage 2024-08-08 02:00:47 +02:00
Jörn-Michael Miehe eebadb405f ✨ add parameter author.imageQuality + english documentation 2024-08-08 01:54:47 +02:00
Jörn-Michael Miehe 090fd09ccf ✨ add parameter backgroundImageWidth + english documentation 2024-08-08 01:36:30 +02:00
Jörn-Michael Miehe cf85d913fb 🐛 fix typos in "term" default layout 2024-08-07 23:04:20 +02:00
Jörn-Michael Miehe cfe270e278 🐛 fix typos in "codeberg" shortcode 2024-08-07 23:01:50 +02:00
dependabot[bot] eebfab161c 📌 Bump puppeteer from 22.14.0 to 22.15.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.14.0 to 22.15.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.14.0...puppeteer-v22.15.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-07 05:34:38 +00:00
Mordecai K 47b99754e1 style(reply-by-email): separation from content
Add more separation from the content by adding a top margin
Add button-like styling to differentiate the link
2024-08-05 11:30:56 +03:00
dependabot[bot] aef409793a 📌 Bump prettier from 3.3.2 to 3.3.3
Bumps [prettier](https://github.com/prettier/prettier) from 3.3.2 to 3.3.3.
- [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.3.2...3.3.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-04 20:44:34 +00:00
Nuno Coração b755978bae Merge pull request #1656 from nunocoracao/dependabot/npm_and_yarn/dev/typeit-8.8.4 2024-08-04 21:44:00 +01:00
Nuno Coração 931b65d141 Merge pull request #1657 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.14.0 2024-08-04 21:43:42 +01:00
Nuno Coração 89bd6ff884 Merge pull request #1655 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.4.7 2024-08-04 21:43:24 +01:00
Nuno Coração 5f08c9428f Merge pull request #1623 from nunocoracao/hugo-new-version 2024-08-04 21:41:42 +01:00
sculptor189 41e5dc96db update japanese translation 2024-08-03 21:19:46 -04:00
nunocoracao cbd2ea70f9 Update Hugo supported version 2024-08-03 06:05:45 +00:00
Dahi e6167230b0 Update index.zh-cn.md 2024-08-02 14:32:02 +08:00
Karlukle 2c387ca348 Merge branch 'nunocoracao:dev' into dev 2024-08-01 13:22:26 +08:00
smileguide d23f448ee2 fix README.zh-cn.md 2024-08-01 13:22:01 +08:00
smileguide ce478c44d1 ru 2024-08-01 13:20:26 +08:00
smileguide 6838abecf2 add README.zh-cn.md 2024-08-01 13:14:45 +08:00
Mordecai K 43233a4e54 docs: reply-by-email 2024-07-31 17:04:38 +03:00
Mordecai K 5088638936 feat: add reply via email functionality 2024-07-31 16:42:39 +03:00
dependabot[bot] 1f8afb157a 💄 Rebuild CSS 2024-07-31 05:44:01 +00:00
dependabot[bot] c01b084c0f 📌 Bump puppeteer from 22.13.0 to 22.14.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.13.0 to 22.14.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.13.0...puppeteer-v22.14.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-31 05:43:47 +00:00
dependabot[bot] c96a9a1871 📌 Bump typeit from 8.8.3 to 8.8.4
Bumps [typeit](https://github.com/alexmacarthur/typeit) from 8.8.3 to 8.8.4.
- [Release notes](https://github.com/alexmacarthur/typeit/releases)
- [Commits](https://github.com/alexmacarthur/typeit/commits/v8.8.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-31 05:43:36 +00:00
dependabot[bot] 082f886a98 📌 Bump tailwindcss from 3.4.6 to 3.4.7
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.6 to 3.4.7.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.7/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.6...v3.4.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-31 05:43:32 +00:00
LesserCat 0df6098555 Update users.json 2024-07-31 11:19:33 +08:00
StepaniaH 9bac49e75d 🌐 Optimize Chinese documentation 2024-07-30 23:49:09 +08:00
Jörn-Michael Miehe 6007212bb8 🐛 workaround for #1647 2024-07-30 00:19:35 +02:00
Jörn-Michael Miehe 09bacd9f0b ✨ add SVG support for logos 2024-07-29 23:34:46 +02:00
zizicici 5e285513fb Update README.md - Installation Part
Synced from https://blowfish.page/docs/installation/
2024-07-28 22:43:48 +08:00
Weaxs d52f721c41 enableTrackEvent default true && documents 2024-07-26 17:04:24 +08:00
Weaxs 91d24e626e seline && umami enableTrackEvent 2024-07-26 10:33:50 +08:00
Weaxs bcc26c11b8 support seline analytics 2024-07-26 10:17:39 +08:00
W.T. Chang 8220a922a8 add hash to typeit 2024-07-25 00:06:02 +08:00
W.T. Chang 4fec5ab532 add hash to youtube lite 2024-07-24 23:27:11 +08:00
W.T. Chang df0a232bfc add hash to zoom.min.js 2024-07-24 23:27:00 +08:00
W.T. Chang 4a384379cf add hash for jquery 2024-07-24 23:20:57 +08:00
W.T. Chang 3751df66d6 add trailing slash for show more link 2024-07-24 22:54:15 +08:00
micheledinelli 71a8f61516 Add user file 2024-07-23 13:33:15 +02:00
micheledinelli efe34f4553 Update users.json 2024-07-23 12:42:44 +02:00
Eshaan Naga Venkata 4767cb7d7c Update users.json 2024-07-23 15:37:56 +05:30
Eshaan Naga Venkata 9fd63dcded added user file 2024-07-23 15:35:50 +05:30
Moein Arabi 85194342eb Update docs 2024-07-20 12:41:25 +00:00
Moein Arabi 312a7c79ef Add Persian language translation 2024-07-20 12:30:17 +00:00
kurokobo 8497eef0fe fix: correct links for the author pages 2024-07-19 14:39:08 +00:00
W.T. Chang 121909e809 fix warning caused by getJSON 2024-07-18 23:33:44 +08:00
Nuno Coração e46afe45cf v2.75.0 2024-07-17 12:18:06 +01:00
Nuno Coração 18ed67b2e6 Merge pull request #1601 from nunocoracao/dev
🔖 v2.74.0
2024-07-17 12:16:41 +01:00
Nuno Coração 62c022c76a update user listing 2024-07-17 12:14:00 +01:00
Nuno Coração 6d29a96533 Merge pull request #1614 from panjinbo/main
👤 Add new example site
2024-07-17 12:05:20 +01:00
Nuno Coração 121ae89ca9 Merge branch 'dev' into main 2024-07-17 12:05:08 +01:00
Nuno Coração 53c0d7e217 Merge pull request #1603 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-2.1.2
📌 Bump @headlessui/react from 2.1.1 to 2.1.2
2024-07-17 12:04:02 +01:00
Nuno Coração bb2a1d7642 Merge pull request #1617 from nunocoracao/dependabot/npm_and_yarn/dev/rimraf-6.0.1
📌 Bump rimraf from 5.0.7 to 6.0.1
2024-07-17 12:03:49 +01:00
Nuno Coração c3d20a7845 Merge pull request #1613 from zen96k/dev
Update users.json
2024-07-17 12:03:32 +01:00
dependabot[bot] 04493e9135 📌 Bump rimraf from 5.0.7 to 6.0.1
Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.7 to 6.0.1.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v5.0.7...v6.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-17 11:02:47 +00:00
dependabot[bot] 1afc638ca0 📌 Bump @headlessui/react from 2.1.1 to 2.1.2
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.1.1 to 2.1.2.
- [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.1.2/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-17 11:02:34 +00:00
Nuno Coração 8501a73ab5 Merge pull request #1616 from nunocoracao/dependabot/npm_and_yarn/dev/heroicons/react-2.1.5
📌 Bump @heroicons/react from 2.1.4 to 2.1.5
2024-07-17 12:01:36 +01:00
Nuno Coração e1b863a0dd Merge pull request #1618 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.13.0
📌 Bump puppeteer from 22.12.1 to 22.13.0
2024-07-17 12:01:13 +01:00
Nuno Coração 410a289d4e Merge pull request #1619 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.4.6
📌 Bump tailwindcss from 3.4.4 to 3.4.6
2024-07-17 12:01:02 +01:00
Nuno Coração 5aa9c973a8 Merge pull request #1609 from wtchangdm/main
⚡ target user PR link to dev branch
2024-07-17 12:00:51 +01:00
Nuno Coração 5ee922f30e Merge pull request #1608 from insidemordecai/dev
✨ add spotify icon
2024-07-17 11:56:41 +01:00
dependabot[bot] 7af72d197f 💄 Rebuild CSS 2024-07-17 05:24:01 +00:00
dependabot[bot] e09b90d38b 📌 Bump tailwindcss from 3.4.4 to 3.4.6
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.4 to 3.4.6.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.6/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.4...v3.4.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-17 05:23:35 +00:00
dependabot[bot] 2f2fdae2c1 📌 Bump puppeteer from 22.12.1 to 22.13.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.12.1 to 22.13.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.12.1...puppeteer-v22.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-17 05:23:24 +00:00
dependabot[bot] 1e2bd0e884 📌 Bump @heroicons/react from 2.1.4 to 2.1.5
Bumps [@heroicons/react](https://github.com/tailwindlabs/heroicons) from 2.1.4 to 2.1.5.
- [Release notes](https://github.com/tailwindlabs/heroicons/releases)
- [Changelog](https://github.com/tailwindlabs/heroicons/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/heroicons/compare/v2.1.4...v2.1.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-17 05:23:03 +00:00
Jinbo Pan 828cd6257b Add new example site
Add panjinbo.com for example site
2024-07-15 22:53:59 -07:00
Kotaro Kuroda 428510115d Update users.json 2024-07-14 19:51:50 +09:00
W.T. Chang 17cd866a04 target user PR link to dev branch 2024-07-11 01:31:18 +08:00
Mordecai K 465bd4f563 🔧 include spotify icon 2024-07-10 14:07:29 +03:00
Mordecai K 3ca1252db9 ✨ add spotify icon 2024-07-10 14:04:03 +03:00
Nuno Coração f99ec1ed2a update users 2024-07-09 13:25:44 +01:00
Nuno Coração 1f08dcb9d2 Merge pull request #1584 from nunocoracao/dev
🔖 v2.73.0
2024-07-09 13:24:30 +01:00
Nuno Coração abe51362e2 update users 2024-07-09 13:24:07 +01:00
Nuno Coração 3d07a2373e Merge pull request #1588 from wtchangdm/main
Remove unneeded files in lib/mermaid
2024-07-09 13:22:51 +01:00
Nuno Coração 8019b24aff Merge pull request #1593 from Weaxs/main
✨ umami analytics support data-domains
2024-07-09 13:21:07 +01:00
Nuno Coração 2a5e1289f1 Merge pull request #1586 from UmmItC/dev
Update users.json
2024-07-09 13:18:28 +01:00
Nuno Coração 47a0bd27d0 Merge pull request #1591 from nunocoracao/dependabot/npm_and_yarn/dev/katex-0.16.11
📌 Bump katex from 0.16.10 to 0.16.11
2024-07-09 13:17:53 +01:00
Nuno Coração 02b079bd79 Merge pull request #1590 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.12.1
📌 Bump puppeteer from 22.12.0 to 22.12.1
2024-07-09 13:17:34 +01:00
Nuno Coração c78a776465 Merge pull request #1589 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-2.1.1
📌 Bump @headlessui/react from 2.1.0 to 2.1.1
2024-07-09 13:17:23 +01:00
Nuno Coração d339db0c17 Merge pull request #1592 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-07-09 13:17:09 +01:00
LaTeRrE 9c92b901b5 Merge branch 'nunocoracao:main' into main 2024-07-09 17:21:38 +09:00
W.T. Chang 26af64fb51 Rollback commit on wrong branch 2024-07-07 14:57:46 +08:00
W.T. Chang 0d2c3013c5 Update go.mod 2024-07-07 14:56:01 +08:00
nunocoracao f0ba1ed5a9 Update Hugo supported version 2024-07-05 06:05:10 +00:00
Weaxs 6f73fc630c umami analytics support data-domains 2024-07-05 11:09:22 +08:00
dependabot[bot] 4b9a773ffa 📦 Update packaged KaTeX 2024-07-03 06:06:33 +00:00
dependabot[bot] 2e1f74eb6c 📌 Bump katex from 0.16.10 to 0.16.11
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.10 to 0.16.11.
- [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.10...v0.16.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-03 06:06:06 +00:00
dependabot[bot] 09c89a03fa 📌 Bump puppeteer from 22.12.0 to 22.12.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.12.0 to 22.12.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.12.0...puppeteer-v22.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-03 06:05:46 +00:00
dependabot[bot] 514c5557b9 📌 Bump @headlessui/react from 2.1.0 to 2.1.1
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.1.0 to 2.1.1.
- [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.1.1/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-03 06:05:08 +00:00
W.T. Chang e293c0e58b copy mermaid.min.js only 2024-07-02 17:13:01 +08:00
W.T. Chang 64bc03f0f1 clean up files in lib/mermaid 2024-07-02 17:11:57 +08:00
UmmIt 849181bb56 Update users.json 2024-06-29 20:54:38 +08:00
Nuno Coração b3b165ce58 prep new verison 2024-06-27 23:18:57 +01:00
Nuno Coração c6c2689195 Merge pull request #1581 from nunocoracao/dev
🔖 v2.72.1
2024-06-27 23:18:06 +01:00
Nuno Coração d869c9c341 polish release 2024-06-27 23:17:49 +01:00
Nuno Coração 0075523d12 Merge pull request #1582 from nunocoracao/1563-add-ability-to-turn-off-dates-in-search
🐛 fix https://github.com/nunocoracao/blowfish/issues/1563
2024-06-27 23:08:42 +01:00
Nuno Coração 2ffe55a86a fix https://github.com/nunocoracao/blowfish/issues/1563 2024-06-27 23:05:51 +01:00
Nuno Coração 54d63fa4fc new version prep 2024-06-27 22:13:53 +01:00
Nuno Coração 9e19e933be Merge pull request #1572 from nunocoracao/dev
🔖 v2.72.0
2024-06-27 22:12:23 +01:00
Nuno Coração 9aaff799ee process users final polish 2024-06-27 22:12:06 +01:00
Nuno Coração 2e9f401017 small fixes to merged PR 2024-06-27 22:06:05 +01:00
Nuno Coração 84dc447944 Merge pull request #1558 from jason810496/main
✨ Add startLine, endLine Support for `codeimporter`
2024-06-27 22:04:07 +01:00
Nuno Coração 447006c9bc Merge pull request #1577 from mpoore/main
✨ Add data definition for sharing on Bluesky
2024-06-27 22:02:13 +01:00
Nuno Coração c4674781cd Merge pull request #1566 from wtchangdm/patch-1
👤 Update users.json
2024-06-27 21:59:46 +01:00
Nuno Coração a7d5533550 Merge branch 'dev' into patch-1 2024-06-27 21:59:40 +01:00
Nuno Coração 40d0e3afd5 Merge pull request #1565 from grahamking22/patch-1
👤 updated users.json
2024-06-27 21:58:20 +01:00
Nuno Coração 3fe84ee348 Merge pull request #1561 from b110011/dev
🌐 Add Ukrainian translation
2024-06-27 21:56:52 +01:00
Nuno Coração 001251711d Merge pull request #1574 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.12.0
📌 Bump puppeteer from 22.11.2 to 22.12.0
2024-06-27 21:55:29 +01:00
Nuno Coração 14929c9e52 Merge pull request #1573 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-2.1.0
📌 Bump @headlessui/react from 2.0.4 to 2.1.0
2024-06-27 21:55:18 +01:00
Nuno Coração eead070c23 Merge pull request #1575 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-06-27 21:55:00 +01:00
Michael Poore dcb01b0daa ✨ Add data definition for sharing on Bluesky 2024-06-26 15:54:06 +01:00
nunocoracao c10a97a7cc Update Hugo supported version 2024-06-26 06:05:06 +00:00
dependabot[bot] e15aaf7fb5 📌 Bump puppeteer from 22.11.2 to 22.12.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.11.2 to 22.12.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.11.2...puppeteer-v22.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-26 05:55:02 +00:00
dependabot[bot] 15782b0b96 📌 Bump @headlessui/react from 2.0.4 to 2.1.0
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.0.4 to 2.1.0.
- [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.1.0/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-26 05:54:41 +00:00
Nuno Coração 8972e66824 bla 2024-06-25 21:51:59 +01:00
Nuno Coração 485f44e2b4 Merge pull request #1571 from nunocoracao/main
merge v2.71.1 changes into dev
2024-06-25 21:50:32 +01:00
Nuno Coração 94515e2265 Merge branch 'dev' into main 2024-06-25 21:50:16 +01:00
Nuno Coração e7c61f9dbd Update package.json 2024-06-25 21:48:07 +01:00
Nuno Coração adff33a9cf Merge pull request #1569 from nunocoracao/dependabot/npm_and_yarn/braces-3.0.3
Bump braces from 3.0.2 to 3.0.3
2024-06-25 21:47:18 +01:00
dependabot[bot] bfaacaa8c4 💄 Rebuild CSS 2024-06-25 20:44:23 +00:00
dependabot[bot] 22ab897f60 Bump braces from 3.0.2 to 3.0.3
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-25 20:43:53 +00:00
W.T. Chang bfb8a74679 Update users.json 2024-06-25 23:13:27 +08:00
W.T. Chang 652b482f7f Update users.json 2024-06-24 05:21:32 +08:00
grahamking22 78d520bb53 updated users.json 2024-06-23 21:11:50 +01:00
jason810496 c91bc9dfb5 fix: handle codeimporter URL encoding 2024-06-22 23:37:23 +08:00
jason810496 8a710a5f1a docs: fix codeimporter docs example 2024-06-22 00:10:40 +08:00
jason810496 6b4480ae83 docs: add codeimpoter startLine endLine docs 2024-06-21 23:59:10 +08:00
jason810496 2b001f0761 feat: add startLine and endLine support for codeimporter 2024-06-21 23:48:13 +08:00
Nuno Coração 7b118a8344 update readme 2024-06-19 18:10:55 +01:00
Nuno Coração 7ca7fea8a4 new version prep 2024-06-19 18:05:10 +01:00
Nuno Coração efba32b076 Merge pull request #1518 from nunocoracao/dev
🔖 v2.71.0
2024-06-19 18:00:04 +01:00
Nuno Coração ed1efd2f1a update user listing 2024-06-19 17:59:29 +01:00
Nuno Coração 2406d75ddc update user listing 2024-06-19 17:55:31 +01:00
Nuno Coração 7bf5e630ef config order by weight 2024-06-19 17:53:52 +01:00
Nuno Coração 5ccc8c23cf Merge pull request #1538 from mnjm/order-by-weight
✨ Articles ordering by weight
2024-06-19 17:38:32 +01:00
Nuno Coração a7fa4bb102 Merge pull request #1529 from nunocoracao/1474-long-tocs-not-shown-fully
🎨 Improve UI/UX for long TOCs
2024-06-19 17:37:55 +01:00
Nuno Coração ad9ab104db final polish 2024-06-19 17:37:35 +01:00
Nuno Coração 2245ef7ac5 Merge branch 'dev' into 1474-long-tocs-not-shown-fully 2024-06-19 17:23:50 +01:00
Nuno Coração 9b428c9f71 updating package.json 2024-06-19 17:22:11 +01:00
Nuno Coração d9ab4bd069 Merge pull request #1552 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.6.5
📌 Bump prettier-plugin-tailwindcss from 0.6.1 to 0.6.5
2024-06-19 17:17:26 +01:00
Nuno Coração b81fc6cd5e Merge pull request #1532 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.3.2
📌 Bump prettier from 3.3.0 to 3.3.2
2024-06-19 17:17:09 +01:00
Nuno Coração 2685f70c99 Merge pull request #1533 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.4.4
📌 Bump tailwindcss from 3.4.3 to 3.4.4
2024-06-19 17:16:56 +01:00
Nuno Coração 5b4309b35f Merge pull request #1547 from jblais493/main
👤 Add Joshblais.com to users.json
2024-06-19 17:16:46 +01:00
Nuno Coração 81e14c3972 Merge branch 'dev' into main 2024-06-19 17:16:39 +01:00
dependabot[bot] b25a495e1d 📌 Bump prettier from 3.3.0 to 3.3.2
Bumps [prettier](https://github.com/prettier/prettier) from 3.3.0 to 3.3.2.
- [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.3.0...3.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-19 16:15:52 +00:00
dependabot[bot] 8764d6f153 📌 Bump prettier-plugin-tailwindcss from 0.6.1 to 0.6.5
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.6.1 to 0.6.5.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.1...v0.6.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-19 16:15:37 +00:00
Nuno Coração fe93c478c4 Merge pull request #1548 from ennnbeee/main
Update users.json
2024-06-19 17:15:31 +01:00
Nuno Coração 0d90f00588 Merge pull request #1551 from nunocoracao/dependabot/npm_and_yarn/dev/heroicons/react-2.1.4
📌 Bump @heroicons/react from 2.1.3 to 2.1.4
2024-06-19 17:14:41 +01:00
Nuno Coração 80384f52bf Merge pull request #1553 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.11.2
📌 Bump puppeteer from 22.10.0 to 22.11.2
2024-06-19 17:14:24 +01:00
Nuno Coração 2d3fa0185d Merge pull request #1550 from mnjm/fix-1549-url-encoding
🐛 fix: https://github.com/nunocoracao/blowfish/issues/1549
2024-06-19 17:01:20 +01:00
dependabot[bot] ee56e3158f 📌 Bump puppeteer from 22.10.0 to 22.11.2
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.10.0 to 22.11.2.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.10.0...puppeteer-v22.11.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-19 05:26:44 +00:00
dependabot[bot] 6f75be5c13 📌 Bump @heroicons/react from 2.1.3 to 2.1.4
Bumps [@heroicons/react](https://github.com/tailwindlabs/heroicons) from 2.1.3 to 2.1.4.
- [Release notes](https://github.com/tailwindlabs/heroicons/releases)
- [Changelog](https://github.com/tailwindlabs/heroicons/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/heroicons/compare/v2.1.3...v2.1.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-19 05:26:01 +00:00
Manjunath Mohan e8dfdfe528 fix: https://github.com/nunocoracao/blowfish/issues/1549 2024-06-19 09:57:27 +05:30
Nick Benton 3fd24cb9b7 Update users.json 2024-06-16 23:31:33 +01:00
Joshua Blais 5f1b173656 add Joshblais.com to users.json 2024-06-16 09:44:52 -06:00
Manjunath Mohan ad72c1d7e6 + orderByWeight to configs and doc 2024-06-12 14:33:31 +05:30
dependabot[bot] 9b5fad45ce 💄 Rebuild CSS 2024-06-12 05:14:07 +00:00
dependabot[bot] 6618017998 📌 Bump tailwindcss from 3.4.3 to 3.4.4
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.3 to 3.4.4.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.4/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.3...v3.4.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-12 05:13:38 +00:00
Manjunath Mohan 6772f403d3 list-template: added ordering by weight 2024-06-12 10:19:22 +05:30
Manjunath Mohan afb206e5db list-template: lil house keeping 2024-06-12 10:11:14 +05:30
Nuno Coração d9ef1b8fb6 polish 2024-06-10 17:09:08 +01:00
Nuno Coração a59a7e4fbf polish 2024-06-10 17:08:31 +01:00
Nuno Coração 0efede2f1d fix https://github.com/nunocoracao/blowfish/issues/1474 2024-06-10 12:07:42 +01:00
Nuno Coração 89e048cc11 fixed configs 2024-06-08 12:41:51 +01:00
Nuno Coração f8136a509b Merge pull request #1527 from nunocoracao/1514-getting-started-docs-refer-to-nonexistant-files
✏️ fix https://github.com/nunocoracao/blowfish/issues/1514
2024-06-08 12:25:08 +01:00
Nuno Coração be7c4e8a8b fix https://github.com/nunocoracao/blowfish/issues/1514 2024-06-08 12:24:32 +01:00
Nuno Coração ef71d07bc3 Merge pull request #1526 from nunocoracao/1521-zen-mode-doenst-work-when-toc-is-disabled
🐛 fix https://github.com/nunocoracao/blowfish/issues/1521
2024-06-08 12:21:41 +01:00
Nuno Coração 9c5b68fb22 fix https://github.com/nunocoracao/blowfish/issues/1521 2024-06-08 12:20:26 +01:00
Nuno Coração f81b2f5f09 Merge pull request #1519 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.3.0
📌 Bump prettier from 3.2.5 to 3.3.0
2024-06-08 12:07:46 +01:00
Nuno Coração eff80401ed Merge pull request #1520 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.6.1
📌 Bump prettier-plugin-tailwindcss from 0.5.14 to 0.6.1
2024-06-08 12:07:33 +01:00
Nuno Coração 11ff498657 Merge pull request #1522 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-06-08 12:07:19 +01:00
nunocoracao 703946d023 Update Hugo supported version 2024-06-06 06:05:04 +00:00
dependabot[bot] c901c00097 📌 Bump prettier-plugin-tailwindcss from 0.5.14 to 0.6.1
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.14 to 0.6.1.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.14...v0.6.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-05 05:17:58 +00:00
dependabot[bot] 1884bcce55 📌 Bump prettier from 3.2.5 to 3.3.0
Bumps [prettier](https://github.com/prettier/prettier) from 3.2.5 to 3.3.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.2.5...3.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-05 05:17:49 +00:00
Nuno Coração 8c197127bf v2.71.0 2024-06-03 23:30:48 +01:00
Nuno Coração 0a91156191 Merge pull request #1506 from nunocoracao/dev
🔖 v2.70.0
2024-06-03 23:29:33 +01:00
Nuno Coração de5911650f final polish 2024-06-03 23:23:51 +01:00
Nuno Coração 87b4ed88c6 final polish 2024-06-03 23:23:17 +01:00
Nuno Coração cc9ee9d26f Merge pull request #1513 from wermos/minor-improvements
🎨 Improvements to image handling and link handling
2024-06-03 23:21:24 +01:00
Nuno Coração 1a5e1728d0 Merge pull request #1511 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-06-03 23:20:57 +01:00
Nuno Coração 0033750d1b Merge pull request #1516 from nunocoracao/1510-copyright-in-footer-no-longer-accepts-markdown
🐛 fix copyright in footer no longer accepts markdown
2024-06-03 23:20:17 +01:00
Nuno Coração 576fee1d7d fix https://github.com/nunocoracao/blowfish/issues/1510 2024-06-03 23:19:14 +01:00
Nuno Coração 9bcab20864 Merge pull request #1508 from mnjm/list-doc-fixup
list shortcode doc fix
2024-06-03 23:13:36 +01:00
Nuno Coração 9640f0cb7d Merge pull request #1515 from wermos/fix-timeline
🐛 Prevent numbers from showing up in timelines
2024-06-03 23:03:07 +01:00
wermos f88923b3ff Fixed the issue of the numbers showing up. 2024-06-03 23:54:49 +05:30
wermos 581aba3359 Be less aggressive in removing newlines. 2024-06-03 22:45:22 +05:30
wermos bb435aded7 Minified the shortcodes and added handling for SVGs. 2024-06-03 22:34:24 +05:30
wermos de1cdd431c Fixed an inconsistency. 2024-06-03 20:50:15 +05:30
wermos c6cffadfa1 Made the link shortcode more readable. 2024-06-03 20:39:10 +05:30
wermos 46737b193f Tweaked the image shortcode. 2024-06-03 20:27:19 +05:30
nunocoracao 6d6885d990 Update Hugo supported version 2024-06-03 06:05:16 +00:00
wermos c54b7daff2 Updated the link shortcode. 2024-06-02 12:20:45 +05:30
Manjunath Mohan 26442558a7 list shortcode doc fixup 2024-06-01 12:21:17 +05:30
Nuno Coração 99d482e908 ? 2024-05-31 15:35:59 +01:00
Nuno Coração 37ca4b7640 v2.70.0 2024-05-31 15:11:24 +01:00
Nuno Coração 976e6d1472 Merge pull request #1494 from nunocoracao/dev
🔖 v2.69.0
2024-05-31 15:05:57 +01:00
Nuno Coração d20c8f1ea4 polish site configs 2024-05-31 15:04:29 +01:00
Nuno Coração 8eaef86c0d Merge pull request #1504 from zoriya/main
✨ Use markdown emojify instead of dump emojify
2024-05-31 15:01:03 +01:00
Nuno Coração e06fedcc60 Merge pull request #1501 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-2.0.4
📌 Bump @headlessui/react from 2.0.3 to 2.0.4
2024-05-31 14:57:21 +01:00
Nuno Coração b7eff2653d Merge pull request #1500 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.10.0
📌 Bump puppeteer from 22.9.0 to 22.10.0
2024-05-31 14:57:09 +01:00
Nuno Coração 628d16e9eb Merge pull request #1496 from racehd/patch-1
✏️ Fix typo in docs/partials/index.md
2024-05-31 14:53:15 +01:00
Nuno Coração b4e564e48d Merge pull request #1503 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-05-31 14:52:23 +01:00
Zoe Roux 9dc7940718 Use markdown emojify instead of dump emojify 2024-05-31 12:37:29 +02:00
nunocoracao d487de1e34 Update Hugo supported version 2024-05-31 06:05:23 +00:00
dependabot[bot] 820c7f5239 📌 Bump @headlessui/react from 2.0.3 to 2.0.4
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.0.3 to 2.0.4.
- [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.0.4/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-29 05:59:34 +00:00
dependabot[bot] 3cb7bf2549 📌 Bump puppeteer from 22.9.0 to 22.10.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.9.0 to 22.10.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.9.0...puppeteer-v22.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-29 05:59:08 +00:00
racehd 6e2243ffcf Fix typo in partials/index.md 2024-05-28 08:59:03 -04:00
BabaRagnarok f52acf7a0f Update configuration file index.it.md
Translated some content
2024-05-28 11:34:11 +02:00
Nuno Coração a6e3b4899c v2.69.0 2024-05-26 22:11:43 +01:00
Nuno Coração c03744bd54 Merge pull request #1466 from nunocoracao/dev
🔖 v2.68.0
2024-05-26 22:09:07 +01:00
Nuno Coração a0dd73975c Merge pull request #1492 from nunocoracao/1112-some-figure-shortcode-attributes-have-no-effect
fixed https://github.com/nunocoracao/blowfish/issues/1112
2024-05-26 22:03:37 +01:00
Nuno Coração 5e0744981d fixed https://github.com/nunocoracao/blowfish/issues/1112 2024-05-26 22:02:28 +01:00
Nuno Coração 92494f353e Merge pull request #1485 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.9.0
📌 Bump puppeteer from 22.8.1 to 22.9.0
2024-05-26 21:40:31 +01:00
Nuno Coração d9d81d8560 Merge pull request #1484 from nunocoracao/dependabot/npm_and_yarn/dev/commander-12.1.0
📌 Bump commander from 12.0.0 to 12.1.0
2024-05-26 21:40:13 +01:00
Nuno Coração 3682046790 Merge pull request #1483 from nunocoracao/dependabot/npm_and_yarn/dev/chart.js-4.4.3
📌 Bump chart.js from 4.4.2 to 4.4.3
2024-05-26 21:39:59 +01:00
Bytes Mess 86c0d8d471 Update Ukrainian translation
- Added missing fields
- Mention new translation in docs
2024-05-23 01:37:33 +03:00
Andrii Serbovets 77e789f1a5 🌐 Add Ukrainian translation
Ported from jpanther/congo#703.
2024-05-23 01:36:56 +03:00
dependabot[bot] 8e4b1db3cb 📦 Update packaged ChartJS 2024-05-22 05:28:48 +00:00
dependabot[bot] aa42fcefed ---
updated-dependencies:
- dependency-name: puppeteer
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-22 05:28:31 +00:00
dependabot[bot] a8bfb2af20 ---
updated-dependencies:
- dependency-name: commander
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-22 05:28:19 +00:00
dependabot[bot] 3ff34c2712 ---
updated-dependencies:
- dependency-name: chart.js
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-22 05:28:12 +00:00
Nuno Coração cd073158b1 small polish of new shortcode 2024-05-19 15:35:36 +01:00
Nuno Coração 0b533a66da Merge pull request #1475 from UmmItC/dev
Add codeberg shortcode and icon support
2024-05-19 15:27:30 +01:00
Nuno Coração 2889f305ed Merge pull request #1479 from nunocoracao/main
disable views/likes
2024-05-19 15:26:28 +01:00
UmmIt 6e359f5af8 Add codeberg shortcode to the shortcode page 2024-05-19 13:19:06 +08:00
UmmIt cd7cf9b347 Merge branch 'nunocoracao:dev' into dev 2024-05-19 02:56:58 +00:00
Nuno Coração ba47d99390 update 2024-05-19 00:50:26 +01:00
Nuno Coração 193f54fe11 update 2024-05-18 15:04:46 +01:00
Nuno Coração 239f82ed3c Merge pull request #1476 from DJKero/add-user
👤 Add new user to users page
2024-05-18 15:01:49 +01:00
Nuno Coração ea3b32c791 Merge pull request #1471 from nunocoracao/dependabot/npm_and_yarn/dev/rimraf-5.0.7
📌 Bump rimraf from 5.0.5 to 5.0.7
2024-05-18 15:01:01 +01:00
Nuno Coração bc18e92896 Merge branch 'dev' into dependabot/npm_and_yarn/dev/rimraf-5.0.7 2024-05-18 15:00:50 +01:00
Nuno Coração 60480bdc8b Merge pull request #1473 from wermos/patch-1
Fix inconsistency in docs
2024-05-18 14:57:52 +01:00
Nuno Coração 3a8049a481 Merge pull request #1472 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-05-18 14:56:32 +01:00
Nuno Coração 178f0baf8d Merge pull request #1470 from nunocoracao/dependabot/npm_and_yarn/dev/mermaid-10.9.1
📌 Bump mermaid from 10.9.0 to 10.9.1
2024-05-18 14:55:45 +01:00
Nuno Coração b3b86ec876 Merge pull request #1469 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.8.1
📌 Bump puppeteer from 22.8.0 to 22.8.1
2024-05-18 14:55:31 +01:00
Nuno Coração 72ed17d32f Merge pull request #1447 from jmmarino2/Galician
🎏 New gl.yaml for Galician language
2024-05-18 14:55:18 +01:00
Ignacio Conde 80dbadd2db Add new user to users.json 2024-05-17 19:26:10 -03:00
UmmIt 1760d97f99 Add codeberg icon support 2024-05-17 09:52:27 +08:00
UmmIt 5ac21e9121 Add codeberg shortcode 2024-05-17 09:33:51 +08:00
nunocoracao 0c9e7de007 Update Hugo supported version 2024-05-16 06:04:12 +00:00
Tirthankar Mazumder 938d931f2d Update index.md
Made one TypeIt example consistent with the output
2024-05-16 10:55:47 +05:30
Tirthankar Mazumder 5e7ecada9a Update index.md 2024-05-16 10:49:01 +05:30
dependabot[bot] f157632721 💄 Rebuild CSS 2024-05-15 05:28:32 +00:00
dependabot[bot] 5dfc7dc8d6 💄 Rebuild CSS 2024-05-15 05:28:29 +00:00
dependabot[bot] e1a6518a8a 📦 Update packaged Mermaid 2024-05-15 05:28:27 +00:00
dependabot[bot] f7f803d281 💄 Rebuild CSS 2024-05-15 05:28:18 +00:00
dependabot[bot] f2c975ef81 📌 Bump rimraf from 5.0.5 to 5.0.7
Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.5 to 5.0.7.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v5.0.5...v5.0.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-15 05:28:03 +00:00
dependabot[bot] 621066e306 📌 Bump mermaid from 10.9.0 to 10.9.1
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.9.0 to 10.9.1.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/mermaid-js/mermaid/compare/v10.9.0...v10.9.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-15 05:27:55 +00:00
dependabot[bot] a1b9094dd7 📌 Bump puppeteer from 22.8.0 to 22.8.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.8.0 to 22.8.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.8.0...puppeteer-v22.8.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-15 05:27:46 +00:00
José Manuel Mariño Mariño 6fdae2a00d Updated language number 2024-05-14 10:15:17 +02:00
José Manuel Mariño Mariño b11b32f3e5 Update index.md with Galician language 2024-05-14 10:12:35 +02:00
José Manuel Mariño Mariño 7cff1c3dc0 Merge branch 'nunocoracao:main' into Galician 2024-05-14 10:08:36 +02:00
Nuno Coração c98134b851 start new version 2024-05-13 23:06:29 +01:00
Nuno Coração 18ac12ea3c Merge pull request #1442 from nunocoracao/dev
🔖 v2.67.0
2024-05-13 23:05:19 +01:00
Nuno Coração 427830ed8f final polish 2024-05-13 23:05:04 +01:00
Nuno Coração 5773c1ee9b Merge pull request #1464 from nunocoracao/1404-the-rendering-is-misaligned-when-the-shortcode-github-is-under-the-timelineitem
🐛 fixed https://github.com/nunocoracao/blowfish/issues/1404
2024-05-13 22:59:45 +01:00
Nuno Coração 015ebabcab fixed https://github.com/nunocoracao/blowfish/issues/1404 2024-05-13 22:58:20 +01:00
Nuno Coração cf69bbef19 update user listing 2024-05-13 22:46:48 +01:00
Nuno Coração 5a5a856832 add translation for new shortcode 2024-05-13 22:04:07 +01:00
Nuno Coração f65cc799c8 Merge pull request #1461 from mnjm/code-importer-shortcode
✨ codeimporter shortcode
2024-05-13 21:58:18 +01:00
Nuno Coração 83b9670c7e Merge pull request #1443 from sakarie9/dev
🐛 Fix TOC scroll indicator with CJK characters
2024-05-13 21:43:42 +01:00
Nuno Coração d4b11d08c8 Merge pull request #1454 from michaeldorner/patch-1
Add new user to users page
2024-05-13 21:37:41 +01:00
Nuno Coração aea32c0a6e Merge branch 'dev' into patch-1 2024-05-13 21:37:32 +01:00
Nuno Coração 5accdbead8 Merge pull request #1448 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/typography-0.5.13
📌 Bump @tailwindcss/typography from 0.5.12 to 0.5.13
2024-05-13 21:34:46 +01:00
Nuno Coração f2e49d89a4 Merge pull request #1456 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.8.0
📌 Bump puppeteer from 22.7.0 to 22.8.0
2024-05-13 21:34:32 +01:00
Nuno Coração f2436b6e61 Merge pull request #1450 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-05-13 21:33:55 +01:00
Nuno Coração e1f600a59f Merge pull request #1457 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-2.0.3
📌 Bump @headlessui/react from 1.7.19 to 2.0.3
2024-05-13 21:29:35 +01:00
Nuno Coração 18408a92fb Merge pull request #1462 from ncocchiaro/add-to-users-json
👤 Update users.json
2024-05-13 21:28:54 +01:00
Nicola Cocchiaro e89ebb05c9 Update users.json 2024-05-11 18:25:19 -07:00
Manjunath Mohan 07d1396986 Added codeimporter shortcode
- updated exampleSite.
2024-05-10 12:11:46 +05:30
nunocoracao ce52d9808f Update Hugo supported version 2024-05-09 06:04:43 +00:00
dependabot[bot] 184c3d0584 📌 Bump @headlessui/react from 1.7.19 to 2.0.3
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 1.7.19 to 2.0.3.
- [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.0.3/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-08 05:38:32 +00:00
dependabot[bot] 4348aa1e6e 📌 Bump puppeteer from 22.7.0 to 22.8.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.7.0 to 22.8.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.7.0...puppeteer-v22.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-08 05:38:23 +00:00
Michael Dorner 46e943ca71 Add me to users 2024-05-05 11:19:28 +02:00
dependabot[bot] dc654f4ac7 💄 Rebuild CSS 2024-05-01 05:16:53 +00:00
dependabot[bot] 627ad4bf0b 📌 Bump @tailwindcss/typography from 0.5.12 to 0.5.13
Bumps [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) from 0.5.12 to 0.5.13.
- [Release notes](https://github.com/tailwindlabs/tailwindcss-typography/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-typography/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-typography/compare/v0.5.12...v0.5.13)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-01 05:16:12 +00:00
José Manuel Mariño Mariño a06f7ecc3a New gl.yaml for Galician language 2024-04-30 21:18:29 +02:00
Sakari 49e83b148c fix: CJK characters in TOC scroll indicator 2024-04-29 15:28:34 +08:00
Nuno Coração 7d634c9ac9 start v2.67.0 2024-04-28 22:20:16 +01:00
Nuno Coração 13ff6f5341 Merge pull request #1412 from nunocoracao/dev
🔖 v2.66.0
2024-04-28 22:18:36 +01:00
Nuno Coração deb389364b final polish 2024-04-28 22:18:15 +01:00
Nuno Coração b56ff2f071 Merge pull request #1428 from bonniss/improve-lang-vi
🌐 Improve Vietnamese translation
2024-04-28 22:11:19 +01:00
Nuno Coração ba37eb58ea Merge pull request #1431 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-04-28 22:10:49 +01:00
Nuno Coração 17ace5ffe3 Merge pull request #1435 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.7.0
📌 Bump puppeteer from 22.6.5 to 22.7.0
2024-04-28 22:10:37 +01:00
nunocoracao 60172543b9 Update Hugo supported version 2024-04-26 06:04:58 +00:00
dependabot[bot] 1a3c83288b 📌 Bump puppeteer from 22.6.5 to 22.7.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.6.5 to 22.7.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.6.5...puppeteer-v22.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-24 05:23:09 +00:00
trung.phamduy User 7fba9811b5 🌐 improve vi translation 2024-04-20 11:05:26 +07:00
Nuno Coração 23ae8c57b2 Merge pull request #1418 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.5.14
📌 Bump prettier-plugin-tailwindcss from 0.5.13 to 0.5.14
2024-04-19 11:55:02 +01:00
Nuno Coração 9a2a082e5b Merge pull request #1415 from Weaxs/translate
translate hosting-deployment && 202310-blowfish-tutorial to zh-cn
2024-04-19 11:54:00 +01:00
dependabot[bot] 228b45d741 📌 Bump prettier-plugin-tailwindcss from 0.5.13 to 0.5.14
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.13 to 0.5.14.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.13...v0.5.14)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-19 10:51:16 +00:00
Nuno Coração 4313cf4726 Merge pull request #1419 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.6.5
📌 Bump puppeteer from 22.6.3 to 22.6.5
2024-04-19 11:50:37 +01:00
Nuno Coração 0591c38739 Merge pull request #1420 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-1.7.19
📌 Bump @headlessui/react from 1.7.18 to 1.7.19
2024-04-19 11:50:25 +01:00
Nuno Coração ebf7368437 Merge pull request #1421 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-04-19 11:50:00 +01:00
nunocoracao 353726db07 Update Hugo supported version 2024-04-19 06:05:28 +00:00
dependabot[bot] bad6b66a71 📌 Bump @headlessui/react from 1.7.18 to 1.7.19
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 1.7.18 to 1.7.19.
- [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@v1.7.19/packages/@headlessui-react)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-17 05:12:39 +00:00
dependabot[bot] fa38e1e220 📌 Bump puppeteer from 22.6.3 to 22.6.5
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.6.3 to 22.6.5.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.6.3...puppeteer-v22.6.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-17 05:12:30 +00:00
Weaxs 707cfae91a translate hosting-deployment && 202310-blowfish-tutorial to zh-cn
(cherry picked from commit a19cd90888)
2024-04-15 21:42:04 +08:00
Nuno Coração 6d66a8f022 v2.66.0 release prep 2024-04-12 12:56:50 +01:00
Nuno Coração f06bcb2a55 Merge pull request #1401 from nunocoracao/dev
🔖 v2.65.0
2024-04-12 12:51:54 +01:00
Nuno Coração 882f773fc7 Merge branch 'dev' of https://github.com/nunocoracao/blowfish into dev 2024-04-12 12:50:47 +01:00
Nuno Coração 0838f77b36 updated installation documentation 2024-04-12 12:50:37 +01:00
BabaRagnarok a9e19f38c8 Update index.it.md 2024-04-12 13:27:11 +02:00
Nuno Coração 808cba18bb Merge pull request #1410 from nunocoracao/dependabot/npm_and_yarn/undici-5.28.4
Bump undici from 5.28.3 to 5.28.4
2024-04-12 12:05:11 +01:00
Nuno Coração bc12f64ac7 updated users page 2024-04-12 12:04:24 +01:00
dependabot[bot] b10f690f18 💄 Rebuild CSS 2024-04-12 11:00:06 +00:00
dependabot[bot] 7647e08a95 Bump undici from 5.28.3 to 5.28.4
Bumps [undici](https://github.com/nodejs/undici) from 5.28.3 to 5.28.4.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.3...v5.28.4)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-12 10:59:34 +00:00
Nuno Coração 44b8fffc27 Merge pull request #1407 from eallion/main
chore: add users eallion.com
2024-04-12 11:58:38 +01:00
Nuno Coração cdca9889ec Merge pull request #1405 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.6.3
📌 Bump puppeteer from 22.6.2 to 22.6.3
2024-04-12 11:57:33 +01:00
Nuno Coração 4135bd4d5b Merge pull request #1408 from eallion/fix/shortcodes-article
fix: shortcodes article example
2024-04-12 11:55:22 +01:00
Charles Chin 1e50971639 fix: shortcodes article example 2024-04-12 10:04:18 +08:00
Charles Chin 4ec7b57183 chore: add users eallion.com 2024-04-12 09:18:20 +08:00
dependabot[bot] 2a1da5393a 💄 Rebuild CSS 2024-04-10 05:47:34 +00:00
dependabot[bot] 45d79db9e0 📌 Bump puppeteer from 22.6.2 to 22.6.3
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.6.2 to 22.6.3.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.6.2...puppeteer-v22.6.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-10 05:47:04 +00:00
BabaRagnarok 4c92571a0b Update started index.it.md
Add more translate content
2024-04-09 21:28:51 +02:00
Nuno Coração 0cfb9c1559 Merge pull request #1403 from nunocoracao/main
sync
2024-04-08 21:52:08 +01:00
Nuno Coração a145cf56c8 Merge pull request #1402 from d4rklynk/pr-fix-youtubeLite-docs
📚 Remove escape characters in youtubeLite documentation
2024-04-08 21:50:18 +01:00
samsepi0l 951ee29aa4 Update index.md 2024-04-08 07:54:43 +02:00
samsepi0l 7a2ba0b2cc Remove escape characters
Sorry for the inconvenience.
2024-04-08 07:53:21 +02:00
Nuno Coração 6d84f6715e v2.65.0 2024-04-07 20:03:42 +01:00
Nuno Coração 51df39a028 Merge pull request #1375 from nunocoracao/dev
🔖 v2.64.0
2024-04-07 20:01:37 +01:00
Nuno Coração fb6188b94c Merge pull request #1399 from nunocoracao/887--new-param-to-place-author-at-the-bottom-of-articles
🎨 New param to place author at the bottom of articles
2024-04-07 19:57:26 +01:00
Nuno Coração 56889bcbd4 fixes https://github.com/nunocoracao/blowfish/issues/887 2024-04-07 19:56:46 +01:00
Nuno Coração 6daf41ed2b fixed problem with likes/views rendering 2024-04-07 19:25:42 +01:00
Nuno Coração 756d07aa80 fixed typo 2024-04-07 19:07:58 +01:00
Nuno Coração 07d8dcb4a7 Merge pull request #1397 from SmileGuide/dev-1
🎏 add translations
2024-04-06 16:28:21 +01:00
Karlukle 42469c1638 Merge branch 'dev' into dev-1 2024-04-05 07:59:11 +08:00
Nuno Coração d5fec1cfcd fixed https://github.com/nunocoracao/blowfish/issues/1395 2024-04-04 21:30:28 +01:00
Nuno Coração cfcf6d5003 fixed comment in config file 2024-04-04 17:50:57 +01:00
smileguide 6193bdc5e3 add translations 2024-04-04 13:30:26 +08:00
Nuno Coração 35414a6e00 Merge pull request #1383 from Lemon73-Computing/translations-v1
🎏 Update Japanese translation
2024-04-03 22:49:49 +01:00
Nuno Coração a67d942e9a Merge pull request #1386 from 1an8r0wn/patch-1
🎏 Update index.zh-cn.md
2024-04-03 22:45:10 +01:00
Nuno Coração ab361bebb9 Merge pull request #1362 from d4rklynk/pr-youtubelite
✨ Add player parameters for youtubeLite shortcode
2024-04-03 22:43:02 +01:00
Nuno Coração 89b31ce563 Merge pull request #1390 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.6.2
📌 Bump puppeteer from 22.6.1 to 22.6.2
2024-04-03 22:42:03 +01:00
Nuno Coração 68b0e8518a Merge pull request #1388 from nunocoracao/dependabot/github_actions/dev/peaceiris/actions-hugo-3.0.0
👷 Bump peaceiris/actions-hugo from 2.6.0 to 3.0.0
2024-04-03 22:41:47 +01:00
dependabot[bot] af29c0662b 📌 Bump puppeteer from 22.6.1 to 22.6.2
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.6.1 to 22.6.2.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.6.1...puppeteer-v22.6.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 21:41:38 +00:00
Nuno Coração 6168a40033 Merge pull request #1389 from nunocoracao/dependabot/github_actions/dev/actions/configure-pages-5
👷 Bump actions/configure-pages from 4 to 5
2024-04-03 22:41:33 +01:00
Nuno Coração 66d996deb3 Merge pull request #1391 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.4.3
📌 Bump tailwindcss from 3.4.1 to 3.4.3
2024-04-03 22:41:11 +01:00
Nuno Coração 5763b2b403 Merge pull request #1392 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.5.13
📌 Bump prettier-plugin-tailwindcss from 0.5.12 to 0.5.13
2024-04-03 22:41:00 +01:00
Nuno Coração f6dbf6cfe9 Merge pull request #1393 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/typography-0.5.12
📌 Bump @tailwindcss/typography from 0.5.11 to 0.5.12
2024-04-03 22:40:47 +01:00
dependabot[bot] 35e68d6f55 💄 Rebuild CSS 2024-04-03 05:36:13 +00:00
dependabot[bot] e56a4b59b8 📌 Bump @tailwindcss/typography from 0.5.11 to 0.5.12
Bumps [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) from 0.5.11 to 0.5.12.
- [Release notes](https://github.com/tailwindlabs/tailwindcss-typography/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-typography/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-typography/compare/v0.5.11...v0.5.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 05:35:44 +00:00
dependabot[bot] 13c2a585c2 💄 Rebuild CSS 2024-04-03 05:35:30 +00:00
dependabot[bot] 67968a50c4 📌 Bump prettier-plugin-tailwindcss from 0.5.12 to 0.5.13
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.12 to 0.5.13.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.12...v0.5.13)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 05:35:26 +00:00
dependabot[bot] fed026827b 📌 Bump tailwindcss from 3.4.1 to 3.4.3
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.1 to 3.4.3.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.3/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.1...v3.4.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 05:34:58 +00:00
dependabot[bot] 35fcf1a50d 👷 Bump actions/configure-pages from 4 to 5
Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 4 to 5.
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](https://github.com/actions/configure-pages/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 05:25:40 +00:00
dependabot[bot] e9c55f2e17 👷 Bump peaceiris/actions-hugo from 2.6.0 to 3.0.0
Bumps [peaceiris/actions-hugo](https://github.com/peaceiris/actions-hugo) from 2.6.0 to 3.0.0.
- [Release notes](https://github.com/peaceiris/actions-hugo/releases)
- [Changelog](https://github.com/peaceiris/actions-hugo/blob/main/CHANGELOG.md)
- [Commits](https://github.com/peaceiris/actions-hugo/compare/v2.6.0...v3.0.0)

---
updated-dependencies:
- dependency-name: peaceiris/actions-hugo
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 05:25:35 +00:00
BabaRagnarok b1c138deca Update index.it.md
Update some content IT
2024-04-02 19:18:57 +02:00
1an8r0wn 7e6fe3b6b2 Update index.zh-cn.md
更正错别字
上有 -> 上手
2024-04-02 17:50:21 +08:00
BabaRagnarok cd583f86a5 Update index.it.md 2024-04-01 20:34:32 +02:00
BabaRagnarok 9cecb76c45 Update index.it.md
Correct some content translation
2024-04-01 19:44:18 +02:00
Lemon73-Computing af85151907 update: japanese translation 2024-04-01 23:56:21 +09:00
Nuno Coração 7417b6ca2c Merge pull request #1361 from Lemon73-Computing/translations-v1
🎏 Added: Japanese translation (`authors/**` and `samples/**`)
2024-04-01 14:07:58 +01:00
Lemon73 f6e6f8325f Merge branch 'dev' into translations-v1 2024-04-01 20:22:44 +09:00
Lemon73-Computing 46fcf6cc68 translate: samples/icons into japanese 2024-04-01 20:13:04 +09:00
Lemon73-Computing cef8e28795 translate: samples/placeholder-text into japanese 2024-04-01 20:04:28 +09:00
Lemon73-Computing 0b492f26de translate: samples/diagrams-flowcharts into japanese 2024-04-01 20:00:41 +09:00
Nuno Coração ceb5c72b40 Merge pull request #1381 from BabaRagnarok/main
🇮🇹 Added more translated content (IT)
2024-04-01 10:31:05 +01:00
Nuno Coração 87b5ab53da Merge pull request #1377 from Weaxs/support-umami
📜 add umami docs && tanslate partials to zh-CN
2024-04-01 10:27:24 +01:00
Nuno Coração bf3f7b993c Merge pull request #1378 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.6.1
📌 Bump puppeteer from 22.5.0 to 22.6.1
2024-04-01 10:13:00 +01:00
Nuno Coração 74221bf424 Merge pull request #1379 from nunocoracao/dependabot/npm_and_yarn/dev/heroicons/react-2.1.3
📌 Bump @heroicons/react from 2.1.1 to 2.1.3
2024-04-01 10:12:46 +01:00
Nuno Coração 1fdfb46638 Merge pull request #1380 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/typography-0.5.11
📌 Bump @tailwindcss/typography from 0.5.10 to 0.5.11
2024-04-01 10:11:58 +01:00
Lemon73-Computing 5b2f6f5648 improve: japanese translation of samples/mathematical-notation 2024-03-30 12:11:52 +09:00
Lemon73-Computing 7067128e48 translate: samples/mathematical-notation into japanese 2024-03-30 12:08:56 +09:00
Lemon73-Computing b06e9dc303 translate: samples/charts into japanese 2024-03-29 23:50:53 +09:00
BabaRagnarok 7c1930d3a8 Update get started index.it.md
Add some translate content
2024-03-28 15:39:58 +01:00
BabaRagnarok 85df73d8b6 Update index.it.md
Translated IT
2024-03-28 13:12:53 +01:00
BabaRagnarok 0297dd1de8 Update index.it.md
Translate all installation md file to Italian
2024-03-28 12:33:59 +01:00
BabaRagnarok 4eb838b230 Update index.it.md
More content translate
2024-03-27 20:23:41 +01:00
d4rklynk e36c227ce1 Add documentation about youtubeLite params variable 2024-03-27 19:26:05 +01:00
dependabot[bot] 9e55ca83e3 💄 Rebuild CSS 2024-03-27 05:29:34 +00:00
dependabot[bot] 6ea69b3b6d 📌 Bump @tailwindcss/typography from 0.5.10 to 0.5.11
Bumps [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) from 0.5.10 to 0.5.11.
- [Release notes](https://github.com/tailwindlabs/tailwindcss-typography/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-typography/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-typography/compare/v0.5.10...v0.5.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 05:28:59 +00:00
dependabot[bot] c1a2340d49 📌 Bump @heroicons/react from 2.1.1 to 2.1.3
Bumps [@heroicons/react](https://github.com/tailwindlabs/heroicons) from 2.1.1 to 2.1.3.
- [Release notes](https://github.com/tailwindlabs/heroicons/releases)
- [Changelog](https://github.com/tailwindlabs/heroicons/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/heroicons/compare/v2.1.1...v2.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 05:28:50 +00:00
dependabot[bot] e768573d10 📌 Bump puppeteer from 22.5.0 to 22.6.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.5.0 to 22.6.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.5.0...puppeteer-v22.6.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 05:28:42 +00:00
Weaxs d4a45eb951 add umami docs 2024-03-27 11:49:17 +08:00
Nuno Coração 2abca494c0 bump version 2024-03-26 22:31:49 +00:00
Nuno Coração 92c13bdc85 Merge pull request #1357 from nunocoracao/dev
🔖 v2.63.0
2024-03-26 22:30:33 +00:00
Nuno Coração 81e9dee2f5 final polish 2024-03-26 22:26:22 +00:00
Nuno Coração 7e4db1f562 Merge pull request #1363 from Weaxs/dev
update language in i18n/[language-code].yaml
2024-03-26 22:22:15 +00:00
Nuno Coração de044b614e Merge pull request #1364 from Weaxs/support-umami
✨ Support Umami Analytics
2024-03-26 22:20:34 +00:00
Nuno Coração cc7d6a9aeb Merge pull request #1372 from nunocoracao/dependabot/npm_and_yarn/katex-0.16.10
Bump katex from 0.16.9 to 0.16.10
2024-03-26 22:04:02 +00:00
dependabot[bot] 15bf9dc07d 📦 Update packaged KaTeX 2024-03-26 22:03:29 +00:00
dependabot[bot] 5a4f5245a9 Bump katex from 0.16.9 to 0.16.10
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.9 to 0.16.10.
- [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.9...v0.16.10)

---
updated-dependencies:
- dependency-name: katex
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-26 22:02:57 +00:00
BabaRagnarok 4df9af06ad Update index.it.md
more translation
2024-03-26 16:58:11 +01:00
BabaRagnarok a751c97dd9 Update index.it.md installation
Modify more content
2024-03-23 23:47:40 +01:00
BabaRagnarok e50e276f36 Update index.it.md Install
Update more text inside installation files
2024-03-22 22:12:34 +01:00
Weaxs 5ad54fd91a fix umami 2024-03-22 23:54:18 +08:00
Weaxs a0d05ce208 support umamiAnalytics 2024-03-22 23:26:56 +08:00
Weaxs 66c3a9c71d update language in i18n/[language-code].yaml 2024-03-22 22:48:41 +08:00
BabaRagnarok cbbdbcf1a9 First translation IT
Working....
2024-03-22 15:43:43 +01:00
samsepi0l b90b916493 Add player parameters
https://github.com/paulirish/lite-youtube-embed?tab=readme-ov-file#custom-player-parameters
2024-03-22 12:16:30 +01:00
Lemon73-Computing 22b51a2275 translate: samples/markdown into japanese 2024-03-22 12:48:20 +09:00
Lemon73-Computing c3a6c2ca27 tanslate: samples/rich-content into japanese 2024-03-22 12:29:44 +09:00
Lemon73-Computing 811a9b5c1c translate: samples/external into japanese 2024-03-21 20:41:13 +09:00
Lemon73-Computing 12f6b5b77c translate: samples/emoji into japanese 2024-03-21 20:14:38 +09:00
Nuno Coração bafc42f587 reenabled italian 2024-03-21 11:10:22 +00:00
Nuno Coração ab87f4cbad disabled italian since the translation is behind 2024-03-21 11:09:53 +00:00
Nuno Coração 6ae4f4b71c fixed small bug on pr #1359 2024-03-21 11:06:56 +00:00
Nuno Coração b0aa7298b5 Merge pull request #1359 from Aphcity/patch-2
Fix list.html render issue
2024-03-21 10:57:11 +00:00
Nuno Coração a1769a6722 Merge pull request #1360 from Aphcity/translations-v1
🎏 Update zh-CN translation for issue #1358
2024-03-21 10:55:15 +00:00
Lemon73-Computing 11463f3992 change: space 2024-03-21 18:41:33 +09:00
Aphcity 998a422ed6 Translate Author Bio 2024-03-21 17:10:36 +08:00
Aphcity 0f48b1a16d Translate sample pages
- exampleSite\content\samples\rich-content\index.zh-cn.md
- exampleSite\content\samples\placeholder-text\index.zh-cn.md
- exampleSite\content\samples\multiple-authors\index.zh-cn.md
- exampleSite\content\samples\mathematical-notation\index.zh-cn.md
- exampleSite\content\samples\markdown\index.zh-cn.md
- exampleSite\content\samples\_index.zh-cn.md
2024-03-21 15:35:36 +08:00
Aphcity 32b8aa5876 Translate guides, sample(Diagram, Emoji, External)
- exampleSite\content\guides\_index.zh-cn.md
- exampleSite\content\samples\diagrams-flowcharts\index.zh-cn.md
- exampleSite\content\samples\emoji\index.zh-cn.md
- exampleSite\content\samples\external\index.zh-cn.md
2024-03-21 15:05:17 +08:00
Aphcity 7df76e9a32 Add chart sample zh-CN translation
- .exampleSite\content\samples\charts\index.zh-cn.md
- fix a tag in icons sample
2024-03-21 14:34:30 +08:00
Aphcity 4690352255 Add guides template zh-CN translation 2024-03-21 14:09:39 +08:00
Aphcity e009305c4e 2 small translation fixes
- getting-started
- authors
2024-03-21 13:55:45 +08:00
Aphcity 5edba5cf2e Fix list.html render issue
FIXED: execute of template failed: template: _default/list.html:23:19: executing "main" at <.File.Path>: error calling Path: runtime error: invalid memory address or nil pointer dereference
2024-03-21 10:17:55 +08:00
Nuno Coração 75e76c572d translated some missing files for it https://github.com/nunocoracao/blowfish/issues/1358 2024-03-20 22:51:12 +00:00
Nuno Coração 686f2ef9fe added script to find missing translations 2024-03-20 22:35:13 +00:00
Nuno Coração f85fc05b6e bump version 2024-03-20 22:13:55 +00:00
Nuno Coração c7dbcbf154 Merge branch 'dev' of https://github.com/nunocoracao/blowfish into dev 2024-03-20 22:13:15 +00:00
Nuno Coração fd1dd03358 Merge pull request #1334 from nunocoracao/dev
🔖 v2.62.0
2024-03-20 22:06:42 +00:00
Nuno Coração c8b2c245a8 final polish 2024-03-20 22:01:51 +00:00
Nuno Coração 17a034a989 Merge pull request #1355 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-03-20 21:57:19 +00:00
Nuno Coração 6510a7505e Merge pull request #1324 from nunocoracao/translations-v1
🎏 Blowfish translation
2024-03-20 21:56:58 +00:00
nunocoracao c0c9d54fbf Update Hugo supported version 2024-03-20 21:56:30 +00:00
Nuno Coração 5a2ea71bdf Merge pull request #1354 from nunocoracao/1283-series-does-not-show-any-list
🐛 Series does not show any list
2024-03-20 21:54:04 +00:00
Nuno Coração 29625b34b6 🐛 Series does not show any list 2024-03-20 21:52:38 +00:00
Nuno Coração 5a38b0e42d Merge pull request #1350 from Aphcity/main
🐛 2 Small fixes
2024-03-20 16:10:40 +00:00
Nuno Coração ac6dc9275b Merge pull request #1352 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.5.0
📌 Bump puppeteer from 22.4.1 to 22.5.0
2024-03-20 16:08:29 +00:00
Nuno Coração 5d9a9beee6 Merge pull request #1353 from Aphcity/translations-v1
Update zh-CN translations
2024-03-20 16:08:12 +00:00
Nuno Coração 422d8fa8e8 Merge branch 'translations-v1' into translations-v1 2024-03-20 16:07:57 +00:00
Nuno Coração 6190898b70 fixed view like counters to work across multiple langs 2024-03-20 16:05:48 +00:00
Lemon73-Computing 4a58dae0a4 translate: samples into japanese 2024-03-21 00:24:21 +09:00
Aphcity 5ad4fd2225 Merge remote-tracking branch 'weaxs/translations-v1' into translations-v1 2024-03-20 21:01:40 +08:00
Aphcity 8bf4d13667 Add translations
- Add series
- Add shortcodes
- Some fix
2024-03-20 20:52:58 +08:00
Weaxs 433b51208d fix 2024-03-20 19:37:37 +08:00
Weaxs c3719406ac 中文(简体) -> 简体中文
中文(繁體) -> 繁體中文
2024-03-20 19:30:24 +08:00
Weaxs 1e7b2c58db enable hasCJKLanguage 2024-03-20 19:17:33 +08:00
Aphcity 4ef29d4697 Merge remote-tracking branch 'weaxs/translations-v1' into translations-v1 2024-03-20 18:44:18 +08:00
Aphcity 4a95a42286 Update zh-CN trans for Advanced Customisation 2024-03-20 14:04:51 +08:00
dependabot[bot] 94c013166b 📌 Bump puppeteer from 22.4.1 to 22.5.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.4.1 to 22.5.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.4.1...puppeteer-v22.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-20 05:48:15 +00:00
Weaxs 77d0ab83fd Merge remote-tracking branch 'blowfish/translations-v1' into translations-v1
# Conflicts:
#	exampleSite/content/docs/advanced-customisation/index.zh-cn.md
#	exampleSite/content/docs/configuration/index.zh-cn.md
#	exampleSite/content/docs/content-examples/index.zh-cn.md
#	exampleSite/content/docs/firebase-views/index.zh-cn.md
#	exampleSite/content/docs/front-matter/index.zh-cn.md
#	exampleSite/content/docs/getting-started/index.zh-cn.md
#	exampleSite/content/docs/homepage-layout/index.zh-cn.md
#	exampleSite/content/docs/installation/index.zh-cn.md
#	exampleSite/content/docs/multi-author/index.zh-cn.md
#	exampleSite/content/docs/thumbnails/index.zh-cn.md
#	exampleSite/content/docs/welcome/index.zh-cn.md
#	exampleSite/content/samples/_index.zh-cn.md
#	exampleSite/content/samples/icons/index.zh-cn.md
#	exampleSite/content/samples/thumbnail_sample/index.zh-cn.md
#	i18n/zh-CN.yaml
2024-03-20 11:58:51 +08:00
Weaxs 44b3b17fac translate thumbnails, multi-author, samples,icons, thumbnail_sample to zh-cn 2024-03-20 11:52:16 +08:00
Weaxs 6b341ad811 translate thumbnails, multi-author to zh-cn 2024-03-20 11:35:00 +08:00
Lemon73-Computing f81f55ba94 translate: samples/multiple-authors into japanese 2024-03-20 11:06:49 +09:00
Aphcity 4748453ea3 Add background blur to i18n menu 2024-03-20 10:05:26 +08:00
Aphcity 3b0393d553 Add remote image support to author image 2024-03-20 10:03:59 +08:00
Lemon73-Computing 74bd2b2b35 translate: samples/thumbnail_sample into japanese 2024-03-20 10:52:30 +09:00
Nuno Coração 74b985654e small fix in custom recent page 2024-03-20 00:16:24 +00:00
Nuno Coração 4e63dcadb3 updated backgrund 2024-03-20 00:05:45 +00:00
Nuno Coração a7ae2030f0 change to processUsers script 2024-03-20 00:03:07 +00:00
Nuno Coração c516d2ef6e fixed conflicts 2024-03-20 00:01:29 +00:00
Nuno Coração f7286ece55 fixed conflicts 2024-03-19 23:57:43 +00:00
Nuno Coração f03311be06 fixed conflicts 2024-03-19 23:53:25 +00:00
Nuno Coração c5eef5a8f6 fixed svg background for articles 2024-03-19 23:47:48 +00:00
Nuno Coração f1271eea67 removed SVG thumbnails in favour of just background 2024-03-19 23:45:12 +00:00
Nuno Coração 3d197535ea reprocess users 2024-03-19 23:31:36 +00:00
Nuno Coração e6a8167b11 added placeholder files for all missing translations 2024-03-19 23:20:22 +00:00
Nuno Coração 9ed6ee385c Merge pull request #1344 from ncocchiaro/add-itchio-icon
🖌️ Added itch.io icon
2024-03-19 23:13:09 +00:00
Nuno Coração 45ac03eb53 Merge pull request #1345 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-03-19 23:11:52 +00:00
Nuno Coração 8b93b9960a Merge pull request #1347 from Aphcity/patch-1
Update zh-CN.yaml
2024-03-19 23:11:29 +00:00
Weaxs b5307d0fb5 translate advanced-customisation, front-matter, firebase-views 2024-03-20 02:17:17 +08:00
Weaxs d54ecd6a04 translate configuration, content-examples, homepage-layout 2024-03-19 14:41:27 +08:00
Aphcity ff8e458e1f Update zh-CN.yaml 2024-03-18 12:38:31 +08:00
Weaxs 1c800f6d1b translate getting-started 2024-03-17 23:37:53 +08:00
nunocoracao 00845bbd18 Update Hugo supported version 2024-03-17 06:04:24 +00:00
Nicola Cocchiaro e528194e4c Added itch.io icon 2024-03-16 16:13:49 -07:00
Nuno Coração e90caa7a7b added ja skeleton files 2024-03-16 18:24:16 +00:00
Lemon73-Computing 67e026efd7 translate: dummy authors (japanese) 2024-03-16 17:40:14 +09:00
Nuno Coração 5d00985704 Merge pull request #1339 from Lemon73-Computing/translations-v1 2024-03-16 08:15:33 +00:00
Lemon73 3ad4fbd7a2 translate: japanese - advanced tags 2024-03-16 17:07:07 +09:00
Lemon73 c021818745 translate: japanese - tags 2024-03-16 16:59:30 +09:00
Lemon73 4f42c38e36 Merge branch 'translations-v1' into translations-v1 2024-03-15 16:22:23 +09:00
Nuno Coração 10bf07a7b7 Update LICENSE 2024-03-14 18:44:53 +00:00
Weaxs 8626104b88 translate installation 2024-03-15 02:24:56 +08:00
Lemon73-Computing cf15eca10f translate: japanese - guides-template 2024-03-14 20:32:09 +09:00
Lemon73-Computing 531e89ce6c translate: exsample site title 2024-03-14 19:55:19 +09:00
Lemon73-Computing 6de3ed8566 create: japanese translation - showcase 2024-03-14 19:49:17 +09:00
Lemon73-Computing 9a70203a42 create: japanese translation - recipes 2024-03-14 19:49:01 +09:00
Lemon73-Computing 745bf89b70 create: japanese posts 2024-03-14 18:59:43 +09:00
Lemon73-Computing cd33d1f880 create: japanese docs 2024-03-14 18:56:05 +09:00
Lemon73-Computing 6c1bdb36f6 create: _index.ja.md 2024-03-14 18:45:28 +09:00
Lemon73-Computing b176f67a91 change: details 2024-03-14 18:45:12 +09:00
Lemon73-Computing 80c1a9d96a translate: japanese - users page 2024-03-14 17:53:43 +09:00
Lemon73-Computing 6f646c8688 translate: to japanese 2024-03-14 17:46:44 +09:00
Lemon73-Computing 0aa278ada6 add: japanese translation 2024-03-14 17:32:29 +09:00
Lemon73-Computing eaff5aae11 change: date format 2024-03-14 17:24:22 +09:00
Nuno Coração 93ef687194 too big too describe 2024-03-14 00:01:32 +00:00
Nuno Coração 48bc05b12f updated users processing script to generate for all available languages 2024-03-13 23:08:17 +00:00
Nuno Coração 01a88441fd added commented config that hides languages 2024-03-13 21:54:20 +00:00
Nuno Coração c4ffe1f0d5 Merge pull request #1336 from arahmitz/patch-1
👤 Added new user page
2024-03-13 21:24:07 +00:00
Weaxs bbb0f9be0d translate welcome && update i18n 2024-03-14 01:37:38 +08:00
Nuno Coração 5e9bfbd9fe Merge pull request #1340 from BabaRagnarok/translations-v1 2024-03-13 16:09:59 +00:00
BabaRagnarok f8d48382bc Translated config files into Italian 2024-03-13 16:57:21 +01:00
Lemon73 8620d809fe translate: languages.ja.toml 2024-03-13 22:12:54 +09:00
Nuno Coração 9f67fb1859 Merge pull request #1338 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.5.12 2024-03-13 12:50:42 +00:00
dependabot[bot] 241199c5ee 📌 Bump prettier-plugin-tailwindcss from 0.5.11 to 0.5.12
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.11 to 0.5.12.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.11...v0.5.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-13 09:57:13 +00:00
Nuno Coração 77462c9f21 Merge pull request #1337 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.4.1 2024-03-13 09:56:27 +00:00
dependabot[bot] f3f27729f1 📌 Bump puppeteer from 22.4.0 to 22.4.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.4.0 to 22.4.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.4.0...puppeteer-v22.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-13 05:43:13 +00:00
Adam Madej 18800f8408 Added new user page
Added page for adammadej.com - a portfolio site.
2024-03-12 23:20:06 +01:00
Nuno Coração b6c908e4e5 updating version 2024-03-12 19:15:23 +00:00
Nuno Coração 65956f10b9 Merge pull request #1317 from nunocoracao/dev
🔖 v2.61.1
2024-03-12 19:09:51 +00:00
Nuno Coração 35ab259633 updating version 2024-03-12 19:09:30 +00:00
Nuno Coração cad46b0876 Merge pull request #1331 from nunocoracao/1329--tailwind-colors-are-not-updating-with-colorscheme
🐛 Tailwind Colors are not updating with colorScheme
2024-03-12 19:06:35 +00:00
Nuno Coração 8409353223 🐛 Tailwind Colors are not updating with colorScheme 2024-03-12 19:03:25 +00:00
Nuno Coração 5ef6777ac9 fixed small menu issue in ZH-CN 2024-03-12 17:02:17 +00:00
Nuno Coração c2a84b2418 Merge pull request #1330 from Weaxs/translations-v1 2024-03-12 12:59:01 +00:00
Weaxs 2eb7f8aed7 add advanced listing page 2024-03-12 18:00:13 +08:00
Nuno Coração 6c47f51936 Merge pull request #1325 from Weaxs/translations-v1
🎏 Blowfish translation (zh-cn)
2024-03-12 09:50:42 +00:00
Nuno Coração abf51ad142 Merge pull request #1328 from fauziralpiandi/patch-1
update id.yaml
2024-03-12 09:44:18 +00:00
fwzyrln_ bb737313e2 update id.yaml 2024-03-12 12:09:17 +07:00
Weaxs 0bc9b9af6a translate docs/tags/users/content listing page 2024-03-11 19:41:50 +08:00
Nuno Coração 35a5b61881 initial language setup for ja it zh-cn 2024-03-11 10:12:03 +00:00
Nuno Coração d93195c377 Merge pull request #1323 from nunocoracao/hugo-new-version 2024-03-11 09:27:34 +00:00
nunocoracao 4a0d10dc18 Update Hugo supported version 2024-03-11 06:04:51 +00:00
Nuno Coração 6c6a559113 Update pt-PT.yaml 2024-03-10 23:55:49 +00:00
Nuno Coração ed6e943e57 script correction 2024-03-10 23:18:40 +00:00
Nuno Coração a67798f18a Merge pull request #1320 from nunocoracao/1319-add-translation-scripts
🎏 added translation lib and scripts
2024-03-10 22:43:08 +00:00
Nuno Coração 902b0d9c86 added translation lib and scripts 2024-03-10 22:42:10 +00:00
Nuno Coração 554e25716c Merge pull request #1318 from nunocoracao/main
Update params.toml
2024-03-10 17:48:47 +00:00
Nuno Coração 491ce02f59 Update params.toml 2024-03-10 17:48:23 +00:00
Nuno Coração 255358e016 Update package.json 2024-03-10 17:41:58 +00:00
Nuno Coração c6114343ab Merge pull request #1304 from nunocoracao/dev
🔖 v2.61.0
2024-03-10 17:38:29 +00:00
Nuno Coração a147c648fc Merge pull request #1315 from nunocoracao/1308--i18n-improvements-and-translation
1308  i18n improvements and translation
2024-03-10 17:37:27 +00:00
Nuno Coração beb23b9596 polish 2024-03-10 17:36:28 +00:00
Nuno Coração 2e50aae48b 🎏 i18n improvements and translation 2024-03-10 17:06:12 +00:00
Nuno Coração 346b74baf9 Merge pull request #1314 from nunocoracao/1311--performance-improvements-and-visual-facelift
🎨 Performance improvements
2024-03-10 16:46:45 +00:00
Nuno Coração 1676cc965f small improvements 2024-03-10 16:46:05 +00:00
Nuno Coração e9e1a9761b small improvements on readme 2024-03-10 16:33:17 +00:00
Nuno Coração b5bb4a17b4 small improvements on readme 2024-03-10 16:32:17 +00:00
Nuno Coração 7e22a5e368 improvements and feature images 2024-03-10 16:26:13 +00:00
Nuno Coração 54daa63c2a visual polish for backgrounds and featured images 2024-03-10 12:27:16 +00:00
Nuno Coração be187c78ee polish 2024-03-10 11:03:46 +00:00
Nuno Coração 40908cb3c3 fixed youtube performance issues and added new shortcut 2024-03-10 11:02:47 +00:00
Nuno Coração e17c4b6dd6 initial commit for improvements 2024-03-10 10:55:57 +00:00
Nuno Coração 2e9a2f244f Merge pull request #1312 from nunocoracao/1275--clicking-on-a-external-url-page-from-search-results-navigates-to-the-page-and-not-the-external-url
🐛 Clicking on a External URL page from search results does not naviga…
2024-03-10 10:32:22 +00:00
Nuno Coração e92c30b7a3 🐛 Clicking on a External URL page from search results does not navigate to external page 2024-03-10 10:31:37 +00:00
Nuno Coração ea3aec22c5 Merge pull request #1310 from nunocoracao/1301--add-threads-link-to-author-profile
🎨 Add threads link to author profile
2024-03-10 10:10:23 +00:00
Nuno Coração 6f1e6e4537 🎨 Add threads link to author profile 2024-03-10 10:09:53 +00:00
Nuno Coração a2e806e094 Merge pull request #1309 from nunocoracao/1171--docs-updates-on-supported-color-schemes
✏️ Docs updates on supported color schemes
2024-03-10 10:02:31 +00:00
Nuno Coração 1d32caec6a removing typo 2024-03-10 10:01:28 +00:00
Nuno Coração a657ad96f1 ✏️ Docs updates on supported color schemes 2024-03-10 10:00:40 +00:00
Nuno Coração 828ed74680 Merge branch 'main' into dev 2024-03-10 09:45:58 +00:00
Nuno Coração bf94692d46 Merge pull request #1307 from nunocoracao/hugo-new-version 2024-03-10 09:17:24 +00:00
nunocoracao 1b4aa91c56 Update Hugo supported version 2024-03-10 06:04:02 +00:00
Nuno Coração 3ec8dbc5cb Merge pull request #1306 from nunocoracao/1174--global-site-background-image
🎨 backgrounds and feature images support svg
2024-03-09 23:45:21 +00:00
Nuno Coração 8bbd8b8626 backgrounds and feature images support svg 2024-03-09 23:44:14 +00:00
Nuno Coração 36d022e020 Update hugo-version-update.yml 2024-03-09 22:03:16 +00:00
Nuno Coração afdaaaf408 Update hugo-version-update.yml 2024-03-09 21:58:46 +00:00
Nuno Coração b490f97b8b creating files for new action 2024-03-09 21:55:57 +00:00
Nuno Coração 0c22317171 Update hugo-version-update.yml 2024-03-09 21:53:47 +00:00
Nuno Coração 83797461b4 Update hugo-version-update.yml 2024-03-09 21:51:35 +00:00
Nuno Coração 937fdad583 Update hugo-version-update.yml 2024-03-09 21:50:36 +00:00
Nuno Coração 5fdf429761 Update hugo-version-update.yml 2024-03-09 21:49:51 +00:00
Nuno Coração f4022f5a5c Update hugo-version-update.yml 2024-03-09 21:43:57 +00:00
Nuno Coração 83b0c5aea0 Update hugo-version-update.yml 2024-03-09 21:39:44 +00:00
Nuno Coração 2134b2fd01 Update hugo-version-update.yml 2024-03-09 21:37:03 +00:00
Nuno Coração fbe67c9978 Merge pull request #1303 from nunocoracao/1280-automatically-bump-hugo-support-version-when-theres-a-new-release
⚙️ new action for auto update
2024-03-09 21:31:07 +00:00
Nuno Coração 8d3e4df011 new action for auto update 2024-03-09 21:30:18 +00:00
Nuno Coração f421ce16c8 add loading lazy to image render 2024-03-09 15:24:00 +00:00
Nuno Coração 893687d0d4 add source param to users.json 2024-03-09 14:59:45 +00:00
Nuno Coração 4d13ea3256 Merge pull request #1300 from nunocoracao/revert-1296-gallery-magic-grid
Revert "Gallery: Switch Packery to MagicGrid "
2024-03-09 14:29:36 +00:00
Nuno Coração f0f6afa555 Revert "Gallery: Switch Packery to MagicGrid " 2024-03-09 14:28:04 +00:00
Nuno Coração 08b14e923d Merge pull request #1296 from StandingPadAnimations/gallery-magic-grid
Gallery: Switch Packery to MagicGrid
2024-03-09 14:23:57 +00:00
Nuno Coração f93ac47d88 Merge branch 'dev' into gallery-magic-grid 2024-03-09 14:23:45 +00:00
Nuno Coração 263a1dce02 Merge pull request #1298 from alxhslm/style_mermaid
🐛  Fix styling of Mermaid charts
2024-03-09 14:17:49 +00:00
Alex Haslam 713f9f687b Update mermaid version 2024-03-07 20:32:25 +00:00
Alex Haslam 5a11829222 Add mermaid back in package.json 2024-03-07 20:32:21 +00:00
StandingPad Animations 85fe1addbc Fixed debug variable 2024-03-06 20:28:59 -06:00
StandingPad Animations f1d582ff98 Swapped out Packery for MagicGrid
This switches the Gallery shortcode to use MagicGrid instead of Packery.
The main benefit is size (2.7k as opposed to 32k), and the results are
mostly similar minus a few differences in image position.
2024-03-06 20:12:28 -06:00
Nuno Coração ef4068911b next release 2024-03-06 23:16:50 +00:00
Laterre 0c949e5c98 feat: 타이핑 스크립트 제거 2023-11-10 22:06:33 +09:00
Laterre c3acfb006f feat: 테마 타이핑 스크립트 작성 2023-11-10 22:00:53 +09:00
Laterre ff5b884c85 refactor: ko 파일 수정 2023-11-06 11:40:48 +09:00
Laterre ed51c26040 refactor: 이미지 파일 추가 2023-11-04 23:42:25 +09:00
Laterre e4c7ce160c style: 블로그 로고 이미지 업로드 2023-11-04 22:06:54 +09:00
966 changed files with 54700 additions and 2426 deletions

No files matched your search

+7
View File
@@ -36,6 +36,13 @@ jobs:
push_options: "--dry-run"
file_pattern: "assets/lib/katex/*"
commit_message: "📦 Update packaged KaTeX"
- name: Commit Mermaid changes
uses: stefanzweifel/git-auto-commit-action@v5
with:
branch: "${{ github.head_ref }}"
push_options: "--dry-run"
file_pattern: "assets/lib/mermaid/*"
commit_message: "📦 Update packaged Mermaid"
- run: npm run build
- name: Commit CSS changes
uses: stefanzweifel/git-auto-commit-action@v5
+25
View File
@@ -0,0 +1,25 @@
name: Create Config ZIP
on:
release:
types: [published]
workflow_dispatch:
jobs:
zip:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: zip -r config-default.zip config/_default
- name: Create/Update latest release # adds file static url
uses: softprops/action-gh-release@v1
with:
files: config-default.zip
tag_name: latest
name: Latest Config Files
body: Automated config files bundle
- name: Add to version release # adds file to the release assets
if: github.event_name == 'release' # run on actual releases, not manual triggers
uses: softprops/action-gh-release@v1
with:
files: config-default.zip
tag_name: ${{ github.event.release.tag_name }}
+2 -2
View File
@@ -7,9 +7,9 @@ jobs:
steps:
- name: Hugo setup
uses: peaceiris/actions-hugo@v2.6.0
uses: peaceiris/actions-hugo@v3.0.0
with:
hugo-version: 0.120.4
hugo-version: 0.140.2
extended: true
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
+2 -2
View File
@@ -9,9 +9,9 @@ jobs:
steps:
- name: Hugo setup
uses: peaceiris/actions-hugo@v2.6.0
uses: peaceiris/actions-hugo@v3.0.0
with:
hugo-version: 0.120.4
hugo-version: 0.140.2
extended: true
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
+53
View File
@@ -0,0 +1,53 @@
name: Update Hugo version
on:
schedule:
- cron: '0 6 * * *'
workflow_dispatch:
jobs:
updateBlowfish:
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
ref: dev
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Fetch release version
id: fetch-release
run: |
curl -sL https://api.github.com/repos/gohugoio/hugo/releases/latest | \
jq -r ".tag_name" > release-versions/hugo-latest.txt
- name: Check for modified files
id: git-check
run: echo ::set-output name=modified::$([ -z "`git status --porcelain`" ] && echo "false" || echo "true")
- name: Update config.toml
id: update-config
if: steps.git-check.outputs.modified == 'true'
run: |
cat release-versions/hugo-latest.txt | \
while read version; do sed -i'' -E "s/(max = \")[0-9]+\.[0-9]+\.[0-9]+(\")/\1${version#v}\2/g" config.toml; done
- name: Create Pull Request
if: steps.git-check.outputs.modified == 'true'
uses: peter-evans/create-pull-request@v7
with:
commit-message: Update Hugo supported version
title: ⚙️ Update Hugo supported version
body: |
Updates [Hugo][1] support
Auto-generated by [create-pull-request][2]
[1]: https://github.com/gohugoio/hugo
[2]: https://github.com/peter-evans/create-pull-request
labels: dependencies, automated pr
branch: hugo-new-version
base: dev
+1 -1
View File
@@ -42,7 +42,7 @@ jobs:
submodules: recursive
- name: Setup Pages
id: pages
uses: actions/configure-pages@v4
uses: actions/configure-pages@v5
- name: Build with Hugo
env:
# For maximum backward compatibility with Hugo modules
+1 -1
View File
@@ -16,7 +16,7 @@ jobs:
fetch-depth: 0
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2.6.0
uses: peaceiris/actions-hugo@v3.0.0
with:
hugo-version: "latest"
+2
View File
@@ -30,3 +30,5 @@ node_modules
.Spotlight-V100
.Trashes
.idea
.Ulysses-Group.plist
.Ulysses-Settings.plist
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2021 James Panther (https://jamespanther.com)
Copyright (c) 2022 Nuno Coração (https://nunocoracao.com)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
+179
View File
@@ -0,0 +1,179 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | 日本語
# Blowfish
[![Deploy Production to Firebase](https://github.com/nunocoracao/blowfish/actions/workflows/firebase-production.yml/badge.svg)](https://github.com/nunocoracao/blowfish/actions/workflows/firebase-production.yml)
[![Deploy Production to GitHub pages](https://github.com/nunocoracao/blowfish/actions/workflows/pages.yml/badge.svg)](https://github.com/nunocoracao/blowfish/actions/workflows/pages.yml)
[![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)
[![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は[Hugo](https://gohugo.io)のために設計された強力で軽量なテーマです。Tailwind CSS を使用し、コンテンツを優先したクリーンでミニマルなデザインでが特徴です。
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [デモサイト](https://blowfish.page/)
📑 [ドキュメント](https://blowfish.page/docs/)
💎 [グッズストア](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [バグ報告と問題点](https://github.com/nunocoracao/blowfish/issues)
💡 [質問と機能リクエスト](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>
## 機能
- Tailwind CSS 3.0 で構築された、完璧なレスポンシブデザイン
- 複数の配色 (または、自分で完全にカスタマイズ可能)
- ダークモード (強制オン/オフ か 自動選択・ユーザー切り替え)
- 高度なカスタマイズが可能な設定
- Firebase 連携で動的データをサポート
- 閲覧数といいね機能
- 関連記事
- 複数のホームページレイアウト
- 複数人の著者
- シリーズ記事
- 日付と価値付けによる記事の並べ替え
- 記事を読むための Zen モード
- あらゆるコンテンツタイプ、分類、メニューに柔軟に対応
- ヘッダー/フッターメニュー
- 階層化されたメニューとサブナビゲーションメニュー
- スクロール可能な目次
- RTL 言語を含む多言語コンテンツのサポート
- サードパーティー ウェブサイトの投稿へのリンク
- ギャラリー、タイムライン、GitHub カード、カルーセルなど、複数のショートコードに対応
- Buy Me a Coffee 連携
- Fuse.js を利用したクライアントサイドのサイト内検索
- Mermaid を使用したダイアグラムや視覚化
- Chart.js を使用したグラフ表示
- TypeIt 連携
- パフォーマンスを改善した YouTube 埋め込み
- KaTeX を使用した数式表現
- FontAwesome 6 の SVG アイコン
- Hugo Pipes を使用した画像の自動リサイズ
- アンカーリンク、目次、コードコピー、ボタン、バッジなど
- 記事内での HTML と絵文字のサポート 🎉
- ソーシャルメディアへの共有リンクを備えた SEO フレンドリーな設計
- Fathom Analytics と Google Analytics のサポート
- RSS フィード、ファビコン、コメント機能のサポート
- Tailwind の色定義とスタイルを使った高度なカスタマイズ
- Lighthouse で満点評価を獲得したパフォーマンスとアクセシビリティの最適化
- 充実したドキュメントと定期的なアップデート
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## ドキュメント
Blowfish には、テーマのあらゆる側面を網羅した[詳細なドキュメント](https://blowfish.page/docs/)があります。テーマの使い方や機能を詳しく知るために、必ず[ドキュメントを読んで](https://blowfish.page/docs/)ください。
---
## インストール
Blowfish は、git サブモジュール、Hugo モジュール、または完全な手動インストールなど、いくつかのインストール方法をサポートしています。
各方法の詳細な手順は、[インストール](https://blowfish.page/docs/installation)ドキュメントに記載されています。最も簡単なセットアップ方法については、ドキュメントを参照してください。以下にクイックスタートガイドを示します。git を使用している場合はサブモジュール、Hugo テーマのインストールに慣れている場合は Hugo モジュールを使用するのがおすすめです。
### Blowfish Tools を使ったクイックスタート
> **注意:** **Node.js**、**Git**、**Go**、**Hugo** がインストールされていること、そして先に進む前に新しい Hugo プロジェクトが作成されていることを確認してください。
Blowfish を使い始めるのに役立つ新しい CLI ツールをリリースしました。このツールは、新しい Hugo プロジェクトを作成し、テーマをインストールし、テーマ設定ファイルをセットアップします。まだベータ版なので、[問題を見つけたら報告してください](https://github.com/nunocoracao/blowfish-tools)。
npm(または他のパッケージマネージャー)を使って CLI ツールをグローバルにインストールします:
```shell
npm i -g blowfish-tools
```
`blowfish-tools` コマンドを実行すると、対話形式でプロジェクトの作成と設定をガイドするツールが起動します。
```shell
blowfish-tools
```
`blowfish-tools new` コマンドを実行すると、新しい Hugo プロジェクトを作成し、テーマを一度にインストールすることもできます。詳細については、CLI のヘルプを参照してください。
```shell
blowfish-tools new mynewsite
```
### git サブモジュールを使ったクイックスタート
> **注意:** **Git**、**Go**、**Hugo** がインストールされていること、そして先に進む前に新しい Hugo プロジェクトが作成されていることを確認してください。
1. プロジェクトディレクトリで、git を初期化します。
```shell
git init
```
2. Blowfish を git サブモジュールとして設定します。
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. ウェブサイトのルートフォルダで、Hugo によって生成された `config.toml` ファイルを削除します。テーマから `*.toml` 設定ファイルをコピーして、`config/_default/` フォルダに保存します。
これらのテーマ設定ファイルは、Hugo キャッシュディレクトリにあります。または、GitHub から[コピーをダウンロード](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip)できます。
4. [Getting Started](https://blowfish.page/docs/getting-started/) の手順に従って、ウェブサイトを設定します。
### Hugo を使ったクイックスタート
> **注意:** **Go** と **Hugo** がインストールされていること、そして先に進む前に新しい Hugo プロジェクトが作成されていることを確認してください。
1. プロジェクトディレクトリから、Hugo Modules を初期化します。
```shell
hugo mod init github.com/<username>/<repo-name>
```
2. `config/_default/module.toml` を作成し、以下を追加します。
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. `hugo server` を使用してサーバーを起動すると、テーマが自動的にダウンロードされます。
4. ウェブサイトのルートフォルダにある、Hugo によって生成された `config.toml` ファイルを削除します。テーマの `*.toml` 設定ファイルを `config/_default/` フォルダにコピーします。
> **注意:** 上記で作成した `module.toml` ファイルを上書きしないでください!
これらのテーマ設定ファイルは、Hugo のキャッシュディレクトリにあります。または、GitHub から[コピーをダウンロード](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip)できます。
5. [Getting Started](https://blowfish.page/docs/getting-started/) の手順に従って、ウェブサイトを設定します。
### テーマのアップデートのインストール
新しいリリースが公開されたら、Hugo を使ってテーマをアップデートできます。プロジェクトディレクトリから `hugo mod get -u` を実行するだけで、テーマは自動的に最新リリースにアップデートされます。
詳細な[アップデート手順](https://blowfish.page/docs/installation/#installing-updates)はドキュメントに記載されています。
---
## 貢献
Blowfish は時間とともに進化していく予定です。必要に応じて機能の追加や変更を続けていく予定です。
問題や追加してほしい新機能の提案があれば、お気軽にご連絡ください。
- 🐛 **バグ報告と問題点:** [GitHub Issues](https://github.com/nunocoracao/blowfish/issues) を使用してください
- 💡 **新機能のアイデア:** [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions) でディスカッションを開始してください
- 🙋‍♀️ **一般的な質問:** [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions) へ進んでください
バグ修正や新機能の実装ができる方は、Pull Request を歓迎します。詳しくは[貢献ガイドライン](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md)をご覧ください。
---
## スター数の推移
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
+19 -10
View File
@@ -1,8 +1,5 @@
English | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md)
# Blowfish
<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>
[![Deploy Production to Firebase](https://github.com/nunocoracao/blowfish/actions/workflows/firebase-production.yml/badge.svg)](https://github.com/nunocoracao/blowfish/actions/workflows/firebase-production.yml)
[![Deploy Production to GitHub pages](https://github.com/nunocoracao/blowfish/actions/workflows/pages.yml/badge.svg)](https://github.com/nunocoracao/blowfish/actions/workflows/pages.yml)
[![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)
@@ -10,7 +7,10 @@
[![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 is designed to be a powerful, lightweight theme for [Hugo](https://gohugo.io). It's built using Tailwind CSS with a clean and minimalist design that prioritises to your content. The theme is a fork of [Congo](https://github.com/jpanther/congo).
Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohugo.io). It's built using Tailwind CSS with a clean and minimalist design that prioritises to your content.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Demo site](https://blowfish.page/)
📑 [Theme documentation](https://blowfish.page/docs/)
@@ -18,7 +18,11 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
🐛 [Bug reports & issues](https://github.com/nunocoracao/blowfish/issues)
💡 [Questions & feature requests](https://github.com/nunocoracao/blowfish/discussions)
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
<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>
## Features
@@ -33,10 +37,12 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
- Multiple homepage layouts
- Multiple authors
- Series of articles
- Date and weight based article sorting
- Zen mode for article reading
- Flexible with any content types, taxonomies and menus
- Header and footer menus
- Nested menus & sub-navigation menu
- Scrollable table of contents
- 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
@@ -45,6 +51,7 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
- Diagrams and visualisations using Mermaid
- Charts using Chart.js
- TypeIt integration
- Youtube embeds with performance improvements
- Mathematical notation using KaTeX
- SVG icons from FontAwesome 6
- Automatic image resizing using Hugo Pipes
@@ -59,6 +66,8 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Documentation
Blowfish has [extensive documentation](https://blowfish.page/docs/) that covers all aspects of the theme. Be sure to [read the docs](https://blowfish.page/docs/) to learn more about how to use the theme and its features.
@@ -110,7 +119,7 @@ blowfish-tools new mynewsite
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.
You will find these theme config files in the Hugo cache directory, or [download a copy](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/nunocoracao/blowfish/tree/main/config/_default) from GitHub.
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.
4. Follow the [Getting Started](https://blowfish.page/docs/getting-started/) instructions to configure your website.
@@ -133,11 +142,11 @@ blowfish-tools new mynewsite
3. Start your server using `hugo server` and the theme will be downloaded automatically.
4. 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.
4. 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.
> **Note:** Do not overwrite the `module.toml` file you created above!
You will find these theme config files in the Hugo cache directory, or [download a copy](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/nunocoracao/blowfish/tree/main/config/_default) from GitHub.
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.
5. Follow the [Getting Started](https://blowfish.page/docs/getting-started/) instructions to configure your website.
+176
View File
@@ -0,0 +1,176 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | 简体中文 | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md)
# Blowfish
[![Deploy Production to Firebase](https://github.com/nunocoracao/blowfish/actions/workflows/firebase-production.yml/badge.svg)](https://github.com/nunocoracao/blowfish/actions/workflows/firebase-production.yml)
[![Deploy Production to GitHub pages](https://github.com/nunocoracao/blowfish/actions/workflows/pages.yml/badge.svg)](https://github.com/nunocoracao/blowfish/actions/workflows/pages.yml)
[![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)
[![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 是一个轻量有力的 Hugo 主题。它使用 Tailwind CSS 构建,洁净而富有极简主义,是你网站内容载体的不二之选。
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [示例站点](https://blowfish.page/zh-cn/)
📑 [主题文档](https://blowfish.page/zh-cn/docs/)
💎 [周边商店](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [Bug 问题报告](https://github.com/nunocoracao/blowfish/issues)
💡 [问答和功能需求](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>
## 特性
- 使用 Tailwind CSS 3.0 构建全面响应式布局
- 多种配色方案,亦可完全由你定义
- 夜间模式支持(手动开启/关闭或根据用户设备自动切换)
- 高度自主的配置方式
- 集成 Firebase 以支持动态数据统计
- 集成浏览次数统计和点赞机制
- “相关文章”列表生成
- 多种主页布局
- 多作者模式支持
- 可将文章整理成选集列表
- 禅模式支持
- 可灵活定义各种内容类型、分类标准和菜单
- 页眉和页脚双重菜单可选
- 支持嵌套菜单和子导航菜单
- 支持多语言内容,包括 RTL 语言
- 可链接到第三方网站上的帖子
- 支持多种简码,如图库、时间轴、GitHub 卡片和图片灯箱
- 支持 Buymeacoffee
- 拥有由 Fuse.js 支持的客户端一侧网站搜索功能
- 植入了基于 Mermaid 的图表功能
- 植入了基于 Chart.js 的图表功能
- 集成逼真的自动打字效果
- 集成性能优化的 Youtube 卡片简码
- 集成 KaTeX 的公式
- 集成 FontAwesome 6 的矢量图标引用
- 使用 Hugo Pipes 自动调整图像大小
- 拥有标题锚点、目录、代码复制、按钮、分类徽章等功能
- 文章内部支持 HTML 和 Emoji 🎉
- 便于搜索引擎优化,文章可一键分享到社交媒体
- 支持 Fathom Analytics 和 Google Analytics
- 支持 RSS 订阅、网站图标和评论功能
- 可使用简单的 Tailwind 对颜色和样式进行高级定制
- 优化了性能和可访问性,拥有极高的 Lighthouse 评分
- 文档齐全,定期更新
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## 文档
Blowfish 有 [全面的文档](https://blowfish.page/zh-cn/docs/),覆盖主题的任何一个方面。 请确保 [阅读文档](https://blowfish.page/zh-cn/docs/) 以详细了解本主题有哪些功能。
---
## 安装
Blowfish 支持多种安装方式,既能作为 git 子模块、Hugo 模块,也可完全手动安装。
每种方法的详细说明都可以在 [安装](https://blowfish.page/zh-cn/docs/installation) 文档中找到。为了获得最简单的安装体验,请查阅文档。如果你使用的是 git,请阅读下面使用子模块的快速开始指南;如果你能安装 Hugo 主题,请阅读下面 Hugo 模块的快速开始指南。
### 使用 Blowfish Tools 快速开始
> **注:** 请确保你已安装 **Node.js**、 **Git**、 **Go** 和 **Hugo** ,且已经创建了一个 Hugo 工程。
我们最新推出了一个新的 CLI 工具,帮助你开始使用 Blowfish。它将为你创建一个新的 Hugo 项目、安装主题并设置主题配置文件。它仍处于测试阶段,因此请 [报告你发现的任何问题](https://github.com/nunocoracao/blowfish-tools)。
使用 npm(或其他软件包管理器)全局安装 CLI 工具:
```shell
npm i -g blowfish-tools
```
然后运行 "blowfish-tools "命令,开启一个交互式进程,引导你完成创建和配置。
```shell
blowfish-tools
```
你也可以运行命令 `blowfish-tools new` 来创建一个新的 Hugo 项目,并一次性安装主题。更多信息请查看 CLI 帮助。
```shell
blowfish-tools new mynewsite
```
### 使用 git 子模块快速开始
> **注:** 请确保你已安装 **Node.js**、 **Git**、 **Go** 和 **Hugo** ,且已经创建了一个 Hugo 工程。
1. 从你工程的所在目录初始化 git 仓库
```shell
git init
```
2. 配置 Blowfish 作为 git 子模块
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. 在你网站的根目录中删除由 Hugo 自动生成的 `config.toml`文件,并把主题文件夹中的`*.toml`配置文件复制到你的 `config/_default/`文件夹中
你可在 Hugo 缓存目录中找到主题配置文件,或者也可以从[这里](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip)下载一份。
4. 按照[入门指南](https://blowfish.page/zh-cn/docs/getting-started/)来配置你的网站
### 使用 Hugo 快速开始
> **注:** 确保你已经安装了 **Go** 和 **Hugo**,且已创建了一个 Hugo 工程。
1. 从你工程的所在目录初始化 Hugo 模块
```shell
hugo mod init github.com/<用户名>/<仓库名>
```
2. 新建 `config/_default/module.toml` 并写入以下内容:
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. 运行 `hugo server` 启动你的本地服务器,本主题就会自动下载。
4. 在你网站的根目录中删除由 Hugo 自动生成的 `config.toml`文件,并把主题文件夹中的`*.toml`配置文件复制到你的 `config/_default/`文件夹中
> **注** 不要覆盖之前的 `module.toml` !
你可在 Hugo 缓存目录中找到主题配置文件,或者也可以从[这里](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip)下载一份。
5. 按照[入门指南](https://blowfish.page/zh-cn/docs/getting-started/)来配置你的网站
### Installing theme updates
当新的主题版本发布,你可以在你网站的根目录使用 Hugo 命令`hugo mod get -u`来简单地把主题更新到最新版本。
详细的[更新指南](https://blowfish.page/zh-cn/docs/installation/#%E6%9B%B4%E6%96%B0%E4%B8%BB%E9%A2%98)在文档中。
---
## 贡献
Blowfish 将会持续进化。我打算不断增加功能,并按需进行修改。
如有任何问题或对新功能的建议,请随时联系我。
- 🐛 **Bug 问题报告** 使用 [GitHub Issues](https://github.com/nunocoracao/blowfish/issues)
- 💡 **发表关于新功能的想法:** 在 [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions) 发起讨论
- 🙋‍♀️ **一般问题:** 查看 [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
如果你有能力修补 Bug 或者实现新功能,欢迎提交 PR。[了解更多](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md).
---
## Star 数量统计
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
File diff suppressed because it is too large. Load diff
+12 -13
View File
@@ -16,6 +16,11 @@ body button {
@apply h-[1em] w-[1em];
}
/* Scale SVG logos to appropriate size */
.logo svg {
@apply h-[5rem] w-[5rem];
}
/* Search */
#search-query::-webkit-search-cancel-button,
#search-query::-webkit-search-decoration,
@@ -24,19 +29,6 @@ body button {
@apply hidden;
}
/* Hamburger menu */
body:has(#menu-controller:checked) {
@apply overflow-y-hidden;
}
#menu-button:has(#menu-controller:checked) {
@apply invisible;
}
#menu-controller:checked~#menu-wrapper {
@apply visible opacity-100;
}
/* RTL support */
.prose blockquote {
@apply rtl:pr-4 rtl:border-l-0 rtl:border-r-4;
@@ -128,6 +120,13 @@ code {
overflow-wrap: break-word; /* Renamed property in CSS3 draft spec */
}
/* Fix long URLs breaking out of article bounds on mobile */
a {
word-break: break-word;
word-wrap: break-word;
overflow-wrap: break-word;
}
/* -- Chroma Highlight -- */
/* Background */
.prose .chroma {
+2
View File
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<svg fill="currentColor" viewBox="0 0 24 24" role="img" xmlns="http://www.w3.org/2000/svg"><path d="M11.955.49A12 12 0 0 0 0 12.49a12 12 0 0 0 1.832 6.373L11.838 5.928a.187.14 0 0 1 .324 0l10.006 12.935A12 12 0 0 0 24 12.49a12 12 0 0 0-12-12 12 12 0 0 0-.045 0zm.375 6.467 4.416 16.553a12 12 0 0 0 5.137-4.213z"/></svg>

After

Width:  |  Height:  |  Size: 359 B

+1
View File
@@ -0,0 +1 @@
<svg viewBox="0 0 212 212" xmlns="http://www.w3.org/2000/svg"><g fill="none" stroke="currentColor"><g style="opacity:.7"><path stroke-width="25" d="M64 174V76a50 50 0 0 1 50-50h20"/><circle stroke-width="15" cx="148" cy="26" r="18"/></g><path stroke-width="25" d="M64 174v-30a50 50 0 0 1 50-50h20"/><circle stroke-width="15" cx="148" cy="94" r="18"/><circle stroke-width="15" cx="64" cy="186" r="18"/></g></svg>

After

Width:  |  Height:  |  Size: 411 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="5.67 143.05 628.65 387.55"><path fill="currentColor" d="M115.912 143.075c-6.462 0-13.762.525-22.012 2.325-8.7 1.8-33.5 7.4-53.8 26.9C-4.9 212.4 6.6 276.2 8 285.8c1.7 11.7 6.9 44.2 31.7 72.5 45.8 56.1 144.4 54.8 144.4 54.8s12.1 28.9 30.6 55.5c25 33.1 50.7 58.9 75.7 62 63 0 188.9-.1 188.9-.1s12 .1 28.3-10.3c14-8.5 26.5-23.4 26.5-23.4S547 483 565 451.5c5.5-9.7 10.1-19.1 14.1-28 0 0 55.2-117.1 55.2-231.1-1.1-34.5-9.6-40.6-11.6-42.6-4.1-4.1-9.6-4-9.6-4s-117.2 6.6-177.9 8c-13.267.3-26.433.597-39.5.697l.1 117.002s57.4 24.202 83.1 40.102c3.7 2.3 10.2 6.798 12.9 14.398 2.1 6.1 2 13.101-1 19.301l-61 126.9c-6.2 12.7-21.4 18.1-33.9 12l-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5 21.2-17.9 33.8-11.8a5290.322 5290.322 0 0 0 27 12.954c0-36.449-.1-109.053-.1-109.053-29 .4-89.2-2.201-89.2-2.201s-141.4-7.1-156.8-8.5c-4.9-.3-10.525-.825-16.988-.825zm12.188 48.026s7.1 59.399 15.7 94.199c7.2 29.2 24.8 77.7 24.8 77.7s-26.1-3.1-43-9.1c-25.9-8.5-36.9-18.7-36.9-18.7S69.6 321.8 60 295.4c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5 38.5-30c13.8-3.7 31-3.1 31-3.1z"/><path fill="currentColor" d="M326.8 380.1c-8.2.1-15.4 5.8-17.3 13.8-1.9 8 2 16.3 9.1 20 7.7 4 17.5 1.8 22.7-5.4 5.1-7.1 4.3-16.9-1.8-23.1l24-49.1c1.5.1 3.7.2 6.2-.5 4.1-.9 7.1-3.6 7.1-3.6 4.2 1.8 8.6 3.8 13.2 6.1 4.8 2.4 9.3 4.9 13.4 7.3.9.5 1.8 1.1 2.8 1.9 1.6 1.3 3.4 3.1 4.7 5.5 1.9 5.5-1.9 14.9-1.9 14.9-2.3 7.6-18.4 40.6-18.4 40.6-8.1-.2-15.3 5-17.7 12.5-2.6 8.1 1.1 17.3 8.9 21.3 7.8 4 17.4 1.7 22.5-5.3 5-6.8 4.6-16.3-1.1-22.6 1.9-3.7 3.7-7.4 5.6-11.3 5-10.4 13.5-30.4 13.5-30.4.9-1.7 5.7-10.3 2.7-21.3-2.5-11.4-12.6-16.7-12.6-16.7-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3 4.7-9.7 9.4-19.3 14.1-29-4.1-2-8.1-4-12.2-6.1-4.8 9.8-9.7 19.7-14.5 29.5-6.7-.1-12.9 3.5-16.1 9.4-3.4 6.3-2.7 14.1 1.9 19.8l-24.6 50.4z"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="235.452" width="261.728" viewBox="0 0 245.37069 220.73612"><path fill="currentColor" d="M31.99 1.365C21.287 7.72.2 31.945 0 38.298v10.516C0 62.144 12.46 73.86 23.773 73.86c13.584 0 24.902-11.258 24.903-24.62 0 13.362 10.93 24.62 24.515 24.62 13.586 0 24.165-11.258 24.165-24.62 0 13.362 11.622 24.62 25.207 24.62h.246c13.586 0 25.208-11.258 25.208-24.62 0 13.362 10.58 24.62 24.164 24.62 13.585 0 24.515-11.258 24.515-24.62 0 13.362 11.32 24.62 24.903 24.62 11.313 0 23.773-11.714 23.773-25.046V38.298c-.2-6.354-21.287-30.58-31.988-36.933C180.118.197 157.056-.005 122.685 0c-34.37.003-81.228.54-90.697 1.365zm65.194 66.217a28.025 28.025 0 0 1-4.78 6.155c-5.128 5.014-12.157 8.122-19.906 8.122a28.482 28.482 0 0 1-19.948-8.126c-1.858-1.82-3.27-3.766-4.563-6.032l-.006.004c-1.292 2.27-3.092 4.215-4.954 6.037a28.5 28.5 0 0 1-19.948 8.12c-.934 0-1.906-.258-2.692-.528-1.092 11.372-1.553 22.24-1.716 30.164l-.002.045c-.02 4.024-.04 7.333-.06 11.93.21 23.86-2.363 77.334 10.52 90.473 19.964 4.655 56.7 6.775 93.555 6.788h.006c36.854-.013 73.59-2.133 93.554-6.788 12.883-13.14 10.31-66.614 10.52-90.474-.022-4.596-.04-7.905-.06-11.93l-.003-.045c-.162-7.926-.623-18.793-1.715-30.165-.786.27-1.757.528-2.692.528a28.5 28.5 0 0 1-19.948-8.12c-1.862-1.822-3.662-3.766-4.955-6.037l-.006-.004c-1.294 2.266-2.705 4.213-4.563 6.032a28.48 28.48 0 0 1-19.947 8.125c-7.748 0-14.778-3.11-19.906-8.123a28.025 28.025 0 0 1-4.78-6.155 27.99 27.99 0 0 1-4.736 6.155 28.49 28.49 0 0 1-19.95 8.124c-.27 0-.54-.012-.81-.02h-.007c-.27.008-.54.02-.813.02a28.49 28.49 0 0 1-19.95-8.123 27.992 27.992 0 0 1-4.736-6.155zm-20.486 26.49l-.002.01h.015c8.113.017 15.32 0 24.25 9.746 7.028-.737 14.372-1.105 21.722-1.094h.006c7.35-.01 14.694.357 21.723 1.094 8.93-9.747 16.137-9.73 24.25-9.746h.014l-.002-.01c3.833 0 19.166 0 29.85 30.007L210 165.244c8.504 30.624-2.723 31.373-16.727 31.4-20.768-.773-32.267-15.855-32.267-30.935-11.496 1.884-24.907 2.826-38.318 2.827h-.006c-13.412 0-26.823-.943-38.318-2.827 0 15.08-11.5 30.162-32.267 30.935-14.004-.027-25.23-.775-16.726-31.4L46.85 124.08c10.684-30.007 26.017-30.007 29.85-30.007zm45.985 23.582v.006c-.02.02-21.863 20.08-25.79 27.215l14.304-.573v12.474c0 .584 5.74.346 11.486.08h.006c5.744.266 11.485.504 11.485-.08v-12.474l14.304.573c-3.928-7.135-25.79-27.215-25.79-27.215v-.006l-.003.002z"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

+2
View File
@@ -0,0 +1,2 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path fill="currentColor" d="M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z"/></svg>

After

Width:  |  Height:  |  Size: 968 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"/></svg>

After

Width:  |  Height:  |  Size: 889 B

+2
View File
@@ -0,0 +1,2 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor" d="M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8c29.2 14.1 50.6 35.2 61.8 61.4c15.7 36.5 17.2 95.8-30.3 143.2c-36.2 36.2-80.3 52.5-142.6 53h-.3c-70.2-.5-124.1-24.1-160.4-70.2c-32.3-41-48.9-98.1-49.5-169.6V256v-.2C17 184.3 33.6 127.2 65.9 86.2C102.2 40.1 156.2 16.5 226.4 16h.3c70.3 .5 124.9 24 162.3 69.9c18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4c-29.2-35.8-73-54.2-130.5-54.6c-57 .5-100.1 18.8-128.2 54.4C72.1 146.1 58.5 194.3 58 256c.5 61.7 14.1 109.9 40.3 143.3c28 35.6 71.2 53.9 128.2 54.4c51.4-.4 85.4-12.6 113.7-40.9c32.3-32.2 31.7-71.8 21.4-95.9c-6.1-14.2-17.1-26-31.9-34.9c-3.7 26.9-11.8 48.3-24.7 64.8c-17.1 21.8-41.4 33.6-72.7 35.3c-23.6 1.3-46.3-4.4-63.9-16c-20.8-13.8-33-34.8-34.3-59.3c-2.5-48.3 35.7-83 95.2-86.4c21.1-1.2 40.9-.3 59.2 2.8c-2.4-14.8-7.3-26.6-14.6-35.2c-10-11.7-25.6-17.7-46.2-17.8H227c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1h.8c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3c25.6-1.4 54.6-11.4 59.5-73.2c-13.2-2.9-27.8-4.4-43.4-4.4c-4.8 0-9.6 .1-14.4 .4c-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

+574
View File
@@ -0,0 +1,574 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative"
width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.7735807359934106" x="0" y="0" width="345.6" height="345.6"
patternUnits="userSpaceOnUse">
<g transform="scale(1.35)">
<g>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="253.67183555350317"
y2="322.3700682221699" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10s"></animateTransform>
</g>
<g>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="7.343083737977565" x2="-29.40438263629852" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="2.4358284744095045" x2="-27.900932167205383" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="5s"></animateTransform>
</g>
<g>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="248.28896398255995"
y2="300.28675048655543" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="254.79057005056973"
y2="269.5365126987142" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10.3333333333333335s"></animateTransform>
</g>
</g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.7735807359934106)"></rect>
</svg>
+10
View File
@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.932876709489723" x="0" y="0" width="307.20000000000005" height="307.20000000000005" patternUnits="userSpaceOnUse">
<g transform="scale(1.2000000000000002)"><defs><g id="pat-0.13086180692764704"><polyline fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#93dbe9" stroke-width="10" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" -3,-2 16.5,15.5 31.5,0.5 63.5,32.5 48.5,47.5 31.5,32.5 -0.5,64.5 16.5,79.5 31.5,64.5 47.5,79.5 95.5,32.5 80.5,15.5 95.5,0.5 127.5,32.5 48.5,111.5 31.5,96.5 -0.5,128.5 16.5,143.5 31.5,127.5 63.5,160.5 80.5,143.5 63.5,128.5 159.5,32.5 144.5,15.5 159.5,0.5 175.5,16.5 192,0 208,16 224,0 256,32 240,48 224,32 207.501,48.501 223.5,64.5 207.5,80.5 176.5,47.5 144.5,80.5 159.5,96.5 175.5,80.5 191.5,96.5 159.5,128.5 127.5,96.5 95.5,127.5 111.5,143.5 127.5,127.5 175.5,176.5 159.5,192.5 127.5,160.5 111.5,176.5 95.5,160.5 63.5,192.5 31.5,160.5 16.5,175.5 31.999,191.483 0,224 16,240 32,225 64,256 80,240 64,224 79.667,208.333 95.5,192.5 111.5,207.5 95.5,224.5 111.5,239.5 127.5,256.5 143.5,240.5 127.5,224.5 143.5,208.5 175.5,240.5 191.5,224.5 175.5,208.5 207.5,176.5 224,160 208,144 191.998,160.998 175.5,144.5 207.5,112.5 240,80 256,96 223.5,128.5 256,160 239.5,176.5 256,192 240,208 224,192 207.5,208.5 223.5,224.5 207.5,240.5 223.5,256.5 240,240 259,259" stroke-dasharray="169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875">
<animate attributeName="stroke-dashoffset" keyTimes="0;1" values="0;190.293212890625" repeatCount="indefinite" dur="7.142857142857142s"></animate>
</polyline></g></defs><use xlink:href="#pat-0.13086180692764704" x="0" y="0"></use><use xlink:href="#pat-0.13086180692764704" x="-256" y="0"></use><use xlink:href="#pat-0.13086180692764704" x="256" y="0"></use><use xlink:href="#pat-0.13086180692764704" x="0" y="-256"></use><use xlink:href="#pat-0.13086180692764704" x="0" y="256"></use></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.932876709489723)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 198 KiB

+24
View File
@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.5239578789186163" x="0" y="0" width="1057.28" height="1057.28" patternUnits="userSpaceOnUse">
<g transform="scale(4.13)"><defs>
<filter id="pat-0.28056686700481603" x="-100%" y="-100%" width="300%" height="300%" color-interpolation-filters="sRGB">
<feGaussianBlur in="SourceGraphic" stdDeviation="7.16"></feGaussianBlur>
<feComponentTransfer result="cutoff">
<feFuncA type="linear" slope="60" intercept="-40"></feFuncA>
</feComponentTransfer>
</filter>
</defs><g style="isolation:isolate" filter="url(#pat-0.28056686700481603)"><g>
<circle cx="-117.47820145411958" cy="65.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="138.52179854588042" cy="65.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="394.5217985458804" cy="65.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="-117.47820145411958" cy="321.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="138.52179854588042" cy="321.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="394.5217985458804" cy="321.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="-117.47820145411958" cy="577.7370468277511" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="138.52179854588042" cy="577.7370468277511" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="394.5217985458804" cy="577.7370468277511" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="-162.6386709099624" cy="209.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="93.3613290900376" cy="209.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="349.3613290900376" cy="209.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="-162.6386709099624" cy="465.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="93.3613290900376" cy="465.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="349.3613290900376" cy="465.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="-162.6386709099624" cy="721.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="93.3613290900376" cy="721.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="349.3613290900376" cy="721.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="-147.3740595647397" cy="152.91068748943633" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="108.6259404352603" cy="152.91068748943633" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="364.6259404352603" cy="152.91068748943633" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="-147.3740595647397" cy="408.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="108.6259404352603" cy="408.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="364.6259404352603" cy="408.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="-147.3740595647397" cy="664.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="108.6259404352603" cy="664.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="364.6259404352603" cy="664.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="-192.59175861041996" cy="77.18554993301422" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="63.40824138958004" cy="77.18554993301422" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="319.40824138958004" cy="77.18554993301422" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="-192.59175861041996" cy="333.1855499330142" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="63.40824138958004" cy="333.1855499330142" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="319.40824138958004" cy="333.1855499330142" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="-192.59175861041996" cy="589.1855499330143" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="63.40824138958004" cy="589.1855499330143" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="319.40824138958004" cy="589.1855499330143" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="-79.42006978738306" cy="200.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="176.57993021261694" cy="200.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="432.57993021261694" cy="200.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="-79.42006978738306" cy="456.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="176.57993021261694" cy="456.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="432.57993021261694" cy="456.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="-79.42006978738306" cy="712.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="176.57993021261694" cy="712.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="432.57993021261694" cy="712.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="-121.43762123242561" cy="56.491324829246764" r="16.92789159610261" fill="#93dbe9"></circle> <circle cx="134.5623787675744" cy="56.491324829246764" r="16.92789159610261" fill="#93dbe9"></circle> <circle cx="390.5623787675744" cy="56.491324829246764" r="16.92789159610261" fill="#93dbe9"></circle> <circle cx="-121.43762123242561" cy="312.49132482924676" r="16.92789159610261Line truncated
<animateTransform attributeName="transform" type="translate" dur="50s" repeatCount="indefinite" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g><g>
<circle cx="-29.282070824233358" cy="206.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="226.71792917576664" cy="206.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="482.71792917576664" cy="206.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="-29.282070824233358" cy="462.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="226.71792917576664" cy="462.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="482.71792917576664" cy="462.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="-29.282070824233358" cy="718.7475764076191" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="226.71792917576664" cy="718.7475764076191" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="482.71792917576664" cy="718.7475764076191" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="-119.77106789599327" cy="147.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="136.22893210400673" cy="147.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="392.22893210400673" cy="147.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="-119.77106789599327" cy="403.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="136.22893210400673" cy="403.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="392.22893210400673" cy="403.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="-119.77106789599327" cy="659.5931062326969" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="136.22893210400673" cy="659.5931062326969" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="392.22893210400673" cy="659.5931062326969" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="-99.1950458914921" cy="90.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="156.8049541085079" cy="90.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="412.8049541085079" cy="90.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="-99.1950458914921" cy="346.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="156.8049541085079" cy="346.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="412.8049541085079" cy="346.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="-99.1950458914921" cy="602.6052091171285" r="18.26347402711" fill="#689cc5"></circle> <circle cx="156.8049541085079" cy="602.6052091171285" r="18.26347402711" fill="#689cc5"></circle> <circle cx="412.8049541085079" cy="602.6052091171285" r="18.26347402711" fill="#689cc5"></circle> <circle cx="-190.20831840016888" cy="133.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="65.79168159983112" cy="133.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="321.7916815998311" cy="133.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="-190.20831840016888" cy="389.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="65.79168159983112" cy="389.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="321.7916815998311" cy="389.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="-190.20831840016888" cy="645.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="65.79168159983112" cy="645.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="321.7916815998311" cy="645.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="-75.36598803253361" cy="227.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="180.6340119674664" cy="227.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="436.6340119674664" cy="227.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="-75.36598803253361" cy="483.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="180.6340119674664" cy="483.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="436.6340119674664" cy="483.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="-75.36598803253361" cy="739.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="180.6340119674664" cy="739.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="436.6340119674664" cy="739.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="-52.0535694396504" cy="-12.529192687286525" r="18.640227929932493" fill="#689cc5"></circle> <circle cx="203.9464305603496" cy="-12.529192687286525" r="18.640227929932493" fill="#689cc5"></circle> <circle cx="459.9464305603496" cy="-12.529192687286525" r="18.640227929932493" fill="#689cc5"></circle> <circle cx="-52.0535694396504" cy="243.47080731271348" r="18.640227929932493" fill="#689cc5"><Line truncated
<animateTransform attributeName="transform" type="translate" dur="25s" repeatCount="indefinite" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g><g>
<circle cx="-61.818625426475705" cy="223.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="194.1813745735243" cy="223.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="450.1813745735243" cy="223.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="-61.818625426475705" cy="479.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="194.1813745735243" cy="479.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="450.1813745735243" cy="479.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="-61.818625426475705" cy="735.7309371487781" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="194.1813745735243" cy="735.7309371487781" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="450.1813745735243" cy="735.7309371487781" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="-130.99287817390075" cy="32.266904580826974" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="125.00712182609925" cy="32.266904580826974" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="381.00712182609925" cy="32.266904580826974" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="-130.99287817390075" cy="288.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="125.00712182609925" cy="288.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="381.00712182609925" cy="288.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="-130.99287817390075" cy="544.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="125.00712182609925" cy="544.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="381.00712182609925" cy="544.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="-114.9408654122559" cy="20.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="141.0591345877441" cy="20.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="397.0591345877441" cy="20.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="-114.9408654122559" cy="276.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="141.0591345877441" cy="276.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="397.0591345877441" cy="276.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="-114.9408654122559" cy="532.4534289905001" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="141.0591345877441" cy="532.4534289905001" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="397.0591345877441" cy="532.4534289905001" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="-104.80705775206593" cy="44.91882464484638" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="151.19294224793407" cy="44.91882464484638" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="407.19294224793407" cy="44.91882464484638" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="-104.80705775206593" cy="300.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="151.19294224793407" cy="300.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="407.19294224793407" cy="300.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="-104.80705775206593" cy="556.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="151.19294224793407" cy="556.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="407.19294224793407" cy="556.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="-237.85345336121185" cy="132.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="18.146546638788152" cy="132.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="274.14654663878815" cy="132.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="-237.85345336121185" cy="388.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="18.146546638788152" cy="388.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="274.14654663878815" cy="388.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="-237.85345336121185" cy="644.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="18.146546638788152" cy="644.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="274.14654663878815" cy="644.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="-114.10644418384612" cy="143.46034115303564" r="19.363930365828462" fill="#5e6fa3"></circle> <circle cx="141.89355581615388" cy="143.46034115303564" r="19.363930365828462" fill="#5e6fa3"></circle> <circle cx="397.8935558161539" cy="143.46034115303564" r="19.363930365828462" fill="#5e6fa3"></circle> <circle cx="-114.10644418384612" cy="399Line truncated
<animateTransform attributeName="transform" type="translate" dur="16.666666666666668s" repeatCount="indefinite" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g></g></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.5239578789186163)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 27 KiB

+17
View File
@@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.7559634166593172" x="0" y="0" width="760.32" height="760.32" patternUnits="userSpaceOnUse">
<g transform="scale(2.97)"><g>
<line x1="248.93220498412637" x2="187.83676887148368" y1="133.26068452225024" y2="194.35612063489293" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="248.93220498412637" x2="187.83676887148368" y1="-378.73931547774976" y2="-317.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="504.9322049841264" x2="443.8367688714837" y1="-378.73931547774976" y2="-317.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="760.9322049841264" x2="699.8367688714836" y1="-378.73931547774976" y2="-317.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="248.93220498412637" x2="187.83676887148368" y1="-122.73931547774976" y2="-61.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="504.9322049841264" x2="443.8367688714837" y1="-122.73931547774976" y2="-61.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="760.9322049841264" x2="699.8367688714836" y1="-122.73931547774976" y2="-61.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="248.93220498412637" x2="187.83676887148368" y1="133.26068452225024" y2="194.35612063489293" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="504.9322049841264" x2="443.8367688714837" y1="133.26068452225024" y2="194.35612063489293" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="760.9322049841264" x2="699.8367688714836" y1="133.26068452225024" y2="194.35612063489293" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="271.51835507321255" x2="195.66490594892483" y1="160.40603458717632" y2="236.25948371146401" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="271.51835507321255" x2="195.66490594892483" y1="-351.59396541282365" y2="-275.740516288536" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="527.5183550732125" x2="451.6649059489248" y1="-351.59396541282365" y2="-275.740516288536" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="783.5183550732125" x2="707.6649059489248" y1="-351.59396541282365" y2="-275.740516288536" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="271.51835507321255" x2="195.66490594892483" y1="-95.59396541282368" y2="-19.740516288535986" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="527.5183550732125" x2="451.6649059489248" y1="-95.59396541282368" y2="-19.740516288535986" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="783.5183550732125" x2="707.6649059489248" y1="-95.59396541282368" y2="-19.740516288535986" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="271.51835507321255" x2="195.66490594892483" y1="160.40603458717632" y2="236.25948371146401" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="527.5183550732125" x2="451.6649059489248" y1="160.40603458717632" y2="236.25948371146401" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="783.5183550732125" x2="707.6649059489248" y1="160.40603458717632" y2="236.25948371146401" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="15.518355073212547" x2="-60.335094051075174" y1="160.40603458717632" y2="236.25948371146401" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="83.40042674041591" x2="33.11441362141967" y1="-16.06889251952758" y2="34.21712059946866" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="83.40042674041591" x2="33.11441362141967" y1="-528.0688925195276" y2="-477.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="339.4004267404159" x2="289.11441362141966" y1="-528.0688925195276" y2="-477.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="595.4004267404159" x2="545.1144136214197" y1="-528.0688925195276" y2="-477.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="83.40042674041591" x2="33.11441362141967" y1="-272.0688925195276" y2="-221.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="339.4004267404159" x2="289.11441362141966" y1="-272.0688925195276" y2="-221.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="595.4004267404159" x2="545.1144136214197" y1="-272.0688925195276" y2="-221.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="83.40042674041591" x2="33.11441362141967" y1="-16.06889251952758" y2="34.21712059946866" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="339.4004267404159" x2="289.11441362141966" y1="-16.06889251952758" y2="34.21712059946866" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line Line truncated
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256" keyTimes="0;1" repeatCount="indefinite" dur="25s"></animateTransform>
</g><g>
<line x1="71.91569756110977" x2="15.716244394201393" y1="203.173939148305" y2="259.3733923152134" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="71.91569756110977" x2="15.716244394201393" y1="-308.826060851695" y2="-252.62660768478662" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="327.91569756110977" x2="271.7162443942014" y1="-308.826060851695" y2="-252.62660768478662" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="583.9156975611097" x2="527.7162443942013" y1="-308.826060851695" y2="-252.62660768478662" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="71.91569756110977" x2="15.716244394201393" y1="-52.82606085169499" y2="3.37339231521338" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="327.91569756110977" x2="271.7162443942014" y1="-52.82606085169499" y2="3.37339231521338" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="583.9156975611097" x2="527.7162443942013" y1="-52.82606085169499" y2="3.37339231521338" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="71.91569756110977" x2="15.716244394201393" y1="203.173939148305" y2="259.3733923152134" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="327.91569756110977" x2="271.7162443942014" y1="203.173939148305" y2="259.3733923152134" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="583.9156975611097" x2="527.7162443942013" y1="203.173939148305" y2="259.3733923152134" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="100.19778350912817" x2="40.76948708581391" y1="172.52911656319793" y2="231.95741298651217" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="100.19778350912817" x2="40.76948708581391" y1="-339.47088343680207" y2="-280.04258701348783" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="356.19778350912816" x2="296.7694870858139" y1="-339.47088343680207" y2="-280.04258701348783" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="612.1977835091282" x2="552.7694870858139" y1="-339.47088343680207" y2="-280.04258701348783" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="100.19778350912817" x2="40.76948708581391" y1="-83.47088343680207" y2="-24.042587013487832" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="356.19778350912816" x2="296.7694870858139" y1="-83.47088343680207" y2="-24.042587013487832" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="612.1977835091282" x2="552.7694870858139" y1="-83.47088343680207" y2="-24.042587013487832" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="100.19778350912817" x2="40.76948708581391" y1="172.52911656319793" y2="231.95741298651217" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="356.19778350912816" x2="296.7694870858139" y1="172.52911656319793" y2="231.95741298651217" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="612.1977835091282" x2="552.7694870858139" y1="172.52911656319793" y2="231.95741298651217" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="213.2381854072459" x2="157.39228641928293" y1="217.7855761775765" y2="273.6314751655395" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="213.2381854072459" x2="157.39228641928293" y1="-294.2144238224235" y2="-238.36852483446052" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="469.2381854072459" x2="413.3922864192829" y1="-294.2144238224235" y2="-238.36852483446052" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="725.238185407246" x2="669.392286419283" y1="-294.2144238224235" y2="-238.36852483446052" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="213.2381854072459" x2="157.39228641928293" y1="-38.2144238224235" y2="17.631475165539484" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="469.2381854072459" x2="413.3922864192829" y1="-38.2144238224235" y2="17.631475165539484" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="725.238185407246" x2="669.392286419283" y1="-38.2144238224235" y2="17.631475165539484" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="213.2381854072459" x2="157.39228641928293" y1="217.7855761775765" y2="273.6314751655395" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="469.2381854072459" x2="413.3922864192829" y1="217.7855761775765" y2="273.6314751655395" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="725.238185407246" x2="669.392286419283" y1="217.7855761775765" y2="273.6314751655395" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="33.27332893022041" x2="25.614502345307Line truncated
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256" keyTimes="0;1" repeatCount="indefinite" dur="12.5s"></animateTransform>
</g><g>
<line x1="46.826418842232336" x2="16.147355370761254" y1="89.43634965170651" y2="120.11541312317758" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="46.826418842232336" x2="16.147355370761254" y1="-422.5636503482935" y2="-391.8845868768224" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="302.82641884223233" x2="272.14735537076126" y1="-422.5636503482935" y2="-391.8845868768224" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="558.8264188422323" x2="528.1473553707613" y1="-422.5636503482935" y2="-391.8845868768224" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="46.826418842232336" x2="16.147355370761254" y1="-166.5636503482935" y2="-135.88458687682242" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="302.82641884223233" x2="272.14735537076126" y1="-166.5636503482935" y2="-135.88458687682242" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="558.8264188422323" x2="528.1473553707613" y1="-166.5636503482935" y2="-135.88458687682242" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="46.826418842232336" x2="16.147355370761254" y1="89.43634965170651" y2="120.11541312317758" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="302.82641884223233" x2="272.14735537076126" y1="89.43634965170651" y2="120.11541312317758" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="558.8264188422323" x2="528.1473553707613" y1="89.43634965170651" y2="120.11541312317758" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="189.95299049748724" x2="111.70381347927696" y1="45.75774329661329" y2="124.00692031482356" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="189.95299049748724" x2="111.70381347927696" y1="-466.2422567033867" y2="-387.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="445.95299049748724" x2="367.70381347927696" y1="-466.2422567033867" y2="-387.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="701.9529904974872" x2="623.703813479277" y1="-466.2422567033867" y2="-387.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="189.95299049748724" x2="111.70381347927696" y1="-210.24225670338672" y2="-131.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="445.95299049748724" x2="367.70381347927696" y1="-210.24225670338672" y2="-131.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="701.9529904974872" x2="623.703813479277" y1="-210.24225670338672" y2="-131.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="189.95299049748724" x2="111.70381347927696" y1="45.75774329661329" y2="124.00692031482356" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="445.95299049748724" x2="367.70381347927696" y1="45.75774329661329" y2="124.00692031482356" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="701.9529904974872" x2="623.703813479277" y1="45.75774329661329" y2="124.00692031482356" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="248.68858250190144" x2="203.82663522832937" y1="112.45061693842503" y2="157.3125642119971" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="248.68858250190144" x2="203.82663522832937" y1="-399.549383061575" y2="-354.68743578800286" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="504.68858250190146" x2="459.82663522832934" y1="-399.549383061575" y2="-354.68743578800286" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="760.6885825019015" x2="715.8266352283293" y1="-399.549383061575" y2="-354.68743578800286" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="248.68858250190144" x2="203.82663522832937" y1="-143.54938306157499" y2="-98.68743578800289" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="504.68858250190146" x2="459.82663522832934" y1="-143.54938306157499" y2="-98.68743578800289" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="760.6885825019015" x2="715.8266352283293" y1="-143.54938306157499" y2="-98.68743578800289" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="248.68858250190144" x2="203.82663522832937" y1="112.45061693842503" y2="157.3125642119971" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="504.68858250190146" x2="459.82663522832934" y1="112.45061693842503" y2="157.3125642119971" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="760.6885825019015" x2="715.8266352283293" y1="112.45061693842503" y2="157.3125642119971" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><Line truncated
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256" keyTimes="0;1" repeatCount="indefinite" dur="8.333333333333334s"></animateTransform>
</g></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.7559634166593172)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 85 KiB

+257
View File
@@ -0,0 +1,257 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.2950529742247572" x="0" y="0" width="711.6800000000001" height="711.6800000000001" patternUnits="userSpaceOnUse">
<g transform="scale(2.7800000000000002)"><circle cx="180.39755796770348" cy="144.2104368598822" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;17.85434406280291" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-44.622752456562516s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-44.622752456562516s"></animate>
</circle><circle cx="16.825168708189995" cy="32.834595161139454" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="272.82516870819" cy="32.834595161139454" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="16.825168708189995" cy="288.8345951611395" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="272.82516870819" cy="288.8345951611395" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="133.7281341523537" cy="37.557212373233874" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;24.44944303845901" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.76558939460953s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.76558939460953s"></animate>
</circle><circle cx="9.311746119524932" cy="139.87259197506899" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;42.09217911991696" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
</circle><circle cx="265.3117461195249" cy="139.87259197506899" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;42.09217911991696" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
</circle><circle cx="228.8288862878399" cy="50.59785782429598" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;19.868262625397918" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-23.68489264848651s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-23.68489264848651s"></animate>
</circle><circle cx="77.20196271561525" cy="31.611804700405518" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;45.28258812229561" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
</circle><circle cx="77.20196271561525" cy="287.6118047004055" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;45.28258812229561" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
</circle><circle cx="153.86297348533364" cy="53.13721410068965" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;56.59657006893606" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
</circle><circle cx="153.86297348533364" cy="309.1372141006897" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;56.59657006893606" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
</circle><circle cx="238.25141956589107" cy="242.3948925366868" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;7.110432319564012" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.8377648779141s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.8377648779141s"></animate>
</circle><circle cx="171.29587360943597" cy="93.62941553592991" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;64.80517552507085" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-41.081630071778505s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-41.081630071778505s"></animate>
</circle><circle cx="33.7803997203791" cy="200.65918731382288" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;23.874060138252702" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.74940953893833s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.74940953893833s"></animate>
</circle><circle cx="171.68455092137125" cy="208.29640936292603" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;10.804694032911527" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-46.827942545330814s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-46.827942545330814s"></animate>
</circle><circle cx="79.4759072969399" cy="14.760241106300118" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;63.07191175406126" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
</circle><circle cx="79.4759072969399" cy="270.7602411063001" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;63.07191175406126" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
</circle><circle cx="34.30718832814177" cy="60.207260607353895" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;36.85782580252244" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
</circle><circle cx="290.30718832814176" cy="60.207260607353895" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;36.85782580252244" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
</circle><circle cx="141.57461629003254" cy="187.07605677907222" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;51.82556427519147" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-39.3497070269789s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-39.3497070269789s"></animate>
</circle><circle cx="89.86556463252813" cy="191.98681310799674" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;42.52162149867297" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.730611990382005s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.730611990382005s"></animate>
</circle><circle cx="135.68751640285163" cy="79.13898775934953" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;13.167119065627332" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-5.604152896601732s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-5.604152896601732s"></animate>
</circle><circle cx="222.37419164851048" cy="172.5138843825768" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;30.712438068878654" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-11.730564332626214s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-11.730564332626214s"></animate>
</circle><circle cx="65.37962957434202" cy="71.08214856672792" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;51.390991126295845" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.53817444257383s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.53817444257383s"></animate>
</circle><circle cx="146.90696443169887" cy="160.58661584710634" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;30.874027084269912" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-48.61529961868726s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-48.61529961868726s"></animate>
</circle><circle cx="20.6640150520578" cy="116.652000839832" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;20.32462575632799" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-16.94818532763218s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-16.94818532763218s"></animate>
</circle><circle cx="14.794147949099273" cy="178.87974595952937" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;62.66357119046049" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
</circle><circle cx="270.7941479490993" cy="178.87974595952937" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;62.66357119046049" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
</circle><circle cx="31.287373376921607" cy="70.1833739363135" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;15.295461964288506" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-13.161686681828998s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-13.161686681828998s"></animate>
</circle><circle cx="178.84317419706238" cy="167.34091291757605" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;62.162205555011425" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-23.327170625044392s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-23.327170625044392s"></animate>
</circle><circle cx="154.05316621664582" cy="55.033341833431564" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;39.67588542484934" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.452897657374963s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.452897657374963s"></animate>
</circle><circle cx="72.19223514179198" cy="135.19246311905093" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;20.804220090813203" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-45.51768235650617s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-45.51768235650617s"></animate>
</circle><circle cx="150.9364802116815" cy="160.51205929354626" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;36.57407641397833" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.280565367328037s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.280565367328037s"></animate>
</circle><circle cx="200.40953970115999" cy="54.21097279269783" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;18.303774190487488" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.214535605827784s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.214535605827784s"></animate>
</circle><circle cx="180.31885618742604" cy="242.78087924898603" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;11.71365962730546" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.612535536027956s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.612535536027956s"></animate>
</circle><circle cx="203.8062010106876" cy="232.68973192108191" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;5.455675580739268" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-11.86697370110249s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-11.86697370110249s"></animate>
</circle><circle cx="171.6066941076269" cy="48.04474014530398" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;38.59286259496349" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.250466319872224s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.250466319872224s"></animate>
</circle><circle cx="125.11525876384411" cy="149.77467373569812" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;46.62256816012656" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-10.699532836506153s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-10.699532836506153s"></animate>
</circle><circle cx="89.16772547042389" cy="100.43557995027065" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.90728701564909" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-20.057887262682318s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-20.057887262682318s"></animate>
</circle><circle cx="163.0802387343303" cy="125.70388388233474" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;60.89399699890593" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.04746538184899s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.04746538184899s"></animate>
</circle><circle cx="147.29969577601045" cy="40.152117547871356" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.17094951058618" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
</circle><circle cx="147.29969577601045" cy="296.15211754787134" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.17094951058618" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
</circle><circle cx="50.39439200506233" cy="147.3941729324677" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;50.69970142939741" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
</circle><circle cx="306.39439200506234" cy="147.3941729324677" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;50.69970142939741" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
</circle><circle cx="188.7139101584322" cy="210.7115210762685" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;29.504019948829963" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-32.532647237390165s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-32.532647237390165s"></animate>
</circle><circle cx="114.22207446357659" cy="124.76935492926279" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;11.986008541965333" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.917226446523447s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.917226446523447s"></animate>
</circle><circle cx="194.31954289149434" cy="166.65089356408262" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;20.194181381536055" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-30.020995894146097s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-30.020995894146097s"></animate>
</circle><circle cx="184.86541783077774" cy="44.886087590301756" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.99589341531981" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
</circle><circle cx="184.86541783077774" cy="300.88608759030177" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.99589341531981" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
</circle><circle cx="128.6294815429427" cy="20.412863761372066" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;58.14291539416182" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
</circle><circle cx="128.6294815429427" cy="276.4128637613721" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;58.14291539416182" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
</circle><circle cx="94.65360523910455" cy="237.65373752048882" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;10.872426017373087" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.286612875431295s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.286612875431295s"></animate>
</circle><circle cx="186.84577473379255" cy="4.291441103039755" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.03848537207753" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
</circle><circle cx="186.84577473379255" cy="260.29144110303974" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.03848537207753" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
</circle><circle cx="3.1171684515748126" cy="10.536170179400985" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="259.1171684515748" cy="10.536170179400985" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="3.1171684515748126" cy="266.536170179401" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="259.1171684515748" cy="266.536170179401" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="188.74527992387326" cy="21.78088381944502" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;24.62604013195285" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
</circle><circle cx="188.74527992387326" cy="277.780883819445" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;24.62604013195285" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
</circle><circle cx="25.856888539646313" cy="42.26884688505775" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="281.8568885396463" cy="42.26884688505775" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="25.856888539646313" cy="298.26884688505777" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="281.8568885396463" cy="298.26884688505777" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="80.07378641634132" cy="99.95189316646443" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;31.25308753538168" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-44.38933261009856s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-44.38933261009856s"></animate>
</circle><circle cx="115.28452115370486" cy="183.50469529806404" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;43.47190520350591" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.01262905715093s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.01262905715093s"></animate>
</circle><circle cx="178.06444021126137" cy="196.65069638203684" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;55.28300103432255" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-31.907669721653242s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-31.907669721653242s"></animate>
</circle><circle cx="44.16845143857357" cy="102.58764890706274" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.592641937222965" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
</circle><circle cx="300.1684514385736" cy="102.58764890706274" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.592641937222965" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
</circle><circle cx="79.90917564776078" cy="58.24933597303385" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;17.76697933939279" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-6.018058267098058s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-6.018058267098058s"></animate>
</circle><circle cx="99.51047224071066" cy="68.21685313096823" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;32.538025421938485" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-24.711449309412114s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-24.711449309412114s"></animate>
</circle><circle cx="170.23837150372032" cy="80.50555967618685" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;49.47798543600463" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-27.302250080429058s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-27.302250080429058s"></animate>
</circle><circle cx="146.82045516936643" cy="81.4540879579799" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;17.51784178229697" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-14.316475870551947s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-14.316475870551947s"></animate>
</circle><circle cx="85.89692843138472" cy="166.66227056758296" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;43.09830041436764" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-25.33233432848061s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-25.33233432848061s"></animate>
</circle><circle cx="177.2226960369944" cy="175.07899171519415" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;43.73555785023012" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-25.121497689569683s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-25.121497689569683s"></animate>
</circle><circle cx="216.86808064093213" cy="27.577527215605766" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;4.737877261879547" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.904900634836528s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.904900634836528s"></animate>
</circle><circle cx="110.04710192749121" cy="180.18493319620214" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;44.77556931875715" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-1.5780314591062772s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-1.5780314591062772s"></animate>
</circle><circle cx="64.71846547185336" cy="75.44443893159085" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;9.889551183237941" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-36.2183301855013s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-36.2183301855013s"></animate>
</circle><circle cx="40.659167565439354" cy="80.92354614012416" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.03611543920749" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
</circle><circle cx="296.65916756543936" cy="80.92354614012416" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.03611543920749" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
</circle><circle cx="158.9398261520183" cy="96.5683673937937" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;9.89977495248037" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-2.5412705195820062s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-2.5412705195820062s"></animate>
</circle></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.2950529742247572)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 42 KiB

+18
View File
@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.32277503320149736" x="0" y="0" width="322.56" height="322.56" patternUnits="userSpaceOnUse">
<g transform="scale(1.26)"><g> <line x1="12.8" y1="-268.8" x2="12.8" y2="-217.6" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-12.8" x2="12.8" y2="38.400000000000006" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="243.2" x2="12.8" y2="294.4" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-192" x2="12.8" y2="-140.8" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="64" x2="12.8" y2="115.2" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="320" x2="12.8" y2="371.2" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-115.19999999999999" x2="12.8" y2="-64" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="140.8" x2="12.8" y2="192" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="396.8" x2="12.8" y2="448" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-38.39999999999998" x2="12.8" y2="38.400000000000034" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="217.60000000000002" x2="12.8" y2="294.40000000000003" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="473.6" x2="12.8" y2="550.4000000000001" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
</g> <g> <line x1="38.400000000000006" y1="-243.2" x2="38.400000000000006" y2="-192" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="12.8" x2="38.400000000000006" y2="64" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="268.8" x2="38.400000000000006" y2="320" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="-166.39999999999998" x2="38.400000000000006" y2="-115.19999999999999" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="89.60000000000001" x2="38.400000000000006" y2="140.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="345.6" x2="38.400000000000006" y2="396.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="-89.59999999999997" x2="38.400000000000006" y2="-12.799999999999955" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="166.40000000000003" x2="38.400000000000006" y2="243.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="422.40000000000003" x2="38.400000000000006" y2="499.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="16.666666666666668s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g> <g> <line x1="64" y1="-243.2" x2="64" y2="-192" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="12.8" x2="64" y2="64" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="268.8" x2="64" y2="320" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="-166.39999999999998" x2="64" y2="-115.19999999999999" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="89.60000000000001" x2="64" y2="140.8" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="345.6" x2="64" y2="396.8" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="-89.59999999999997" x2="64" y2="-12.799999999999955" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="166.40000000000003" x2="64" y2="243.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="422.40000000000003" x2="64" y2="499.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="25s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g> <g> <line x1="89.60000000000001" y1="-243.2" x2="89.60000000000001" y2="-166.39999999999998" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="12.8" x2="89.60000000000001" y2="89.60000000000001" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="268.8" x2="89.60000000000001" y2="345.6" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="-140.8" x2="89.60000000000001" y2="-89.6" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="115.2" x2="89.60000000000001" y2="166.4" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="371.2" x2="89.60000000000001" y2="422.4" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="-63.99999999999997" x2="89.60000000000001" y2="-12.799999999999955" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="192.00000000000003" x2="89.60000000000001" y2="243.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="448" x2="89.60000000000001" y2="499.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="16.666666666666668s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g> <g> <line x1="115.2" y1="-243.2" x2="115.2" y2="-217.6" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="12.8" x2="115.2" y2="38.400000000000006" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="268.8" x2="115.2" y2="294.4" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="-192" x2="115.2" y2="-140.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="64" x2="115.2" y2="115.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="320" x2="115.2" y2="371.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="-115.19999999999999" x2="115.2" y2="-64" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="140.8" x2="115.2" y2="192" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="396.8" x2="115.2" y2="448" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="-38.39999999999998" x2="115.2" y2="-12.799999999999983" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="217.60000000000002" x2="115.2" y2="243.20000000000002" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="473.6" x2="115.2" y2="499.20000000000005" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="25s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
</g> <g> <line x1="140.8" y1="-243.2" x2="140.8" y2="-166.39999999999998" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="12.8" x2="140.8" y2="89.60000000000001" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="268.8" x2="140.8" y2="345.6" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="-140.8" x2="140.8" y2="-115.19999999999999" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="115.2" x2="140.8" y2="140.8" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="371.2" x2="140.8" y2="396.8" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="-89.59999999999997" x2="140.8" y2="-63.99999999999997" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="166.40000000000003" x2="140.8" y2="192.00000000000003" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="422.40000000000003" x2="140.8" y2="448" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="-38.39999999999998" x2="140.8" y2="-12.799999999999983" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="217.60000000000002" x2="140.8" y2="243.20000000000002" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="473.6" x2="140.8" y2="499.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
</g> <g> <line x1="166.40000000000003" y1="-268.8" x2="166.40000000000003" y2="-192" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="-12.8" x2="166.40000000000003" y2="64.00000000000001" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="243.2" x2="166.40000000000003" y2="320" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="-166.39999999999998" x2="166.40000000000003" y2="-89.59999999999997" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="89.60000000000001" x2="166.40000000000003" y2="166.40000000000003" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="345.6" x2="166.40000000000003" y2="422.40000000000003" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="-63.99999999999997" x2="166.40000000000003" y2="64" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="192.00000000000003" x2="166.40000000000003" y2="320" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="448" x2="166.40000000000003" y2="576" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g> <g> <line x1="192.00000000000003" y1="-243.2" x2="192.00000000000003" y2="-166.39999999999998" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="12.8" x2="192.00000000000003" y2="89.60000000000001" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="268.8" x2="192.00000000000003" y2="345.6" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="-140.8" x2="192.00000000000003" y2="-64" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="115.2" x2="192.00000000000003" y2="192" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="371.2" x2="192.00000000000003" y2="448" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="-38.39999999999998" x2="192.00000000000003" y2="-12.799999999999983" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="217.60000000000002" x2="192.00000000000003" y2="243.20000000000002" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="473.6" x2="192.00000000000003" y2="499.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="16.666666666666668s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g> <g> <line x1="217.60000000000002" y1="-243.2" x2="217.60000000000002" y2="-217.6" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="12.8" x2="217.60000000000002" y2="38.400000000000006" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="268.8" x2="217.60000000000002" y2="294.4" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="-192" x2="217.60000000000002" y2="-140.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="64" x2="217.60000000000002" y2="115.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="320" x2="217.60000000000002" y2="371.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="-115.19999999999999" x2="217.60000000000002" y2="-64" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="140.8" x2="217.60000000000002" y2="192" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="396.8" x2="217.60000000000002" y2="448" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="-38.39999999999998" x2="217.60000000000002" y2="-12.799999999999983" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="217.60000000000002" x2="217.60000000000002" y2="243.20000000000002" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="473.6" x2="217.60000000000002" y2="499.20000000000005" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
</g> <g> <line x1="243.20000000000002" y1="-243.2" x2="243.20000000000002" y2="-166.39999999999998" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="12.8" x2="243.20000000000002" y2="89.60000000000001" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="268.8" x2="243.20000000000002" y2="345.6" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="-140.8" x2="243.20000000000002" y2="-64" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="115.2" x2="243.20000000000002" y2="192" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="371.2" x2="243.20000000000002" y2="448" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="-38.39999999999998" x2="243.20000000000002" y2="-12.799999999999983" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="217.60000000000002" x2="243.20000000000002" y2="243.20000000000002" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="473.6" x2="243.20000000000002" y2="499.20000000000005" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="25s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.32277503320149736)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

+24
View File
@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.1520523902861448" x="0" y="0" width="665.6" height="665.6" patternUnits="userSpaceOnUse">
<g transform="scale(2.6)"><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#93dbe9" stroke-width="10" transform="translate(0 -36.57142857142857)">
<animateTransform attributeName="transform" type="translate" values="256 -36.57142857142857;0 -36.57142857142857;256 -36.57142857142857" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="0s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#689cc5" stroke-width="10" transform="translate(0 0)">
<animateTransform attributeName="transform" type="translate" values="0 0;256 0;0 0" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-1.4285714285714284s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#5e6fa3" stroke-width="10" transform="translate(0 36.57142857142857)">
<animateTransform attributeName="transform" type="translate" values="256 36.57142857142857;0 36.57142857142857;256 36.57142857142857" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-2.8571428571428568s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#3b4368" stroke-width="10" transform="translate(0 73.14285714285714)">
<animateTransform attributeName="transform" type="translate" values="0 73.14285714285714;256 73.14285714285714;0 73.14285714285714" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-4.285714285714286s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#191d3a" stroke-width="10" transform="translate(0 109.71428571428571)">
<animateTransform attributeName="transform" type="translate" values="256 109.71428571428571;0 109.71428571428571;256 109.71428571428571" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-5.7142857142857135s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#d9dbee" stroke-width="10" transform="translate(0 146.28571428571428)">
<animateTransform attributeName="transform" type="translate" values="0 146.28571428571428;256 146.28571428571428;0 146.28571428571428" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-7.142857142857142s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#b3b7e2" stroke-width="10" transform="translate(0 182.85714285714286)">
<animateTransform attributeName="transform" type="translate" values="256 182.85714285714286;0 182.85714285714286;256 182.85714285714286" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-8.571428571428571s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#93dbe9" stroke-width="10" transform="translate(0 219.42857142857142)">
<animateTransform attributeName="transform" type="translate" values="0 219.42857142857142;256 219.42857142857142;0 219.42857142857142" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="0s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.1520523902861448)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

+13 -3
View File
@@ -76,14 +76,24 @@ var updateMeta = () => {
{{ $secondaryLogo := resources.Get .Site.Params.SecondaryLogo }}
{{ if and ($primaryLogo) ($secondaryLogo) }}
var updateLogo = (targetAppearance) => {
var elems;
elems = document.querySelectorAll("img.logo")
var imgElems = document.querySelectorAll("img.logo");
var logoContainers = document.querySelectorAll("span.logo");
targetLogoPath =
targetAppearance == "{{ .Site.Params.DefaultAppearance }}" ?
"{{ $primaryLogo.RelPermalink }}" : "{{ $secondaryLogo.RelPermalink }}"
for (const elem of elems) {
for (const elem of imgElems) {
elem.setAttribute("src", targetLogoPath)
}
{{ if eq $primaryLogo.MediaType.SubType "svg" }}
targetContent =
targetAppearance == "{{ .Site.Params.DefaultAppearance }}" ?
`{{ $primaryLogo.Content | safeHTML }}` : `{{ $secondaryLogo.Content | safeHTML }}`
for (const container of logoContainers) {
container.innerHTML = targetContent;
}
{{ end }}
}
{{ end }}
{{- end }}
+20
View File
@@ -0,0 +1,20 @@
function css(name) {
return "rgb(" + getComputedStyle(document.documentElement).getPropertyValue(name) + ")";
}
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",
},
});
+33
View File
@@ -0,0 +1,33 @@
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 (e) {
if (!menuOpen) {
menuOpen = true;
document.body.style.overflowY = "hidden";
menuButton.style.visibility = "hidden";
menuWrapper.style.visibility = "visible";
menuWrapper.style.opacity = "1";
window.onbeforeunload = function (event) {
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 (event) { }
e.stopPropagation();
}
}
menuButton.addEventListener("click", openMenu);
menuCloseButton.addEventListener("click", closeMenu);
+3 -3
View File
@@ -1,7 +1,9 @@
var liked_page = false
var id = oid ? oid.replaceAll("/", "-") : oid
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
if (typeof auth !== 'undefined') {
var id = oid ? oid.replaceAll("/", "-") : oid
var viewed = localStorage.getItem(id);
if (!viewed) {
@@ -28,7 +30,6 @@ if (typeof auth !== 'undefined') {
});
}
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
var liked = localStorage.getItem(id_likes);
if (liked) {
@@ -97,7 +98,6 @@ function remove_like_article(id_likes) {
}
function process_article() {
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
if (!liked_page) {
like_article(id_likes)
} else {
+19 -5
View File
@@ -73,8 +73,6 @@ document.addEventListener("keydown", function (event) {
} else {
document.activeElement.click();
}
}else{
event.preventDefault();
}
}
@@ -138,6 +136,12 @@ function buildIndex() {
{ name: "content", weight: 0.4 },
],
};
/*var finalIndex = [];
for (var i in data) {
if(data[i].type != "users" && data[i].type != "tags" && data[i].type != "categories"){
finalIndex.push(data[i]);
}
}*/
fuse = new Fuse(data, options);
indexed = true;
});
@@ -149,13 +153,23 @@ function executeQuery(term) {
if (results.length > 0) {
results.forEach(function (value, key) {
console.log(value.item.summary);
var html = value.item.summary;
var div = document.createElement("div");
div.innerHTML = html;
value.item.summary = div.textContent || div.innerText || "";
var title = value.item.externalUrl? value.item.title + '<span class="text-xs ml-2 align-center cursor-default text-neutral-400 dark:text-neutral-500">'+value.item.externalUrl+'</span>' : value.item.title;
var linkconfig = value.item.externalUrl? 'target="_blank" rel="noopener" href="'+value.item.externalUrl+'"' : 'href="'+value.item.permalink+'"';
resultsHTML =
resultsHTML +
`<li class="mb-2">
<a class="flex items-center px-3 py-2 rounded-md appearance-none bg-neutral-100 dark:bg-neutral-700 focus:bg-primary-100 hover:bg-primary-100 dark:hover:bg-primary-900 dark:focus:bg-primary-900 focus:outline-dotted focus:outline-transparent focus:outline-2" href="${value.item.permalink}" tabindex="0">
<a class="flex items-center px-3 py-2 rounded-md appearance-none bg-neutral-100 dark:bg-neutral-700 focus:bg-primary-100 hover:bg-primary-100 dark:hover:bg-primary-900 dark:focus:bg-primary-900 focus:outline-dotted focus:outline-transparent focus:outline-2"
${linkconfig} tabindex="0">
<div class="grow">
<div class="-mb-1 text-lg font-bold">${value.item.title}</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">${value.item.section}<span class="px-2 text-primary-500">&middot;</span>${value.item.date}</span></div>
<div class="-mb-1 text-lg font-bold">
${title}
</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">${value.item.section}<span class="px-2 text-primary-500">&middot;</span>${value.item.date? value.item.date : ""}</span></div>
<div class="text-sm italic">${value.item.summary}</div>
</div>
<div class="ml-2 ltr:block rtl:hidden text-neutral-500">&rarr;</div>
+46 -40
View File
@@ -1,57 +1,63 @@
function _toogleZenMode(zendModeButton) {
// Nodes selection
const body = document.querySelector('body');
const tocRight = document.querySelector('.toc-right');
const tocInside = document.querySelector('.toc-inside');
const articleContent = document.querySelector('.article-content');
const header = document.querySelector('#single_header');
// Nodes selection
const body = document.querySelector('body');
const tocRight = document.querySelector('.toc-right');
const tocInside = document.querySelector('.toc-inside');
const articleContent = document.querySelector('.article-content');
const header = document.querySelector('#single_header');
// Add semantic class into body tag
body.classList.toggle('zen-mode-enable');
// Add semantic class into body tag
body.classList.toggle('zen-mode-enable');
// Show/Hide 'toc right' and 'toc inside'
// Show/Hide 'toc right' and 'toc inside'
if (tocRight)
tocRight.classList.toggle('lg:block');
if (tocInside)
tocInside.classList.toggle('lg:hidden');
// Change width of article content
articleContent.classList.toggle('max-w-fit');
articleContent.classList.toggle('max-w-prose');
// Change width of article content
articleContent.classList.toggle('max-w-fit');
articleContent.classList.toggle('max-w-prose');
// Read i18n title from data-attributes
const titleI18nDisable = zendModeButton.getAttribute('data-title-i18n-disable');
const titleI18nEnable = zendModeButton.getAttribute('data-title-i18n-enable');
// Change width of article title
header.classList.toggle('max-w-full');
header.classList.toggle('max-w-prose');
if (body.classList.contains('zen-mode-enable')) {
// Persist configuration
//localStorage.setItem('blowfish-zen-mode-enabled', 'true');
// Change title to enable
zendModeButton.setAttribute('title', titleI18nEnable)
// Auto-scroll to title article
window.scrollTo(window.scrollX, header.getBoundingClientRect().top - 90);
} else {
//localStorage.setItem('blowfish-zen-mode-enabled', 'false');
zendModeButton.setAttribute('title', titleI18nDisable);
document.querySelector('body').scrollIntoView();
}
// Read i18n title from data-attributes
const titleI18nDisable = zendModeButton.getAttribute('data-title-i18n-disable');
const titleI18nEnable = zendModeButton.getAttribute('data-title-i18n-enable');
if (body.classList.contains('zen-mode-enable')) {
// Persist configuration
//localStorage.setItem('blowfish-zen-mode-enabled', 'true');
// Change title to enable
zendModeButton.setAttribute('title', titleI18nEnable)
// Auto-scroll to title article
window.scrollTo(window.scrollX, header.getBoundingClientRect().top - 90);
} else {
//localStorage.setItem('blowfish-zen-mode-enabled', 'false');
zendModeButton.setAttribute('title', titleI18nDisable);
document.querySelector('body').scrollIntoView();
}
}
function _registerZendModeButtonClick(zendModeButton) {
zendModeButton.addEventListener('click', function (event) {
event.preventDefault();
zendModeButton.addEventListener('click', function (event) {
event.preventDefault();
// Toggle zen-mode
_toogleZenMode(zendModeButton);
});
// Toggle zen-mode
_toogleZenMode(zendModeButton);
});
}
(function init() {
window.addEventListener("DOMContentLoaded", (event) => {
// Register click on 'zen-mode-button' node element
const zendModeButton = document.getElementById('zen-mode-button');
if(zendModeButton !== null && zendModeButton !== undefined) {
_registerZendModeButtonClick(zendModeButton);
}
});
window.addEventListener("DOMContentLoaded", (event) => {
// Register click on 'zen-mode-button' node element
const zendModeButton = document.getElementById('zen-mode-button');
if (zendModeButton !== null && zendModeButton !== undefined) {
_registerZendModeButtonClick(zendModeButton);
}
});
})();
+2 -2
View File
@@ -1,5 +1,5 @@
/*!
* Chart.js v4.4.2
* Chart.js v4.4.7
* https://www.chartjs.org
* (c) 2024 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
+1 -1
View File
@@ -1 +1 @@
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},r={};function n(e){var i=r[e];if(void 0!==i)return i.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var i={};return function(){n.d(i,{default:function(){return s}});var e=n(771),t=n.n(e),r=function(e,t,r){for(var n=r,i=0,a=e.length;n<t.length;){var o=t[n];if(i<=0&&t.slice(n,n+a)===e)return n;"\\"===o?n++:"{"===o?i++:"}"===o&&i--,n++}return-1},a=/^\\begin{/,o=function(e,t){for(var n,i=[],o=new RegExp("("+t.map((function(e){return e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")})).join("|")+")");-1!==(n=e.search(o));){n>0&&(i.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));var l=t.findIndex((function(t){return e.startsWith(t.left)}));if(-1===(n=r(t[l].right,e,t[l].left.length)))break;var d=e.slice(0,n+t[l].right.length),s=a.test(d)?d:e.slice(t[l].left.length,n);i.push({type:"math",data:s,rawData:d,display:t[l].display}),e=e.slice(n+t[l].right.length)}return""!==e&&i.push({type:"text",data:e}),i},l=function(e,r){var n=o(e,r.delimiters);if(1===n.length&&"text"===n[0].type)return null;for(var i=document.createDocumentFragment(),a=0;a<n.length;a++)if("text"===n[a].type)i.appendChild(document.createTextNode(n[a].data));else{var l=document.createElement("span"),d=n[a].data;r.displayMode=n[a].display;try{r.preProcess&&(d=r.preProcess(d)),t().render(d,l,r)}catch(e){if(!(e instanceof t().ParseError))throw e;r.errorCallback("KaTeX auto-render: Failed to parse `"+n[a].data+"` with ",e),i.appendChild(document.createTextNode(n[a].rawData));continue}i.appendChild(l)}return i},d=function e(t,r){for(var n=0;n<t.childNodes.length;n++){var i=t.childNodes[n];if(3===i.nodeType){for(var a=i.textContent,o=i.nextSibling,d=0;o&&o.nodeType===Node.TEXT_NODE;)a+=o.textContent,o=o.nextSibling,d++;var s=l(a,r);if(s){for(var f=0;f<d;f++)i.nextSibling.remove();n+=s.childNodes.length-1,t.replaceChild(s,i)}else n+=d}else 1===i.nodeType&&function(){var t=" "+i.className+" ";-1===r.ignoredTags.indexOf(i.nodeName.toLowerCase())&&r.ignoredClasses.every((function(e){return-1===t.indexOf(" "+e+" ")}))&&e(i,r)}()}},s=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code","option"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},d(e,r)}}(),i=i.default}()}));
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={757:function(t){t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var o={};r.d(o,{default:function(){return p}});var i=r(757),a=r.n(i);const l=function(e,t,n){let r=n,o=0;const i=e.length;for(;r<t.length;){const n=t[r];if(o<=0&&t.slice(r,r+i)===e)return r;"\\"===n?r++:"{"===n?o++:"}"===n&&o--,r++}return-1},s=/^\\begin{/;var d=function(e,t){let n;const r=[],o=new RegExp("("+t.map((e=>e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"))).join("|")+")");for(;n=e.search(o),-1!==n;){n>0&&(r.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));const o=t.findIndex((t=>e.startsWith(t.left)));if(n=l(t[o].right,e,t[o].left.length),-1===n)break;const i=e.slice(0,n+t[o].right.length),a=s.test(i)?i:e.slice(t[o].left.length,n);r.push({type:"math",data:a,rawData:i,display:t[o].display}),e=e.slice(n+t[o].right.length)}return""!==e&&r.push({type:"text",data:e}),r};const c=function(e,t){const n=d(e,t.delimiters);if(1===n.length&&"text"===n[0].type)return null;const r=document.createDocumentFragment();for(let e=0;e<n.length;e++)if("text"===n[e].type)r.appendChild(document.createTextNode(n[e].data));else{const o=document.createElement("span");let i=n[e].data;t.displayMode=n[e].display;try{t.preProcess&&(i=t.preProcess(i)),a().render(i,o,t)}catch(o){if(!(o instanceof a().ParseError))throw o;t.errorCallback("KaTeX auto-render: Failed to parse `"+n[e].data+"` with ",o),r.appendChild(document.createTextNode(n[e].rawData));continue}r.appendChild(o)}return r},f=function(e,t){for(let n=0;n<e.childNodes.length;n++){const r=e.childNodes[n];if(3===r.nodeType){let o=r.textContent,i=r.nextSibling,a=0;for(;i&&i.nodeType===Node.TEXT_NODE;)o+=i.textContent,i=i.nextSibling,a++;const l=c(o,t);if(l){for(let e=0;e<a;e++)r.nextSibling.remove();n+=l.childNodes.length-1,e.replaceChild(l,r)}else n+=a}else if(1===r.nodeType){const e=" "+r.className+" ";-1===t.ignoredTags.indexOf(r.nodeName.toLowerCase())&&t.ignoredClasses.every((t=>-1===e.indexOf(" "+t+" ")))&&f(r,t)}}};var p=function(e,t){if(!e)throw new Error("No element provided to render");const n={};for(const e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);n.delimiters=n.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],n.ignoredTags=n.ignoredTags||["script","noscript","style","textarea","pre","code","option"],n.ignoredClasses=n.ignoredClasses||[],n.errorCallback=n.errorCallback||console.error,n.macros=n.macros||{},f(e,n)};return o=o.default}()}));
+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{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.9"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1pxLine truncated
@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.19"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1pLine 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 na}});var r=function e(t,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n,a,i="KaTeX parse error: "+t,o=r&&r.loc;if(o&&o.start<=o.end){var s=o.lexer.input;n=o.start,a=o.end,n===s.length?i+=" at end of input: ":i+=" at position "+(n+1)+": ";var l=s.slice(n,a).replace(/[^]/g,"$&\u0332");i+=(n>15?"\u2026"+s.slice(n-15,n):s.slice(0,n))+l+(a+15<s.length?s.slice(a,a+15)+"\u2026":s.slice(a))}var h=new Error(i);return h.name="ParseError",h.__proto__=e.prototype,h.position=n,null!=n&&null!=a&&(h.length=a-n),h.rawMessage=t,h};r.prototype.__proto__=Error.prototype;var n=r,a=/([A-Z])/g,i={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},o=/[&><"']/g;var s=function e(t){return"ordgroup"===t.type||"color"===t.type?1===t.body.length?e(t.body[0]):t:"font"===t.type?e(t.body):t},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(o,(function(e){return i[e]}))},hyphenate:function(e){return e.replace(a,"-$1").toLowerCase()},getBaseElem:s,isCharacterBox:function(e){var t=s(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){var t=/^\s*([^\\/#]*?)(?::|&#0*58|&#x0*3a)/i.exec(e);return null!=t?t[1]:"_relative"}},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:function(e){return"#"+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:function(e,t){return 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:function(e){return 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:function(e){return 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:function(e){return Math.max(0,e)},cli:"-e, --max-expand <n>",cliProcessor:function(e){return"Infinity"===e?1/0:parseInt(e)}},globalGroup:{type:"boolean",cli:!1}};function c(e){if(e.default)return e.default;var 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{}}}var m=function(){function e(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void Line truncated
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.katex=t():e.katex=t()}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return Xn}});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
@@ -0,0 +1,95 @@
lite-youtube {
background-color: #000;
position: relative;
display: block;
contain: content;
background-position: center center;
background-size: cover;
cursor: pointer;
max-width: 720px;
}
/* gradient */
lite-youtube::before {
content: attr(data-title);
display: block;
position: absolute;
top: 0;
/* Pixel-perfect port of YT's gradient PNG, using https://github.com/bluesmoon/pngtocss plus optimizations */
background-image: linear-gradient(180deg, rgb(0 0 0 / 67%) 0%, rgb(0 0 0 / 54%) 14%, rgb(0 0 0 / 15%) 54%, rgb(0 0 0 / 5%) 72%, rgb(0 0 0 / 0%) 94%);
height: 99px;
width: 100%;
font-family: "YouTube Noto",Roboto,Arial,Helvetica,sans-serif;
color: hsl(0deg 0% 93.33%);
text-shadow: 0 0 2px rgba(0,0,0,.5);
font-size: 18px;
padding: 25px 20px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
box-sizing: border-box;
}
lite-youtube:hover::before {
color: white;
}
/* responsive iframe with a 16:9 aspect ratio
thanks https://css-tricks.com/responsive-iframes/
*/
lite-youtube::after {
content: "";
display: block;
padding-bottom: calc(100% / (16 / 9));
}
lite-youtube > iframe {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
border: 0;
}
/* play button */
lite-youtube > .lty-playbtn {
display: block;
/* Make the button element cover the whole area for a large hover/click target… */
width: 100%;
height: 100%;
/* …but visually it's still the same size */
background: no-repeat center/68px 48px;
/* YT's actual play button svg */
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.63 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="red"/><path d="M45 24 27 14v20" fill="white"/></svg>');
position: absolute;
cursor: pointer;
z-index: 1;
filter: grayscale(100%);
transition: filter .1s cubic-bezier(0, 0, 0.2, 1);
border: 0;
}
lite-youtube:hover > .lty-playbtn,
lite-youtube .lty-playbtn:focus {
filter: none;
}
/* Post-click styles */
lite-youtube.lyt-activated {
cursor: unset;
}
lite-youtube.lyt-activated::before,
lite-youtube.lyt-activated > .lty-playbtn {
opacity: 0;
pointer-events: none;
}
.lyt-visually-hidden {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
@@ -0,0 +1,238 @@
/**
* A lightweight youtube embed. Still should feel the same to the user, just MUCH faster to initialize and paint.
*
* Thx to these as the inspiration
* https://storage.googleapis.com/amp-vs-non-amp/youtube-lazy.html
* https://autoplay-youtube-player.glitch.me/
*
* Once built it, I also found these:
* https://github.com/ampproject/amphtml/blob/master/extensions/amp-youtube (👍👍)
* https://github.com/Daugilas/lazyYT
* https://github.com/vb/lazyframe
*/
class LiteYTEmbed extends HTMLElement {
connectedCallback() {
this.videoId = this.getAttribute('videoid');
let playBtnEl = this.querySelector('.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';
this.dataset.title = this.getAttribute('title') || "";
/**
* Lo, the youtube poster image! (aka the thumbnail, image placeholder, etc)
*
* See https://github.com/paulirish/lite-youtube-embed/blob/master/youtube-thumbnail-urls.md
*/
if (!this.style.backgroundImage) {
this.style.backgroundImage = `url("https://i.ytimg.com/vi/${this.videoId}/hqdefault.jpg")`;
this.upgradePosterImage();
}
// Set up play button, and its visually hidden label
if (!playBtnEl) {
playBtnEl = document.createElement('button');
playBtnEl.type = 'button';
playBtnEl.classList.add('lty-playbtn');
this.append(playBtnEl);
}
if (!playBtnEl.textContent) {
const playBtnLabelEl = document.createElement('span');
playBtnLabelEl.className = 'lyt-visually-hidden';
playBtnLabelEl.textContent = this.playLabel;
playBtnEl.append(playBtnLabelEl);
}
this.addNoscriptIframe();
// for the PE pattern, change anchor's semantics to button
if(playBtnEl.nodeName === 'A'){
playBtnEl.removeAttribute('href');
playBtnEl.setAttribute('tabindex', '0');
playBtnEl.setAttribute('role', 'button');
// fake button needs keyboard help
playBtnEl.addEventListener('keydown', e => {
if( e.key === 'Enter' || e.key === ' ' ){
e.preventDefault();
this.activate();
}
});
}
// On hover (or tap), warm up the TCP connections we're (likely) about to use.
this.addEventListener('pointerover', LiteYTEmbed.warmConnections, {once: true});
this.addEventListener('focusin', LiteYTEmbed.warmConnections, {once: true});
// Once the user clicks, add the real iframe and drop our play button
// TODO: In the future we could be like amp-youtube and silently swap in the iframe during idle time
// We'd want to only do this for in-viewport or near-viewport ones: https://github.com/ampproject/amphtml/pull/5003
this.addEventListener('click', this.activate);
// Chrome & Edge desktop have no problem with the basic YouTube Embed with ?autoplay=1
// However Safari desktop and most/all mobile browsers do not successfully track the user gesture of clicking through the creation/loading of the iframe,
// so they don't autoplay automatically. Instead we must load an additional 2 sequential JS files (1KB + 165KB) (un-br) for the YT Player API
// TODO: Try loading the the YT API in parallel with our iframe and then attaching/playing it. #82
this.needsYTApi = this.hasAttribute("js-api") || navigator.vendor.includes('Apple') || navigator.userAgent.includes('Mobi');
}
/**
* Add a <link rel={preload | preconnect} ...> to the head
*/
static addPrefetch(kind, url, as) {
const linkEl = document.createElement('link');
linkEl.rel = kind;
linkEl.href = url;
if (as) {
linkEl.as = as;
}
document.head.append(linkEl);
}
/**
* Begin pre-connecting to warm up the iframe load
* Since the embed's network requests load within its iframe,
* preload/prefetch'ing them outside the iframe will only cause double-downloads.
* So, the best we can do is warm up a few connections to origins that are in the critical path.
*
* Maybe `<link rel=preload as=document>` would work, but it's unsupported: http://crbug.com/593267
* But TBH, I don't think it'll happen soon with Site Isolation and split caches adding serious complexity.
*/
static warmConnections() {
if (LiteYTEmbed.preconnected) return;
// The iframe document and most of its subresources come right off youtube.com
LiteYTEmbed.addPrefetch('preconnect', 'https://www.youtube-nocookie.com');
// The botguard script is fetched off from google.com
LiteYTEmbed.addPrefetch('preconnect', 'https://www.google.com');
// Not certain if these ad related domains are in the critical path. Could verify with domain-specific throttling.
LiteYTEmbed.addPrefetch('preconnect', 'https://googleads.g.doubleclick.net');
LiteYTEmbed.addPrefetch('preconnect', 'https://static.doubleclick.net');
LiteYTEmbed.preconnected = true;
}
fetchYTPlayerApi() {
if (window.YT || (window.YT && window.YT.Player)) return;
this.ytApiPromise = new Promise((res, rej) => {
var el = document.createElement('script');
el.src = 'https://www.youtube.com/iframe_api';
el.async = true;
el.onload = _ => {
YT.ready(res);
};
el.onerror = rej;
this.append(el);
});
}
/** Return the YT Player API instance. (Public L-YT-E API) */
async getYTPlayer() {
if(!this.playerPromise) {
await this.activate();
}
return this.playerPromise;
}
async addYTPlayerIframe() {
this.fetchYTPlayerApi();
await this.ytApiPromise;
const videoPlaceholderEl = document.createElement('div')
this.append(videoPlaceholderEl);
const paramsObj = Object.fromEntries(this.getParams().entries());
this.playerPromise = new Promise(resolve => {
let player = new YT.Player(videoPlaceholderEl, {
width: '100%',
videoId: this.videoId,
playerVars: paramsObj,
events: {
'onReady': event => {
event.target.playVideo();
resolve(player);
}
}
});
});
}
// Add the iframe within <noscript> for indexability discoverability. See https://github.com/paulirish/lite-youtube-embed/issues/105
addNoscriptIframe() {
const iframeEl = this.createBasicIframe();
const noscriptEl = document.createElement('noscript');
// Appending into noscript isn't equivalant for mysterious reasons: https://html.spec.whatwg.org/multipage/scripting.html#the-noscript-element
noscriptEl.innerHTML = iframeEl.outerHTML;
this.append(noscriptEl);
}
getParams() {
const params = new URLSearchParams(this.getAttribute('params') || []);
params.append('autoplay', '1');
params.append('playsinline', '1');
return params;
}
async activate(){
if (this.classList.contains('lyt-activated')) return;
this.classList.add('lyt-activated');
if (this.needsYTApi) {
return this.addYTPlayerIframe(this.getParams());
}
const iframeEl = this.createBasicIframe();
this.append(iframeEl);
// Set focus for a11y
iframeEl.focus();
}
createBasicIframe(){
const iframeEl = document.createElement('iframe');
iframeEl.width = 560;
iframeEl.height = 315;
// No encoding necessary as [title] is safe. https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html#:~:text=Safe%20HTML%20Attributes%20include
iframeEl.title = this.playLabel;
iframeEl.allow = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture';
iframeEl.allowFullscreen = true;
// 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()}`;
return iframeEl;
}
/**
* In the spirit of the `lowsrc` attribute and progressive JPEGs, we'll upgrade the reliable
* poster image to a higher resolution one, if it's available.
* Interestingly this sddefault webp is often smaller in filesize, but we will still attempt it second
* because getting _an_ image in front of the user if our first priority.
*
* See https://github.com/paulirish/lite-youtube-embed/blob/master/youtube-thumbnail-urls.md for more details
*/
upgradePosterImage() {
// Defer to reduce network contention.
setTimeout(() => {
const webpUrl = `https://i.ytimg.com/vi_webp/${this.videoId}/sddefault.webp`;
const img = new Image();
img.fetchPriority = 'low'; // low priority to reduce network contention
img.referrerpolicy = 'origin'; // Not 100% sure it's needed, but https://github.com/ampproject/amphtml/pull/3940
img.src = webpUrl;
img.onload = e => {
// A pretty ugly hack since onerror won't fire on YouTube image 404. This is (probably) due to
// Youtube's style of returning data even with a 404 status. That data is a 120x90 placeholder image.
// … per "annoying yt 404 behavior" in the .md
const noAvailablePoster = e.target.naturalHeight == 90 && e.target.naturalWidth == 120;
if (noAvailablePoster) return;
this.style.backgroundImage = `url("${webpUrl}")`;
}
}, 100);
}
}
// Register custom element
customElements.define('lite-youtube', LiteYTEmbed);
+2314
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -1,2 +1,2 @@
// TypeIt by Alex MacArthur - https://typeitjs.com
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).TypeIt=t()}(this,(function(){"use strict";const e=e=>Array.isArray(e),t=t=>e(t)?t:[t];const s="data-typeit-id",i="ti-cursor",r={started:!1,completed:!1,frozen:!1,destroyed:!1},n={breakLines:!0,cursor:{autoPause:!0,autoPauseDelay:500,animation:{frames:[0,0,1].map((e=>({opacity:e}))),options:{iterations:1/0,easing:"steps(2, start)",fill:"forwards"}}},cursorChar:"|",cursorSpeed:1e3,deleteSpeed:null,html:!0,lifeLike:!0,loop:!1,loopDelay:750,nextStringDelay:750,speed:100,startDelay:250,startDelete:!1,strings:[],waitUntilVisible:!1,beforeString:()=>{},afterString:()=>{},beforeStep:()=>{},afterStep:()=>{},afterComplete:()=>{}},o=`[${s}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`,a=e=>document.createElement(e),u=e=>document.createTextNode(e),l=(e,t="")=>{let s=a("style");s.id=t,s.appendChild(u(e)),document.head.appendChild(s)},h=t=>(e(t)||(t=[t/2,t/2]),t),d=(e,t)=>Math.abs(Math.random()*(e+t-(e-t))+(e-t));let p=e=>e/2;const c=e=>Array.from(e);let m=e=>([...e.childNodes].forEach((e=>{if(e.nodeValue)return[...e.nodeValue].forEach((t=>{e.parentNode.insertBefore(u(t),e)})),void e.remove();m(e)})),e);const f=e=>{let t=document.implementation.createHTMLDocument();return t.body.innerHTML=e,m(t.body)};function y(e,t=!1,s=!1){let r,n=e.querySelector(`.${i}`),o=document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:e=>{if(n&&s){if(e.classList?.contains(i))return NodeFilter.FILTER_ACCEPT;if(n.contains(e))return NodeFilter.FILTER_REJECT}return e.classList?.contains(i)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),a=[];for(;r=o.nextNode();)r.originalParent||(r.originalParent=r.parentNode),a.push(r);return t?a.reverse():a}function g(e,t=!0){return t?y(f(e)):c(e).map(u)}const b=e=>Number.isInteger(e),P=({queueItems:e,selector:t,cursorPosition:s,to:i})=>{if(b(t))return-1*t;let r=new RegExp("END","i").test(i),n=t?[...e].reverse().findIndex((({char:e})=>{let s=e.parentElement,i=s.matches(t);return!(!r||!i)||i&&s.firstChild.isSameNode(e)})):-1;return n<0&&(n=r?0:e.length-1),n-s+(r?0:1)},C=(e,t)=>new Array(t).fill(e);let v=e=>new Promise((t=>{requestAnimationFrame((async()=>{t(await e())}))})),T=e=>e?.getAnimations().find((t=>t.id===e.dataset.tiAnimationId)),w=({cursor:e,frames:t,options:s})=>{let i=e.animate(t,s);return i.pause(),i.id=e.dataset.tiAnimationId,v((()=>{v((()=>{i.play()}))})),i},I=e=>e.func?.call(null),q=async({index:e,queueItems:t,wait:s,cursor:i,cursorOptions:r})=>{let n=t[e][1],o=[],a=e,u=n,l=()=>u&&!u.delay,h=n.shouldPauseCursor()&&r.autoPause;for(;l();)o.push(u),l()&&a++,u=t[a]?t[a][1]:null;if(o.length)return await v((async()=>{for(let e of o)await I(e)})),a-1;let d,p=T(i);return p&&(d={...p.effect.getComputedTiming(),delay:h?r.autoPauseDelay:0}),await s((async()=>{p&&h&&p.cancel(),await v((()=>{I(n)}))}),n.delay),await(({cursor:e,options:t,cursorOptions:s})=>{if(!e||!s)return;let i,r=T(e);r&&(t.delay=r.effect.getComputedTiming().delay,i=r.currentTime,r.cancel());let n=w({cursor:e,frames:s.animation.frames,options:t});return i&&(n.currentTime=i),n})({cursor:i,options:d,cursorOptions:r}),e};const S=e=>"value"in e;let N=e=>"function"==typeof e?e():e,A=(e,t=document,s=!1)=>t["querySelector"+(s?"All":"")](e);const E=(e,t)=>Object.assign({},e,t);let L={"font-family":"","font-weight":"","font-size":"","font-style":"","line-height":"",color:"",transform:"translateX(-.125em)"};return class{element;timeouts;cursorPosition;predictedCursorPosition;statuses={started:!1,completed:!1,frozen:!1,destroyed:!1};opts;id;queue;cursor;unfreeze=()=>{};constructor(e,s={}){var i;this.opts=E(n,s),this.element="string"==typeof(i=e)?A(i):i,this.timeouts=[],this.cursorPosition=0,this.unfreeze=()=>{},this.predictedCursorPosition=null,this.statuses=E({},r),this.id=Math.random().toString().substring(2,9),this.queue=function(e){let s=function(e){return t(e).forEach((e=>n.set(Symbol(e.char?.innerText),i({...e})))),this},i=e=>(e.shouldPauseCursor=function(){return Boolean(this.typeable||this.cursorable||this.deletable)},e),r=()=>Array.from(n.values()),n=new Map;return s(e),{add:s,set:function(e,t){let s=[...n.keys()];n.set(s[e],i(t))},wipe:function(){n=new Map,s(e)},done:(e,t=!1)=>t?n.delete(e):n.get(e).done=!0,reset:function(){n.forEach((e=>delete e.done))},destroy:e=>n.delete(e),getItems:(e=!1)=>e?r():r().filter((e=>!e.done)),getQueue:()=>n,getTypeable:()=>r().filter((e=>e.typeable))}}([{delay:this.opts.startDelay}]),this.#e(s),this.cursor=this.#t(),this.element.dataset.typeitId=this.id,l(o),this.opts.strings.length&&this.#s()}go(){return this.statuses.started?this:(this.#i(),this.opts.waitUntilVisible?(e=this.element,t=this.#r.bind(this),new IntersectionObserver(((s,i)=>{s.forEach((s=>{s.isIntersecting&&(t(),i.unobserve(e))}))}),{threshold:1}).observe(e),this):(this.#r(),this));var e,t}destroy(e=!0){this.timeouts=(Line truncated
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).TypeIt=t()}(this,(function(){"use strict";const e=e=>Array.isArray(e),t=t=>e(t)?t:[t];const s="data-typeit-id",i="ti-cursor",r={started:!1,completed:!1,frozen:!1,destroyed:!1},n={breakLines:!0,cursor:{autoPause:!0,autoPauseDelay:500,animation:{frames:[0,0,1].map((e=>({opacity:e}))),options:{iterations:1/0,easing:"steps(2, start)",fill:"forwards"}}},cursorChar:"|",cursorSpeed:1e3,deleteSpeed:null,html:!0,lifeLike:!0,loop:!1,loopDelay:750,nextStringDelay:750,speed:100,startDelay:250,startDelete:!1,strings:[],waitUntilVisible:!1,beforeString:()=>{},afterString:()=>{},beforeStep:()=>{},afterStep:()=>{},afterComplete:()=>{}},o=`[${s}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`,a=e=>document.createElement(e),u=e=>document.createTextNode(e),l=(e,t="")=>{let s=a("style");s.id=t,s.appendChild(u(e)),document.head.appendChild(s)},h=t=>(e(t)||(t=[t/2,t/2]),t),d=(e,t)=>Math.abs(Math.random()*(e+t-(e-t))+(e-t));let p=e=>e/2;const c=e=>Array.from(e);let f=e=>([...e.childNodes].forEach((e=>{if(e.nodeValue)return[...e.nodeValue].forEach((t=>{e.parentNode.insertBefore(u(t),e)})),void e.remove();f(e)})),e);const m=e=>{let t=document.implementation.createHTMLDocument();return t.body.innerHTML=e,f(t.body)};function y(e,t=!1,s=!1){let r,n=e.querySelector(`.${i}`),o=document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:e=>{if(n&&s){if(e.classList?.contains(i))return NodeFilter.FILTER_ACCEPT;if(n.contains(e))return NodeFilter.FILTER_REJECT}return e.classList?.contains(i)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),a=[];for(;r=o.nextNode();)r.originalParent||(r.originalParent=r.parentNode),a.push(r);return t?a.reverse():a}function g(e,t=!0){return t?y(m(e)):c(e).map(u)}const b=({index:e,newIndex:t,queueItems:s,cleanUp:i})=>{for(let r=e+1;r<t+1;r++)i(s[r][0])},P=e=>Number.isInteger(e),C=({queueItems:e,selector:t,cursorPosition:s,to:i})=>{if(P(t))return-1*t;let r=new RegExp("END","i").test(i),n=t?[...e].reverse().findIndex((({char:e})=>{let s=e.parentElement,i=s.matches(t);return!(!r||!i)||i&&s.firstChild.isSameNode(e)})):-1;return n<0&&(n=r?0:e.length-1),n-s+(r?0:1)},I=(e,t)=>new Array(t).fill(e);let v=e=>new Promise((t=>{requestAnimationFrame((async()=>{t(await e())}))})),w=e=>e?.getAnimations().find((t=>t.id===e.dataset.tiAnimationId)),T=({cursor:e,frames:t,options:s})=>{let i=e.animate(t,s);return i.pause(),i.id=e.dataset.tiAnimationId,v((()=>{v((()=>{i.play()}))})),i},q=e=>e.func?.call(null),S=async({index:e,queueItems:t,wait:s,cursor:i,cursorOptions:r})=>{let n=t[e][1],o=[],a=e,u=n,l=()=>u&&!u.delay,h=n.shouldPauseCursor()&&r.autoPause;for(;l();)o.push(u),l()&&a++,u=t[a]?t[a][1]:null;if(o.length)return await v((async()=>{for(let e of o)await q(e)})),a-1;let d,p=w(i);return p&&(d={...p.effect.getComputedTiming(),delay:h?r.autoPauseDelay:0}),await s((async()=>{p&&h&&p.cancel(),await v((()=>{q(n)}))}),n.delay),await(({cursor:e,options:t,cursorOptions:s})=>{if(!e||!s)return;let i,r=w(e);r&&(t.delay=r.effect.getComputedTiming().delay,i=r.currentTime,r.cancel());let n=T({cursor:e,frames:s.animation.frames,options:t});return i&&(n.currentTime=i),n})({cursor:i,options:d,cursorOptions:r}),e};const E=e=>"value"in e;let N=e=>"function"==typeof e?e():e,A=(e,t=document,s=!1)=>t["querySelector"+(s?"All":"")](e);const L=(e,t)=>Object.assign({},e,t);let x={"font-family":"","font-weight":"","font-size":"","font-style":"","line-height":"",color:"",transform:"translateX(-.125em)"};return class{element;timeouts;cursorPosition;predictedCursorPosition;statuses={started:!1,completed:!1,frozen:!1,destroyed:!1,firing:!1};opts;id;queue;cursor;flushCallback=null;unfreeze=()=>{};constructor(e,s={}){var i;this.opts=L(n,s),this.element="string"==typeof(i=e)?A(i):i,this.timeouts=[],this.cursorPosition=0,this.unfreeze=()=>{},this.predictedCursorPosition=null,this.statuses=L({},r),this.id=Math.random().toString().substring(2,9),this.queue=function(e){let s=function(e){return t(e).forEach((e=>o.set(Symbol(e.char?.innerText),i({...e})))),this},i=e=>(e.shouldPauseCursor=function(){return Boolean(this.typeable||this.cursorable||this.deletable)},e),r=()=>o,n=()=>Array.from(o.values()),o=new Map;return s(e),{add:s,set:function(e,t){let s=[...o.keys()];o.set(s[e],i(t))},wipe:function(){o=new Map,s(e)},done:(e,t=!1)=>t?o.delete(e):o.get(e).done=!0,reset:function(){o.forEach((e=>delete e.done))},destroy:e=>o.delete(e),getItems:(e=!1)=>e?n():n().filter((e=>!e.done)),getQueue:r,getTypeable:()=>n().filter((e=>e.typeable)),getPendingQueueItems:()=>{const e=[];for(let[,t]of r())t.done||e.push(t);return e}}}([{delay:this.opts.startDelay}]),this.#e(s),this.cursor=this.#t(),this.element.dataset.typeitId=this.id,l(o),this.opts.strings.length&&this.#s()}go(){return this.statuses.started?this:(this.#i(),this.opts.waitUntilVisible?(e=this.elementLine truncated
File renamed without changes.
+1 -1
View File
@@ -2,4 +2,4 @@
[module.hugoVersion]
extended = true
min = "0.87.0"
max = "0.123.7"
max = "0.140.2"
@@ -2,21 +2,25 @@
# Refer to the theme docs for more details about each of these parameters.
# https://blowfish.page/docs/getting-started/
# theme = "blowfish"
# theme = "blowfish" # UNCOMMENT THIS LINE
# baseURL = "https://your_domain.com/"
defaultContentLanguage = "en"
# pluralizeListTitles = "true" # hugo function useful for non-english languages, find out more in https://gohugo.io/getting-started/configuration/#pluralizelisttitles
enableRobotsTXT = true
paginate = 10
summaryLength = 0
buildDrafts = false
buildFuture = false
enableEmoji = true
# googleAnalytics = "G-XXXXXXXXX"
[pagination]
pagerSize = 100
[imaging]
anchor = 'Center'
+8 -1
View File
@@ -1,3 +1,4 @@
disabled = false
languageCode = "en"
languageName = "English"
weight = 1
@@ -13,9 +14,11 @@ title = "Blowfish"
# description = "My awesome website"
# copyright = "Copy, _right?_ :thinking_face:"
# [author]
# [params.author]
# name = "Your name here"
# email = "youremail@example.com"
# image = "img/blowfish_logo.png"
# imageQuality = 96
# headline = "I'm only human"
# bio = "A little bit about you"
# links = [
@@ -37,6 +40,7 @@ title = "Blowfish"
# { google = "https://www.google.com/" },
# { hashnode = "https://username.hashnode.dev" },
# { instagram = "https://instagram.com/username" },
# { itch-io = "https://username.itch.io" },
# { keybase = "https://keybase.io/username" },
# { kickstarter = "https://www.kickstarter.com/profile/username" },
# { lastfm = "https://lastfm.com/user/username" },
@@ -52,9 +56,11 @@ title = "Blowfish"
# { slack = "https://workspace.url/team/userid" },
# { snapchat = "https://snapchat.com/add/username" },
# { soundcloud = "https://soundcloud.com/username" },
# { spotify = "https://open.spotify.com/user/userid" },
# { stack-overflow = "https://stackoverflow.com/users/userid/username" },
# { steam = "https://steamcommunity.com/profiles/userid" },
# { telegram = "https://t.me/username" },
# { threads = "https://www.threads.net/@username" },
# { tiktok = "https://tiktok.com/@username" },
# { tumblr = "https://username.tumblr.com" },
# { twitch = "https://twitch.tv/username" },
@@ -63,4 +69,5 @@ title = "Blowfish"
# { whatsapp = "https://wa.me/phone-number" },
# { youtube = "https://youtube.com/username" },
# { ko-fi = "https://ko-fi.com/username" },
# { codeberg = "https://codeberg.org/username"},
# ]
+27 -3
View File
@@ -12,11 +12,14 @@ autoSwitchAppearance = true
enableSearch = true
enableCodeCopy = false
replyByEmail = false
# mainSections = ["section1", "section2"]
# robots = ""
disableImageOptimization = false
disableTextInHeader = false
# backgroundImageWidth = 1200
# defaultBackgroundImage = "IMAGE.jpg" # used as default for background images
# defaultFeaturedImage = "IMAGE.jpg" # used as default for featured images in all articles
@@ -25,8 +28,11 @@ disableTextInHeader = false
# smartTOC = true
# smartTOCHideUnfocusedChildren = true
giteaDefaultServer = "https://git.fsfe.org"
forgejoDefaultServer = "https://v8.next.forgejo.org"
[header]
layout = "basic" # valid options: basic, fixed, fixed-fill, fixed-fill-blur
layout = "basic" # valid options: basic, fixed, fixed-fill, fixed-gradient, fixed-fill-blur
[footer]
showMenu = true
@@ -41,7 +47,7 @@ disableTextInHeader = false
showRecent = false
showRecentItems = 5
showMoreLink = false
showMoreLinkDest = "/posts"
showMoreLinkDest = "/posts/"
cardView = false
cardViewScreenWidth = false
layoutBackgroundBlur = false # only used when layout equals background
@@ -53,6 +59,7 @@ disableTextInHeader = false
showDateOnlyInArticle = false
showDateUpdated = false
showAuthor = true
# showAuthorBottom = false
showHero = false
# heroStyle = "basic" # valid options: basic, big, background, thumbAndBackground
layoutBackgroundBlur = true # only used when heroStyle equals background or thumbAndBackground
@@ -73,7 +80,7 @@ disableTextInHeader = false
showTaxonomies = false
showAuthorsBadges = false
showWordCount = true
# sharingLinks = [ "linkedin", "twitter", "reddit", "pinterest", "facebook", "email", "whatsapp", "telegram"]
# sharingLinks = [ "linkedin", "twitter", "bluesky", "mastodon", "reddit", "pinterest", "facebook", "email", "whatsapp", "telegram"]
showZenMode = false
[list]
@@ -87,6 +94,7 @@ disableTextInHeader = false
showLikes = false
showTableOfContents = false
showCards = false
orderByWeight = false
groupByYear = true
cardView = false
cardViewScreenWidth = false
@@ -129,6 +137,17 @@ disableTextInHeader = false
# site = "ABC12345"
# domain = "llama.yoursite.com"
[umamiAnalytics]
# websiteid = "ABC12345"
# domain = "llama.yoursite.com"
# dataDomains = "yoursite.com,yoursite2.com"
# scriptName = ""
# enableTrackEvent = true
[selineAnalytics]
# token = "XXXXXX"
# enableTrackEvent = true
[buymeacoffee]
# identifier = ""
# globalWidget = true
@@ -141,3 +160,8 @@ disableTextInHeader = false
# bing = ""
# pinterest = ""
# yandex = ""
# fediverse = ""
[rssnext]
# feedId = ""
# userId = ""
+533
View File
@@ -0,0 +1,533 @@
{
"1C Enterprise": "#814CCC",
"4D": "#004289",
"ABAP": "#E8274B",
"ABAP CDS": "#555e25",
"ActionScript": "#882B0F",
"Ada": "#02f88c",
"Adobe Font Metrics": "#fa0f00",
"Agda": "#315665",
"AGS Script": "#B9D9FF",
"AIDL": "#34EB6B",
"AL": "#3AA2B5",
"Alloy": "#64C800",
"Alpine Abuild": "#0D597F",
"Altium Designer": "#A89663",
"AMPL": "#E6EFBB",
"AngelScript": "#C7D7DC",
"Ant Build System": "#A9157E",
"ANTLR": "#9DC3FF",
"ApacheConf": "#d12127",
"Apex": "#1797c0",
"API Blueprint": "#2ACCA8",
"APL": "#5A8164",
"Apollo Guidance Computer": "#0B3D91",
"AppleScript": "#101F1F",
"Arc": "#aa2afe",
"AsciiDoc": "#73a0c5",
"ASL": null,
"ASP.NET": "#9400ff",
"AspectJ": "#a957b0",
"Assembly": "#6E4C13",
"Astro": "#ff5a03",
"Asymptote": "#ff0000",
"ATS": "#1ac620",
"Augeas": "#9CC134",
"AutoHotkey": "#6594b9",
"AutoIt": "#1C3552",
"Avro IDL": "#0040FF",
"Awk": "#c30e9b",
"Ballerina": "#FF5000",
"BASIC": "#ff0000",
"Batchfile": "#C1F12E",
"Beef": "#a52f4e",
"Befunge": null,
"BibTeX": "#778899",
"Bicep": "#519aba",
"Bison": "#6A463F",
"BitBake": "#00bce4",
"Blade": "#f7523f",
"BlitzBasic": "#00FFAE",
"BlitzMax": "#cd6400",
"Bluespec": "#12223c",
"Boo": "#d4bec1",
"Boogie": "#c80fa0",
"Brainfuck": "#2F2530",
"Brightscript": "#662D91",
"Browserslist": "#ffd539",
"C": "#555555",
"C#": "#178600",
"C++": "#f34b7d",
"C2hs Haskell": null,
"Cabal Config": "#483465",
"Cap'n Proto": "#c42727",
"CartoCSS": null,
"Ceylon": "#dfa535",
"Chapel": "#8dc63f",
"Charity": null,
"ChucK": "#3f8000",
"Cirru": "#ccccff",
"Clarion": "#db901e",
"Classic ASP": "#6a40fd",
"Clean": "#3F85AF",
"Click": "#E4E6F3",
"CLIPS": "#00A300",
"Clojure": "#db5855",
"Closure Templates": "#0d948f",
"Cloud Firestore Security Rules": "#FFA000",
"CMake": "#DA3434",
"COBOL": null,
"CodeQL": "#140f46",
"CoffeeScript": "#244776",
"ColdFusion": "#ed2cd6",
"ColdFusion CFC": "#ed2cd6",
"COLLADA": "#F1A42B",
"Common Lisp": "#3fb68b",
"Common Workflow Language": "#B5314C",
"Component Pascal": "#B0CE4E",
"Cool": null,
"Coq": "#d0b68c",
"Crystal": "#000100",
"CSON": "#244776",
"Csound": "#1a1a1a",
"Csound Document": "#1a1a1a",
"Csound Score": "#1a1a1a",
"CSS": "#563d7c",
"CSV": "#237346",
"Cuda": "#3A4E3A",
"CUE": "#5886E1",
"CWeb": "#00007a",
"Cycript": null,
"Cython": "#fedf5b",
"D": "#ba595e",
"Dafny": "#FFEC25",
"Darcs Patch": "#8eff23",
"Dart": "#00B4AB",
"DataWeave": "#003a52",
"Dhall": "#dfafff",
"DIGITAL Command Language": null,
"DirectX 3D File": "#aace60",
"DM": "#447265",
"Dockerfile": "#384d54",
"Dogescript": "#cca760",
"DTrace": null,
"Dylan": "#6c616e",
"E": "#ccce35",
"Easybuild": "#069406",
"eC": "#913960",
"Ecere Projects": "#913960",
"ECL": "#8a1267",
"ECLiPSe": "#001d9d",
"EditorConfig": "#fff1f2",
"Eiffel": "#4d6977",
"EJS": "#a91e50",
"Elixir": "#6e4a7e",
"Elm": "#60B5CC",
"Emacs Lisp": "#c065db",
"EmberScript": "#FFF4F3",
"EQ": "#a78649",
"Erlang": "#B83998",
"F#": "#b845fc",
"F*": "#572e30",
"Factor": "#636746",
"Fancy": "#7b9db4",
"Fantom": "#14253c",
"Faust": "#c37240",
"Fennel": "#fff3d7",
"FIGlet Font": "#FFDDBB",
"Filebench WML": "#F6B900",
"Filterscript": null,
"fish": "#4aae47",
"Fluent": "#ffcc33",
"FLUX": "#88ccff",
"Forth": "#341708",
"Fortran": "#4d41b1",
"Fortran Free Form": "#4d41b1",
"FreeBasic": "#867db1",
"FreeMarker": "#0050b2",
"Frege": "#00cafe",
"Futhark": "#5f021f",
"G-code": "#D08CF2",
"Game Maker Language": "#71b417",
"GAML": "#FFC766",
"GAMS": "#f49a22",
"GAP": "#0000cc",
"GCC Machine Description": "#FFCFAB",
"GDB": null,
"GDScript": "#355570",
"GEDCOM": "#003058",
"Gemfile.lock": "#701516",
"Genie": "#fb855d",
"Genshi": "#951531",
"Gentoo Ebuild": "#9400ff",
"Gentoo Eclass": "#9400ff",
"Gerber Image": "#d20b00",
"Gherkin": "#5B2063",
"Git Attributes": "#F44D27",
"Git Config": "#F44D27",
"GLSL": "#5686a5",
"Glyph": "#c1ac7f",
"Gnuplot": "#f0a9f0",
"Go": "#00ADD8",
"Go Checksums": "#00ADD8",
"Go Module": "#00ADD8",
"Golo": "#88562A",
"Gosu": "#82937f",
"Grace": "#615f8b",
"Gradle": "#02303a",
"Grammatical Framework": "#ff0000",
"GraphQL": "#e10098",
"Graphviz (DOT)": "#2596be",
"Groovy": "#4298b8",
"Groovy Server Pages": "#4298b8",
"Hack": "#878787",
"Haml": "#ece2a9",
"Handlebars": "#f7931e",
"HAProxy": "#106da9",
"Harbour": "#0e60e3",
"Haskell": "#5e5086",
"Haxe": "#df7900",
"HCL": null,
"HiveQL": "#dce200",
"HLSL": "#aace60",
"HolyC": "#ffefaf",
"HTML": "#e34c26",
"HTML+ECR": "#2e1052",
"HTML+EEX": "#6e4a7e",
"HTML+ERB": "#701516",
"HTML+PHP": "#4f5d95",
"HTML+Razor": "#512be4",
"HTTP": "#005C9C",
"HXML": "#f68712",
"Hy": "#7790B2",
"HyPhy": null,
"IDL": "#a3522f",
"Idris": "#b30000",
"Ignore List": "#000000",
"IGOR Pro": "#0000cc",
"ImageJ Macro": "#99AAFF",
"Inform 7": null,
"INI": "#d1dbe0",
"Inno Setup": "#264b99",
"Io": "#a9188d",
"Ioke": "#078193",
"Isabelle": "#FEFE00",
"Isabelle ROOT": "#FEFE00",
"J": "#9EEDFF",
"JAR Manifest": "#b07219",
"Jasmin": "#d03600",
"Java": "#b07219",
"Java Properties": "#2A6277",
"Java Server Pages": "#2A6277",
"JavaScript": "#f1e05a",
"JavaScript+ERB": "#f1e05a",
"Jest Snapshot": "#15c213",
"JFlex": "#DBCA00",
"Jinja": "#a52a22",
"Jison": "#56b3cb",
"Jison Lex": "#56b3cb",
"Jolie": "#843179",
"jq": "#c7254e",
"JSON": "#292929",
"JSON with Comments": "#292929",
"JSON5": "#267CB9",
"JSONiq": "#40d47e",
"JSONLD": "#0c479c",
"Jsonnet": "#0064bd",
"Julia": "#a270ba",
"Jupyter Notebook": "#DA5B0B",
"Kaitai Struct": "#773b37",
"KakouneScript": "#6f8042",
"KiCad Layout": "#2f4aab",
"KiCad Legacy Layout": "#2f4aab",
"KiCad Schematic": "#2f4aab",
"Kotlin": "#A97BFF",
"KRL": "#28430A",
"LabVIEW": "#fede06",
"Lark": "#2980B9",
"Lasso": "#999999",
"Latte": "#f2a542",
"Lean": null,
"Less": "#1d365d",
"Lex": "#DBCA00",
"LFE": "#4C3023",
"LilyPond": "#9ccc7c",
"Limbo": null,
"Liquid": "#67b8de",
"Literate Agda": "#315665",
"Literate CoffeeScript": "#244776",
"Literate Haskell": "#5e5086",
"LiveScript": "#499886",
"LLVM": "#185619",
"Logos": null,
"Logtalk": "#295b9a",
"LOLCODE": "#cc9900",
"LookML": "#652B81",
"LoomScript": null,
"LSL": "#3d9970",
"Lua": "#000080",
"M": null,
"M4": null,
"M4Sugar": null,
"Macaulay2": "#d8ffff",
"Makefile": "#427819",
"Mako": "#7e858d",
"Markdown": "#083fa1",
"Marko": "#42bff2",
"Mask": "#f97732",
"Mathematica": "#dd1100",
"MATLAB": "#e16737",
"Max": "#c4a79c",
"MAXScript": "#00a6a6",
"mcfunction": "#E22837",
"Mercury": "#ff2b2b",
"Meson": "#007800",
"Metal": "#8f14e9",
"MiniD": null,
"Mirah": "#c7a938",
"mIRC Script": "#3d57c3",
"MLIR": "#5EC8DB",
"Modelica": "#de1d31",
"Modula-2": "#10253f",
"Modula-3": "#223388",
"Module Management System": null,
"Monkey": null,
"Moocode": null,
"MoonScript": "#ff4585",
"Motorola 68K Assembly": "#005daa",
"MQL4": "#62A8D6",
"MQL5": "#4A76B8",
"MTML": "#b7e1f4",
"MUF": null,
"mupad": "#244963",
"Mustache": "#724b3b",
"Myghty": null,
"nanorc": "#2d004d",
"NASL": null,
"NCL": "#28431f",
"Nearley": "#990000",
"Nemerle": "#3d3c6e",
"nesC": "#94B0C7",
"NetLinx": "#0aa0ff",
"NetLinx+ERB": "#747faa",
"NetLogo": "#ff6375",
"NewLisp": "#87AED7",
"Nextflow": "#3ac486",
"Nginx": "#009639",
"Nim": "#ffc200",
"Nit": "#009917",
"Nix": "#7e7eff",
"NPM Config": "#cb3837",
"NSIS": null,
"Nu": "#c9df40",
"NumPy": "#9C8AF9",
"Nunjucks": "#3d8137",
"NWScript": "#111522",
"Objective-C": "#438eff",
"Objective-C++": "#6866fb",
"Objective-J": "#ff0c5a",
"ObjectScript": "#424893",
"OCaml": "#3be133",
"Odin": "#60AFFE",
"Omgrofl": "#cabbff",
"ooc": "#b0b77e",
"Opa": null,
"Opal": "#f7ede0",
"Open Policy Agent": "#7d9199",
"OpenCL": "#ed2e2d",
"OpenEdge ABL": "#5ce600",
"OpenQASM": "#AA70FF",
"OpenRC runscript": null,
"OpenSCAD": "#e5cd45",
"Org": "#77aa99",
"Ox": null,
"Oxygene": "#cdd0e3",
"Oz": "#fab738",
"P4": "#7055b5",
"Pan": "#cc0000",
"Papyrus": "#6600cc",
"Parrot": "#f3ca0a",
"Parrot Assembly": null,
"Parrot Internal Representation": null,
"Pascal": "#E3F171",
"Pawn": "#dbb284",
"PEG.js": "#234d6b",
"Pep8": "#C76F5B",
"Perl": "#0298c3",
"PHP": "#4F5D95",
"PicoLisp": "#6067af",
"PigLatin": "#fcd7de",
"Pike": "#005390",
"PLpgSQL": "#336790",
"PLSQL": "#dad8d8",
"PogoScript": "#d80074",
"Pony": null,
"PostCSS": "#dc3a0c",
"PostScript": "#da291c",
"POV-Ray SDL": "#6bac65",
"PowerBuilder": "#8f0f8d",
"PowerShell": "#012456",
"Prisma": "#0c344b",
"Processing": "#0096D8",
"Prolog": "#74283c",
"Propeller Spin": "#7fa2a7",
"Pug": "#a86454",
"Puppet": "#302B6D",
"PureBasic": "#5a6986",
"PureScript": "#1D222D",
"Python": "#3572A5",
"Python console": "#3572A5",
"Python traceback": "#3572A5",
"q": "#0040cd",
"Q#": "#fed659",
"QMake": null,
"QML": "#44a51c",
"Qt Script": "#00b841",
"Quake": "#882233",
"R": "#198CE7",
"Racket": "#3c5caa",
"Ragel": "#9d5200",
"Raku": "#0000fb",
"RAML": "#77d9fb",
"Rascal": "#fffaa0",
"RDoc": "#701516",
"REALbasic": null,
"Reason": "#ff5847",
"Rebol": "#358a5b",
"Record Jar": "#0673ba",
"Red": "#f50000",
"Redcode": null,
"Regular Expression": "#009a00",
"Ren'Py": "#ff7f7f",
"RenderScript": null,
"ReScript": "#ed5051",
"reStructuredText": "#141414",
"REXX": "#d90e09",
"Ring": "#2D54CB",
"Riot": "#A71E49",
"RMarkdown": "#198ce7",
"RobotFramework": "#00c0b5",
"Roff": "#ecdebe",
"Roff Manpage": "#ecdebe",
"Rouge": "#cc0088",
"RPC": null,
"Ruby": "#701516",
"RUNOFF": "#665a4e",
"Rust": "#dea584",
"Sage": null,
"SaltStack": "#646464",
"SAS": "#B34936",
"Sass": "#a53b70",
"Scala": "#c22d40",
"Scaml": "#bd181a",
"Scheme": "#1e4aec",
"Scilab": "#ca0f21",
"SCSS": "#c6538c",
"sed": "#64b970",
"Self": "#0579aa",
"ShaderLab": "#222c37",
"Shell": "#89e051",
"ShellSession": null,
"Shen": "#120F14",
"Sieve": null,
"Singularity": "#64E6AD",
"Slash": "#007eff",
"Slice": "#003fa2",
"Slim": "#2b2b2b",
"Smali": null,
"Smalltalk": "#596706",
"Smarty": "#f0c040",
"SmPL": "#c94949",
"SMT": null,
"Solidity": "#AA6746",
"SourcePawn": "#f69e1d",
"SPARQL": "#0C4597",
"SQF": "#3F3F3F",
"SQL": "#e38c00",
"SQLPL": "#e38c00",
"Squirrel": "#800000",
"SRecode Template": "#348a34",
"Stan": "#b2011d",
"Standard ML": "#dc566d",
"Starlark": "#76d275",
"Stata": "#1a5f91",
"StringTemplate": "#3fb34f",
"Stylus": "#ff6347",
"SubRip Text": "#9e0101",
"SugarSS": "#2fcc9f",
"SuperCollider": "#46390b",
"Svelte": "#ff3e00",
"SVG": "#ff9900",
"Swift": "#F05138",
"SWIG": null,
"SystemVerilog": "#DAE1C2",
"Tcl": "#e4cc98",
"Tcsh": null,
"Terra": "#00004c",
"TeX": "#3D6117",
"Textile": "#ffe7ac",
"TextMate Properties": "#df66e4",
"Thrift": "#D12127",
"TI Program": "#A0AA87",
"TLA": "#4b0079",
"TOML": "#9c4221",
"TSQL": "#e38c00",
"TSV": "#237346",
"TSX": "#2b7489",
"Turing": "#cf142b",
"Twig": "#c1d026",
"TXL": "#0178b8",
"TypeScript": "#2b7489",
"Unified Parallel C": "#4e3617",
"Unity3D Asset": "#222c37",
"Unix Assembly": null,
"Uno": "#9933cc",
"UnrealScript": "#a54c4d",
"UrWeb": "#ccccee",
"V": "#4f87c4",
"Vala": "#fbe5cd",
"Valve Data Format": "#f26025",
"VBA": "#867db1",
"VBScript": "#15dcdc",
"VCL": "#148AA8",
"Verilog": "#b2b7f8",
"VHDL": "#adb2cb",
"Vim Help File": "#199f4b",
"Vim Script": "#199f4b",
"Vim Snippet": "#199f4b",
"Visual Basic .NET": "#945db7",
"Volt": "#1F1F1F",
"Vue": "#41b883",
"wdl": "#42f1f4",
"Web Ontology Language": "#5b70bd",
"WebAssembly": "#04133b",
"WebIDL": null,
"Wikitext": "#fc5757",
"Windows Registry Entries": "#52d5ff",
"wisp": "#7582D1",
"Wollok": "#a23738",
"World of Warcraft Addon Data": "#f7e43f",
"X10": "#4B6BEF",
"xBase": "#403a40",
"XC": "#99DA07",
"XML": "#0060ac",
"XML Property List": "#0060ac",
"Xojo": "#81bd41",
"Xonsh": "#285EEF",
"XProc": null,
"XQuery": "#5232e7",
"XS": null,
"XSLT": "#EB8CEB",
"Xtend": "#24255d",
"Yacc": "#4B6C4B",
"YAML": "#cb171e",
"YARA": "#220000",
"YASnippet": "#32AB90",
"ZAP": "#0d665e",
"Zeek": null,
"ZenScript": "#00BCD1",
"Zephir": "#118f9e",
"Zig": "#ec915c",
"ZIL": "#dc75e5",
"Zimpl": "#d67711"
}
+533
View File
@@ -0,0 +1,533 @@
{
"1C Enterprise": "#814CCC",
"4D": "#004289",
"ABAP": "#E8274B",
"ABAP CDS": "#555e25",
"ActionScript": "#882B0F",
"Ada": "#02f88c",
"Adobe Font Metrics": "#fa0f00",
"Agda": "#315665",
"AGS Script": "#B9D9FF",
"AIDL": "#34EB6B",
"AL": "#3AA2B5",
"Alloy": "#64C800",
"Alpine Abuild": "#0D597F",
"Altium Designer": "#A89663",
"AMPL": "#E6EFBB",
"AngelScript": "#C7D7DC",
"Ant Build System": "#A9157E",
"ANTLR": "#9DC3FF",
"ApacheConf": "#d12127",
"Apex": "#1797c0",
"API Blueprint": "#2ACCA8",
"APL": "#5A8164",
"Apollo Guidance Computer": "#0B3D91",
"AppleScript": "#101F1F",
"Arc": "#aa2afe",
"AsciiDoc": "#73a0c5",
"ASL": null,
"ASP.NET": "#9400ff",
"AspectJ": "#a957b0",
"Assembly": "#6E4C13",
"Astro": "#ff5a03",
"Asymptote": "#ff0000",
"ATS": "#1ac620",
"Augeas": "#9CC134",
"AutoHotkey": "#6594b9",
"AutoIt": "#1C3552",
"Avro IDL": "#0040FF",
"Awk": "#c30e9b",
"Ballerina": "#FF5000",
"BASIC": "#ff0000",
"Batchfile": "#C1F12E",
"Beef": "#a52f4e",
"Befunge": null,
"BibTeX": "#778899",
"Bicep": "#519aba",
"Bison": "#6A463F",
"BitBake": "#00bce4",
"Blade": "#f7523f",
"BlitzBasic": "#00FFAE",
"BlitzMax": "#cd6400",
"Bluespec": "#12223c",
"Boo": "#d4bec1",
"Boogie": "#c80fa0",
"Brainfuck": "#2F2530",
"Brightscript": "#662D91",
"Browserslist": "#ffd539",
"C": "#555555",
"C#": "#178600",
"C++": "#f34b7d",
"C2hs Haskell": null,
"Cabal Config": "#483465",
"Cap'n Proto": "#c42727",
"CartoCSS": null,
"Ceylon": "#dfa535",
"Chapel": "#8dc63f",
"Charity": null,
"ChucK": "#3f8000",
"Cirru": "#ccccff",
"Clarion": "#db901e",
"Classic ASP": "#6a40fd",
"Clean": "#3F85AF",
"Click": "#E4E6F3",
"CLIPS": "#00A300",
"Clojure": "#db5855",
"Closure Templates": "#0d948f",
"Cloud Firestore Security Rules": "#FFA000",
"CMake": "#DA3434",
"COBOL": null,
"CodeQL": "#140f46",
"CoffeeScript": "#244776",
"ColdFusion": "#ed2cd6",
"ColdFusion CFC": "#ed2cd6",
"COLLADA": "#F1A42B",
"Common Lisp": "#3fb68b",
"Common Workflow Language": "#B5314C",
"Component Pascal": "#B0CE4E",
"Cool": null,
"Coq": "#d0b68c",
"Crystal": "#000100",
"CSON": "#244776",
"Csound": "#1a1a1a",
"Csound Document": "#1a1a1a",
"Csound Score": "#1a1a1a",
"CSS": "#563d7c",
"CSV": "#237346",
"Cuda": "#3A4E3A",
"CUE": "#5886E1",
"CWeb": "#00007a",
"Cycript": null,
"Cython": "#fedf5b",
"D": "#ba595e",
"Dafny": "#FFEC25",
"Darcs Patch": "#8eff23",
"Dart": "#00B4AB",
"DataWeave": "#003a52",
"Dhall": "#dfafff",
"DIGITAL Command Language": null,
"DirectX 3D File": "#aace60",
"DM": "#447265",
"Dockerfile": "#384d54",
"Dogescript": "#cca760",
"DTrace": null,
"Dylan": "#6c616e",
"E": "#ccce35",
"Easybuild": "#069406",
"eC": "#913960",
"Ecere Projects": "#913960",
"ECL": "#8a1267",
"ECLiPSe": "#001d9d",
"EditorConfig": "#fff1f2",
"Eiffel": "#4d6977",
"EJS": "#a91e50",
"Elixir": "#6e4a7e",
"Elm": "#60B5CC",
"Emacs Lisp": "#c065db",
"EmberScript": "#FFF4F3",
"EQ": "#a78649",
"Erlang": "#B83998",
"F#": "#b845fc",
"F*": "#572e30",
"Factor": "#636746",
"Fancy": "#7b9db4",
"Fantom": "#14253c",
"Faust": "#c37240",
"Fennel": "#fff3d7",
"FIGlet Font": "#FFDDBB",
"Filebench WML": "#F6B900",
"Filterscript": null,
"fish": "#4aae47",
"Fluent": "#ffcc33",
"FLUX": "#88ccff",
"Forth": "#341708",
"Fortran": "#4d41b1",
"Fortran Free Form": "#4d41b1",
"FreeBasic": "#867db1",
"FreeMarker": "#0050b2",
"Frege": "#00cafe",
"Futhark": "#5f021f",
"G-code": "#D08CF2",
"Game Maker Language": "#71b417",
"GAML": "#FFC766",
"GAMS": "#f49a22",
"GAP": "#0000cc",
"GCC Machine Description": "#FFCFAB",
"GDB": null,
"GDScript": "#355570",
"GEDCOM": "#003058",
"Gemfile.lock": "#701516",
"Genie": "#fb855d",
"Genshi": "#951531",
"Gentoo Ebuild": "#9400ff",
"Gentoo Eclass": "#9400ff",
"Gerber Image": "#d20b00",
"Gherkin": "#5B2063",
"Git Attributes": "#F44D27",
"Git Config": "#F44D27",
"GLSL": "#5686a5",
"Glyph": "#c1ac7f",
"Gnuplot": "#f0a9f0",
"Go": "#00ADD8",
"Go Checksums": "#00ADD8",
"Go Module": "#00ADD8",
"Golo": "#88562A",
"Gosu": "#82937f",
"Grace": "#615f8b",
"Gradle": "#02303a",
"Grammatical Framework": "#ff0000",
"GraphQL": "#e10098",
"Graphviz (DOT)": "#2596be",
"Groovy": "#4298b8",
"Groovy Server Pages": "#4298b8",
"Hack": "#878787",
"Haml": "#ece2a9",
"Handlebars": "#f7931e",
"HAProxy": "#106da9",
"Harbour": "#0e60e3",
"Haskell": "#5e5086",
"Haxe": "#df7900",
"HCL": null,
"HiveQL": "#dce200",
"HLSL": "#aace60",
"HolyC": "#ffefaf",
"HTML": "#e34c26",
"HTML+ECR": "#2e1052",
"HTML+EEX": "#6e4a7e",
"HTML+ERB": "#701516",
"HTML+PHP": "#4f5d95",
"HTML+Razor": "#512be4",
"HTTP": "#005C9C",
"HXML": "#f68712",
"Hy": "#7790B2",
"HyPhy": null,
"IDL": "#a3522f",
"Idris": "#b30000",
"Ignore List": "#000000",
"IGOR Pro": "#0000cc",
"ImageJ Macro": "#99AAFF",
"Inform 7": null,
"INI": "#d1dbe0",
"Inno Setup": "#264b99",
"Io": "#a9188d",
"Ioke": "#078193",
"Isabelle": "#FEFE00",
"Isabelle ROOT": "#FEFE00",
"J": "#9EEDFF",
"JAR Manifest": "#b07219",
"Jasmin": "#d03600",
"Java": "#b07219",
"Java Properties": "#2A6277",
"Java Server Pages": "#2A6277",
"JavaScript": "#f1e05a",
"JavaScript+ERB": "#f1e05a",
"Jest Snapshot": "#15c213",
"JFlex": "#DBCA00",
"Jinja": "#a52a22",
"Jison": "#56b3cb",
"Jison Lex": "#56b3cb",
"Jolie": "#843179",
"jq": "#c7254e",
"JSON": "#292929",
"JSON with Comments": "#292929",
"JSON5": "#267CB9",
"JSONiq": "#40d47e",
"JSONLD": "#0c479c",
"Jsonnet": "#0064bd",
"Julia": "#a270ba",
"Jupyter Notebook": "#DA5B0B",
"Kaitai Struct": "#773b37",
"KakouneScript": "#6f8042",
"KiCad Layout": "#2f4aab",
"KiCad Legacy Layout": "#2f4aab",
"KiCad Schematic": "#2f4aab",
"Kotlin": "#A97BFF",
"KRL": "#28430A",
"LabVIEW": "#fede06",
"Lark": "#2980B9",
"Lasso": "#999999",
"Latte": "#f2a542",
"Lean": null,
"Less": "#1d365d",
"Lex": "#DBCA00",
"LFE": "#4C3023",
"LilyPond": "#9ccc7c",
"Limbo": null,
"Liquid": "#67b8de",
"Literate Agda": "#315665",
"Literate CoffeeScript": "#244776",
"Literate Haskell": "#5e5086",
"LiveScript": "#499886",
"LLVM": "#185619",
"Logos": null,
"Logtalk": "#295b9a",
"LOLCODE": "#cc9900",
"LookML": "#652B81",
"LoomScript": null,
"LSL": "#3d9970",
"Lua": "#000080",
"M": null,
"M4": null,
"M4Sugar": null,
"Macaulay2": "#d8ffff",
"Makefile": "#427819",
"Mako": "#7e858d",
"Markdown": "#083fa1",
"Marko": "#42bff2",
"Mask": "#f97732",
"Mathematica": "#dd1100",
"MATLAB": "#e16737",
"Max": "#c4a79c",
"MAXScript": "#00a6a6",
"mcfunction": "#E22837",
"Mercury": "#ff2b2b",
"Meson": "#007800",
"Metal": "#8f14e9",
"MiniD": null,
"Mirah": "#c7a938",
"mIRC Script": "#3d57c3",
"MLIR": "#5EC8DB",
"Modelica": "#de1d31",
"Modula-2": "#10253f",
"Modula-3": "#223388",
"Module Management System": null,
"Monkey": null,
"Moocode": null,
"MoonScript": "#ff4585",
"Motorola 68K Assembly": "#005daa",
"MQL4": "#62A8D6",
"MQL5": "#4A76B8",
"MTML": "#b7e1f4",
"MUF": null,
"mupad": "#244963",
"Mustache": "#724b3b",
"Myghty": null,
"nanorc": "#2d004d",
"NASL": null,
"NCL": "#28431f",
"Nearley": "#990000",
"Nemerle": "#3d3c6e",
"nesC": "#94B0C7",
"NetLinx": "#0aa0ff",
"NetLinx+ERB": "#747faa",
"NetLogo": "#ff6375",
"NewLisp": "#87AED7",
"Nextflow": "#3ac486",
"Nginx": "#009639",
"Nim": "#ffc200",
"Nit": "#009917",
"Nix": "#7e7eff",
"NPM Config": "#cb3837",
"NSIS": null,
"Nu": "#c9df40",
"NumPy": "#9C8AF9",
"Nunjucks": "#3d8137",
"NWScript": "#111522",
"Objective-C": "#438eff",
"Objective-C++": "#6866fb",
"Objective-J": "#ff0c5a",
"ObjectScript": "#424893",
"OCaml": "#3be133",
"Odin": "#60AFFE",
"Omgrofl": "#cabbff",
"ooc": "#b0b77e",
"Opa": null,
"Opal": "#f7ede0",
"Open Policy Agent": "#7d9199",
"OpenCL": "#ed2e2d",
"OpenEdge ABL": "#5ce600",
"OpenQASM": "#AA70FF",
"OpenRC runscript": null,
"OpenSCAD": "#e5cd45",
"Org": "#77aa99",
"Ox": null,
"Oxygene": "#cdd0e3",
"Oz": "#fab738",
"P4": "#7055b5",
"Pan": "#cc0000",
"Papyrus": "#6600cc",
"Parrot": "#f3ca0a",
"Parrot Assembly": null,
"Parrot Internal Representation": null,
"Pascal": "#E3F171",
"Pawn": "#dbb284",
"PEG.js": "#234d6b",
"Pep8": "#C76F5B",
"Perl": "#0298c3",
"PHP": "#4F5D95",
"PicoLisp": "#6067af",
"PigLatin": "#fcd7de",
"Pike": "#005390",
"PLpgSQL": "#336790",
"PLSQL": "#dad8d8",
"PogoScript": "#d80074",
"Pony": null,
"PostCSS": "#dc3a0c",
"PostScript": "#da291c",
"POV-Ray SDL": "#6bac65",
"PowerBuilder": "#8f0f8d",
"PowerShell": "#012456",
"Prisma": "#0c344b",
"Processing": "#0096D8",
"Prolog": "#74283c",
"Propeller Spin": "#7fa2a7",
"Pug": "#a86454",
"Puppet": "#302B6D",
"PureBasic": "#5a6986",
"PureScript": "#1D222D",
"Python": "#3572A5",
"Python console": "#3572A5",
"Python traceback": "#3572A5",
"q": "#0040cd",
"Q#": "#fed659",
"QMake": null,
"QML": "#44a51c",
"Qt Script": "#00b841",
"Quake": "#882233",
"R": "#198CE7",
"Racket": "#3c5caa",
"Ragel": "#9d5200",
"Raku": "#0000fb",
"RAML": "#77d9fb",
"Rascal": "#fffaa0",
"RDoc": "#701516",
"REALbasic": null,
"Reason": "#ff5847",
"Rebol": "#358a5b",
"Record Jar": "#0673ba",
"Red": "#f50000",
"Redcode": null,
"Regular Expression": "#009a00",
"Ren'Py": "#ff7f7f",
"RenderScript": null,
"ReScript": "#ed5051",
"reStructuredText": "#141414",
"REXX": "#d90e09",
"Ring": "#2D54CB",
"Riot": "#A71E49",
"RMarkdown": "#198ce7",
"RobotFramework": "#00c0b5",
"Roff": "#ecdebe",
"Roff Manpage": "#ecdebe",
"Rouge": "#cc0088",
"RPC": null,
"Ruby": "#701516",
"RUNOFF": "#665a4e",
"Rust": "#dea584",
"Sage": null,
"SaltStack": "#646464",
"SAS": "#B34936",
"Sass": "#a53b70",
"Scala": "#c22d40",
"Scaml": "#bd181a",
"Scheme": "#1e4aec",
"Scilab": "#ca0f21",
"SCSS": "#c6538c",
"sed": "#64b970",
"Self": "#0579aa",
"ShaderLab": "#222c37",
"Shell": "#89e051",
"ShellSession": null,
"Shen": "#120F14",
"Sieve": null,
"Singularity": "#64E6AD",
"Slash": "#007eff",
"Slice": "#003fa2",
"Slim": "#2b2b2b",
"Smali": null,
"Smalltalk": "#596706",
"Smarty": "#f0c040",
"SmPL": "#c94949",
"SMT": null,
"Solidity": "#AA6746",
"SourcePawn": "#f69e1d",
"SPARQL": "#0C4597",
"SQF": "#3F3F3F",
"SQL": "#e38c00",
"SQLPL": "#e38c00",
"Squirrel": "#800000",
"SRecode Template": "#348a34",
"Stan": "#b2011d",
"Standard ML": "#dc566d",
"Starlark": "#76d275",
"Stata": "#1a5f91",
"StringTemplate": "#3fb34f",
"Stylus": "#ff6347",
"SubRip Text": "#9e0101",
"SugarSS": "#2fcc9f",
"SuperCollider": "#46390b",
"Svelte": "#ff3e00",
"SVG": "#ff9900",
"Swift": "#F05138",
"SWIG": null,
"SystemVerilog": "#DAE1C2",
"Tcl": "#e4cc98",
"Tcsh": null,
"Terra": "#00004c",
"TeX": "#3D6117",
"Textile": "#ffe7ac",
"TextMate Properties": "#df66e4",
"Thrift": "#D12127",
"TI Program": "#A0AA87",
"TLA": "#4b0079",
"TOML": "#9c4221",
"TSQL": "#e38c00",
"TSV": "#237346",
"TSX": "#2b7489",
"Turing": "#cf142b",
"Twig": "#c1d026",
"TXL": "#0178b8",
"TypeScript": "#2b7489",
"Unified Parallel C": "#4e3617",
"Unity3D Asset": "#222c37",
"Unix Assembly": null,
"Uno": "#9933cc",
"UnrealScript": "#a54c4d",
"UrWeb": "#ccccee",
"V": "#4f87c4",
"Vala": "#fbe5cd",
"Valve Data Format": "#f26025",
"VBA": "#867db1",
"VBScript": "#15dcdc",
"VCL": "#148AA8",
"Verilog": "#b2b7f8",
"VHDL": "#adb2cb",
"Vim Help File": "#199f4b",
"Vim Script": "#199f4b",
"Vim Snippet": "#199f4b",
"Visual Basic .NET": "#945db7",
"Volt": "#1F1F1F",
"Vue": "#41b883",
"wdl": "#42f1f4",
"Web Ontology Language": "#5b70bd",
"WebAssembly": "#04133b",
"WebIDL": null,
"Wikitext": "#fc5757",
"Windows Registry Entries": "#52d5ff",
"wisp": "#7582D1",
"Wollok": "#a23738",
"World of Warcraft Addon Data": "#f7e43f",
"X10": "#4B6BEF",
"xBase": "#403a40",
"XC": "#99DA07",
"XML": "#0060ac",
"XML Property List": "#0060ac",
"Xojo": "#81bd41",
"Xonsh": "#285EEF",
"XProc": null,
"XQuery": "#5232e7",
"XS": null,
"XSLT": "#EB8CEB",
"Xtend": "#24255d",
"Yacc": "#4B6C4B",
"YAML": "#cb171e",
"YARA": "#220000",
"YASnippet": "#32AB90",
"ZAP": "#0d665e",
"Zeek": null,
"ZenScript": "#00BCD1",
"Zephir": "#118f9e",
"Zig": "#ec915c",
"ZIL": "#dc75e5",
"Zimpl": "#d67711"
}
+533
View File
@@ -0,0 +1,533 @@
{
"1C Enterprise": "#814CCC",
"4D": "#004289",
"ABAP": "#E8274B",
"ABAP CDS": "#555e25",
"ActionScript": "#882B0F",
"Ada": "#02f88c",
"Adobe Font Metrics": "#fa0f00",
"Agda": "#315665",
"AGS Script": "#B9D9FF",
"AIDL": "#34EB6B",
"AL": "#3AA2B5",
"Alloy": "#64C800",
"Alpine Abuild": "#0D597F",
"Altium Designer": "#A89663",
"AMPL": "#E6EFBB",
"AngelScript": "#C7D7DC",
"Ant Build System": "#A9157E",
"ANTLR": "#9DC3FF",
"ApacheConf": "#d12127",
"Apex": "#1797c0",
"API Blueprint": "#2ACCA8",
"APL": "#5A8164",
"Apollo Guidance Computer": "#0B3D91",
"AppleScript": "#101F1F",
"Arc": "#aa2afe",
"AsciiDoc": "#73a0c5",
"ASL": null,
"ASP.NET": "#9400ff",
"AspectJ": "#a957b0",
"Assembly": "#6E4C13",
"Astro": "#ff5a03",
"Asymptote": "#ff0000",
"ATS": "#1ac620",
"Augeas": "#9CC134",
"AutoHotkey": "#6594b9",
"AutoIt": "#1C3552",
"Avro IDL": "#0040FF",
"Awk": "#c30e9b",
"Ballerina": "#FF5000",
"BASIC": "#ff0000",
"Batchfile": "#C1F12E",
"Beef": "#a52f4e",
"Befunge": null,
"BibTeX": "#778899",
"Bicep": "#519aba",
"Bison": "#6A463F",
"BitBake": "#00bce4",
"Blade": "#f7523f",
"BlitzBasic": "#00FFAE",
"BlitzMax": "#cd6400",
"Bluespec": "#12223c",
"Boo": "#d4bec1",
"Boogie": "#c80fa0",
"Brainfuck": "#2F2530",
"Brightscript": "#662D91",
"Browserslist": "#ffd539",
"C": "#555555",
"C#": "#178600",
"C++": "#f34b7d",
"C2hs Haskell": null,
"Cabal Config": "#483465",
"Cap'n Proto": "#c42727",
"CartoCSS": null,
"Ceylon": "#dfa535",
"Chapel": "#8dc63f",
"Charity": null,
"ChucK": "#3f8000",
"Cirru": "#ccccff",
"Clarion": "#db901e",
"Classic ASP": "#6a40fd",
"Clean": "#3F85AF",
"Click": "#E4E6F3",
"CLIPS": "#00A300",
"Clojure": "#db5855",
"Closure Templates": "#0d948f",
"Cloud Firestore Security Rules": "#FFA000",
"CMake": "#DA3434",
"COBOL": null,
"CodeQL": "#140f46",
"CoffeeScript": "#244776",
"ColdFusion": "#ed2cd6",
"ColdFusion CFC": "#ed2cd6",
"COLLADA": "#F1A42B",
"Common Lisp": "#3fb68b",
"Common Workflow Language": "#B5314C",
"Component Pascal": "#B0CE4E",
"Cool": null,
"Coq": "#d0b68c",
"Crystal": "#000100",
"CSON": "#244776",
"Csound": "#1a1a1a",
"Csound Document": "#1a1a1a",
"Csound Score": "#1a1a1a",
"CSS": "#563d7c",
"CSV": "#237346",
"Cuda": "#3A4E3A",
"CUE": "#5886E1",
"CWeb": "#00007a",
"Cycript": null,
"Cython": "#fedf5b",
"D": "#ba595e",
"Dafny": "#FFEC25",
"Darcs Patch": "#8eff23",
"Dart": "#00B4AB",
"DataWeave": "#003a52",
"Dhall": "#dfafff",
"DIGITAL Command Language": null,
"DirectX 3D File": "#aace60",
"DM": "#447265",
"Dockerfile": "#384d54",
"Dogescript": "#cca760",
"DTrace": null,
"Dylan": "#6c616e",
"E": "#ccce35",
"Easybuild": "#069406",
"eC": "#913960",
"Ecere Projects": "#913960",
"ECL": "#8a1267",
"ECLiPSe": "#001d9d",
"EditorConfig": "#fff1f2",
"Eiffel": "#4d6977",
"EJS": "#a91e50",
"Elixir": "#6e4a7e",
"Elm": "#60B5CC",
"Emacs Lisp": "#c065db",
"EmberScript": "#FFF4F3",
"EQ": "#a78649",
"Erlang": "#B83998",
"F#": "#b845fc",
"F*": "#572e30",
"Factor": "#636746",
"Fancy": "#7b9db4",
"Fantom": "#14253c",
"Faust": "#c37240",
"Fennel": "#fff3d7",
"FIGlet Font": "#FFDDBB",
"Filebench WML": "#F6B900",
"Filterscript": null,
"fish": "#4aae47",
"Fluent": "#ffcc33",
"FLUX": "#88ccff",
"Forth": "#341708",
"Fortran": "#4d41b1",
"Fortran Free Form": "#4d41b1",
"FreeBasic": "#867db1",
"FreeMarker": "#0050b2",
"Frege": "#00cafe",
"Futhark": "#5f021f",
"G-code": "#D08CF2",
"Game Maker Language": "#71b417",
"GAML": "#FFC766",
"GAMS": "#f49a22",
"GAP": "#0000cc",
"GCC Machine Description": "#FFCFAB",
"GDB": null,
"GDScript": "#355570",
"GEDCOM": "#003058",
"Gemfile.lock": "#701516",
"Genie": "#fb855d",
"Genshi": "#951531",
"Gentoo Ebuild": "#9400ff",
"Gentoo Eclass": "#9400ff",
"Gerber Image": "#d20b00",
"Gherkin": "#5B2063",
"Git Attributes": "#F44D27",
"Git Config": "#F44D27",
"GLSL": "#5686a5",
"Glyph": "#c1ac7f",
"Gnuplot": "#f0a9f0",
"Go": "#00ADD8",
"Go Checksums": "#00ADD8",
"Go Module": "#00ADD8",
"Golo": "#88562A",
"Gosu": "#82937f",
"Grace": "#615f8b",
"Gradle": "#02303a",
"Grammatical Framework": "#ff0000",
"GraphQL": "#e10098",
"Graphviz (DOT)": "#2596be",
"Groovy": "#4298b8",
"Groovy Server Pages": "#4298b8",
"Hack": "#878787",
"Haml": "#ece2a9",
"Handlebars": "#f7931e",
"HAProxy": "#106da9",
"Harbour": "#0e60e3",
"Haskell": "#5e5086",
"Haxe": "#df7900",
"HCL": null,
"HiveQL": "#dce200",
"HLSL": "#aace60",
"HolyC": "#ffefaf",
"HTML": "#e34c26",
"HTML+ECR": "#2e1052",
"HTML+EEX": "#6e4a7e",
"HTML+ERB": "#701516",
"HTML+PHP": "#4f5d95",
"HTML+Razor": "#512be4",
"HTTP": "#005C9C",
"HXML": "#f68712",
"Hy": "#7790B2",
"HyPhy": null,
"IDL": "#a3522f",
"Idris": "#b30000",
"Ignore List": "#000000",
"IGOR Pro": "#0000cc",
"ImageJ Macro": "#99AAFF",
"Inform 7": null,
"INI": "#d1dbe0",
"Inno Setup": "#264b99",
"Io": "#a9188d",
"Ioke": "#078193",
"Isabelle": "#FEFE00",
"Isabelle ROOT": "#FEFE00",
"J": "#9EEDFF",
"JAR Manifest": "#b07219",
"Jasmin": "#d03600",
"Java": "#b07219",
"Java Properties": "#2A6277",
"Java Server Pages": "#2A6277",
"JavaScript": "#f1e05a",
"JavaScript+ERB": "#f1e05a",
"Jest Snapshot": "#15c213",
"JFlex": "#DBCA00",
"Jinja": "#a52a22",
"Jison": "#56b3cb",
"Jison Lex": "#56b3cb",
"Jolie": "#843179",
"jq": "#c7254e",
"JSON": "#292929",
"JSON with Comments": "#292929",
"JSON5": "#267CB9",
"JSONiq": "#40d47e",
"JSONLD": "#0c479c",
"Jsonnet": "#0064bd",
"Julia": "#a270ba",
"Jupyter Notebook": "#DA5B0B",
"Kaitai Struct": "#773b37",
"KakouneScript": "#6f8042",
"KiCad Layout": "#2f4aab",
"KiCad Legacy Layout": "#2f4aab",
"KiCad Schematic": "#2f4aab",
"Kotlin": "#A97BFF",
"KRL": "#28430A",
"LabVIEW": "#fede06",
"Lark": "#2980B9",
"Lasso": "#999999",
"Latte": "#f2a542",
"Lean": null,
"Less": "#1d365d",
"Lex": "#DBCA00",
"LFE": "#4C3023",
"LilyPond": "#9ccc7c",
"Limbo": null,
"Liquid": "#67b8de",
"Literate Agda": "#315665",
"Literate CoffeeScript": "#244776",
"Literate Haskell": "#5e5086",
"LiveScript": "#499886",
"LLVM": "#185619",
"Logos": null,
"Logtalk": "#295b9a",
"LOLCODE": "#cc9900",
"LookML": "#652B81",
"LoomScript": null,
"LSL": "#3d9970",
"Lua": "#000080",
"M": null,
"M4": null,
"M4Sugar": null,
"Macaulay2": "#d8ffff",
"Makefile": "#427819",
"Mako": "#7e858d",
"Markdown": "#083fa1",
"Marko": "#42bff2",
"Mask": "#f97732",
"Mathematica": "#dd1100",
"MATLAB": "#e16737",
"Max": "#c4a79c",
"MAXScript": "#00a6a6",
"mcfunction": "#E22837",
"Mercury": "#ff2b2b",
"Meson": "#007800",
"Metal": "#8f14e9",
"MiniD": null,
"Mirah": "#c7a938",
"mIRC Script": "#3d57c3",
"MLIR": "#5EC8DB",
"Modelica": "#de1d31",
"Modula-2": "#10253f",
"Modula-3": "#223388",
"Module Management System": null,
"Monkey": null,
"Moocode": null,
"MoonScript": "#ff4585",
"Motorola 68K Assembly": "#005daa",
"MQL4": "#62A8D6",
"MQL5": "#4A76B8",
"MTML": "#b7e1f4",
"MUF": null,
"mupad": "#244963",
"Mustache": "#724b3b",
"Myghty": null,
"nanorc": "#2d004d",
"NASL": null,
"NCL": "#28431f",
"Nearley": "#990000",
"Nemerle": "#3d3c6e",
"nesC": "#94B0C7",
"NetLinx": "#0aa0ff",
"NetLinx+ERB": "#747faa",
"NetLogo": "#ff6375",
"NewLisp": "#87AED7",
"Nextflow": "#3ac486",
"Nginx": "#009639",
"Nim": "#ffc200",
"Nit": "#009917",
"Nix": "#7e7eff",
"NPM Config": "#cb3837",
"NSIS": null,
"Nu": "#c9df40",
"NumPy": "#9C8AF9",
"Nunjucks": "#3d8137",
"NWScript": "#111522",
"Objective-C": "#438eff",
"Objective-C++": "#6866fb",
"Objective-J": "#ff0c5a",
"ObjectScript": "#424893",
"OCaml": "#3be133",
"Odin": "#60AFFE",
"Omgrofl": "#cabbff",
"ooc": "#b0b77e",
"Opa": null,
"Opal": "#f7ede0",
"Open Policy Agent": "#7d9199",
"OpenCL": "#ed2e2d",
"OpenEdge ABL": "#5ce600",
"OpenQASM": "#AA70FF",
"OpenRC runscript": null,
"OpenSCAD": "#e5cd45",
"Org": "#77aa99",
"Ox": null,
"Oxygene": "#cdd0e3",
"Oz": "#fab738",
"P4": "#7055b5",
"Pan": "#cc0000",
"Papyrus": "#6600cc",
"Parrot": "#f3ca0a",
"Parrot Assembly": null,
"Parrot Internal Representation": null,
"Pascal": "#E3F171",
"Pawn": "#dbb284",
"PEG.js": "#234d6b",
"Pep8": "#C76F5B",
"Perl": "#0298c3",
"PHP": "#4F5D95",
"PicoLisp": "#6067af",
"PigLatin": "#fcd7de",
"Pike": "#005390",
"PLpgSQL": "#336790",
"PLSQL": "#dad8d8",
"PogoScript": "#d80074",
"Pony": null,
"PostCSS": "#dc3a0c",
"PostScript": "#da291c",
"POV-Ray SDL": "#6bac65",
"PowerBuilder": "#8f0f8d",
"PowerShell": "#012456",
"Prisma": "#0c344b",
"Processing": "#0096D8",
"Prolog": "#74283c",
"Propeller Spin": "#7fa2a7",
"Pug": "#a86454",
"Puppet": "#302B6D",
"PureBasic": "#5a6986",
"PureScript": "#1D222D",
"Python": "#3572A5",
"Python console": "#3572A5",
"Python traceback": "#3572A5",
"q": "#0040cd",
"Q#": "#fed659",
"QMake": null,
"QML": "#44a51c",
"Qt Script": "#00b841",
"Quake": "#882233",
"R": "#198CE7",
"Racket": "#3c5caa",
"Ragel": "#9d5200",
"Raku": "#0000fb",
"RAML": "#77d9fb",
"Rascal": "#fffaa0",
"RDoc": "#701516",
"REALbasic": null,
"Reason": "#ff5847",
"Rebol": "#358a5b",
"Record Jar": "#0673ba",
"Red": "#f50000",
"Redcode": null,
"Regular Expression": "#009a00",
"Ren'Py": "#ff7f7f",
"RenderScript": null,
"ReScript": "#ed5051",
"reStructuredText": "#141414",
"REXX": "#d90e09",
"Ring": "#2D54CB",
"Riot": "#A71E49",
"RMarkdown": "#198ce7",
"RobotFramework": "#00c0b5",
"Roff": "#ecdebe",
"Roff Manpage": "#ecdebe",
"Rouge": "#cc0088",
"RPC": null,
"Ruby": "#701516",
"RUNOFF": "#665a4e",
"Rust": "#dea584",
"Sage": null,
"SaltStack": "#646464",
"SAS": "#B34936",
"Sass": "#a53b70",
"Scala": "#c22d40",
"Scaml": "#bd181a",
"Scheme": "#1e4aec",
"Scilab": "#ca0f21",
"SCSS": "#c6538c",
"sed": "#64b970",
"Self": "#0579aa",
"ShaderLab": "#222c37",
"Shell": "#89e051",
"ShellSession": null,
"Shen": "#120F14",
"Sieve": null,
"Singularity": "#64E6AD",
"Slash": "#007eff",
"Slice": "#003fa2",
"Slim": "#2b2b2b",
"Smali": null,
"Smalltalk": "#596706",
"Smarty": "#f0c040",
"SmPL": "#c94949",
"SMT": null,
"Solidity": "#AA6746",
"SourcePawn": "#f69e1d",
"SPARQL": "#0C4597",
"SQF": "#3F3F3F",
"SQL": "#e38c00",
"SQLPL": "#e38c00",
"Squirrel": "#800000",
"SRecode Template": "#348a34",
"Stan": "#b2011d",
"Standard ML": "#dc566d",
"Starlark": "#76d275",
"Stata": "#1a5f91",
"StringTemplate": "#3fb34f",
"Stylus": "#ff6347",
"SubRip Text": "#9e0101",
"SugarSS": "#2fcc9f",
"SuperCollider": "#46390b",
"Svelte": "#ff3e00",
"SVG": "#ff9900",
"Swift": "#F05138",
"SWIG": null,
"SystemVerilog": "#DAE1C2",
"Tcl": "#e4cc98",
"Tcsh": null,
"Terra": "#00004c",
"TeX": "#3D6117",
"Textile": "#ffe7ac",
"TextMate Properties": "#df66e4",
"Thrift": "#D12127",
"TI Program": "#A0AA87",
"TLA": "#4b0079",
"TOML": "#9c4221",
"TSQL": "#e38c00",
"TSV": "#237346",
"TSX": "#2b7489",
"Turing": "#cf142b",
"Twig": "#c1d026",
"TXL": "#0178b8",
"TypeScript": "#2b7489",
"Unified Parallel C": "#4e3617",
"Unity3D Asset": "#222c37",
"Unix Assembly": null,
"Uno": "#9933cc",
"UnrealScript": "#a54c4d",
"UrWeb": "#ccccee",
"V": "#4f87c4",
"Vala": "#fbe5cd",
"Valve Data Format": "#f26025",
"VBA": "#867db1",
"VBScript": "#15dcdc",
"VCL": "#148AA8",
"Verilog": "#b2b7f8",
"VHDL": "#adb2cb",
"Vim Help File": "#199f4b",
"Vim Script": "#199f4b",
"Vim Snippet": "#199f4b",
"Visual Basic .NET": "#945db7",
"Volt": "#1F1F1F",
"Vue": "#41b883",
"wdl": "#42f1f4",
"Web Ontology Language": "#5b70bd",
"WebAssembly": "#04133b",
"WebIDL": null,
"Wikitext": "#fc5757",
"Windows Registry Entries": "#52d5ff",
"wisp": "#7582D1",
"Wollok": "#a23738",
"World of Warcraft Addon Data": "#f7e43f",
"X10": "#4B6BEF",
"xBase": "#403a40",
"XC": "#99DA07",
"XML": "#0060ac",
"XML Property List": "#0060ac",
"Xojo": "#81bd41",
"Xonsh": "#285EEF",
"XProc": null,
"XQuery": "#5232e7",
"XS": null,
"XSLT": "#EB8CEB",
"Xtend": "#24255d",
"Yacc": "#4B6C4B",
"YAML": "#cb171e",
"YARA": "#220000",
"YASnippet": "#32AB90",
"ZAP": "#0d665e",
"Zeek": null,
"ZenScript": "#00BCD1",
"Zephir": "#118f9e",
"Zig": "#ec915c",
"ZIL": "#dc75e5",
"Zimpl": "#d67711"
}
+12 -2
View File
@@ -38,5 +38,15 @@
"icon": "telegram",
"title": "sharing.telegram",
"url": "https://t.me/share/url?url=%s&resubmit=true&title=%s"
}
}
},
"bluesky": {
"icon": "bluesky",
"title": "sharing.bluesky",
"url": "https://bsky.app/intent/compose?text=%[2]s+%[1]s"
},
"mastodon": {
"icon": "mastodon",
"title": "sharing.mastodon",
"url": "https://s2f.kytta.dev/?text=%[2]s %[1]s"
}
}
+8 -2
View File
@@ -3,20 +3,26 @@
# https://blowfish.page/docs/getting-started/
theme = "blowfish"
baseURL = "https://nunocoracao.github.io/blowfish"
baseURL = "https://localhost:1313"
defaultContentLanguage = "en"
disableLanguages = [] #to allow translation work requiring shipping to production
# pluralizeListTitles = "true" # hugo function useful for non-english languages, find out more in https://gohugo.io/getting-started/configuration/#pluralizelisttitles
enableRobotsTXT = true
paginate = 100
summaryLength = 30
hasCJKLanguage = true
buildDrafts = false
buildFuture = false
enableEmoji = true
googleAnalytics = "G-PEDMYR1V0K"
[pagination]
pagerSize = 100
[imaging]
anchor = 'Center'
+7 -11
View File
@@ -4,24 +4,20 @@ weight = 1
title = "Blowfish"
[params]
displayName = "EN"
displayName = "English"
isoCode = "en"
rtl = false
dateFormat = "2 January 2006"
logo = "img/blowfish_logo_transparent.png"
# secondaryLogo = "PATH"
description = "A powerful, lightweight theme for Hugo built with Tailwind CSS."
# copyright = "Copy, _right?_ :thinking_face:"
description = "A powerful, lightweight theme for Hugo."
[author]
[params.author]
name = "Blowfish"
email = "nuno@n9o.xyz"
image = "img/blowfish_logo.png"
headline = "A powerful, lightweight theme for Hugo built with Tailwind CSS."
bio = "A powerful, lightweight theme for Hugo built with Tailwind CSS."
headline = "A powerful, lightweight theme for Hugo."
bio = "A powerful, lightweight theme for Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
#{ mastodon = "https://masto.ai/@blowfish" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
]
@@ -0,0 +1,22 @@
languageCode = "it"
languageName = "Italiano"
weight = 2
title = "Blowfish"
[params]
displayName = "Italiano"
isoCode = "it"
rtl = false
dateFormat = "2 January 2006"
logo = "img/blowfish_logo_transparent.png"
description = "Un potente, leggero tema per Hugo."
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "Un potente, leggero tema per Hugo."
bio = "Un potente, leggero tema per Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -0,0 +1,23 @@
languageCode = "ja"
languageName = "日本語"
weight = 3
title = "Blowfish"
[params]
displayName = "日本語"
isoCode = "ja"
rtl = false
dateFormat = "2006-01-02"
logo = "img/blowfish_logo_transparent.png"
description = "強力で、軽量な Hugo のテーマです。"
[params.author]
name = "Blowfish"
email = "nuno@n9o.xyz"
image = "img/blowfish_logo.png"
headline = "強力で、軽量な Hugo のテーマです。"
bio = "強力で、軽量な Hugo のテーマです。"
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -0,0 +1,22 @@
languageCode = "zh-cn"
languageName = "简体中文"
weight = 4
title = "Blowfish"
[params]
displayName = "简体中文"
isoCode = "zh-cn"
rtl = false
dateFormat = "2006-01-02"
logo = "img/blowfish_logo_transparent.png"
description = "一个强大、轻量级的 Hugo 主题。"
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "一个强大、轻量级的 Hugo 主题。"
bio = "一个强大、轻量级的 Hugo 主题。"
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
+91
View File
@@ -0,0 +1,91 @@
# -- Main Menu --
# The main menu is displayed in the header at the top of the page.
# Acceptable parameters are name, pageRef, page, url, title, weight.
#
# The simplest menu configuration is to provide:
# name = The name to be displayed for this menu link
# pageRef = The identifier of the page or section to link to
#
# By default the menu is ordered alphabetically. This can be
# overridden by providing a weight value. The menu will then be
# ordered by weight from lowest to highest.
[[main]]
name = "Documenti"
pageRef = "docs"
weight = 10
[[main]]
name = "Shortcodes"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "Esempi"
weight = 20
[[main]]
name = "Campioni"
parent = "Esempi"
pageRef = "samples"
weight = 16
[[main]]
name = "Vetrina"
parent = "Esempi"
pageRef = "examples"
weight = 30
[[main]]
name = "Ricette"
parent = "Esempi"
pageRef = "guides"
weight = 40
[[main]]
name = "Utenti"
pageRef = "users"
weight = 90
[[main]]
name = "Merch"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
#[[main]]
# name = "Test"
# pageRef = "pagTest"
# weight = 1000
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
#[[main]]
# identifier = "mastodon"
# pre = "mastodon"
# weight = 300
# url = "https://masto.ai/@blowfish"
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Footer Menu --
# The footer menu is displayed at the bottom of the page, just before
# the copyright notice. Configure as per the main menu above.
[[footer]]
name = "Tags"
pageRef = "tags"
weight = 10
[[footer]]
name = "Autori"
pageRef = "authors"
weight = 20
+91
View File
@@ -0,0 +1,91 @@
# -- メインメニュー --
# メインメニューはページトップのヘッダーに表示されます。
# 利用可能なパラメーターは name, pageRef, page, url, title, weight です。
#
# 最もシンプルなメニュー設定はこちらです:
# name = このメニューリンクに表示される名前
# pageRef = ページやセクションのリンクに利用される識別子
#
# デフォルトでは、メニューはアルファベット順に並べられます。
# これは、 weight value で上書き可能です。
# このメニューは weight が低い値から高い値に順に表示されます。
[[main]]
name = "ドキュメント"
pageRef = "docs"
weight = 10
[[main]]
name = "ショートコード"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "例"
weight = 20
[[main]]
name = "サンプル"
parent = "例"
pageRef = "samples"
weight = 16
[[main]]
name = "ショーケース"
parent = "例"
pageRef = "examples"
weight = 30
[[main]]
name = "レシピ"
parent = "例"
pageRef = "guides"
weight = 40
[[main]]
name = "ユーザー"
pageRef = "users"
weight = 90
[[main]]
name = "グッズ"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
#[[main]]
# name = "テスト"
# pageRef = "pagTest"
# weight = 1000
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
#[[main]]
# identifier = "mastodon"
# pre = "mastodon"
# weight = 300
# url = "https://masto.ai/@blowfish"
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- フッターメニュー --
# このフッターメニューはページ下部のコピーライト表示の前に表示されます。
# 上記のメインメニューと同様に設定できます。
[[footer]]
name = "タグ"
pageRef = "tags"
weight = 10
[[footer]]
name = "著者"
pageRef = "authors"
weight = 20
@@ -0,0 +1,91 @@
# -- Main Menu --
# The main menu is displayed in the header at the top of the page.
# Acceptable parameters are name, pageRef, page, url, title, weight.
#
# The simplest menu configuration is to provide:
# name = The name to be displayed for this menu link
# pageRef = The identifier of the page or section to link to
#
# By default the menu is ordered alphabetically. This can be
# overridden by providing a weight value. The menu will then be
# ordered by weight from lowest to highest.
[[main]]
name = "文档"
pageRef = "docs"
weight = 10
[[main]]
name = "简码"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "示例"
weight = 20
[[main]]
name = "功能示例"
parent = "示例"
pageRef = "samples"
weight = 16
[[main]]
name = "模板示例"
parent = "示例"
pageRef = "examples"
weight = 30
[[main]]
name = "部署指南"
parent = "示例"
pageRef = "guides"
weight = 40
[[main]]
name = "用户列表"
pageRef = "users"
weight = 90
[[main]]
name = "周边"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
#[[main]]
# name = "Test"
# pageRef = "pagTest"
# weight = 1000
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
#[[main]]
# identifier = "mastodon"
# pre = "mastodon"
# weight = 300
# url = "https://masto.ai/@blowfish"
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Footer Menu --
# The footer menu is displayed at the bottom of the page, just before
# the copyright notice. Configure as per the main menu above.
[[footer]]
name = "标签"
pageRef = "tags"
weight = 10
[[footer]]
name = "作者"
pageRef = "authors"
weight = 20
+41 -21
View File
@@ -12,21 +12,24 @@ autoSwitchAppearance = true
enableSearch = true
enableCodeCopy = true
replyByEmail = false
mainSections = ["docs"]
# robots = ""
disableImageOptimization = false
disableTextInHeader = false
# backgroundImageWidth = 1200
defaultBackgroundImage = "/img/ocean.jpg"
defaultFeaturedImage = "/img/ocean.jpg"
defaultBackgroundImage = "/img/background.svg"
defaultFeaturedImage = "/img/featured.svg"
highlightCurrentMenuArea = true
smartTOC = true
smartTOCHideUnfocusedChildren = false
[header]
layout = "fixed" # valid options: basic, fixed, fixed-fill, fixed-fill-blur
layout = "fixed" # valid options: basic, fixed, fixed-fill, fixed-gradient, fixed-fill-blur
[footer]
showMenu = true
@@ -39,20 +42,21 @@ smartTOCHideUnfocusedChildren = false
layout = "custom" # valid options: page, profile, hero, card, background, custom
# homepageImage = "/img/iceland.jpg" # used in: hero, and card
showRecent = false
showRecentItems = 12
showRecentItems = 6
showMoreLink = true
showMoreLinkDest = "docs"
cardView = false
cardView = true
cardViewScreenWidth = false
layoutBackgroundBlur = true # only used when layout equals background
[article]
showDate = false
showViews = true
showLikes = true
showViews = false
showLikes = false
showDateOnlyInArticle = false
showDateUpdated = false
showAuthor = true
# showAuthorBottom = false
showHero = true
heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
layoutBackgroundBlur = true # only used when heroStyle equals background
@@ -72,7 +76,7 @@ smartTOCHideUnfocusedChildren = false
showTaxonomies = true
showAuthorsBadges = true
showWordCount = false
sharingLinks = [ "linkedin", "twitter", "reddit", "whatsapp", "telegram", "pinterest", "facebook", "email"]
sharingLinks = [ "linkedin", "twitter", "bluesky", "reddit", "whatsapp", "telegram", "pinterest", "facebook", "email"]
showZenMode = true
[list]
@@ -82,10 +86,11 @@ smartTOCHideUnfocusedChildren = false
layoutBackgroundHeaderSpace = false
showBreadcrumbs = false
showSummary = false
showViews = true
showLikes = true
showViews = false
showLikes = false
showTableOfContents = true
showCards = true
orderByWeight = true
groupByYear = false
cardView = true
cardViewScreenWidth = false
@@ -99,8 +104,8 @@ smartTOCHideUnfocusedChildren = false
showHero = true
heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
showBreadcrumbs = false
showViews = true
showLikes = true
showViews = false
showLikes = false
showTableOfContents = true
cardView = false
@@ -108,26 +113,37 @@ smartTOCHideUnfocusedChildren = false
showHero = true
heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
showBreadcrumbs = false
showViews = true
showLikes = true
showViews = false
showLikes = false
showTableOfContents = true
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"
# domain = "llama.yoursite.com"
[umamiAnalytics]
# websiteid = "ABC12345"
# domain = "llama.yoursite.com"
# dataDomains = "yoursite.com,yoursite2.com"
# scriptName = ""
# enableTrackEvent = false
[selineAnalytics]
# token = "XXXXXX"
# enableTrackEvent = false
[buymeacoffee]
identifier = "nunocoracao"
globalWidget = true
@@ -140,3 +156,7 @@ smartTOCHideUnfocusedChildren = false
# bing = ""
# pinterest = ""
# yandex = ""
[rssnext]
# feedId = ""
# userId = ""
+25
View File
@@ -0,0 +1,25 @@
---
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">
{{< 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>
<pulsante
id="interruttore-layout-pulsante"
class="px-4 !text-neutral !no-underline round-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Cambia layout &orarr;
</pulsante>
</span>
</div>
```node
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Demo degli strumenti Blowfish" >}}
+29
View File
@@ -0,0 +1,29 @@
---
title: "Blowfish へようこそ! :tada:"
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">
{{< 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"
>
レイアウトを変更する&orarr;
</button>
</span>
</div>
```node
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Blowfish-tools demo" >}}
+7 -11
View File
@@ -3,17 +3,6 @@ title: "Welcome to Blowfish! :tada:"
description: "This page was built using the Blowfish theme for Hugo."
---
Welcome to Blowfish, one of the most flexible and robust Hugo themes. It is designed to be simple, fast and content-focused. Learn more about how to install [here]({{< ref "docs/installation" >}}) or get started with our CLI using:
```node
npx blowfish-tools
```
<iframe width="100%" height="350" src="https://www.youtube.com/embed/SgXhGb-7QbU?si=ce44baicuQ6zMeXz" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<!--You can also find the complete theme documentation in [docs]({{< ref "docs" >}}). Blowfish is highly customizable and can be configured to fit your needs: from a static website to a blog. Checkout some [examples](/examples) and what some of our [users](/users) have been building.
Explore the [shortcode list]({{< ref "docs/shortcodes" >}}) and [sample pages]({{< ref "samples" >}}) to get a feel for what Blowfish can do. If you like what you see, check out the project on <a target="_blank" href="https://github.com/nunocoracao/blowfish">Github</a> or read the [Installation guide]({{< ref "docs/installation" >}}) to get started.-->
<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">
@@ -31,3 +20,10 @@ Explore the [shortcode list]({{< ref "docs/shortcodes" >}}) and [sample pages]({
</div>
```node
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Blowfish-tools demo" >}}
+29
View File
@@ -0,0 +1,29 @@
---
title: "欢迎来到 Blowfish! :tada:"
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">
{{< 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"
>
切换 layout &orarr;
</button>
</span>
</div>
```node
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Blowfish-tools demo" >}}
+5
View File
@@ -0,0 +1,5 @@
---
title: "Esempio di elenco di tassonomia degli autori"
---
Un rapido esempio di come iniziare a utilizzare le tassonomie degli autori nei tuoi articoli.
+5
View File
@@ -0,0 +1,5 @@
---
title: "著者のタクソノミーリストの例"
---
あなたの記事で著者のタクソノミーを使う方法の簡単な例です。
@@ -0,0 +1,5 @@
---
title: "作者列表示例"
---
在你的文章中添加不同作者的简单示例。
@@ -0,0 +1,5 @@
---
title: "Nuno Coraçao"
---
La fantastica biografia di Nuno.
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
Nuno の素晴らしいダミープロフィールです。
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
假装这里有一份 Nuno 的简介。
@@ -0,0 +1,5 @@
---
title: "Secondo autore fittizio"
---
La fantastica biografia fittizia di Dummy Second Author.
@@ -0,0 +1,5 @@
---
title: "2人目のダミー作者"
---
2人目のダミー作者の素晴らしいダミープロフィールです。
@@ -0,0 +1,5 @@
---
title: "Dummy Second Author"
---
假装这里有一份第二位作者的简介。
+15
View File
@@ -0,0 +1,15 @@
---
title: "Documenti"
description: "Scopri come utilizzare Blowfish e le sue funzionalità."
cascade:
showDate: false
showAuthor: false
invertPagination: true
---
{{< lead >}}
Semplice ma potente. Scopri come utilizzare Blowfish e le sue funzionalità.
{{< /lead >}}
Questa sezione contiene tutto ciò che devi sapere su Blowfish. Se sei nuovo, consulta la guida [Installazione]({{< ref "docs/installation" >}}) per iniziare o visita la sezione [Esempi]({{< ref "samples" >}}) per vedere cosa può fare Blowfish.
+17
View File
@@ -0,0 +1,17 @@
---
title: "ドキュメント"
description: "Blowfish の利用方法と特徴について学ぶ。"
cascade:
showDate: false
showAuthor: false
invertPagination: true
---
{{< lead >}}
シンプル、それでいて強力。 Blowfish の利用方法と特徴について学ぶ。
{{< /lead >}}
このセクションでは、Blowfish について知っておくべきことをすべて網羅しています。初めての方は、まず[インストール]({{< ref "docs/installation" >}})ガイドをご覧いただくか、[サンプル]({{< ref "samples" >}})セクションで Blowfish で何ができるかを確認してみてください。
---
+18
View File
@@ -0,0 +1,18 @@
---
title: "文档"
description: "如何使用 Blowfish。"
cascade:
showDate: false
showAuthor: false
invertPagination: true
---
{{< lead >}}
了解如何使用简单而强大的 Blowfish。
{{< /lead >}}
本章节包含了你需要了解的有关 Blowfish 的所有信息。如果你是新用户,请查阅[安装]({{< ref "docs/installation" >}}) 指南,或者访问[示例]({{< ref "samples" >}}) 来了解 Blowfish 能做什么。
---
@@ -0,0 +1,574 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative"
width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.7735807359934106" x="0" y="0" width="345.6" height="345.6"
patternUnits="userSpaceOnUse">
<g transform="scale(1.35)">
<g>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="253.67183555350317"
y2="322.3700682221699" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10s"></animateTransform>
</g>
<g>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="7.343083737977565" x2="-29.40438263629852" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="2.4358284744095045" x2="-27.900932167205383" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="5s"></animateTransform>
</g>
<g>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="248.28896398255995"
y2="300.28675048655543" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="254.79057005056973"
y2="269.5365126987142" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10.3333333333333335s"></animateTransform>
</g>
</g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.7735807359934106)"></rect>
</svg>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 667 KiB

@@ -0,0 +1,146 @@
<svg id="canvas" height="100%" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev/svgjs" viewBox="0 0 600 600"><rect width="600" height="600" fill="transparent"></rect><mask id="mask" mask-type="alpha" maskUnits="userSpaceOnUse"><rect transform="translate(0, 0)" width="600" height="600" fill="white"></rect></mask><svg><path transform="translate(0, 0 translate(30,30) rotate(180) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#03045e"></path></svg><svg><path transform="translate(0, 3600 translate(30,30) rotate(270) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#90e0ef"></path></svg><svg><path transform="
translate(0, 120)
" d="M0 0h60v60H0z" fill="
#90e0ef"></path></svg><svg><path transform="translate(0, 10800 translate(30,30) rotate(270) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#00b4d8"></path></svg><svg><path transform="translate(0,240) translate(30,30) rotate(270) translate(-30,-30)" fill="#ade8f4" d="M60 0v60H0V0z"></path><path transform="translate(0,240) translate(30,30) rotate(270) translate(-30,-30)" fill="#03045e" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="translate(0, 300) translate(30,30) rotate(180) translate(-30,-30)" fill="#023e8a" d="M0 0h60v60H0z"></path><circle cx="30" cy="30" r="30" transform="translate(0, 300) translate(30,30) rotate(180) translate(-30,-30)" fill="#caf0f8"></circle></svg><svg><path transform="translate(0,360) translate(30,30) rotate(90) translate(-30,-30)" fill="#0096c7" d="M60 0v60H0V0z"></path><path transform="translate(0,360) translate(30,30) rotate(90) translate(-30,-30)" fill="#caf0f8" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="translate(0, 25200 translate(30,30) rotate(270) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#00b4d8"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(0, 480)
" fill="
#0077b6
"></circle></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(0, 540)
" fill="
#90e0ef
"></circle></svg><svg><path transform="translate(3600, 0 translate(30,30) rotate(0) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#ade8f4"></path></svg><svg><path transform="
translate(60, 60)
" d="M0 0h60v60H0z" fill="
#48cae4"></path></svg><svg><path transform="
translate(60, 120)
" d="M0 0h60v60H0z" fill="
#90e0ef"></path></svg><svg><path transform="translate(3600, 10800 translate(30,30) rotate(0) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#023e8a"></path></svg><svg><path transform="translate(3600, 14400 translate(30,30) rotate(180) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#03045e"></path></svg><svg><path transform="
translate(60, 300)
" d="M0 0h60v60H0z" fill="
#00b4d8"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(60, 360)
" fill="
#03045e
"></circle></svg><svg><path transform="translate(60,420) translate(30,30) rotate(90) translate(-30,-30)" fill="#90e0ef" d="M60 0v60H0V0z"></path><path transform="translate(60,420) translate(30,30) rotate(90) translate(-30,-30)" fill="#00b4d8" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="translate(60,480) translate(30,30) rotate(90) translate(-30,-30)" fill="#0096c7" d="M60 0v60H0V0z"></path><path transform="translate(60,480) translate(30,30) rotate(90) translate(-30,-30)" fill="#0096c7" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="translate(3600, 32400 translate(30,30) rotate(180) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#03045e"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(120, 0)
" fill="
#00b4d8
"></circle></svg><svg><path transform="translate(120,60) translate(30,30) rotate(180) translate(-30,-30)" fill="#caf0f8" d="M60 0v60H0V0z"></path><path transform="translate(120,60) translate(30,30) rotate(180) translate(-30,-30)" fill="#90e0ef" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(120, 120)
" fill="
#00b4d8
"></circle></svg><svg><path transform="translate(120, 180) translate(30,30) rotate(180) translate(-30,-30)" fill="#48cae4" d="M0 0h60v60H0z"></path><circle cx="30" cy="30" r="30" transform="translate(120, 180) translate(30,30) rotate(180) translate(-30,-30)" fill="#023e8a"></circle></svg><svg><path transform="translate(120, 240) translate(30,30) rotate(180) translate(-30,-30)" fill="#03045e" d="M0 0h60v60H0z"></path><circle cx="30" cy="30" r="30" transform="translate(120, 240) translate(30,30) rotate(180) translate(-30,-30)" fill="#00b4d8"></circle></svg><svg><path transform="translate(7200, 18000 translate(30,30) rotate(270) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#90e0ef"></path></svg><svg><path transform="translate(7200, 21600 translate(30,30) rotate(90) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#023e8a"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(120, 420)
" fill="
#023e8a
"></circle></svg><svg><path transform="
translate(120, 480)
" d="M0 0h60v60H0z" fill="
#48cae4"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(120, 540)
" fill="
#00b4d8
"></circle></svg><svg><path transform="translate(10800, 0 translate(30,30) rotate(0) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#00b4d8"></path></svg><svg><path transform="
translate(180, 60)
" d="M0 0h60v60H0z" fill="
#023e8a"></path></svg><svg><path transform="translate(180,120) translate(30,30) rotate(90) translate(-30,-30)" fill="#ade8f4" d="M60 0v60H0V0z"></path><path transform="translate(180,120) translate(30,30) rotate(90) translate(-30,-30)" fill="#00b4d8" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="
translate(180, 180)
" d="M0 0h60v60H0z" fill="
#0096c7"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(180, 240)
" fill="
#90e0ef
"></circle></svg><svg><path transform="translate(180,300) translate(30,30) rotate(0) translate(-30,-30)" fill="#0096c7" d="M60 0v60H0V0z"></path><path transform="translate(180,300) translate(30,30) rotate(0) translate(-30,-30)" fill="#023e8a" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="
translate(180, 360)
" d="M0 0h60v60H0z" fill="
#00b4d8"></path></svg><svg><path transform="
translate(180, 420)
" d="M0 0h60v60H0z" fill="
#90e0ef"></path></svg><svg><path transform="
translate(180, 480)
" d="M0 0h60v60H0z" fill="
#0077b6"></path></svg><svg><path transform="translate(10800, 32400 translate(30,30) rotate(0) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#ade8f4"></path></svg><svg><path transform="translate(14400, 0 translate(30,30) rotate(180) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#0077b6"></path></svg><svg><path transform="translate(240, 60) translate(30,30) rotate(180) translate(-30,-30)" fill="#0096c7" d="M0 0h60v60H0z"></path><circle cx="30" cy="30" r="30" transform="translate(240, 60) translate(30,30) rotate(180) translate(-30,-30)" fill="#023e8a"></circle></svg><svg><path transform="
translate(240, 120)
" d="M0 0h60v60H0z" fill="
#0096c7"></path></svg><svg><path transform="
translate(240, 180)
" d="M0 0h60v60H0z" fill="
#00b4d8"></path></svg><svg><path transform="translate(14400, 14400 translate(30,30) rotate(0) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#caf0f8"></path></svg><svg><path transform="
translate(240, 300)
" d="M0 0h60v60H0z" fill="
#0096c7"></path></svg><svg><path transform="translate(240, 360) translate(30,30) rotate(270) translate(-30,-30)" fill="#0077b6" d="M0 0h60v60H0z"></path><circle cx="30" cy="30" r="30" transform="translate(240, 360) translate(30,30) rotate(270) translate(-30,-30)" fill="#ade8f4"></circle></svg><svg><path transform="translate(240,420) translate(30,30) rotate(270) translate(-30,-30)" fill="#023e8a" d="M60 0v60H0V0z"></path><path transform="translate(240,420) translate(30,30) rotate(270) translate(-30,-30)" fill="#00b4d8" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="translate(240,480) translate(30,30) rotate(180) translate(-30,-30)" fill="#48cae4" d="M60 0v60H0V0z"></path><path transform="translate(240,480) translate(30,30) rotate(180) translate(-30,-30)" fill="#0096c7" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(240, 540)
" fill="
#90e0ef
"></circle></svg><svg><path transform="translate(18000, 0 translate(30,30) rotate(270) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#0077b6"></path></svg><svg><path transform="
translate(300, 60)
" d="M0 0h60v60H0z" fill="
#023e8a"></path></svg><svg><path transform="translate(18000, 7200 translate(30,30) rotate(90) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#ade8f4"></path></svg><svg><path transform="
translate(300, 180)
" d="M0 0h60v60H0z" fill="
#caf0f8"></path></svg><svg><path transform="translate(300,240) translate(30,30) rotate(270) translate(-30,-30)" fill="#0096c7" d="M60 0v60H0V0z"></path><path transform="translate(300,240) translate(30,30) rotate(270) translate(-30,-30)" fill="#0096c7" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="
translate(300, 300)
" d="M0 0h60v60H0z" fill="
#03045e"></path></svg><svg><path transform="translate(18000, 21600 translate(30,30) rotate(0) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#48cae4"></path></svg><svg><path transform="
translate(300, 420)
" d="M0 0h60v60H0z" fill="
#90e0ef"></path></svg><svg><path transform="translate(18000, 28800 translate(30,30) rotate(90) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#023e8a"></path></svg><svg><path transform="translate(300,540) translate(30,30) rotate(0) translate(-30,-30)" fill="#48cae4" d="M60 0v60H0V0z"></path><path transform="translate(300,540) translate(30,30) rotate(0) translate(-30,-30)" fill="#90e0ef" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="translate(360,0) translate(30,30) rotate(270) translate(-30,-30)" fill="#0077b6" d="M60 0v60H0V0z"></path><path transform="translate(360,0) translate(30,30) rotate(270) translate(-30,-30)" fill="#90e0ef" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(360, 60)
" fill="
#caf0f8
"></circle></svg><svg><path transform="translate(360,120) translate(30,30) rotate(180) translate(-30,-30)" fill="#caf0f8" d="M60 0v60H0V0z"></path><path transform="translate(360,120) translate(30,30) rotate(180) translate(-30,-30)" fill="#0096c7" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="
translate(360, 180)
" d="M0 0h60v60H0z" fill="
#0077b6"></path></svg><svg><path transform="translate(360,240) translate(30,30) rotate(270) translate(-30,-30)" fill="#00b4d8" d="M60 0v60H0V0z"></path><path transform="translate(360,240) translate(30,30) rotate(270) translate(-30,-30)" fill="#00b4d8" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="translate(360, 300) translate(30,30) rotate(180) translate(-30,-30)" fill="#0096c7" d="M0 0h60v60H0z"></path><circle cx="30" cy="30" r="30" transform="translate(360, 300) translate(30,30) rotate(180) translate(-30,-30)" fill="#023e8a"></circle></svg><svg><path transform="
translate(360, 360)
" d="M0 0h60v60H0z" fill="
#ade8f4"></path></svg><svg><path transform="translate(360,420) translate(30,30) rotate(90) translate(-30,-30)" fill="#0096c7" d="M60 0v60H0V0z"></path><path transform="translate(360,420) translate(30,30) rotate(90) translate(-30,-30)" fill="#0096c7" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(360, 480)
" fill="
#ade8f4
"></circle></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(360, 540)
" fill="
#ade8f4
"></circle></svg><svg><path transform="translate(420,0) translate(30,30) rotate(270) translate(-30,-30)" fill="#023e8a" d="M60 0v60H0V0z"></path><path transform="translate(420,0) translate(30,30) rotate(270) translate(-30,-30)" fill="#0096c7" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="translate(25200, 3600 translate(30,30) rotate(0) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#0096c7"></path></svg><svg><path transform="
translate(420, 120)
" d="M0 0h60v60H0z" fill="
#48cae4"></path></svg><svg><path transform="translate(420,180) translate(30,30) rotate(90) translate(-30,-30)" fill="#0077b6" d="M60 0v60H0V0z"></path><path transform="translate(420,180) translate(30,30) rotate(90) translate(-30,-30)" fill="#023e8a" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="translate(25200, 14400 translate(30,30) rotate(270) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#48cae4"></path></svg><svg><path transform="translate(420,300) translate(30,30) rotate(180) translate(-30,-30)" fill="#00b4d8" d="M60 0v60H0V0z"></path><path transform="translate(420,300) translate(30,30) rotate(180) translate(-30,-30)" fill="#48cae4" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="translate(25200, 21600 translate(30,30) rotate(180) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#023e8a"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(420, 420)
" fill="
#023e8a
"></circle></svg><svg><path transform="translate(420,480) translate(30,30) rotate(90) translate(-30,-30)" fill="#ade8f4" d="M60 0v60H0V0z"></path><path transform="translate(420,480) translate(30,30) rotate(90) translate(-30,-30)" fill="#caf0f8" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="
translate(420, 540)
" d="M0 0h60v60H0z" fill="
#ade8f4"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(480, 0)
" fill="
#03045e
"></circle></svg><svg><path transform="
translate(480, 60)
" d="M0 0h60v60H0z" fill="
#023e8a"></path></svg><svg><path transform="translate(28800, 7200 translate(30,30) rotate(270) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#00b4d8"></path></svg><svg><path transform="translate(480,180) translate(30,30) rotate(90) translate(-30,-30)" fill="#48cae4" d="M60 0v60H0V0z"></path><path transform="translate(480,180) translate(30,30) rotate(90) translate(-30,-30)" fill="#ade8f4" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="
translate(480, 240)
" d="M0 0h60v60H0z" fill="
#48cae4"></path></svg><svg><path transform="
translate(480, 300)
" d="M0 0h60v60H0z" fill="
#90e0ef"></path></svg><svg><path transform="translate(480, 360) translate(30,30) rotate(270) translate(-30,-30)" fill="#ade8f4" d="M0 0h60v60H0z"></path><circle cx="30" cy="30" r="30" transform="translate(480, 360) translate(30,30) rotate(270) translate(-30,-30)" fill="#03045e"></circle></svg><svg><path transform="translate(480,420) translate(30,30) rotate(180) translate(-30,-30)" fill="#90e0ef" d="M60 0v60H0V0z"></path><path transform="translate(480,420) translate(30,30) rotate(180) translate(-30,-30)" fill="#caf0f8" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(480, 480)
" fill="
#03045e
"></circle></svg><svg><path transform="translate(28800, 32400 translate(30,30) rotate(90) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#00b4d8"></path></svg><svg><path transform="translate(540,0) translate(30,30) rotate(270) translate(-30,-30)" fill="#90e0ef" d="M60 0v60H0V0z"></path><path transform="translate(540,0) translate(30,30) rotate(270) translate(-30,-30)" fill="#023e8a" d="M60 0v60H0C0 26.863 26.863 0 60 0z"></path></svg><svg><path transform="translate(540, 60) translate(30,30) rotate(270) translate(-30,-30)" fill="#0077b6" d="M0 0h60v60H0z"></path><circle cx="30" cy="30" r="30" transform="translate(540, 60) translate(30,30) rotate(270) translate(-30,-30)" fill="#0077b6"></circle></svg><svg><path transform="translate(540, 120) translate(30,30) rotate(90) translate(-30,-30)" fill="#90e0ef" d="M0 0h60v60H0z"></path><circle cx="30" cy="30" r="30" transform="translate(540, 120) translate(30,30) rotate(90) translate(-30,-30)" fill="#0096c7"></circle></svg><svg><path transform="translate(32400, 10800 translate(30,30) rotate(0) translate(-30,-30)" d="M0 60C33.1371 60 60 33.1371 60 5.24537e-06L5.24537e-06 0L0 60Z" fill="#90e0ef"></path></svg><svg><path transform="translate(540, 240) translate(30,30) rotate(90) translate(-30,-30)" fill="#0096c7" d="M0 0h60v60H0z"></path><circle cx="30" cy="30" r="30" transform="translate(540, 240) translate(30,30) rotate(90) translate(-30,-30)" fill="#0077b6"></circle></svg><svg><path transform="
translate(540, 300)
" d="M0 0h60v60H0z" fill="
#023e8a"></path></svg><svg><path transform="translate(540, 360) translate(30,30) rotate(0) translate(-30,-30)" fill="#00b4d8" d="M0 0h60v60H0z"></path><circle cx="30" cy="30" r="30" transform="translate(540, 360) translate(30,30) rotate(0) translate(-30,-30)" fill="#00b4d8"></circle></svg><svg><path transform="
translate(540, 420)
" d="M0 0h60v60H0z" fill="
#0077b6"></path></svg><svg><path transform="
translate(540, 480)
" d="M0 0h60v60H0z" fill="
#48cae4"></path></svg><svg><circle cx="30" cy="30" r="30" transform="
translate(540, 540)
" fill="
#0096c7
"></circle></svg></svg>

After

Width:  |  Height:  |  Size: 18 KiB

@@ -0,0 +1,235 @@
---
title: "Advanced Customisation"
weight: 13
draft: false
description: "Learn how to build Blowfish manually."
slug: "advanced-customisation"
tags: ["advanced", "css", "docs"]
series: ["Documentation"]
series_order: 13
---
There are many ways you can make advanced changes to Blowfish. Read below to learn more about what can be customised and the best way of achieving your desired result.
If you need further advice, post your questions on [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions).
## Hugo project structure
Before leaping into it, first a quick note about [Hugo project structure](https://gohugo.io/getting-started/directory-structure/) and best practices for managing your content and theme customisations.
{{< alert >}}
**In summary:** Never directly edit the theme files. Only make customisations in your Hugo project's sub-directories, not in the themes directory itself.
{{< /alert >}}
Blowfish is built to take advantage of all the standard Hugo practices. It is designed to allow all aspects of the theme to be customised and overridden without changing any of the core theme files. This allows for a seamless upgrade experience while giving you total control over the look and feel of your website.
In order to achieve this, you should never manually adjust any of the theme files directly. Whether you install using Hugo modules, as a git submodule or manually include the theme in your `themes/` directory, you should always leave these files intact.
The correct way to adjust any theme behaviour is by overriding files using Hugo's powerful [file lookup order](https://gohugo.io/templates/lookup-order/). In summary, the lookup order ensures any files you include in your project directory will automatically take precedence over any theme files.
For example, if you wanted to override the main article template in Blowfish, you can simply create your own `layouts/_default/single.html` file and place it in the root of your project. This file will then override the `single.html` from the theme without ever changing the theme itself. This works for any theme files - HTML templates, partials, shortcodes, config files, data, assets, etc.
As long as you follow this simple practice, you will always be able to update the theme (or test different theme versions) without worrying that you will lose any of your custom changes.
## Change image optimization settings
Hugo has various builtin methods to resize, crop and optimize images.
As an example - in `layouts/partials/article-link/card.html`, you have the following code:
```go
{{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
```
The default behavior of Hugo here is to resize the image to 600px keeping the ratio.
It is worth noting here that default image configurations such as [anchor point](https://gohugo.io/content-management/image-processing/#anchor) can also be set in your [site configuration](https://gohugo.io/content-management/image-processing/#processing-options) as well as in the template itself.
See the [Hugo docs on image processing](https://gohugo.io/content-management/image-processing/#image-processing-methods) for more info.
## Colour schemes
Blowfish ships with a number of colour schemes out of the box. To change the basic colour scheme, you can set the `colorScheme` theme parameter. Refer to the [Getting Started]({{< ref "getting-started#colour-schemes" >}}) section to learn more about the built-in schemes.
In addition to the default schemes, you can also create your own and re-style the entire website to your liking. Schemes are created by by placing a `<scheme-name>.css` file in the `assets/css/schemes/` folder. Once the file is created, simply refer to it by name in the theme configuration.
{{< alert "github">}}
**Note:** generating these files manually can be hard, I've built a `nodejs` terminal tool to help with that, [Fugu](https://github.com/nunocoracao/fugu). In a nutshell, you pass the main three `hex` values of your color palette and the program will output a css file that can be imported directly into Blowfish.
{{< /alert >}}
Blowfish defines a three-colour palette that is used throughout the theme. The three colours are defined as `neutral`, `primary` and `secondary` variants, each containing ten shades of colour.
Due to the way Tailwind CSS 3.0 calculates colour values with opacity, the colours specified in the scheme need to [conform to a particular format](https://github.com/adamwathan/tailwind-css-variable-text-opacity-demo) by providing the red, green and blue colour values.
```css
:root {
--color-primary-500: 139, 92, 246;
}
```
This example defines a CSS variable for the `primary-500` colour with a red value of `139`, green value of `92` and blue value of `246`.
Use one of the existing theme stylesheets as a template. You are free to define your own colours, but for some inspiration, check out the official [Tailwind colour palette reference](https://tailwindcss.com/docs/customizing-colors#color-palette-reference).
## Overriding the stylesheet
Sometimes you need to add a custom style to style your own HTML elements. Blowfish provides for this scenario by allowing you to override the default styles in your own CSS stylesheet. Simply create a `custom.css` file in your project's `assets/css/` folder.
The `custom.css` file will be minified by Hugo and loaded automatically after all the other theme styles which means anything in your custom file will take precedence over the defaults.
### Using additional fonts
Blowfish allows you to easily change the font for your site. After creating a `custom.css` file in your project's `assets/css/` folder, place you font file inside a `fonts` folder within the `static` root folder.
```shell
.
├── assets
│ └── css
│ └── custom.css
...
└─── static
└── fonts
└─── font.ttf
```
This makes the font available to the website. Now, the font can just import it in your `custom.css` and replaced wherever you see fit. The example below shows what replacing the font for the entire `html` would look like.
```css
@font-face {
font-family: font;
src: url('/fonts/font.ttf');
}
html {
font-family: font;
}
```
### Adjusting the font size
Changing the font size of your website is one example of overriding the default stylesheet. Blowfish makes this simple as it uses scaled font sizes throughout the theme which are derived from the base HTML font size. By default, Tailwind sets the default size to `12pt`, but it can be changed to whatever value you prefer.
Create a `custom.css` file using the [instructions above]({{< ref "#overriding-the-stylesheet" >}}) and add the following CSS declaration:
```css
/* Increase the default font size */
html {
font-size: 13pt;
}
```
Simply by changing this one value, all the font sizes on your website will be adjusted to match this new size. Therefore, to increase the overall font sizes used, make the value greater than `12pt`. Similarly, to decrease the font sizes, make the value less than `12pt`.
## Building the theme CSS from source
If you'd like to make a major change, you can take advantage of Tailwind CSS's JIT compiler and rebuild the entire theme CSS from scratch. This is useful if you want to adjust the Tailwind configuration or add extra Tailwind classes to the main stylesheet.
{{< alert >}}
**Note:** Building the theme manually is intended for advanced users.
{{< /alert >}}
Let's step through how building the Tailwind CSS works.
### Tailwind configuration
In order to generate a CSS file that only contains the Tailwind classes that are actually being used the JIT compiler needs to scan through all the HTML templates and Markdown content files to check which styles are present in the markup. The compiler does this by looking at the `tailwind.config.js` file which is included in the root of the theme directory:
```js
// themes/blowfish/tailwind.config.js
module.exports = {
content: [
"./layouts/**/*.html",
"./content/**/*.{html,md}",
"./themes/blowfish/layouts/**/*.html",
"./themes/blowfish/content/**/*.{html,md}",
],
// and more...
};
```
This default configuration has been included with these content paths so that you can easily generate your own CSS file without needing to modify it, provided you follow a particular project structure. Namely, **you have to include Blowfish in your project as a subdirectory at `themes/blowfish/`**. This means you cannot easily use Hugo Modules to install the theme and you must go down either the git submodule (recommended) or manual install routes. The [Installation docs]({{< ref "installation" >}}) explain how to install the theme using either of these methods.
### Project structure
In order to take advantage of the default configuration, your project should look something like this...
```shell
.
├── assets
│ └── css
│ └── compiled
│ └── main.css # this is the file we will generate
├── config # site config
│ └── _default
├── content # site content
│ ├── _index.md
│ ├── projects
│ │ └── _index.md
│ └── blog
│ └── _index.md
├── layouts # custom layouts for your site
│ ├── partials
│ │ └── extend-article-link/simple.html
│ ├── projects
│ │ └── list.html
│ └── shortcodes
│ └── disclaimer.html
└── themes
└── blowfish # git submodule or manual theme install
```
This example structure adds a new `projects` content type with its own custom layout along with a custom shortcode and extended partial. Provided the project follows this structure, all that's required is to recompile the `main.css` file.
### Install dependencies
In order for this to work you'll need to change into the `themes/blowfish/` directory and install the project dependencies. You'll need [npm](https://docs.npmjs.com/cli/v7/configuring-npm/install) on your local machine for this step.
```shell
cd themes/blowfish
npm install
```
### Run the Tailwind compiler
With the dependencies installed all that's left is to use [Tailwind CLI](https://v2.tailwindcss.com/docs/installation#using-tailwind-cli) to invoke the JIT compiler. Navigate back to the root of your Hugo project and issue the following command:
```shell
cd ../..
./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit
```
It's a bit of an ugly command due to the paths involved but essentially you're calling Tailwind CLI and passing it the location of the Tailwind config file (the one we looked at above), where to find the theme's `main.css` file and then where you want the compiled CSS file to be placed (it's going into the `assets/css/compiled/` folder of your Hugo project).
The config file will automatically inspect all the content and layouts in your project as well as all those in the theme and build a new CSS file that contains all the CSS required for your website. Due to the way Hugo handles file hierarchy, this file in your project will now automatically override the one that comes with the theme.
Each time you make a change to your layouts and need new Tailwind CSS styles, you can simply re-run the command and generate the new CSS file. You can also add `-w` to the end of the command to run the JIT compiler in watch mode.
### Make a build script
To fully complete this solution, you can simplify this whole process by adding aliases for these commands, or do what I do and add a `package.json` to the root of your project which contains the necessary scripts...
```js
// package.json
{
"name": "my-website",
"version": "1.0.0",
"description": "",
"scripts": {
"server": "hugo server -b http://localhost -p 8000",
"dev": "NODE_ENV=development ./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit -w",
"build": "NODE_ENV=production ./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit"
},
// and more...
}
```
Now when you want to work on designing your site, you can invoke `npm run dev` and the compiler will run in watch mode. When you're ready to deploy, run `npm run build` and you'll get a clean Tailwind CSS build.
🙋‍♀️ If you need help, feel free to ask a question on [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions).
@@ -0,0 +1,236 @@
---
title: "高度なカスタマイズ"
weight: 13
draft: false
description: "Blowfishを手動でビルドする方法を学びましょう。"
slug: "advanced-customisation"
tags: ["advanced", "css", "docs"]
series: ["Documentation"]
series_order: 13
---
Blowfish には高度な変更を加えるための多くの方法があります。カスタマイズできる内容や、希望する結果を得るための最良の方法については、以下をご覧ください。
さらにアドバイスが必要な場合は、 [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions) に質問を投稿してください。
## Hugo プロジェクトの構造
始める前に、[Hugo プロジェクトの構造](https://gohugo.io/getting-started/directory-structure/)と、コンテンツとテーマのカスタマイズを管理するためのベストプラクティスについて簡単に説明します。
{{< alert >}}
**簡単に言うと:** テーマファイルを直接編集してはいけません。カスタマイズは、テーマディレクトリ自体ではなく、Hugoプロジェクトのサブディレクトリ内でのみ行います。
{{< /alert >}}
Blowfish は、Hugo の標準的な実装をすべて活用できるように構築されています。コアのテーマファイルを変更することなく、テーマのあらゆる側面をカスタマイズしたりオーバーライドしたりできるように設計されています。これにより、ウェブサイトの見た目を完全にコントロールしながら、シームレスな改善が可能になります。
そのために、テーマファイルを手動で直接編集するのは避けてください。Hugo モジュール、git サブモジュール、または手動でテーマを `themes/` ディレクトリに格納するなど、どのインストール方法を使用する場合でも、これらのファイルは常にそのままにしておく必要があります。
テーマの動作を調整する正しい方法は、Hugo の強力な[ファイル優先順位](https://gohugo.io/templates/lookup-order/)を使用してファイルをオーバーライドすることです。要約すると、優先順位により、プロジェクトディレクトリに含めたファイルは、すべてのテーマファイルよりも自動的に優先されます。
たとえば、Blowfish のメイン記事テンプレートをオーバーライドしたい場合は、独自の `layouts/_default/single.html` ファイルを作成してプロジェクトのルートに配置するだけです。このファイルは、テーマ自体を変更することなく、テーマの `single.html` をオーバーライドします。これは、HTML テンプレート、パーシャル、ショートコード、設定ファイル、データ、アセットなど、すべてのテーマファイルで機能します。
この簡単なプラクティスに従う限り、カスタム変更が失われることを心配することなく、いつでもテーマを更新したり(または異なるテーマバージョンをテストしたり)することができます。
## 画像最適化設定の変更
Hugo には、画像のサイズ変更、トリミング、最適化を行うためのさまざまな組み込みメソッドがあります。
例として - `layouts/partials/article-link/card.html` には、次のコードがあります。
```go
{{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
```
ここでの Hugo のデフォルトの動作は、比率を維持しながら画像のサイズを 600px に変更することです。
ここで、[アンカーポイント](https://gohugo.io/content-management/image-processing/#anchor)のようなデフォルトの画像設定は、テンプレート自体だけでなく、[サイト設定](https://gohugo.io/content-management/image-processing/#processing-options)でも設定できることに注意してください。
詳細については、[画像処理に関する Hugo ドキュメント](https://gohugo.io/content-management/image-processing/#image-processing-methods)を参照してください。
## カラースキーム
Blowfish には、すぐに使用できる多数のカラースキームが付属しています。基本的なカラースキームを変更するには、`colorScheme` テーマパラメータを設定します。 組み込みのスキームの詳細については、[はじめに]({{< ref "getting-started#カラースキーム" >}})セクションを参照してください。
デフォルトのスキームに加えて、独自のスキームを作成し、ウェブサイト全体を好みに合わせて再スタイルすることもできます。 スキームは、`assets/css/schemes/` フォルダに `<scheme-name>.css` ファイルを配置することで作成されます。ファイルが作成されたら、テーマ設定で名前で参照するだけです。
{{< alert "github">}}
**注:** これらのファイルを手動で生成するのは難しい場合があるため、それを支援する `nodejs` ターミナルツール [Fugu](https://github.com/nunocoracao/fugu) を作成しました。これは、カラーパレットの主要な3つの `hex` 値を渡すと、プログラムは Blowfish に直接インポートできる css ファイルを出力します。
{{< /alert >}}
Blowfish は、テーマ全体で使用される3色のパレットを定義します。3色は `neutral`、`primary`、`secondary` のバリエーションとして定義され、それぞれに10の色合いが含まれています。
Tailwind CSS 3.0 が不透明度で色の値を計算する方式のため、スキームで指定された色は、赤、緑、青の色の値を提供することにより、[特定の形式に準拠](https://github.com/adamwathan/tailwind-css-variable-text-opacity-demo)する必要があります。
```css
:root {
--color-primary-500: 139, 92, 246;
}
```
この例では、赤の値が `139`、緑の値が `92`、青の値が `246` の `primary-500` カラーの CSS 変数を定義しています。
既存のテーマスタイルシートの1つをテンプレートとして使用します。独自の色を自由に定義できますが、インスピレーションが必要な場合は、公式の [Tailwind カラーパレットリファレンス](https://tailwindcss.com/docs/customizing-colors#color-palette-reference)を確認してください。
## スタイルシートのオーバーライド
独自の HTML 要素をスタイルするために、カスタムスタイルを追加する必要がある場合があります。Blowfish は、独自の CSS スタイルシートでデフォルトのスタイルをオーバーライドできるようにすることで、このシナリオに対応します。プロジェクトの `assets/css/` フォルダに `custom.css` ファイルを作成するだけです。
`custom.css` ファイルは Hugo によって縮小され、他のすべてのテーマスタイルの後に自動的にロードされます。つまり、カスタムファイルの内容はデフォルトよりも優先されます。
### 追加フォントの使用
Blowfishでは、サイトのフォントを簡単に変更することができます。プロジェクトの`assets/css/`フォルダ内に`custom.css`ファイルを作成した後、`static`ルートフォルダ内の`fonts`フォルダ内にフォントファイルを配置するだけです。
```shell
.
├── assets
│ └── css
│ └── custom.css
...
└─── static
└── fonts
└─── font.ttf
```
これにより、フォントをウェブサイトで使用できるようになります。すると、フォントを `custom.css` にインポートし、適切と思われる場所で置き換えることができます。以下の例は、`html` 全体のフォントを置き換える方法を示しています。
```css
@font-face {
font-family: font;
src: url('/fonts/font.ttf');
}
html {
font-family: font;
}
```
### フォントサイズの調整
ウェブサイトのフォントサイズを変更することは、デフォルトのスタイルシートをオーバーライドする1つの例です。Blowfish は、テーマ全体で基本 HTML フォントサイズから派生したスケーリングされたフォントサイズを使用するため、これを簡単にします。デフォルトでは、Tailwind はデフォルトサイズを `12pt` に設定していますが、任意の値に変更できます。
[上記の手順]({{< ref "#スタイルシートのオーバーライド" >}}) を使用して `custom.css` ファイルを作成し、次の CSS 宣言を追加します。
```css
/* デフォルトのフォントサイズを大きくする */
html {
font-size: 13pt;
}
```
この1つの値を変更するだけで、ウェブサイトのすべてのフォントサイズがこの新しいサイズに合わせて調整されます。なので、使用されるフォントサイズ全体を大きくするには、値を `12pt` より大きくすれば良いです。同様に、フォントサイズを小さくするには、値を `12pt` より小さくすれば良いです。
## ソースからテーマ CSS をビルドする
大幅な変更を加えたい場合は、Tailwind CSS の JIT コンパイラを利用して、テーマ CSS 全体を最初から再構築できます。これは、Tailwind 設定を調整したり、メインスタイルシートに追加の Tailwind クラスを追加したりする場合に便利です。
{{< alert >}}
**注:** テーマの手動ビルドは上級者向けです。
{{< /alert >}}
Tailwind CSS のビルド方法を順番に説明します。
### Tailwind 設定
実際に使用されている Tailwind クラスのみを含む CSS ファイルを生成するために、JIT コンパイラはすべての HTML テンプレートと Markdown コンテンツファイルをスキャンして、マークアップにどのスタイルが存在するかを確認する必要があります。コンパイラは、テーマディレクトリのルートに含まれる `tailwind.config.js` ファイルを調べてこれを行います。
```js
// themes/blowfish/tailwind.config.js
module.exports = {
content: [
"./layouts/**/*.html",
"./content/**/*.{html,md}",
"./themes/blowfish/layouts/**/*.html",
"./themes/blowfish/content/**/*.{html,md}",
],
// その他...
};
```
このデフォルト設定には、これらのコンテンツパスが含まれているため、特定のプロジェクト構造に従う限り、変更することなく独自の CSS ファイルを簡単に生成できます。つまり、**Blowfish を `themes/blowfish/` のサブディレクトリとしてプロジェクトに含める必要があります**。これは、Hugo Modules を使用してテーマを簡単にインストールできないことを意味し、git サブモジュール(推奨)または手動インストールルートのいずれかを選択する必要があります。[インストールドキュメント]({{< ref "installation" >}}) では、これらのいずれかの方法を使用してテーマをインストールする方法について説明しています。
### プロジェクト構造
デフォルト設定を利用するために、プロジェクトは次のようになります...
```shell
.
├── assets
│ └── css
│ └── compiled
│ └── main.css # これが生成するファイル
├── config # サイト設定
│ └── _default
├── content # サイトコンテンツ
│ ├── _index.md
│ ├── projects
│ │ └── _index.md
│ └── blog
│ └── _index.md
├── layouts # サイトのカスタムレイアウト
│ ├── partials
│ │ └── extend-article-link/simple.html
│ ├── projects
│ │ └── list.html
│ └── shortcodes
│ └── disclaimer.html
└── themes
└── blowfish # git サブモジュールまたは手動テーマインストール
```
この例の構造では、独自のカスタムレイアウトを持つ新しい `projects` コンテンツタイプと、カスタムショートコードと拡張パーシャルが追加されています。プロジェクトがこの構造に従っている場合、必要なのは `main.css` ファイルを再コンパイルすることだけです。
### 依存関係のインストール
これが機能するには、`themes/blowfish/` ディレクトリに移動し、プロジェクトの依存関係をインストールする必要があります。この手順では、ローカルマシンに [npm](https://docs.npmjs.com/cli/v7/configuring-npm/install) が必要になります。
```shell
cd themes/blowfish
npm install
```
### Tailwind コンパイラを実行する
依存関係がインストールされたら、あとは [Tailwind CLI](https://v2.tailwindcss.com/docs/installation#using-tailwind-cli) を使用して JIT コンパイラを呼び出すだけです。Hugo プロジェクトのルートに戻り、次のコマンドを実行します。
```shell
cd ../..
./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit
```
関係するパスのため少し見苦しいコマンドですが、基本的に Tailwind CLI を呼び出し、Tailwind 設定ファイルの場所(上で見たもの)、テーマの `main.css` ファイルの場所、そしてコンパイル済み CSS ファイルを配置する場所(Hugo プロジェクトの `assets/css/compiled/` フォルダ)を渡しています。
設定ファイルは、プロジェクト内のすべてのコンテンツとレイアウト、およびテーマ内のすべてのコンテンツとレイアウトを自動的にスキャンし、ウェブサイトに必要なすべての CSS を含む新しい CSS ファイルを作ります。Hugo のファイル階層を処理する方法のため、プロジェクト内のこのファイルは、テーマに付属のファイルを自動的にオーバーライドするようになります。
レイアウトに変更を加え、新しい Tailwind CSS スタイルが必要になるたびに、コマンドを再実行して新しい CSS ファイルを生成するだけです。 コマンドの最後に `-w` を追加して、JIT コンパイラをウォッチモードで実行することもできます。
### ビルドスクリプトを作成する
このソリューションを完全に完了するには、これらのコマンドのエイリアスを追加するか、私が行っているように、必要なスクリプトを含む `package.json` をプロジェクトのルートに追加することで、このプロセス全体を簡素化できます...
```js
// package.json
{
"name": "my-website",
"version": "1.0.0",
"description": "",
"scripts": {
"server": "hugo server -b http://localhost -p 8000",
"dev": "NODE_ENV=development ./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit -w",
"build": "NODE_ENV=production ./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit"
},
// その他...
}
```
これで、サイトの設計に取り組むときは、 `npm run dev` を呼び出すと、コンパイラがウォッチモードで実行されます。デプロイの準備ができたら、`npm run build` を実行すると、クリーンな Tailwind CSS ビルドが得られます。
🙋‍♀️ ご不明な点がありましたら、[GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions) で気軽に質問してください。
@@ -1,6 +1,6 @@
---
title: "Advanced Customisation"
date: 2020-08-08
weight: 13
draft: false
description: "Learn how to build Blowfish manually."
slug: "advanced-customisation"
@@ -0,0 +1,237 @@
---
title: 进阶自定义
weight: 13
draft: false
description: "了解如何手动构建 Blowfish。"
slug: "advanced-customisation"
tags: ["高级", "CSS", "文档"]
series: ["部署教程"]
series_order: 13
---
您可以通过多种方式对 Blowfish 进行高级自定义。请阅读下文,了解更多可自定义的内容以及实现想要效果的最佳方法。
如果您需要更多指导,请在 [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions) 上提问。
## Hugo 项目结构
在开始讨论之前,首先简要介绍一下 [Hugo 项目结构](https://gohugo.io/getting-started/directory-struct/) 以及管理内容和主题自定义的最佳方式。
{{< alert >}}
**总结:** 切勿直接编辑主题文件。一定要仅在 Hugo 项目的子目录中进行自定义,而不是在主题目录中进行自定义。
{{< /alert >}}
Blowfish 旨在利用所有标准的 Hugo 参数操作。它旨在允许在不更改任何核心主题文件的情况下自定义和覆盖主题的所有方面。这也给您提供了一种无缝升级的体验,同时让您完全控制网站的外观和感觉。
为了实现这一点,您永远不应该直接手动更改任何主题核心文件。无论你是使用 Hugo 模块安装,还是作为 git 子模块安装,还是手动将主题安装在 `themes/` 目录中,你都应该始终保持这些主题文件不变。
调整主题行为的正确方法是通过使用 Hugo 强大的[文件查找顺序](https://gohugo.io/templates/lookup-order/)覆盖文件。总之,查找顺序确保了包含在你的项目目录中的文件都会优先于主题文件。
例如,如果您想覆盖 Blowfish 中的主要文章模板, 您可以创建自己的 `layouts/_default/single.html` 文件并将其放在项目的根目录中。然后,此文件将覆盖主题文件中的 `single.html` 同时也不会对主题文件本身进行更改。 这适用于任何主题文件:HTML 模板、partials、shortcodes、config 文件、data、assets 等等。
只要您遵循这个方法,您将始终能够无缝更新主题(或测试不同的主题版本),而不必担心会丢失任何自定义更改。
## 修改图片优化设置
Hugo 有各种内置的方法来调整大小,裁剪和优化图像。
举个例子,如果在 `layouts/partials/article-link/card.html` 中,您有以下代码:
```go
{{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
```
Hugo 将默认把图像大小调整为 600px 同时保持比例不变。
值得注意的是,默认的图像设置比如[锚点](https://gohugo.io/content-management/image-processing/#anchor) 也可以在你的 [站点配置](https://gohugo.io/content-management/image-processing/#processing-options) 中修改,就和修改模板一样。
想要了解更多信息,请再参考 [有关图像处理的 Hugo 文档](https://gohugo.io/content-management/image-processing/#image-processing-methods)。
## 配色方案
Blowfish 附带了多种开箱即用的配色方案。想要更改基本配色方案,您可以设置 `colorScheme` 主题参数。请参阅[快速上手#配色方案]({{< ref "getting-started#colour-schemes" >}}) 以了解更多内置方案。
除了默认方案之外,您还可以创建自己的方案并根据自己的喜好重新设计整个网站的样式。 通过在 `assets/css/schemes/` 中创建 `<scheme-name>.css` 文件可以创建新的配色方案。创建文件后,只需在主题配置中按名称引用它即可。
{{< alert "github">}}
**注意:** 手动生成这些文件可能会比较困难,我编写了一个 `nodejs` 工具 [Fugu](https://github.com/nunocoracao/fugu) 来帮助解决这个问题。简而言之,您只需要提供调色板的三个主要 `hex` 值,程序将生成一个可以直接导入到 Blowfish 中的 css 文件。
{{< /alert >}}
Blowfish 使用一种定义了整个主题中使用的三色调色板。这三种颜色被定义为 `neutral` 、 `primary` 和 `secondary` 颜色,每种颜色包含十种色调。
由于 Tailwind CSS 3.0 计算不透明度颜色值的方式,方案中指定的颜色需要通过提供红色、绿色和蓝色值来[符合特定格式](https://github.com/adamwathan/tailwind-css-variable-text-opacity-demo) 。
```css
:root {
--color-primary-500: 139, 92, 246;
}
```
此示例为一个 `primary-500` 的 CSS 颜色变量,红色值为 `139`,绿色值为 `92`,蓝色值为 `246`。
您可以使用现有主题样式表之一作为模板并自由配置自己的颜色。如果想要寻求一些灵感,请查看官方 [Tailwind 调色板参考](https://tailwindcss.com/docs/customizing-colors#color-palette-reference) 。
## 覆盖样式
有时您需要添加自定义样式来设置您自己的 HTML 元素的样式。 Blowfish 允许您覆盖自己的 CSS 样式表中的默认样式来进行自定义。只需在项目的 `assets/css/` 文件夹中创建一个 `custom.css` 文件即可。
`custom.css` 文件将被 Hugo 优化并在所有其他主题样式之后自动加载,这意味着自定义文件中的任何内容都将优先于默认值。
### 使用附加字体
Blowfish 可以让您轻松更改网站的字体。在项目的 `assets/css/` 文件夹中创建 `custom.css` 文件后,将字体文件放入 `static/fonts` 文件夹中。
```shell
.
├── assets
│ └── css
│ └── custom.css
...
└─── static
└── fonts
└─── font.ttf
```
这样,该字体便可供网站使用。现在,可以将字体导入到您的 `custom.css` 中,并在您认为合适的地方进行替换。下面的示例展示了替换整个 `html` 字体的方法。
```css
@font-face {
font-family: font;
src: url('/fonts/font.ttf');
}
html {
font-family: font;
}
```
### 调整字体大小
我们也提供更改网站的字体大小的示例。 Blowfish 使这一切变得简单,因为它在整个主题中使用源自基本 HTML 语言的缩放字体大小方法。默认情况下,Tailwind 将默认大小设置为 `12pt` ,但您可以将其更改为喜欢的大小。
参考[上面的说明]({{< ref "#overriding-the-stylesheet" >}}) 创建一个 `custom.css` 文件并添加以下 CSS 声明:
```css
/* Increase the default font size */
html {
font-size: 13pt;
}
```
只需更改此值,您网站上的所有字体大小都将调整为此新大小。因此,要增加使用的整体字体大小,请将该值设置为大于 `12pt` 。同样,要减小字体大小,请将值设置为小于 `12pt` 。
## 从源代码构建主题 CSS
如果您想进行大量更改,您可以利用 Tailwind CSS 的 JIT 编译器并从头开始重建整个主题 CSS。尤其是您想要调整 Tailwind 配置或向主样式表添加额外的 Tailwind 类的时候,这种方法将非常有用。
{{< alert >}}
**注意:** 手动构建主题仅适用于高级用户。
{{< /alert >}}
让我们逐步了解构建 Tailwind CSS 的工作原理。
### Tailwind 配置
为了生成仅包含用于实际使用的 Tailwind 类的 CSS 文件,JIT 编译器需要扫描所有 HTML 模板和 Markdown 文档,以检查 markup 中存在哪些样式。编译器将根据主题目录根目录中的 `tailwind.config.js` 文件来完成此操作:
```js
// themes/blowfish/tailwind.config.js
module.exports = {
content: [
"./layouts/**/*.html",
"./content/**/*.{html,md}",
"./themes/blowfish/layouts/**/*.html",
"./themes/blowfish/content/**/*.{html,md}",
],
// 更多...
};
```
此默认配置包含了这些路径,以便您可以十分方便地生成自己的 CSS 文件,而无需修改它,前提是您遵循我们的主题项目结构。也就是说,**您必须将 Blowfish 主题文件夹 `themes/blowfish/` 作为子目录包含在项目中**。这意味着您无法使用 Hugo Modules 方式来安装主题,而必须使用 git 子模块(推荐)或手动安装。 [安装文档]({{< ref "installation" >}}) 介绍了如何使用以上方法安装主题。
### 项目结构
为了充分利用默认配置,您的项目结构应该如下所示:
```shell
.
├── assets
│ └── css
│ └── compiled
│ └── main.css # 这是我们生成的文件
├── config # 站点配置
│ └── _default
├── content # site content
│ ├── _index.md
│ ├── projects
│ │ └── _index.md
│ └── blog
│ └── _index.md
├── layouts # 站点的自定义布局
│ ├── partials
│ │ └── extend-article-link/simple.html
│ ├── projects
│ │ └── list.html
│ └── shortcodes
│ └── disclaimer.html
└── themes
└── blowfish # Git 子模块或本地复制安装
```
此示例结构添加了一个新自定义的 `projects` 内容类型,具有自定义的 layout 以及自定义的 shortcodes 和扩展的 partials 。如果项目遵循类似结构,所需要做的就是仅仅是重新编译 `main.css` 文件。
### 安装依赖项
为了使 Tailwind 正常工作,您需要更改终端工作目录为 `themes/blowfish/` 并安装项目依赖项。您需要安装 [npm](https://docs.npmjs.com/cli/v7/configuring-npm/install)。
```shell
cd themes/blowfish
npm install
```
### 运行 Tailwind 编译器
安装依赖项后,接下来可以使用 [Tailwind CLI](https://v2.tailwindcss.com/docs/installation#using-tailwind-cli) 来调用 JIT 编译器。返回 Hugo 项目的根目录并在终端输入以下命令:
```shell
cd ../..
./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit
```
这个命令稍微有点复杂,因为涉及到几个路径。但本质上你是在调用 Tailwind CLI 并提供下面三个参数:
- Tailwind 配置文件 `tailwind.config.js`
- 主题的 `main.css` 文件
- 编译产出后的 CSS 文件的位置 `assets/css/compiled/`
配置文件将自动检查项目中以及主题中的所有内容和布局,并构建一个新的 CSS 文件,其中包含网站所需的所有 CSS。由于 Hugo 处理文件层次结构的方式,此文件现在将自动覆盖主题附带的文件。
每次更改布局并需要新的 Tailwind CSS 样式时,您只需重新运行命令并生成新的 CSS 文件即可。您还可以在命令末尾添加 `-w` 以在监视模式下运行 JIT 编译器。
### 制作构建脚本
要完成此解决方案,您可以通过为这些命令添加别名来简化整个过程,或者参照我的操作,将该 `package.json` 添加到包含必要脚本的项目的根目录:
```js
// package.json
{
"name": "my-website",
"version": "1.0.0",
"description": "",
"scripts": {
"server": "hugo server -b http://localhost -p 8000",
"dev": "NODE_ENV=development ./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit -w",
"build": "NODE_ENV=production ./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit"
},
// and more...
}
```
现在,当您想要设计站点时,可以调用 `npm run dev` ,编译器将以监视模式运行。当您准备好部署时,运行 `npm run build` ,您将生成一个编译好的 Tailwind CSS。
🙋‍♀️ 如果您需要帮助,请随时在 [GitHub Discusions](https://github.com/nunocoracao/blowfish/discussions) 上提问。
@@ -0,0 +1,574 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative"
width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.7735807359934106" x="0" y="0" width="345.6" height="345.6"
patternUnits="userSpaceOnUse">
<g transform="scale(1.35)">
<g>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="253.67183555350317"
y2="322.3700682221699" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10s"></animateTransform>
</g>
<g>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="7.343083737977565" x2="-29.40438263629852" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="2.4358284744095045" x2="-27.900932167205383" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="5s"></animateTransform>
</g>
<g>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="248.28896398255995"
y2="300.28675048655543" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="254.79057005056973"
y2="269.5365126987142" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10.3333333333333335s"></animateTransform>
</g>
</g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.7735807359934106)"></rect>
</svg>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 602 KiB

@@ -0,0 +1,827 @@
<svg id="canvas" height="100%" xmlns="http://www.w3.org/2000/svg" version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev/svgjs"
viewBox="0 0 600 600">
<rect width="600" height="600" fill="transparent"></rect>
<mask id="mask" mask-type="alpha" maskUnits="userSpaceOnUse">
<rect transform="translate(0, 0)" width="600" height="600" fill="white"></rect>
</mask>
<svg>
<path transform="translate(0, 0) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(0, 0) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(0, 0) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(0, 60) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(0, 60) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(0, 60) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(0, 120)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(0, 120)" cx="30" cy="30" r="30" fill="none" stroke="#48cae4"
stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(0, 180) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(0, 180) translate(30,30) rotate(0) translate(-30,-30)"
fill="#90e0ef" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(0, 240) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(0, 240) translate(30,30) rotate(90) translate(-30,-30)"
fill="#0096c7" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(0, 300) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(0, 300) translate(30,30) rotate(270) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#023e8a"></path>
<path transform="translate(0, 300) translate(30,30) rotate(270) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(0, 360) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(0, 360) translate(30,30) rotate(270) translate(-30,-30)"
fill="#0096c7" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(0, 420) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(0, 420) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(0, 420) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(0, 480)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(0, 480)" cx="30" cy="30" r="30" fill="none" stroke="#48cae4"
stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(0, 540)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
</svg>
<svg>
<path transform="translate(60, 0) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(60, 0) translate(30,30) rotate(270) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#00b4d8"></path>
<path transform="translate(60, 0) translate(30,30) rotate(270) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(60, 60)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
</svg>
<svg>
<rect transform="translate(60, 120) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" x="0" y="0" width="60" height="60" stroke="#48cae4" stroke-width="2"></rect>
<path transform="translate(60, 120) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" d="M0 0L60 60" stroke="#48cae4" stroke-width="2"></path>
</svg>
<svg>
<path transform="translate(60, 180) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(60, 180) translate(30,30) rotate(0) translate(-30,-30)"
fill="#90e0ef" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(60, 240)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
</svg>
<svg>
<path transform="translate(60, 300)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(60, 300)" cx="30" cy="30" r="30" fill="#48cae4"
stroke="#48cae4" stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(60, 360)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
</svg>
<svg>
<path transform="translate(60, 420)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(60, 420)" cx="30" cy="30" r="30" fill="#48cae4"
stroke="#48cae4" stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(60, 480)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(60, 480)" cx="30" cy="30" r="30" fill="none" stroke="#48cae4"
stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(60, 540)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(60, 540)" cx="30" cy="30" r="30" fill="#48cae4"
stroke="#48cae4" stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(120, 0)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(120, 0)" cx="30" cy="30" r="30" fill="#023e8a" stroke="#48cae4"
stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(120, 60) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(120, 60) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(120, 60) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<rect transform="translate(120, 120) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" x="0" y="0" width="60" height="60" stroke="#48cae4" stroke-width="2"></rect>
<path transform="translate(120, 120) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" d="M0 0L60 60" stroke="#48cae4" stroke-width="2"></path>
</svg>
<svg>
<path transform="translate(120, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(120, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(120, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="#90e0ef" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(120, 240) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(120, 240) translate(30,30) rotate(180) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#ade8f4"></path>
<path transform="translate(120, 240) translate(30,30) rotate(180) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(120, 300) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(120, 300) translate(30,30) rotate(270) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
<path transform="translate(120, 300) translate(30,30) rotate(270) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(120, 360) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(120, 360) translate(30,30) rotate(90) translate(-30,-30)"
fill="#48cae4" stroke="#48cae4" stroke-width="2" d="M30 0h30v60h-30z"></path>
<path transform="translate(120, 360) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(120, 420)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(120, 420)" cx="30" cy="30" r="30" fill="#90e0ef"
stroke="#48cae4" stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(120, 480) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(120, 480) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(120, 480) translate(30,30) rotate(180) translate(-30,-30)"
fill="#ade8f4" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(120, 540) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(120, 540) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(120, 540) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(180, 0) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(180, 0) translate(30,30) rotate(180) translate(-30,-30)"
fill="#caf0f8" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(180, 60) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(180, 60) translate(30,30) rotate(0) translate(-30,-30)"
fill="#023e8a" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(180, 120) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(180, 120) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(180, 120) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(180, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(180, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="#ade8f4" stroke="#48cae4" stroke-width="2" d="M30 0h30v60h-30z"></path>
<path transform="translate(180, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(180, 240) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(180, 240) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(180, 240) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(180, 300) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(180, 300) translate(30,30) rotate(0) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
<path transform="translate(180, 300) translate(30,30) rotate(0) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(180, 360)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
</svg>
<svg>
<rect transform="translate(180, 420) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" x="0" y="0" width="60" height="60" stroke="#48cae4" stroke-width="2"></rect>
<path transform="translate(180, 420) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" d="M0 0L60 60" stroke="#48cae4" stroke-width="2"></path>
</svg>
<svg>
<path transform="translate(180, 480)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
</svg>
<svg>
<path transform="translate(180, 540) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(180, 540) translate(30,30) rotate(180) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#0077b6"></path>
<path transform="translate(180, 540) translate(30,30) rotate(180) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<rect transform="translate(240, 0) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" x="0" y="0" width="60" height="60" stroke="#48cae4" stroke-width="2"></rect>
<path transform="translate(240, 0) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" d="M0 0L60 60" stroke="#48cae4" stroke-width="2"></path>
</svg>
<svg>
<path transform="translate(240, 60)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(240, 60)" cx="30" cy="30" r="30" fill="#0096c7"
stroke="#48cae4" stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(240, 120) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(240, 120) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(240, 120) translate(30,30) rotate(90) translate(-30,-30)"
fill="#90e0ef" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(240, 180) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(240, 180) translate(30,30) rotate(270) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#48cae4"></path>
<path transform="translate(240, 180) translate(30,30) rotate(270) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(240, 240) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(240, 240) translate(30,30) rotate(90) translate(-30,-30)"
fill="#03045e" stroke="#48cae4" stroke-width="2" d="M30 0h30v60h-30z"></path>
<path transform="translate(240, 240) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(240, 300) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(240, 300) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(240, 300) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(240, 360) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(240, 360) translate(30,30) rotate(180) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#00b4d8"></path>
<path transform="translate(240, 360) translate(30,30) rotate(180) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(240, 420) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(240, 420) translate(30,30) rotate(270) translate(-30,-30)"
fill="#90e0ef" stroke="#48cae4" stroke-width="2" d="M30 0h30v60h-30z"></path>
<path transform="translate(240, 420) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(240, 480)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(240, 480)" cx="30" cy="30" r="30" fill="#48cae4"
stroke="#48cae4" stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(240, 540) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(240, 540) translate(30,30) rotate(180) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#00b4d8"></path>
<path transform="translate(240, 540) translate(30,30) rotate(180) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(300, 0) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(300, 0) translate(30,30) rotate(0) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#00b4d8"></path>
<path transform="translate(300, 0) translate(30,30) rotate(0) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(300, 60)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(300, 60)" cx="30" cy="30" r="30" fill="none" stroke="#48cae4"
stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(300, 120) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(300, 120) translate(30,30) rotate(90) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#023e8a"></path>
<path transform="translate(300, 120) translate(30,30) rotate(90) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(300, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(300, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(300, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(300, 240) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(300, 240) translate(30,30) rotate(270) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#0077b6"></path>
<path transform="translate(300, 240) translate(30,30) rotate(270) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(300, 300) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(300, 300) translate(30,30) rotate(90) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#48cae4"></path>
<path transform="translate(300, 300) translate(30,30) rotate(90) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(300, 360) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(300, 360) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(300, 360) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(300, 420) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(300, 420) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(300, 420) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(300, 480) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(300, 480) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(300, 480) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(300, 540) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(300, 540) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(300, 540) translate(30,30) rotate(0) translate(-30,-30)"
fill="#0096c7" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(360, 0) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(360, 0) translate(30,30) rotate(270) translate(-30,-30)"
fill="#03045e" stroke="#48cae4" stroke-width="2" d="M30 0h30v60h-30z"></path>
<path transform="translate(360, 0) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(360, 60) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(360, 60) translate(30,30) rotate(0) translate(-30,-30)"
fill="#48cae4" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(360, 120)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(360, 120)" cx="30" cy="30" r="30" fill="none" stroke="#48cae4"
stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(360, 180) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(360, 180) translate(30,30) rotate(180) translate(-30,-30)"
fill="#caf0f8" stroke="#48cae4" stroke-width="2" d="M30 0h30v60h-30z"></path>
<path transform="translate(360, 180) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(360, 240) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(360, 240) translate(30,30) rotate(90) translate(-30,-30)"
fill="#ade8f4" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(360, 300) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(360, 300) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(360, 300) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(360, 360) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(360, 360) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(360, 360) translate(30,30) rotate(180) translate(-30,-30)"
fill="#0096c7" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(360, 420)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(360, 420)" cx="30" cy="30" r="30" fill="none" stroke="#48cae4"
stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(360, 480) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(360, 480) translate(30,30) rotate(90) translate(-30,-30)"
fill="#0096c7" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(360, 540) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(360, 540) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(360, 540) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(420, 0) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(420, 0) translate(30,30) rotate(0) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#00b4d8"></path>
<path transform="translate(420, 0) translate(30,30) rotate(0) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(420, 60) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(420, 60) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(420, 60) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(420, 120)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(420, 120)" cx="30" cy="30" r="30" fill="none" stroke="#48cae4"
stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(420, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(420, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(420, 180) translate(30,30) rotate(90) translate(-30,-30)"
fill="#90e0ef" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(420, 240) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(420, 240) translate(30,30) rotate(270) translate(-30,-30)"
fill="#ade8f4" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(420, 300)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
</svg>
<svg>
<path transform="translate(420, 360) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(420, 360) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(420, 360) translate(30,30) rotate(90) translate(-30,-30)"
fill="#caf0f8" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(420, 420)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
</svg>
<svg>
<path transform="translate(420, 480)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(420, 480)" cx="30" cy="30" r="30" fill="none" stroke="#48cae4"
stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(420, 540) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(420, 540) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(420, 540) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(480, 0) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(480, 0) translate(30,30) rotate(90) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
<path transform="translate(480, 0) translate(30,30) rotate(90) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(480, 60)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(480, 60)" cx="30" cy="30" r="30" fill="#03045e"
stroke="#48cae4" stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(480, 120) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(480, 120) translate(30,30) rotate(0) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#0077b6"></path>
<path transform="translate(480, 120) translate(30,30) rotate(0) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(480, 180) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(480, 180) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(480, 180) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(480, 240) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(480, 240) translate(30,30) rotate(90) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#0096c7"></path>
<path transform="translate(480, 240) translate(30,30) rotate(90) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(480, 300)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
</svg>
<svg>
<path transform="translate(480, 360)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(480, 360)" cx="30" cy="30" r="30" fill="#caf0f8"
stroke="#48cae4" stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(480, 420) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(480, 420) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(480, 420) translate(30,30) rotate(270) translate(-30,-30)"
fill="#03045e" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(480, 480) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(480, 480) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(480, 480) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(480, 540) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(480, 540) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(480, 540) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(540, 0) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(540, 0) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(540, 0) translate(30,30) rotate(270) translate(-30,-30)"
fill="#0077b6" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(540, 60) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(540, 60) translate(30,30) rotate(0) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#0096c7"></path>
<path transform="translate(540, 60) translate(30,30) rotate(0) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(540, 120) translate(30,30) rotate(90) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(540, 120) translate(30,30) rotate(90) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#0096c7"></path>
<path transform="translate(540, 120) translate(30,30) rotate(90) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(540, 180) translate(30,30) rotate(0) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(540, 180) translate(30,30) rotate(0) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
<path transform="translate(540, 180) translate(30,30) rotate(0) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(540, 240) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(540, 240) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(540, 240) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(540, 300) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(540, 300) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(540, 300) translate(30,30) rotate(270) translate(-30,-30)"
fill="#ade8f4" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
<svg>
<path transform="translate(540, 360) translate(30,30) rotate(270) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(540, 360) translate(30,30) rotate(270) translate(-30,-30)"
fill="#ade8f4" stroke="#48cae4" stroke-width="2"
d="M0 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
</svg>
<svg>
<path transform="translate(540, 420) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(540, 420) translate(30,30) rotate(180) translate(-30,-30)"
d="M0 30C0 48.05 15.3348 60 30 60V0C15.3348 0 0 14.9129 0 30Z" stroke="#48cae4"
stroke-width="2" fill="#0077b6"></path>
<path transform="translate(540, 420) translate(30,30) rotate(180) translate(-30,-30)"
d="M60 30C60 14.9129 48.4719 0 30 0L30 60C48.4719 60 60 48.05 60 30Z" stroke="#48cae4"
stroke-width="2" fill="none"></path>
</svg>
<svg>
<path transform="translate(540, 480)" fill="none" stroke="#48cae4" stroke-width="2"
d="M0 0h60v60h-60z"></path>
<circle transform="translate(540, 480)" cx="30" cy="30" r="30" fill="none" stroke="#48cae4"
stroke-width="2"></circle>
</svg>
<svg>
<path transform="translate(540, 540) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2" d="M0 0h60v60h-60z"></path>
<path transform="translate(540, 540) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0 16.569 13.432 30 30 30v-60c-16.568 0-30 13.432-30 30z"></path>
<path transform="translate(540, 540) translate(30,30) rotate(180) translate(-30,-30)"
fill="none" stroke="#48cae4" stroke-width="2"
d="M30 30c0-16.57-13.431-30-30-30v60c16.569 0 30-13.432 30-30z"></path>
</svg>
</svg>

After

Width:  |  Height:  |  Size: 51 KiB

@@ -0,0 +1,374 @@
---
date: 2020-08-14
title: "Configurazione"
weight: 4
draft: false
description: "Tutte le configurazioni disponibili in Blowfish."
slug: "configurazioni"
tags: ["config", "docs"]
series: ["Documentazione"]
series_order: 4
---
Blowfish è un tema altamente personalizzabile e utilizza alcune delle più recenti funzionalità di Hugo per semplificarne la configurazione.
Il tema viene fornito con una configurazione predefinita che ti consente di essere operativo con un blog di base o un sito Web statico.
{{< alert "fire" >}}
We just launched a CLI tool to help you get started with Blowfish. It will help you with installation and configuration. Install the CLI tool globally using:
```bash
npx blowfish-tools
```
{{< /alert >}}
> I file di configurazione forniti con il tema sono forniti in formato TOML dato che questa è la sintassi predefinita di Hugo. Sentiti libero di convertire la tua configurazione in YAML o JSON se lo desideri.
La configurazione predefinita del tema è documentata in ogni file in modo da poter regolare liberamente le impostazioni per soddisfare le proprie esigenze.
{{< alert >}}
As outlined in the [installation instructions]({{< ref "/docs/installation#set-up-theme-configuration-files" >}}), you should adjust your theme configuration by modifying the files in the `config/_default/` folder of your Hugo project and delete the `config.toml` file in your project root.
{{< /alert >}}
## Configurazioni del sito
Standard Hugo configuration variables are respected throughout the theme, however there are some specific things that should be configured for the best experience.
La configurazione del sito viene gestita tramite il file `config/_default/config.toml`. La tabella seguente descrive tutte le impostazioni di cui si avvale Blowfish.
Tieni presente che i nomi delle variabili forniti in questa tabella utilizzano il punto per semplificare la struttura dei dati TOML (ad esempio, "outputs.home" si riferisce a "[outputs] home").
<!-- prettier-ignore-start -->
| Name | Default | Description |
| ------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `theme` | `"blowfish"` | Quando si utilizzano i moduli Hugo, questo valore di configurazione deve essere rimosso. Per tutti gli altri tipi di installazione, questo deve essere impostato su "blowfish" affinché il tema funzioni. |
| `baseURL` | _Not set_ | The URL to the root of the website. |
| `defaultContentLanguage` | `"en"` | This value determines the default language of theme components and content. Refer to the [language and i18n](#language-and-i18n) section below for supported language codes. |
| `enableRobotsTXT` | `true` | Se abilitato, verrà creato un file "robots.txt" nella radice del sito che consentirà ai motori di ricerca di eseguire la scansione dell'intero sito. Se preferisci fornire il tuo file `robots.txt` predefinito, impostalo su `false` e ​​posiziona il file nella directory `static`. Per un controllo completo, puoi fornire un [layout personalizzato]({{< ref "content-examples#custom-layouts" >}}) per generare questo file. |
| `pagination.pagerSize` | `10` | Il numero di articoli elencati in ciascuna pagina dell'elenco degli articoli. |
| `summaryLength` | `0` | Il numero di parole utilizzate per generare il riepilogo dell'articolo quando non ne viene fornita una nella [front matter]({{< ref "front-matter" >}}). Un valore pari a "0" utilizzerà la prima frase. Questo valore non ha effetto quando i riepiloghi sono nascosti. |
| `outputs.home` | `["HTML", "RSS", "JSON"]` | I formati di output generati per il sito. Blowfish richiede HTML, RSS e JSON affinché tutti i componenti del tema funzionino correttamente. |
| `permalinks` | _Not set_ | Fare riferimento alla [documentazione di Hugo](https://gohugo.io/content-management/urls/#permalinks) per la configurazione del permalink. |
| `taxonomies` | _Not set_ | Fare riferimento alla sezione [Organizzazione dei contenuti]({{< ref "getting-started#organising-content" >}}) per la configurazione della tassonomia. |
<!-- prettier-ignore-end -->
## Thumbnails
Blowfish è stato creato in modo che sia facile aggiungere supporto visivo ai tuoi articoli. Se hai familiarità con la struttura degli articoli di Hugo, devi solo inserire un file immagine (quasi tutti i formati sono supportati ma consigliamo `.png` o `.jpg`) che inizi con `feature*` all'interno della cartella dell'articolo. E questo è tutto, Blowfish sarà quindi in grado di utilizzare l'immagine sia come miniatura all'interno del tuo sito web sia per le schede <a target="_blank" href="https://oembed.com/">oEmbed</a> su piattaforme sociali.
[Qui]({{< ref "thumbnails" >}}) c'è anche una guida con maggiori informazioni e un [esempio]({{< ref "thumbnail_sample" >}}) se vuoi vedere come puoi farlo.
## Lingua e i18n
Blowfish è ottimizzato per siti Web multilingue completi e le risorse tematiche sono tradotte in diverse lingue immediatamente. La configurazione della lingua ti consente di generare più versioni dei tuoi contenuti per fornire un'esperienza personalizzata ai tuoi visitatori nella loro lingua madre.
Il tema attualmente supporta le seguenti lingue per impostazione predefinita:
| Language | Code |
| ---------------------------- | ------- |
| Arabic | `ar` |
| Bulgarian | `bg` |
| Bengali | `bn` |
| Catalan | `ca` |
| Czech | `cs` |
| German | `de` |
| English | `en` |
| Esperanto | `eo` |
| Spanish (Spain) | `es` |
| Finnish | `fi` |
| French | `fr` |
| Hebrew | `he` |
| Croatian | `hr` |
| Hungarian | `hu` |
| Indonesian | `id` |
| Italian | `it` |
| Japanese | `ja` |
| Korean | `ko` |
| Dutch | `nl` |
| Polish | `pl` |
| Portuguese (Brazil) | `pt-br` |
| Portuguese (Portugal) | `pt-pt` |
| Romanian | `ro` |
| Russian | `ru` |
| Turkish | `tr` |
| Vietnamese | `vi` |
| Ukrainian | `uk` |
| Simplified Chinese (China) | `zh-cn` |
| Traditional Chinese (Taiwan) | `zh-tw` |
Le traduzioni predefinite possono essere sovrascritte creando un file personalizzato in "i18n/[code].yaml" che contiene le stringhe di traduzione. Puoi anche utilizzare questo metodo per aggiungere nuove lingue. Se desideri condividere una nuova traduzione con la community, [apri una richiesta pull](https://github.com/nunocoracao/blowfish/pulls).
### Configurazione
Per essere il più flessibili possibile, è necessario creare un file di configurazione lingua per ciascuna lingua sul sito web. Per impostazione predefinita Blowfish include una configurazione della lingua inglese in `config/_default/linguals.en.toml`.
Il file predefinito può essere utilizzato come modello per creare lingue aggiuntive o rinominato se desideri creare il tuo sito web in una lingua diversa dall'inglese. Basta nominare il file utilizzando il formato "lingue.[language-code].toml".
{{< alert >}}
**Nota:** assicurati che il parametro `defaultContentLanguage` nella [configurazione del sito](#site-configuration) corrisponda al codice della lingua nel nome del file di configurazione della lingua.
{{< /alert >}}
#### Globale
<!-- prettier-ignore-start -->
| Name | Default | Description |
| -------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `languageCode` | `"en"` | Il codice della lingua Hugo per questo file. Può essere una lingua di livello superiore (ad esempio "en") o una variante secondaria (ad esempio "en-au") e deve corrispondere al codice della lingua nel nome del file. Hugo si aspetta che questo valore sia sempre in minuscolo. Per una corretta conformità HTML, imposta il parametro "isoCode" che fa distinzione tra maiuscole e minuscole. |
| `languageName` | `"English"` | Il nome della lingua. |
| `weight` | `1` | Il peso determina l'ordine delle lingue durante la creazione di siti multilingue. |
| `title` | `"Blowfish"` | Il titolo del sito web. Questo verrà visualizzato nell'intestazione e nel piè di pagina del sito. |
<!-- prettier-ignore-end -->
#### Parametri
<!-- prettier-ignore-start -->
| Name | Default | Description |
| ---------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `params.displayName` | `"EN"` | Il nome utilizzato quando la lingua appare sul sito web. |
| `params.isoCode` | `"en"` | Il codice della lingua ISO per scopi di metadati HTML. Può essere una lingua di livello superiore (es. `en`) o una sottovariante (es. `en-AU`). |
| `params.rtl` | `false` | Se si tratta o meno di un linguaggio RTL. Imposta su "true" per ridisporre il contenuto da destra a sinistra. Blowfish supporta pienamente l'uso simultaneo dei linguaggi RTL e LTR e si adatterà dinamicamente ad entrambi. |
| `params.dateFormat` | `"2 January 2006"` | Come vengono formattate le date in questa lingua. Fare riferimento alla [documentazione di Hugo](https://gohugo.io/functions/format/#gos-layout-string) per i formati accettabili. |
| `params.logo` | _Not set_ | Il percorso relativo al file del logo del sito all'interno della cartella "assets/". Il file del logo deve essere fornito con una risoluzione 2x e supporta qualsiasi dimensione dell'immagine. |
| `params.secondaryLogo` | _Not set_ | The relative path to the secondary site logo file within the `assets/` folder. The logo file should be provided at 2x resolution and supports any image dimensions. This should have an inverted/contrasting colour scheme to `logo`. If set, this logo will be shown when users toggle from the `defaultAppearance` mode. |
| `params.description` | _Not set_ | The website description. This will be used in the site metadata. |
| `params.copyright` | _Not set_ | A Markdown string for the site footer copyright message can include the placeholder { year } to dynamically insert the current year. If none is provided, Blowfish will automatically generate a copyright string using the site `title`. |
<!-- prettier-ignore-end -->
#### Author
| Name | Default | Description |
| ----------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `author.name` | _Not set_ | The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used. |
| `author.image` | _Not set_ | Path to the image file of the author. The image should be a 1:1 aspect ratio. The image can be placed in the site's `assets/` folder or can be external url. |
| `author.headline` | _Not set_ | A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name. |
| `author.bio` | _Not set_ | A Markdown string containing the author's bio. It will be displayed in article footers. |
| `author.links` | _Not set_ | The links to display alongside the author's details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in `assets/icons/`. |
<!-- prettier-ignore-end -->
### Menus
Blowfish also supports language-specific menu configurations. Menu config files follow the same naming format as the languages file. Simply provide the language code in the file name to tell Hugo which language the file relates to.
Menu config files are named with the format `menus.[language-code].toml`. Always ensure that the language code used in the menus configuration matches the languages configuration.
The [Getting Started]({{< ref "getting-started#menus" >}}) section explains more about the structure of this file. You can also refer to the [Hugo menu docs](https://gohugo.io/content-management/menus/) for more configuration examples.
## Theme parameters
Blowfish provides a large number of configuration parameters that control how the theme functions. The table below outlines every available parameter in the `config/_default/params.toml` file.
Many of the article defaults here can be overridden on a per article basis by specifying it in the front matter. Refer to the [Front Matter]({{< ref "front-matter" >}}) section for further details.
<!-- prettier-ignore-start -->
### Global
| Name | Default | Description |
| ------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `colorScheme` | `"blowfish"` | The theme colour scheme to use. Valid values are `blowfish` (default), `avocado`, `fire`, `ocean`, `forest`, `princess`, `neon`, `bloody`, `terminal`, `marvel`, `noir`, `autumn`, `congo`, and`slate`. Refer to the [Colour Schemes]({{< ref "getting-started#colour-schemes" >}}) section for more details. |
| `defaultAppearance` | `"light"` | The default theme appearance, either `light` or `dark`. |
| `autoSwitchAppearance` | `true` | Whether the theme appearance automatically switches based upon the visitor's operating system preference. Set to `false` to force the site to always use the `defaultAppearance`. |
| `enableSearch` | `false` | Whether site search is enabled. Set to `true` to enable search functionality. Note that the search feature depends on the `outputs.home` setting in the [site configuration](#site-configuration) being set correctly. |
| `enableCodeCopy` | `false` | Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below. |
| `mainSections` | _Not set_ | The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used. |
| `showViews` | _Not set_ | Whether or not articles and list views are displayed. This requires firebase integrations to be enabled, look below. |
| `showLikes` | _Not set_ | Whether or not articles and list likes are displayed. This requires firebase integrations to be enabled, look below. |
| `robots` | _Not set_ | String that indicates how robots should handle your site. If set, it will be output in the page head. Refer to [Google's docs](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) for valid values. |
| `disableImageZoom` | `false` | Disables image zoom feature across all the images in the site. |
| `disableImageOptimization` | `false` | Disables image resize and optimization features across all the images in the site. |
| `disableTextInHeader` | `false` | Disables text in header, useful for logo based headers. |
| `defaultBackgroundImage` | _Not set_ | Default background image for both `background` homepage layout and `background` hero style |
| `defaultFeaturedImage` | _Not set_ | Default background image for all `featured` images across articles, will be overridden by a local `featured` image. |
| `highlightCurrentMenuArea` | _Not set_ | Marks menu entries in the main menu when selected |
| `smartTOC` | _Not set_ | Activate smart Table of Contents, items in view will be highlighted. |
| `smartTOCHideUnfocusedChildren` | _Not set_ | When smart Table of Contents is turned on, this will hide deeper levels of the table when they are not in focus. |
### Header
| Name | Default | Description |
| --------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |
| `header.layout` | `"basic"` | Defines the header for the entire site, supported values are `basic`, `fixed`, `fixed-fill`, and `fixed-fill-blur`. |
### Footer
| Name | Default | Description |
| ------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `footer.showMenu` | `true` | Show/hide the footer menu, which can be configured in the `[[footer]]` section of the `config/_default/menus.en.toml` file. |
| `footer.showCopyright` | `true` | Whether or not to show the copyright string in the site footer. Note that the string itself can be customised using the `copyright` parameter in the [languages configuration](#language-and-i18n). |
| `footer.showThemeAttribution` | `true` | Whether or not to show the "powered by" theme attribution in the site footer. If you choose to disable this message, please consider attributing the theme somewhere else on your site (for example, on your about page). |
| `footer.showAppearanceSwitcher` | `false` | Whether or not to show the appearance switcher in the site footer. The browser's local storage is used to persist the visitor's preference. |
| `footer.showScrollToTop` | `true` | When set to `true` the scroll to top arrow is displayed. |
### Homepage
| Name | Default | Description |
| ------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `homepage.layout` | `"profile"` | The layout of the homepage. Valid values are `page`, `profile`, `hero`, `card`, `background`, or `custom`. When set to `custom`, you must provide your own layout by creating a `/layouts/partials/home/custom.html` file. Refer to the [Homepage Layout]({{< ref "homepage-layout" >}}) section for more details. |
| `homepage.homepageImage` | _Not set_ | Image to be used in `hero` and `card` layouts. Can be set as local image from asset directory or external image url. Refer to the [Homepage Layout]({{< ref "homepage-layout" >}}) section for more details. |
| `homepage.showRecent` | `false` | Whether or not to display the recent articles list on the homepage. |
| `homepage.showRecentItems` | 5 | How many articles to display if showRecent is true. If variable is set to 0 or if it isn't defined the system will default to 5 articles. |
| `homepage.showMoreLink` | `false` | Whether or not to display a show more link at the end of your posts that takes the user to a predefined place. |
| `homepage.showMoreLinkDest` | `/posts` | The destination of the show more button. |
| `homepage.cardView` | `false` | Display recent articles as a gallery of cards. |
| `homepage.cardViewScreenWidth` | `false` | Enhance the width of the recent articles card gallery to take the full width available. |
| `homepage.layoutBackgroundBlur` | `false` | Makes the background image in the homepage layout blur with the scroll |
### Article
| Name | Default | Description |
| ------------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `article.showDate` | `true` | Whether or not article dates are displayed. |
| `article.showViews` | `false` | Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. |
| `article.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
| `article.showDateOnlyInArticle` | `false` | Show date within article even if not displayed in article listings/cards. |
| `article.showDateUpdated` | `false` | Whether or not the dates articles were updated are displayed. |
| `article.showAuthor` | `true` | Whether or not the author box is displayed in the article footer. |
| `article.showAuthorBottom` | `false` | Author boxes are displayed at the bottom of each page instead of the top. |
| `article.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each article page. |
| `article.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `article.layoutBackgroundBlur` | `true` | Makes the background image in the background article heroStyle blur with the scroll |
| `article.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. |
| `article.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the article header. |
| `article.showDraftLabel` | `true` | Whether or not the draft indicator is shown next to articles when site is built with `--buildDrafts`. |
| `article.showEdit` | `false` | Whether or not the link to edit the article content should be displayed. |
| `article.editURL` | _Not set_ | When `article.showEdit` is active, the URL for the edit link. |
| `article.editAppendPath` | `true` | When `article.showEdit` is active, whether or not the path to the current article should be appended to the URL set at `article.editURL`. |
| `article.seriesOpened` | `false` | Whether or not the series module will be displayed open by default or not. |
| `article.showHeadingAnchors` | `true` | Whether or not heading anchor links are displayed alongside headings within articles. |
| `article.showPagination` | `true` | Whether or not the next/previous article links are displayed in the article footer. |
| `article.invertPagination` | `false` | Whether or not to flip the direction of the next/previous article links. |
| `article.showReadingTime` | `true` | Whether or not article reading times are displayed. |
| `article.showTableOfContents` | `false` | Whether or not the table of contents is displayed on articles. |
| `article.showRelatedContent` | `false` | Display related content for each post. Might required additional configuration to your `config.toml`. Please check the theme `config.toml` if you want to enable this feature and copy all the relevant _related_ entries. Also check [Hugo's docs](https://gohugo.io/content-management/related/) on related content. |
| `article.relatedContentLimit` | `3` | Limit of related articles to display if `showRelatedContent` is turned on. |
| `article.showTaxonomies` | `false` | Whether or not the taxonomies related to this article are displayed. |
| `article.showAuthorsBadges` | `false` | Whether the `authors` taxonomies are are displayed in the article or list header. This requires the setup of `multiple authors` and the `authors` taxonomy. Check [this page]({{< ref "multi-author" >}}) for more details on how to configure that feature. |
| `article.showWordCount` | `false` | Whether or not article word counts are displayed. |
| `article.showComments` | `false` | Whether or not the [comments partial]({{< ref "partials#comments" >}}) is included after the article footer. |
| `article.sharingLinks` | _Not set_ | Which sharing links to display at the end of each article. When not provided, or set to `false` no links will be displayed. Available values are: "linkedin", "bluesky", "mastodon", "twitter", "reddit", "pinterest", "facebook", "email", "whatsapp", and "telegram" |
| `article.showZenMode` | `false` | Flag to activate Zen Mode reading feature for articles. |
### List
| Name | Default | Description |
| ---------------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each list page. |
| `list.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `list.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the header on list pages. |
| `list.layoutBackgroundBlur` | `true` | Makes the background image in the background list heroStyle blur with the scroll |
| `list.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. |
| `list.showTableOfContents` | `false` | Whether or not the table of contents is displayed on list pages. |
| `list.showSummary` | `false` | Whether or not article summaries are displayed on list pages. If a summary is not provided in the [front matter]({{< ref "front-matter" >}}), one will be auto generated using the `summaryLength` parameter in the [site configuration](#site-configuration). |
| `list.showViews` | `false` | Whether or not list views are displayed. This requires firebase integrations to be enabled, look below. |
| `list.showLikes` | `false` | Whether or not list likes are displayed. This requires firebase integrations to be enabled, look below. |
| `list.showCards` | `false` | Whether or not each article is displayed as a card or as simple inline text. |
| `list.orderByWeight` | `false` | Whether or not articles are sorted by [weights](https://gohugo.io/methods/page/weight/). |
| `list.groupByYear` | `true` | Whether or not articles are grouped by year on list pages. |
| `list.cardView` | `false` | Display lists as a gallery of cards. |
| `list.cardViewScreenWidth` | `false` | Enhance the width of card galleries in lists to take the full width available. |
| `list.constrainItemsWidth` | `false` | Limit item width to `prose` to increase readability. Useful when no feature images are available. |
| `list.showTableOfContents` | `false` | Whether or not the table of contents is displayed on articles. |
### Sitemap
| Name | Default | Description |
| ----------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sitemap.excludedKinds` | `["taxonomy", "term"]` | Kinds of content that should be excluded from the generated `/sitemap.xml` file. Refer to the [Hugo docs](https://gohugo.io/templates/section-templates/#page-kinds) for acceptable values. |
### Taxonomy
| Name | Default | Description |
| ------------------------------ | --------- | ---------------------------------------------------------------------------------------------------------- |
| `taxonomy.showTermCount` | `true` | Whether or not the number of articles within a taxonomy term is displayed on the taxonomy listing. |
| `taxonomy.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each taxonomy page. |
| `taxonomy.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `taxonomy.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the taxonomy header. |
| `taxonomy.showViews` | `false` | Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. |
| `taxonomy.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
| `taxonomy.showTableOfContents` | `false` | Whether or not the table of contents is displayed on taxonomies. |
| `taxonomy.cardView` | `false` | Display lists as a gallery of cards. |
### Term
| Name | Default | Description |
| -------------------------- | --------- | ---------------------------------------------------------------------------------------------------------- |
| `term.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each term page. |
| `term.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `term.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the term header. |
| `term.showViews` | `false` | Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. |
| `term.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
| `term.showTableOfContents` | `false` | Whether or not the table of contents is displayed on terms. |
| `term.groupByYear` | `false` | Whether or not articles are grouped by year on term pages. |
| `term.cardView` | `false` | Display lists as a gallery of cards. |
| `term.cardViewScreenWidth` | `false` | Enhance the width of card galleries in lists to take the full width available. |
### Firebase
| Name | Default | Description |
| ---------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `firebase.apiKey` | _Not set_ | Firebase apiKey, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish. |
| `firebase.authDomain` | _Not set_ | Firebase authDomain, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish. |
| `firebase.projectId` | _Not set_ | Firebase projectId, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish. |
| `firebase.storageBucket` | _Not set_ | Firebase storageBucket, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish. |
| `firebase.messagingSenderId` | _Not set_ | Firebase messagingSenderId, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish. |
| `firebase.appId` | _Not set_ | Firebase appId, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish. |
| `firebase.measurementId` | _Not set_ | Firebase measurementId, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish. |
### Fathom Analytics
| Name | Default | Description |
| ------------------------ | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `fathomAnalytics.site` | _Not set_ | The site code generated by Fathom Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
| `fathomAnalytics.domain` | _Not set_ | If using a custom domain with Fathom Analytics, provide it here to serve `script.js` from the custom domain. |
### Umami Analytics
| Name | Default | Description |
| -------------------------- | --------- |----------------------------------------------------------------------------------------------------------------------------------------------------|
| `umamiAnalytics.websiteid` | _Not set_ | The site code generated by Umami Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
| `umamiAnalytics.domain` | _Not set_ | If using a custom domain with Umami Analytics, provide it here to serve `script.js` from the custom domain. |
| `umamiAnalytics.dataDomains` | _Not set_ | If you want the tracker to only run on specific domains, provide it for your tracker script. This is a comma delimited list of domain names. Such as "yoursite.com,yoursite2.com". |
| `umamiAnalytics.scriptName` | script.js | The name of the `script.js` used for anti-ad-blocking is configured by the environment variable `TRACKER_SCRIPT_NAME` |
| `umamiAnalytics.enableTrackEvent` | true | When set to `true` track event will add automatically. If you do not want to add track event, set it to `false`. |
### Seline Analytics
| Name | Default | Description |
|-----------------------------------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------|
| `selineAnalytics.token` | _Not set_ | The token generated by Seline Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
| `selineAnalytics.enableTrackEvent` | true | When set to `true` track event will add automatically. If you do not want to add track event, set it to `false`. |
### BuyMeACoffee
| Name | Default | Description |
| ----------------------------------- | --------- | --------------------------------------------------------------------------- |
| `buymeacoffee.identifier` | _Not set_ | The identifier to the target buymeacoffee account. |
| `buymeacoffee.globalWidget` | _Not set_ | Activate the global buymeacoffee widget. |
| `buymeacoffee.globalWidgetMessage` | _Not set_ | Message what will be displayed the first time a new user lands on the site. |
| `buymeacoffee.globalWidgetColor` | _Not set_ | Widget color in hex format. |
| `buymeacoffee.globalWidgetPosition` | _Not set_ | Position of the widget, i.e. "Left" or "Right" |
### Verifications
| Name | Default | Description |
| ------------------------ | --------- | --------------------------------------------------------------------------------------- |
| `verification.google` | _Not set_ | The site verification string provided by Google to be included in the site metadata. |
| `verification.bing` | _Not set_ | The site verification string provided by Bing to be included in the site metadata. |
| `verification.pinterest` | _Not set_ | The site verification string provided by Pinterest to be included in the site metadata. |
| `verification.yandex` | _Not set_ | The site verification string provided by Yandex to be included in the site metadata. |
<!-- prettier-ignore-end -->
## RSSNext
| Name | Default | Description |
| ------------------------ | --------- |--------------------------------------------------------------------------------------------------------------------------------------|
| `rssnext.feedId` | _Not set_ | The rss `feedId` string provided by [RSSNext/Follow](https://follow.is/) to be included in the `rss.xml`, which can helps to claim rss feed as your own. |
| `rssnext.userId` | _Not set_ | The rss `userId` string provided by [RSSNext/Follow](https://follow.is/) to be included in the `rss.xml`, which can helps to claim rss feed as your own. |
## Other configuration files
The theme also includes a `markup.toml` configuration file. This file contains some important parameters that ensure that Hugo is correctly configured to generate sites built with Blowfish.
Always ensure this file is present in the config directory and that the required values are set. Failure to do so may cause certain features to function incorrectly and could result in unintended behaviour.
@@ -0,0 +1,374 @@
---
title: "設定"
weight: 4
draft: false
description: "Blowfish で使えるすべての設定変数"
slug: "configuration"
tags: ["config", "docs"]
series: ["Documentation"]
series_order: 4
---
Blowfish は高度にカスタマイズ可能なテーマであり、最新の Hugo 機能を使用して設定方法をシンプルにしています。
このテーマには、基本的なブログまたは静的サイトをすぐに立ち上げて実行できるデフォルト設定が付属しています。
{{< alert "fire" >}}
Blowfish を簡単に使い始められるように、新しい CLI ツールをリリースしました。インストールと設定に役立ちます。 グローバルに CLI ツールをインストールするには、以下を使用します。
```bash
npx blowfish-tools
```
{{< /alert >}}
> テーマにバンドルされている設定ファイルは、デフォルトの Hugo 構文である TOML 形式で提供されています。必要に応じて、設定を YAML または JSON に変換できます。
デフォルトのテーマ設定は各ファイルに記載されているため、必要に応じて設定を自由に調整できます。
{{< alert >}}
[インストール手順]({{< ref "/docs/installation#set-up-theme-configuration-files" >}})で概説されているように、Hugo プロジェクトの `config/_default/` フォルダ内のファイルを修正し、プロジェクトルートの `config.toml` ファイルを削除することで、テーマ設定を調整する必要があります。
{{< /alert >}}
## サイト設定
テーマ全体で標準の Hugo 設定変数が適用されますが、最適なエクスペリエンスを得るために設定する必要がある特定の事項があります。
サイト設定は `config/_default/config.toml` ファイルで管理されます。 下の表は、Blowfish が活用するすべての設定の概要を示しています。
この表で提供されている変数名は、TOML データ構造を簡素化するためにドット表記を使用していることに注意してください(つまり、 `outputs.home` は `[outputs] home` を指します)。
<!-- prettier-ignore-start -->
| 名前 | デフォルト | 説明 |
|---|---|---|
| `theme` | `"blowfish"` | Hugo Modules を使用している場合は、この設定値を削除する必要があります。 他のすべてのインストールタイプでは、テーマが機能するためにこれを `blowfish` に設定する必要があります。 |
| `baseURL` | _未設定_ | ウェブサイトのルートへの URL です。 |
| `defaultContentLanguage` | `"en"` | この値は、テーマコンポーネントとコンテンツのデフォルト言語を決定します。 サポートされている言語コードについては、以下の[言語と i18n](#言語と-i18n) セクションを参照してください。 |
| `enableRobotsTXT` | `true` | 有効にすると、検索エンジンがサイト全体をクロールできるようにする `robots.txt` ファイルがサイトルートに作成されます。 あらかじめ作成した独自の `robots.txt` を提供する場合は、`false` に設定し、ファイルを `static` ディレクトリに配置します。 完全に制御するには、このファイルを生成するための[カスタムレイアウト]({{< ref "content-examples#カスタムレイアウト" >}})を提供できます。 |
| `pagination.pagerSize` | `10` | 記事リストの各ページにリストされる記事の数です。 |
| `summaryLength` | `0` | [フロントマター]({{< ref "front-matter" >}})で提供されていない場合に、記事の概要を生成するために使用される単語の数です。 値 `0` は最初の文を使用します。 概要が非表示になっている場合、この値は効果がありません。 |
| `outputs.home` | `["HTML", "RSS", "JSON"]` | サイト用に生成される出力形式です。 Blowfish では、すべてのテーマコンポーネントが正しく機能するために HTML、RSS、JSON が必要です。 |
| `permalinks` | _未設定_ | パーマリンクの設定については、[Hugo ドキュメント](https://gohugo.io/content-management/urls/#permalinks)を参照してください。 |
| `taxonomies` | _未設定_ | 分類の設定については、[コンテンツの整理]({{< ref "getting-started#コンテンツの整理" >}})セクションを参照してください。 |
<!-- prettier-ignore-end -->
## サムネイル
Blowfish は、記事に視覚的なサポートを簡単に追加できるように構築されています。Hugo の記事構造に慣れている場合は、記事フォルダ内に `feature*` で始まる画像ファイル(ほとんどすべての形式がサポートされていますが、`.png` または `.jpg` をお勧めします)を配置するだけです。これで、Blowfish はサイト内でサムネイルとして画像を使用したり、ソーシャルプラットフォーム全体で <a target="_blank" href="https://oembed.com/">oEmbed</a> カードに使用したりできます。
[こちら]({{< ref "thumbnails" >}})には、より詳細な情報と、どのように設定できるかを確認したい場合の[サンプル]({{< ref "thumbnail_sample" >}})を含むガイドもあります。
## 言語と i18n
Blowfish は多言語ウェブサイト向けに最適化されており、テーマアセットはすぐに使えるように複数の言語に翻訳されています。 言語設定を使用すると、コンテンツの複数のバージョンを生成して、訪問者に母国語でカスタマイズされたエクスペリエンスを提供できます。
このテーマは現在、デフォルトで次の言語をサポートしています:
| 言語 | コード |
|---|---|
| アラビア語 | `ar` |
| ブルガリア語 | `bg` |
| ベンガル語 | `bn` |
| カタロニア語 | `ca` |
| チェコ語 | `cs` |
| ドイツ語 | `de` |
| 英語 | `en` |
| エスペラント語 | `eo` |
| スペイン語(スペイン) | `es` |
| フィンランド語 | `fi` |
| フランス語 | `fr` |
| ヘブライ語 | `he` |
| クロアチア語 | `hr` |
| ハンガリー語 | `hu` |
| インドネシア語 | `id` |
| イタリア語 | `it` |
| 日本語 | `ja` |
| 韓国語 | `ko` |
| オランダ語 | `nl` |
| ポーランド語 | `pl` |
| ポルトガル語(ブラジル) | `pt-br` |
| ポルトガル語(ポルトガル) | `pt-pt` |
| ルーマニア語 | `ro` |
| ロシア語 | `ru` |
| トルコ語 | `tr` |
| ベトナム語 | `vi` |
| 中国語(簡体字) | `zh-cn` |
| 中国語(繁体字) | `zh-tw` |
デフォルトの翻訳は、翻訳文字列を含むカスタムファイル `i18n/[言語コード].yaml` を作成することでオーバーライドできます。 この方法を使用して新しい言語を追加することもできます。 新しい翻訳をコミュニティと共有したい場合は、[プルリクエストを開いて](https://github.com/nunocoracao/blowfish/pulls)ください。
### 設定
可能な限り柔軟に対応するために、ウェブサイトの各言語の言語設定ファイルを作成する必要があります。デフォルトでは、Blowfish には `config/_default/languages.en.toml` に英語の言語設定が含まれています。
デフォルトのファイルは、追加の言語を作成するためのテンプレートとして使用することも、英語以外の言語でウェブサイトを作成する場合は名前を変更することもできます。`languages.[言語コード].toml` 形式を使用してファイルに名前を付けるだけです。
{{< alert >}}
**注:** [サイト設定](#サイト設定)の `defaultContentLanguage` パラメータが、言語設定ファイル名の言語コードと一致していることを確認してください。
{{< /alert >}}
#### グローバル
<!-- prettier-ignore-start -->
| 名前 | デフォルト | 説明 |
|---|---|---|
| `languageCode` | `"en"` | このファイルの Hugo 言語コードです。トップレベル言語(例: `en`)またはサブバリアント(例: `en-au`)にすることができ、ファイル名の言語コードと一致する必要があります。Hugo はこの値が常に小文字であることを想定しています。適切な HTML 準拠のために、大文字と小文字を区別する `isoCode` パラメータを設定します。 |
| `languageName` | `"English"` | 言語の名前です。 |
| `weight` | `1` | 重みは、多言語サイトを構築するときの言語の順序を決定します。 |
| `title` | `"Blowfish"` | ウェブサイトのタイトルです。これは、サイトのヘッダーとフッターに表示されます。 |
<!-- prettier-ignore-end -->
#### パラメーター
<!-- prettier-ignore-start -->
| 名前 | デフォルト | 説明 |
|---|---|---|
| `params.displayName` | `"EN"` | ウェブサイトに言語が表示されるときに使用される名前です。 |
| `params.isoCode` | `"en"` | HTML メタデータ用の ISO 言語コードです。トップレベル言語(例: `en`)またはサブバリアント(例: `en-AU`)にすることができます。 |
| `params.rtl` | `false` | これが RTL 言語かどうかです。`true` に設定すると、コンテンツが右から左に並べ替えられます。 Blowfish は RTL 言語と LTR 言語の同時使用を完全にサポートしており、両方に動的に調整されます。 |
| `params.dateFormat` | `"2 January 2006"` | この言語での日付のフォーマット方法です。使用できる形式については、[Hugo ドキュメント](https://gohugo.io/functions/format/#gos-layout-string)を参照してください。 |
| `params.logo` | _未設定_ | `assets/` フォルダ内のサイトロゴファイルへの相対パスです。ロゴファイルは2倍の解像度で提供する必要があり、あらゆる画像サイズをサポートしています。 |
| `params.secondaryLogo` | _未設定_ | `assets/` フォルダ内のセカンダリサイトロゴファイルへの相対パスです。 ロゴファイルは2倍の解像度で提供する必要があり、あらゆる画像サイズをサポートしています。 これは、`logo` とは反転/対照的なカラースキームである必要があります。設定されている場合、このロゴは、ユーザーが `defaultAppearance` モードから切り替えたときに表示されます。 |
| `params.description` | _未設定_ | ウェブサイトの説明です。これはサイトのメタデータで使用されます。 |
| `params.copyright` | _未設定_ | サイトフッターの著作権メッセージの Markdown 文字列には、プレースホルダ { year } を含めて現在の年を動的に挿入できます。指定されていない場合、Blowfish はサイト `title` を使用して著作権文字列を自動的に生成します。 |
<!-- prettier-ignore-end -->
#### 著者(Author)
<!-- prettier-ignore-start -->
| 名前 | デフォルト    | 説明 |
|---|---|---|
| `author.name` | _未設定_ | 著者の名前です。これは、記事のフッターと、プロフィールレイアウトが使用されている場合はホームページに表示されます。 |
| `author.image` | _未設定_ | 著者の画像ファイルへのパスです。画像は縦横比 1:1 である必要があります。画像は、サイトの `assets/` フォルダに配置することも、外部 URL にすることもできます。 |
| `author.headline` | _未設定_ | 著者の見出しを含む Markdown 文字列です。プロフィールホームページの著者の名前に下に表示されます。 |
| `author.bio` | _未設定_ | 著者の略歴を含む Markdown 文字列です。記事のフッターに表示されます。 |
| `author.links` | _未設定_ | 著者の詳細と一緒に表示するリンクです。設定ファイルには、コメントを外すだけで有効になるリンクの例が含まれています。リンクが表示される順序は、配列に表示される順序によって決まります。`assets/icons/` に対応する SVG アイコンアセットを提供することで、カスタムリンクを追加できます。 |
<!-- prettier-ignore-end -->
### メニュー(Menus)
Blowfish は、言語固有のメニュー設定もサポートしています。メニュー設定ファイルは、言語ファイルと同じ命名形式に従います。ファイル名に言語コードを指定するだけで、Hugo はファイルがどの言語に関連しているかを認識します。
メニュー設定ファイルの名前は、 `menus.[language-code].toml` 形式です。メニュー設定で使用される言語コードが言語設定と一致していることを常に確認してください。
[はじめに]({{< ref "getting-started#menus" >}})セクションでは、このファイルの構造について詳しく説明しています。詳細な設定例については、[Hugo メニュー ドキュメント](https://gohugo.io/content-management/menus/)も参照できます。
## テーマパラメーター(Theme parameters)
Blowfish は、テーマの機能を制御する多数の設定パラメータを提供します。下の表は、`config/_default/params.toml` ファイルで使用可能なすべてのパラメータの概要を示しています。
ここにある記事のデフォルトの多くは、フロントマターで指定することで、記事ごとにオーバーライドできます。詳細については、[フロントマター]({{< ref "front-matter" >}})セクションを参照してください。
<!-- prettier-ignore-start -->
### グローバル
| 名前 | デフォルト | 説明 |
|---|---|---|
| `colorScheme` | `"blowfish"` | 使用するテーマのカラースキームです。有効な値は、`blowfish`(デフォルト)、`avocado`、`fire`、`ocean`、`forest`、`princess`、`neon`、`bloody`、`terminal`、`marvel`、`noir`、`autumn`、`congo`、`slate` です。詳細については、[カラースキーム]({{< ref "getting-started#カラースキーム" >}})セクションを参照してください。 |
| `defaultAppearance` | `"light"` | デフォルトのテーマの外観です。`light` または `dark` のいずれかです。 |
| `autoSwitchAppearance` | `true` | 訪問者のオペレーティングシステムの設定に基づいてテーマの外観を自動的に切り替えるかどうかです。`false` に設定すると、サイトは常に `defaultAppearance` を使用します。 |
| `enableSearch` | `false` | サイト内検索が有効かどうかです。`true` に設定すると、検索機能が有効になります。検索機能は、[サイト設定](#サイト設定)の `outputs.home` 設定が正しく設定されているかどうかに依存することに注意してください。 |
| `enableCodeCopy` | `false` | `<code>` ブロックのクリップボードへのコピーボタンを有効にするかどうかです。コードコピーが正しく機能するには、`highlight.noClasses` パラメータを `false` に設定する必要があります。以下の[その他の設定ファイル](#その他の設定ファイル)について読んでください。 |
| `mainSections` | _未設定_ | 最近の記事リストに表示するセクションです。指定しない場合は、記事数が最も多いセクションが使用されます。 |
| `showViews` | _未設定_ | 記事とリストの表示回数を表示するかどうかです。これには Firebase 統合を有効にする必要があります。以下をご覧ください。 |
| `showLikes` | _未設定_ | 記事とリストのいいねを表示するかどうかです。これには Firebase 統合を有効にする必要があります。以下をご覧ください。 |
| `robots` | _未設定_ | ロボットがサイトをどのように処理するかを示す文字列です。設定されている場合、ページヘッダーに出力されます。有効な値については、[Google のドキュメント](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives)を参照してください。 |
| `disableImageZoom` | `false` | サイト内のすべての画像の画像ズーム機能を無効にします。 |
| `disableImageOptimization` | `false` | サイト内のすべての画像の画像サイズ変更と最適化機能を無効にします。 |
| `disableTextInHeader` | `false` | ヘッダーのテキストを無効にします。ロゴベースのヘッダーに役立ちます。 |
| `defaultBackgroundImage` | _未設定_ | `background` ホームページレイアウトと `background` ヒーロースタイルの両方のデフォルトの背景画像です。 |
| `defaultFeaturedImage` | _未設定_ | 記事全体のすべての `featured` 画像のデフォルトの背景画像です。ローカルの `featured` 画像によってオーバーライドされます。 |
| `highlightCurrentMenuArea` | _未設定_ | メインメニューのメニュー項目が選択されているときにマークを付けます。 |
| `smartTOC` | _未設定_ | スマート目次をアクティブにします。表示されている項目が強調表示されます。 |
| `smartTOCHideUnfocusedChildren` | _未設定_ | スマート目次がオンになっている場合、フォーカスされていないときに、テーブルのより深いレベルが非表示になります。 |
### ヘッダー(Header)
| 名前 | デフォルト | 説明 |
|---|---|---|
| `header.layout` | `"basic"` | サイト全体のヘッダーを定義します。サポートされている値は、`basic`、`fixed`、`fixed-fill`、`fixed-fill-blur` です。 |
### フッター(Footer)
| 名前 | デフォルト    | 説明 |
|---|---|---|
| `footer.showMenu` | `true` | フッターメニューを表示/非表示にします。これは、`config/_default/menus.en.toml` ファイルの `[[footer]]` セクションで設定できます。 |
| `footer.showCopyright` | `true` | サイトのフッターに著作権文字列を表示するかどうかです。文字列自体は、[言語設定](#言語と-i18n) の `copyright` パラメータを使用してカスタマイズできることに注意してください。 |
| `footer.showThemeAttribution` | `true` | サイトのフッターに「powered by」というテーマの帰属を表示するかどうかです。このメッセージを無効にする場合は、サイトの他の場所(たとえば、about ページ)でテーマの帰属を検討してください。 |
| `footer.showAppearanceSwitcher` | `false` | サイトのフッターに外観スイッチャーを表示するかどうかです。 ブラウザのローカルストレージを使用して、訪問者の設定が保持されます。 |
| `footer.showScrollToTop` | `true` | `true` に設定すると、トップへスクロールの矢印が表示されます。 |
### ホームページ(Homepage)
| 名前 | デフォルト | 説明 |
|---|---|---|
| `homepage.layout` | `"profile"` | ホームページのレイアウトです。有効な値は、`page`、`profile`、`hero`、`card`、`background`、`custom` です。`custom` に設定した場合、`/layouts/partials/home/custom.html` ファイルを作成して独自のレイアウトを提供する必要があります。詳細については、[ホームページレイアウト]({{< ref "homepage-layout" >}}) セクションを参照してください。 |
| `homepage.homepageImage` | _未設定_ | `hero` レイアウトと `card` レイアウトで使用される画像です。アセットディレクトリからのローカル画像または外部画像 URL として設定できます。詳細については、[ホームページレイアウト]({{< ref "homepage-layout" >}}) セクションを参照してください。 |
| `homepage.showRecent` | `false` | ホームページに最近の記事リストを表示するかどうかです。 |
| `homepage.showRecentItems` | 5 | showRecent が true の場合に表示する記事の数です。変数が0に設定されている場合、または定義されていない場合は、システムはデフォルトで5つの記事に設定されます。 |
| `homepage.showMoreLink` | `false` | ユーザーを事前に定義された場所に移動する「もっと見る」リンクを投稿の最後に表示するかどうかです。 |
| `homepage.showMoreLinkDest` | `/posts` | 「もっと見る」ボタンの移動先です。 |
| `homepage.cardView` | `false` | 最近の記事をカードのギャラリーとして表示します。 |
| `homepage.cardViewScreenWidth` | `false` | 最近の記事カードギャラリーの幅を拡張して、利用可能な幅全体を使用します。 |
| `homepage.layoutBackgroundBlur` | `false` | ホームページレイアウトの背景画像をスクロールに合わせてぼかします。 |
### 記事(Article)
| 名前 | デフォルト     | 説明 |
|---|---|---|
| `article.showDate` | `true` | 記事の日付を表示するかどうかです。 |
| `article.showViews` | `false` | 記事の表示回数を表示するかどうかです。これには Firebase 統合を有効にする必要があります。以下をご覧ください。 |
| `article.showLikes` | `false` | 記事のいいねを表示するかどうかです。これには Firebase 統合を有効にする必要があります。以下をご覧ください。 |
| `article.showDateOnlyInArticle` | `false` | 記事リスト/カードに表示されていない場合でも、記事内に日付を表示します。 |
| `article.showDateUpdated` | `false` | 記事が更新された日付を表示するかどうかです。 |
| `article.showAuthor` | `true` | 記事のフッターに著者ボックスを表示するかどうかです。 |
| `article.showAuthorBottom` | `false` | 著者ボックスは、各ページの上部ではなく下部に表示されます。 |
| `article.showHero` | `false` | サムネイル画像を各記事ページ内でヒーロー画像として表示するかどうかです。 |
| `article.heroStyle` | _未設定_ | ヒーロー画像を表示するスタイルです。有効なオプションは、`basic`、`big`、`background`、`thumbAndBackground` です。 |
| `article.layoutBackgroundBlur` | `true` | 背景記事 heroStyle の背景画像をスクロールに合わせてぼかします。 |
| `article.layoutBackgroundHeaderSpace` | `true` | ヘッダーと本文の間にスペースを追加します。 |
| `article.showBreadcrumbs` | `false` | 記事のヘッダーにパンくずリストを表示するかどうかです。 |
| `article.showDraftLabel` | `true` | サイトが `--buildDrafts` でビルドされたときに、記事の横にドラフトインジケータを表示するかどうかです。 |
| `article.showEdit` | `false` | 記事コンテンツを編集するためのリンクを表示するかどうかです。 |
| `article.editURL` | _未設定_ | `article.showEdit` がアクティブな場合、編集リンクの URL です。 |
| `article.editAppendPath` | `true` | `article.showEdit` がアクティブな場合、現在の記事へのパスを `article.editURL` で設定された URL に追加するかどうかです。 |
| `article.seriesOpened` | `false` | シリーズモジュールがデフォルトで開いた状態で表示されるかどうかです。 |
| `article.showHeadingAnchors` | `true` | 記事内の見出しの横にアンカーリンク見出しを表示するかどうかです。 |
| `article.showPagination` | `true` | 記事のフッターに次/前の記事リンクを表示するかどうかです。 |
| `article.invertPagination` | `false` | 次/前の記事リンクの方向を反転するかどうかです。 |
| `article.showReadingTime` | `true` | 記事の読了時間を表示するかどうかです。 |
| `article.showTableOfContents` | `false` | 記事に目次を表示するかどうかです。 |
| `article.showRelatedContent` | `false` | 各投稿の関連記事を表示します。`config.toml` に追加の設定が必要になる場合があります。この機能を有効にする場合は、テーマの `config.toml` を確認し、関連するすべての _related_ エントリをコピーしてください。また、関連記事については [Hugo のドキュメント](https://gohugo.io/content-management/related/) も確認してください。 |
| `article.relatedContentLimit` | `3` | `showRelatedContent` がオンになっている場合に表示する関連記事の上限です。 |
| `article.showTaxonomies` | `false` | この記事に関連するタクソノミーを表示するかどうかです。 |
| `article.showAuthorsBadges` | `false` | `authors` タクソノミーを記事またはリストのヘッダーに表示するかどうかです。これには、「複数の著者」と `authors` タクソノミーの設定が必要です。この機能の設定方法の詳細については、[このページ]({{< ref "multi-author" >}}) を確認してください。 |
| `article.showWordCount` | `false` | 記事の単語数を表示するかどうかです。 |
| `article.showComments` | `false` | 記事のフッターの後に [コメントパーシャル]({{< ref "partials#コメント" >}}) を含めるかどうかです。 |
| `article.sharingLinks` | _未設定_ | 各記事の最後に表示する共有リンクです。指定されていないか、`false` に設定されている場合、リンクは表示されません。使用可能な値は、<br>"linkedin"、"bluesky"、<br>"mastodon"、"twitter"、"reddit"、<br>"pinterest"、"facebook"、"email"、<br>"whatsapp"、"telegram" です。 |
| `article.showZenMode` | `false` | 記事のZenモードリーダー機能を有効にするフラグです。 |
### リスト(List)
| 名前 | デフォルト    | 説明 |
| ---------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list.showHero` | `false` | 各リストページ内でサムネイル画像をヒーロー画像として表示するかどうか。 |
| `list.heroStyle` | _未設定_ | ヒーロー画像の表示スタイル。有効なオプションは `basic`、`big`、`background`、`thumbAndBackground` です。 |
| `list.showBreadcrumbs` | `false` | リストページのヘッダーにパンくずリストを表示するかどうか。 |
| `list.layoutBackgroundBlur` | `true` | `background` リストの heroStyle の背景画像をスクロールでぼかします。 |
| `list.layoutBackgroundHeaderSpace` | `true` | ヘッダーと本文の間にスペースを追加します。 |
| `list.showTableOfContents` | `false` | リストページに目次を表示するかどうか。 |
| `list.showSummary` | `false` | リストページに記事の要約を表示するかどうか。[フロントマター]({{< ref "front-matter" >}}) で要約が提供されていない場合、[サイト設定](#site-configuration) の `summaryLength` パラメータを使用して自動的に生成されます。 |
| `list.showViews` | `false` | リストの閲覧数を表示するかどうか。これを有効にするには、Firebase の統合を有効にする必要があります。以下をご覧ください。 |
| `list.showLikes` | `false` | リストのいいね数を表示するかどうか。これを有効にするには、Firebase の統合を有効にする必要があります。以下をご覧ください。 |
| `list.showCards` | `false` | 各記事をカードとして表示するか、シンプルなインラインテキストとして表示するかどうか。 |
| `list.orderByWeight` | `false` | 記事を[重み](https://gohugo.io/methods/page/weight/)で並べ替えるかどうか。 |
| `list.groupByYear` | `true` | リストページで記事を年別にグループ化するかどうか。 |
| `list.cardView` | `false` | リストをカードのギャラリーとして表示します。 |
| `list.cardViewScreenWidth` | `false` | リスト内のカードギャラリーの幅を、利用可能な全幅を使用するように拡張します。 |
| `list.constrainItemsWidth` | `false` | 読みやすくするために、アイテムの幅を `prose` に制限します。フィーチャー画像が利用できない場合に役立ちます。 |
| `list.showTableOfContents` | `false` | 記事に目次を表示するかどうか。 |
### サイトマップ(Sitemap)
| 名前 | デフォルト | 説明 |
| ----------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sitemap.excludedKinds` | `["taxonomy", "term"]` | 生成された `/sitemap.xml` ファイルから除外するコンテンツの種類。許容される値については、[Hugo のドキュメント](https://gohugo.io/templates/section-templates/#page-kinds)を参照してください。 |
### タクソノミー(Taxonomy)
| 名前 | デフォルト   | 説明 |
| ------------------------------ | --------- | ----------------------------------------------------------------------------------------------------------------- |
| `taxonomy.showTermCount` | `true` | タクソノミーリストにタクソノミー用語内の記事数を表示するかどうか。 |
| `taxonomy.showHero` | `false` | 各タクソノミーページ内でサムネイル画像をヒーロー画像として表示するかどうか。 |
| `taxonomy.heroStyle` | _未設定_ | ヒーロー画像の表示スタイル。有効なオプションは `basic`、`big`、`background`、`thumbAndBackground` です。 |
| `taxonomy.showBreadcrumbs` | `false` | タクソノミーのヘッダーにパンくずリストを表示するかどうか。 |
| `taxonomy.showViews` | `false` | 記事の閲覧数を表示するかどうか。これを有効にするには、Firebase の統合を有効にする必要があります。以下をご覧ください。 |
| `taxonomy.showLikes` | `false` | 記事のいいね数を表示するかどうか。これを有効にするには、Firebase の統合を有効にする必要があります。以下をご覧ください。 |
| `taxonomy.showTableOfContents` | `false` | タクソノミーに目次を表示するかどうか。 |
| `taxonomy.cardView` | `false` | リストをカードのギャラリーとして表示します。 |
### ターム(Term)
| 名前 | デフォルト   | 説明 |
| -------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------- |
| `term.showHero` | `false` | 各タームページ内でサムネイル画像をヒーロー画像として表示するかどうか。 |
| `term.heroStyle` | _未設定_ | ヒーロー画像の表示スタイル。有効なオプションは `basic`、`big`、`background`、`thumbAndBackground` です。 |
| `term.showBreadcrumbs` | `false` | タームのヘッダーにパンくずリストを表示するかどうか。 |
| `term.showViews` | `false` | 記事の閲覧数を表示するかどうか。これを有効にするには、Firebase の統合を有効にする必要があります。以下をご覧ください。 |
| `term.showLikes` | `false` | 記事のいいね数を表示するかどうか。これを有効にするには、Firebase の統合を有効にする必要があります。以下をご覧ください。 |
| `term.showTableOfContents` | `false` | タームに目次を表示するかどうか。 |
| `term.groupByYear` | `false` | タームページで記事を年別にグループ化するかどうか。 |
| `term.cardView` | `false` | リストをカードのギャラリーとして表示します。 |
| `term.cardViewScreenWidth` | `false` | リスト内のカードギャラリーの幅を、利用可能な全幅を使用するように拡張します。 |
### Firebase
| 名前 | デフォルト    | 説明 |
| ---------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `firebase.apiKey` | _未設定_ | Firebase との統合に必要な Firebase API キー。Firebase を Blowfish に統合する方法については、[このページ]({{< ref "firebase-views" >}})を参照してください。 |
| `firebase.authDomain` | _未設定_ | Firebase との統合に必要な Firebase 認証ドメイン。Firebase を Blowfish に統合する方法については、[このページ]({{< ref "firebase-views" >}})を参照してください。 |
| `firebase.projectId` | _未設定_ | Firebase との統合に必要な Firebase プロジェクト ID。Firebase を Blowfish に統合する方法については、[このページ]({{< ref "firebase-views" >}})を参照してください。 |
| `firebase.storageBucket` | _未設定_ | Firebase との統合に必要な Firebase ストレージバケット。Firebase を Blowfish に統合する方法については、[このページ]({{< ref "firebase-views" >}})を参照してください。 |
| `firebase.messagingSenderId` | _未設定_ | Firebase との統合に必要な Firebase メッセージング送信者 ID。Firebase を Blowfish に統合する方法については、[このページ]({{< ref "firebase-views" >}})を参照してください。 |
| `firebase.appId` | _未設定_ | Firebase との統合に必要な Firebase アプリ ID。Firebase を Blowfish に統合する方法については、[このページ]({{< ref "firebase-views" >}})を参照してください。 |
| `firebase.measurementId` | _未設定_ | Firebase との統合に必要な Firebase 測定 ID。Firebase を Blowfish に統合する方法については、[このページ]({{< ref "firebase-views" >}})を参照してください。 |
### Fathom Analytics
| 名前 | デフォルト    | 説明 |
| ------------------------ | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fathomAnalytics.site` | _未設定_ | ウェブサイト用に Fathom Analytics によって生成されたサイトコード。詳細については、[Analytics のドキュメント]({{< ref "partials#アナリティクス" >}})を参照してください。 |
| `fathomAnalytics.domain` | _未設定_ | Fathom Analytics でカスタムドメインを使用している場合、ここに指定して、`script.js` をカスタムドメインから配信します。 |
### Umami Analytics
| 名前 | デフォルト    | 説明 |
|---|---|---|
| `umamiAnalytics.websiteid` | _未設定_ | ウェブサイト用に Umami Analytics によって生成されたサイトコード。詳細については、[Analytics のドキュメント]({{< ref "partials#アナリティクス" >}})を参照してください。 |
| `umamiAnalytics.domain` | _未設定_ | Umami Analytics でカスタムドメインを使用している場合、ここに指定して、`script.js` をカスタムドメインから配信します。 |
| `umamiAnalytics.dataDomains` | _未設定_ | トラッカーを特定のドメインでのみ実行したい場合は、トラッカースクリプトに指定します。これは、ドメイン名のカンマ区切りリストです。例えば "yoursite.com,yoursite2.com" のようになります。 |
| `umamiAnalytics.scriptName` | script.js | アンチ広告ブロックに使用される `script.js` の名前は、環境変数 `TRACKER_SCRIPT_NAME` で設定されます。 |
| `umamiAnalytics.enableTrackEvent` | `true` | `true` に設定すると、トラックイベントが自動的に追加されます。トラックイベントを追加したくない場合は、`false` に設定してください。 |
### Seline Analytics
| 名前 | デフォルト    | 説明 |
|-----------------------------------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------|
| `selineAnalytics.token` | _未設定_ | ウェブサイト用に Seline Analytics によって生成されたトークン。詳細については、[Analytics のドキュメント]({{< ref "partials#アナリティクス" >}})を参照してください。 |
| `selineAnalytics.enableTrackEvent` | `true` | `true` に設定すると、トラックイベントが自動的に追加されます。トラックイベントを追加したくない場合は、`false` に設定してください。 |
### BuyMeACoffee
| 名前 | デフォルト   | 説明 |
| ----------------------------------- | --------- | -------------------------------------------------------------------------------------- |
| `buymeacoffee.identifier` | _未設定_ | ターゲットの buymeacoffee アカウントの識別子。 |
| `buymeacoffee.globalWidget` | _未設定_ | グローバル buymeacoffee ウィジェットを有効にします。 |
| `buymeacoffee.globalWidgetMessage` | _未設定_ | 新しいユーザーが初めてサイトにアクセスしたときに表示されるメッセージ。 |
| `buymeacoffee.globalWidgetColor` | _未設定_ | ウィジェットの色(16進数形式)。 |
| `buymeacoffee.globalWidgetPosition` | _未設定_ | ウィジェットの位置。例えば "Left" または "Right" |
### verification
| 名前 | デフォルト  | 説明 |
| ------------------------ | --------- | ------------------------------------------------------------------------------------------------------- |
| `verification.google` | _未設定_ | サイトメタデータに含まれる、Google が提供するサイト確認文字列。 |
| `verification.bing` | _未設定_ | サイトメタデータに含まれる、Bing が提供するサイト確認文字列。 |
| `verification.pinterest` | _未設定_ | サイトメタデータに含まれる、Pinterest が提供するサイト確認文字列。 |
| `verification.yandex` | _未設定_ | サイトメタデータに含まれる、Yandex が提供するサイト確認文字列。 |
<!-- prettier-ignore-end -->
## RSSNext
| 名前 | デフォルト    | 説明 |
| ------------------------ | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `rssnext.feedId` | _未設定_ | [RSSNext/Follow](https://follow.is/) によって提供される rss `feedId` 文字列。`rss.xml` に含まれ、rss フィードを自身のものとしてクレームするのに役立ちます。 |
| `rssnext.userId` | _未設定_ | [RSSNext/Follow](https://follow.is/) によって提供される rss `userId` 文字列。`rss.xml` に含まれ、rss フィードを自身のものとしてクレームするのに役立ちます。 |
## その他の設定ファイル
このテーマには `markup.toml` 設定ファイルも含まれています。このファイルには、Hugo が Blowfish で構築されたサイトを正しく生成するために重要なパラメータがいくつか含まれています。
このファイルが常に config ディレクトリに存在し、必要な値が設定されていることを確認してください。そうしないと、特定の機能が正しく機能せず、意図しない動作を引き起こす可能性があります。
+115 -72
View File
@@ -1,6 +1,6 @@
---
title: "Configuration"
date: 2020-08-14
weight: 4
draft: false
description: "All the configuration variables available in Blowfish."
slug: "configuration"
@@ -15,9 +15,11 @@ The theme ships with a default configuration that gets you up and running with a
{{< alert "fire" >}}
We just launched a CLI tool to help you get started with Blowfish. It will help you with installation and configuration. Install the CLI tool globally using:
```bash
npx blowfish-tools
```
{{< /alert >}}
> Configuration files bundled with the theme are provided in TOML format as this is the default Hugo syntax. Feel free to convert your config to YAML or JSON if you wish.
@@ -43,7 +45,7 @@ Note that the variable names provided in this table use dot notation to simplify
| `baseURL` | _Not set_ | The URL to the root of the website. |
| `defaultContentLanguage` | `"en"` | This value determines the default language of theme components and content. Refer to the [language and i18n](#language-and-i18n) section below for supported language codes. |
| `enableRobotsTXT` | `true` | When enabled, a `robots.txt` file will be created in the site root that allows search engines to crawl the entire site. If you prefer to provide your own pre-made `robots.txt`, set to `false` and place your file in the `static` directory. For complete control, you may provide a [custom layout]({{< ref "content-examples#custom-layouts" >}}) to generate this file. |
| `paginate` | `10` | The number of articles listed on each page of the article listing. |
| `pagination.pagerSize` | `10` | The number of articles listed on each page of the article listing. |
| `summaryLength` | `0` | The number of words that are used to generate the article summary when one is not provided in the [front matter]({{< ref "front-matter" >}}). A value of `0` will use the first sentence. This value has no effect when summaries are hidden. |
| `outputs.home` | `["HTML", "RSS", "JSON"]` | The output formats that are generated for the site. Blowfish requires HTML, RSS and JSON for all theme components to work correctly. |
| `permalinks` | _Not set_ | Refer to the [Hugo docs](https://gohugo.io/content-management/urls/#permalinks) for permalink configuration. |
@@ -52,7 +54,7 @@ Note that the variable names provided in this table use dot notation to simplify
## Thumbnails
Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article structure, you just need to place an image file (almost all formats are supported but we recommend `.png` or `.jpg`) that starts with `feature*` inside your article folder. And that's it, Blowfish will then able to both use the image as a thumbnail within your website as well as for <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.
Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article structure, you just need to place an image file (almost all formats are supported but we recommend `.png` or `.jpg`) that starts with `feature*` inside your article folder. And that's it, Blowfish will then able to both use the image as a thumbnail within your website as well as for <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.
[Here]({{< ref "thumbnails" >}}) is also a guide with more info and a [sample]({{< ref "thumbnail_sample" >}}) if you want to see how you can do it.
@@ -62,36 +64,38 @@ Blowfish is optimised for full multilingual websites and theme assets are transl
The theme currently supports the following languages by default:
| Language | Code |
| ------------------------------ | ------- |
| 🇦🇪 Arabic | `ar` |
| 🇧🇬 Bulgarian | `bg` |
| 🇧🇩 Bengali | `bn` |
| 🇪🇸 Catalan | `ca` |
| 🇨🇿 Czech | `cs` |
| 🇩🇪 German | `de` |
| 🇬🇧 English | `en` |
| 🇪🇸 Spanish (Spain) | `es` |
| 🇫🇮 Finnish | `fi` |
| 🇫🇷 French | `fr` |
| 🇮🇱 Hebrew | `he` |
| 🇭🇷 Croatian | `hr` |
| 🇭🇺 Hungarian | `hu` |
| 🇮🇩 Indonesian | `id` |
| 🇮🇹 Italian | `it` |
| 🇯🇵 Japanese | `ja` |
| 🇰🇷 Korean | `ko` |
| 🇵🇱 Polish | `pl` |
| 🇧🇷 Portuguese (Brazil) | `pt-br` |
| 🇵🇹 Portuguese (Portugal) | `pt-pt` |
| 🇷🇴 Romanian | `ro` |
| 🇷🇺 Russian | `ru` |
| 🇹🇷 Turkish | `tr` |
| 🇻🇳 Vietnamese | `vi` |
| 🇨🇳 Simplified Chinese (China) | `zh-cn` |
| 🇹🇼 Traditional Chinese (Taiwan) | `zh-tw` |
| Language | Code |
| ---------------------------- | ------- |
| Arabic | `ar` |
| Bulgarian | `bg` |
| Bengali | `bn` |
| Catalan | `ca` |
| Czech | `cs` |
| German | `de` |
| English | `en` |
| Esperanto | `eo` |
| Spanish (Spain) | `es` |
| Finnish | `fi` |
| French | `fr` |
| Galician | `gl` |
| Hebrew | `he` |
| Croatian | `hr` |
| Hungarian | `hu` |
| Indonesian | `id` |
| Italian | `it` |
| Japanese | `ja` |
| Korean | `ko` |
| Dutch | `nl` |
| Persian | `fa` |
| Polish | `pl` |
| Portuguese (Brazil) | `pt-br` |
| Portuguese (Portugal) | `pt-pt` |
| Romanian | `ro` |
| Russian | `ru` |
| Turkish | `tr` |
| Vietnamese | `vi` |
| Simplified Chinese (China) | `zh-cn` |
| Traditional Chinese (Taiwan) | `zh-tw` |
The default translations can be overridden by creating a custom file in `i18n/[code].yaml` that contains the translation strings. You can also use this method to add new languages. If you'd like to share a new translation with the community, please [open a pull request](https://github.com/nunocoracao/blowfish/pulls).
@@ -105,7 +109,6 @@ The default file can be used as a template to create additional languages, or re
**Note:** Ensure the `defaultContentLanguage` parameter in the [site configuration](#site-configuration) matches the language code in your language config filename.
{{< /alert >}}
#### Global
<!-- prettier-ignore-start -->
@@ -131,17 +134,19 @@ The default file can be used as a template to create additional languages, or re
| `params.description` | _Not set_ | The website description. This will be used in the site metadata. |
| `params.copyright` | _Not set_ | A Markdown string for the site footer copyright message can include the placeholder { year } to dynamically insert the current year. If none is provided, Blowfish will automatically generate a copyright string using the site `title`. |
<!-- prettier-ignore-end -->
#### Author
| Name | Default | Description |
| ----------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `author.name` | _Not set_ | The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used. |
| `author.image` | _Not set_ | Path to the image file of the author. The image should be a 1:1 aspect ratio. The image can be placed in the site's `assets/` folder or can be external url. |
| `author.headline` | _Not set_ | A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name. |
| `author.bio` | _Not set_ | A Markdown string containing the author's bio. It will be displayed in article footers. |
| `author.links` | _Not set_ | The links to display alongside the author's details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in `assets/icons/`. |
##### Author
| Name | Default | Description |
| ---------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `params.author.name` | _Not set_ | The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used. |
| `params.author.email` | _Not set_ | The author's email. This will be used if the reply-via-email functionality is enabled. |
| `params.author.image` | _Not set_ | Path to the image file of the author. The image should be a 1:1 aspect ratio. The image can be placed in the site's `assets/` folder or can be external url. |
| `params.author.imageQuality` | `96` | The author's image file will be treated as a "high quality" image to minimize artifacts on the front page. Value range 1-100. |
| `params.author.headline` | _Not set_ | A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name. |
| `params.author.bio` | _Not set_ | A Markdown string containing the author's bio. It will be displayed in article footers. |
| `params.author.links` | _Not set_ | The links to display alongside the author's details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in `assets/icons/`. |
<!-- prettier-ignore-end -->
### Menus
@@ -162,31 +167,36 @@ Many of the article defaults here can be overridden on a per article basis by sp
### Global
| Name | Default | Description |
| ------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `colorScheme` | `"blowfish"` | The theme colour scheme to use. Valid values are `blowfish` (default), `avocado`, `ocean`, `fire` and `slate`. Refer to the [Colour Schemes]({{< ref "getting-started#colour-schemes" >}}) section for more details. |
| `defaultAppearance` | `"light"` | The default theme appearance, either `light` or `dark`. |
| `autoSwitchAppearance` | `true` | Whether the theme appearance automatically switches based upon the visitor's operating system preference. Set to `false` to force the site to always use the `defaultAppearance`. |
| `enableSearch` | `false` | Whether site search is enabled. Set to `true` to enable search functionality. Note that the search feature depends on the `outputs.home` setting in the [site configuration](#site-configuration) being set correctly. |
| `enableCodeCopy` | `false` | Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below. |
| `mainSections` | _Not set_ | The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used. |
| `showViews` | _Not set_ | Whether or not articles and list views are displayed. This requires firebase integrations to be enabled, look below. |
| `showLikes` | _Not set_ | Whether or not articles and list likes are displayed. This requires firebase integrations to be enabled, look below. |
| `robots` | _Not set_ | String that indicates how robots should handle your site. If set, it will be output in the page head. Refer to [Google's docs](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) for valid values. |
| `disableImageZoom` | `false` | Disables image zoom feature across all the images in the site. |
| `disableImageOptimization` | `false` | Disables image resize and optimization features across all the images in the site. |
| `disableTextInHeader` | `false` | Disables text in header, useful for logo based headers. |
| `defaultBackgroundImage` | _Not set_ | Default background image for both `background` homepage layout and `background` hero style |
| `defaultFeaturedImage` | _Not set_ | Default background image for all `featured` images across articles, will be overridden by a local `featured` image. |
| `highlightCurrentMenuArea` | _Not set_ | Marks menu entries in the main menu when selected |
| `smartTOC` | _Not set_ | Activate smart Table of Contents, items in view will be highlighted. |
| `smartTOCHideUnfocusedChildren` | _Not set_ | When smart Table of Contents is turned on, this will hide deeper levels of the table when they are not in focus. |
| Name | Default | Description |
| ------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `colorScheme` | `"blowfish"` | The theme colour scheme to use. Valid values are `blowfish` (default), `avocado`, `fire`, `ocean`, `forest`, `princess`, `neon`, `bloody`, `terminal`, `marvel`, `noir`, `autumn`, `congo`, and`slate`. Refer to the [Colour Schemes]({{< ref "getting-started#colour-schemes" >}}) section for more details. |
| `defaultAppearance` | `"light"` | The default theme appearance, either `light` or `dark`. |
| `autoSwitchAppearance` | `true` | Whether the theme appearance automatically switches based upon the visitor's operating system preference. Set to `false` to force the site to always use the `defaultAppearance`. |
| `enableSearch` | `false` | Whether site search is enabled. Set to `true` to enable search functionality. Note that the search feature depends on the `outputs.home` setting in the [site configuration](#site-configuration) being set correctly. |
| `enableCodeCopy` | `false` | Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below. |
| `replyByEmail` | `false` | Whether the reply-by-email link is enabled after post. The `author.email` parameter in `config/_default/languages.en.toml` must be set. |
| `forgejoDefaultServer` | _Not set_ | The default `server` parameter for the `forgejo` shortcode. |
| `giteaDefaultServer` | _Not set_ | The default `server` parameter for the `gitea` shortcode. |
| `mainSections` | _Not set_ | The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used. |
| `showViews` | _Not set_ | Whether or not articles and list views are displayed. This requires firebase integrations to be enabled, look below. |
| `showLikes` | _Not set_ | Whether or not articles and list likes are displayed. This requires firebase integrations to be enabled, look below. |
| `robots` | _Not set_ | String that indicates how robots should handle your site. If set, it will be output in the page head. Refer to [Google's docs](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) for valid values. |
| `disableImageZoom` | `false` | Disables image zoom feature across all the images in the site. |
| `disableImageOptimization` | `false` | Disables image resize and optimization features across all the images in the site. |
| `backgroundImageWidth` | `1200` | Width (in pixels) to scale background images to. |
| `disableTextInHeader` | `false` | Disables text in header, useful for logo based headers. |
| `defaultBackgroundImage` | _Not set_ | Default background image for both `background` homepage layout and `background` hero style |
| `defaultFeaturedImage` | _Not set_ | Default background image for all `featured` images across articles, will be overridden by a local `featured` image. |
| `highlightCurrentMenuArea` | _Not set_ | Marks menu entries in the main menu when selected |
| `smartTOC` | _Not set_ | Activate smart Table of Contents, items in view will be highlighted. |
| `smartTOCHideUnfocusedChildren` | _Not set_ | When smart Table of Contents is turned on, this will hide deeper levels of the table when they are not in focus. |
### Header
| Name | Default | Description |
| --------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |
| `header.layout` | `"basic"` | Defines the header for the entire site, supported values are `basic`, `fixed`, `fixed-fill`, and `fixed-fill-blur`. |
### Footer
| Name | Default | Description |
@@ -196,12 +206,13 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `footer.showThemeAttribution` | `true` | Whether or not to show the "powered by" theme attribution in the site footer. If you choose to disable this message, please consider attributing the theme somewhere else on your site (for example, on your about page). |
| `footer.showAppearanceSwitcher` | `false` | Whether or not to show the appearance switcher in the site footer. The browser's local storage is used to persist the visitor's preference. |
| `footer.showScrollToTop` | `true` | When set to `true` the scroll to top arrow is displayed. |
### Homepage
| Name | Default | Description |
| ------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `homepage.layout` | `"profile"` | The layout of the homepage. Valid values are `page`, `profile`, `hero`, `card`, `background`, or `custom`. When set to `custom`, you must provide your own layout by creating a `/layouts/partials/home/custom.html` file. Refer to the [Homepage Layout]({{< ref "homepage-layout" >}}) section for more details. |
| `homepage.homepageImage` | _Not set_ | Image to be used in `hero` and `card` layouts. Can be set as local image from asset directory or external image url. Refer to the [Homepage Layout]({{< ref "homepage-layout" >}}) section for more details. |
| `homepage.homepageImage` | _Not set_ | Image to be used in `hero` and `card` layouts. Can be set as local image from asset directory or external image url. Refer to the [Homepage Layout]({{< ref "homepage-layout" >}}) section for more details. |
| `homepage.showRecent` | `false` | Whether or not to display the recent articles list on the homepage. |
| `homepage.showRecentItems` | 5 | How many articles to display if showRecent is true. If variable is set to 0 or if it isn't defined the system will default to 5 articles. |
| `homepage.showMoreLink` | `false` | Whether or not to display a show more link at the end of your posts that takes the user to a predefined place. |
@@ -209,6 +220,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `homepage.cardView` | `false` | Display recent articles as a gallery of cards. |
| `homepage.cardViewScreenWidth` | `false` | Enhance the width of the recent articles card gallery to take the full width available. |
| `homepage.layoutBackgroundBlur` | `false` | Makes the background image in the homepage layout blur with the scroll |
### Article
| Name | Default | Description |
@@ -219,6 +231,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `article.showDateOnlyInArticle` | `false` | Show date within article even if not displayed in article listings/cards. |
| `article.showDateUpdated` | `false` | Whether or not the dates articles were updated are displayed. |
| `article.showAuthor` | `true` | Whether or not the author box is displayed in the article footer. |
| `article.showAuthorBottom` | `false` | Author boxes are displayed at the bottom of each page instead of the top. |
| `article.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each article page. |
| `article.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `article.layoutBackgroundBlur` | `true` | Makes the background image in the background article heroStyle blur with the scroll |
@@ -234,13 +247,13 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `article.invertPagination` | `false` | Whether or not to flip the direction of the next/previous article links. |
| `article.showReadingTime` | `true` | Whether or not article reading times are displayed. |
| `article.showTableOfContents` | `false` | Whether or not the table of contents is displayed on articles. |
| `article.showRelatedContent` | `false` | Display related content for each post. Might required additional configuration to your `config.toml`. Please check the theme `config.toml` if you want to enable this feature and copy all the relevant *related* entries. Also check [Hugo's docs](https://gohugo.io/content-management/related/) on related content. |
| `article.relatedContentLimit` | `3` | Limit of related articles to display if ` showRelatedContent` is turned on. |
| `article.showRelatedContent` | `false` | Display related content for each post. Might required additional configuration to your `config.toml`. Please check the theme `config.toml` if you want to enable this feature and copy all the relevant _related_ entries. Also check [Hugo's docs](https://gohugo.io/content-management/related/) on related content. |
| `article.relatedContentLimit` | `3` | Limit of related articles to display if `showRelatedContent` is turned on. |
| `article.showTaxonomies` | `false` | Whether or not the taxonomies related to this article are displayed. |
| `article.showAuthorsBadges` | `false` | Whether the `authors` taxonomies are are displayed in the article or list header. This requires the setup of `multiple authors` and the `authors` taxonomy. Check [this page]({{< ref "multi-author" >}}) for more details on how to configure that feature. |
| `article.showWordCount` | `false` | Whether or not article word counts are displayed. |
| `article.showComments` | `false` | Whether or not the [comments partial]({{< ref "partials#comments" >}}) is included after the article footer. |
| `article.sharingLinks` | _Not set_ | Which sharing links to display at the end of each article. When not provided, or set to `false` no links will be displayed. Available values are: "linkedin", "twitter", "reddit", "pinterest", "facebook", "email", "whatsapp", and "telegram" |
| `article.sharingLinks` | _Not set_ | Which sharing links to display at the end of each article. When not provided, or set to `false` no links will be displayed. Available values are: "linkedin", "bluesky", "mastodon", "twitter", "reddit", "pinterest", "facebook", "email", "whatsapp", and "telegram" |
| `article.showZenMode` | `false` | Flag to activate Zen Mode reading feature for articles. |
### List
@@ -257,6 +270,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `list.showViews` | `false` | Whether or not list views are displayed. This requires firebase integrations to be enabled, look below. |
| `list.showLikes` | `false` | Whether or not list likes are displayed. This requires firebase integrations to be enabled, look below. |
| `list.showCards` | `false` | Whether or not each article is displayed as a card or as simple inline text. |
| `list.orderByWeight` | `false` | Whether or not articles are sorted by [weights](https://gohugo.io/methods/page/weight/). |
| `list.groupByYear` | `true` | Whether or not articles are grouped by year on list pages. |
| `list.cardView` | `false` | Display lists as a gallery of cards. |
| `list.cardViewScreenWidth` | `false` | Enhance the width of card galleries in lists to take the full width available. |
@@ -281,6 +295,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `taxonomy.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
| `taxonomy.showTableOfContents` | `false` | Whether or not the table of contents is displayed on taxonomies. |
| `taxonomy.cardView` | `false` | Display lists as a gallery of cards. |
### Term
| Name | Default | Description |
@@ -294,6 +309,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `term.groupByYear` | `false` | Whether or not articles are grouped by year on term pages. |
| `term.cardView` | `false` | Display lists as a gallery of cards. |
| `term.cardViewScreenWidth` | `false` | Enhance the width of card galleries in lists to take the full width available. |
### Firebase
| Name | Default | Description |
@@ -313,6 +329,23 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `fathomAnalytics.site` | _Not set_ | The site code generated by Fathom Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
| `fathomAnalytics.domain` | _Not set_ | If using a custom domain with Fathom Analytics, provide it here to serve `script.js` from the custom domain. |
### Umami Analytics
| Name | Default | Description |
| --------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `umamiAnalytics.websiteid` | _Not set_ | The site code generated by Umami Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
| `umamiAnalytics.domain` | _Not set_ | If using a custom domain with Umami Analytics, provide it here to serve `script.js` from the custom domain. |
| `umamiAnalytics.dataDomains` | _Not set_ | If you want the tracker to only run on specific domains, provide it for your tracker script. This is a comma delimited list of domain names. Such as "yoursite.com,yoursite2.com". |
| `umamiAnalytics.scriptName` | script.js | The name of the `script.js` used for anti-ad-blocking is configured by the environment variable `TRACKER_SCRIPT_NAME` |
| `umamiAnalytics.enableTrackEvent` | true | When set to `true` track event will add automatically. If you do not want to add track event, set it to `false`. |
### Seline Analytics
| Name | Default | Description |
| ---------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `selineAnalytics.token` | _Not set_ | The token generated by Seline Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
| `selineAnalytics.enableTrackEvent` | true | When set to `true` track event will add automatically. If you do not want to add track event, set it to `false`. |
### BuyMeACoffee
| Name | Default | Description |
@@ -322,16 +355,26 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `buymeacoffee.globalWidgetMessage` | _Not set_ | Message what will be displayed the first time a new user lands on the site. |
| `buymeacoffee.globalWidgetColor` | _Not set_ | Widget color in hex format. |
| `buymeacoffee.globalWidgetPosition` | _Not set_ | Position of the widget, i.e. "Left" or "Right" |
### Verifications
| Name | Default | Description |
| ------------------------ | --------- | --------------------------------------------------------------------------------------- |
| `verification.google` | _Not set_ | The site verification string provided by Google to be included in the site metadata. |
| `verification.bing` | _Not set_ | The site verification string provided by Bing to be included in the site metadata. |
| `verification.pinterest` | _Not set_ | The site verification string provided by Pinterest to be included in the site metadata. |
| `verification.yandex` | _Not set_ | The site verification string provided by Yandex to be included in the site metadata. |
| Name | Default | Description |
| ------------------------ | --------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `verification.google` | _Not set_ | The site verification string provided by Google to be included in the site metadata. |
| `verification.bing` | _Not set_ | The site verification string provided by Bing to be included in the site metadata. |
| `verification.pinterest` | _Not set_ | The site verification string provided by Pinterest to be included in the site metadata. |
| `verification.yandex` | _Not set_ | The site verification string provided by Yandex to be included in the site metadata. |
| `verification.fediverse` | _Not set_ | The fediverse handle to include in the site metadata. Include the server domain in the username, e.g. `@you@instanceaddress.tld`. |
<!-- prettier-ignore-end -->
## RSSNext
| Name | Default | Description |
| ------------------------ | --------- |--------------------------------------------------------------------------------------------------------------------------------------|
| `rssnext.feedId` | _Not set_ | The rss `feedId` string provided by [RSSNext/Follow](https://follow.is/) to be included in the `rss.xml`, which can helps to claim rss feed as your own. |
| `rssnext.userId` | _Not set_ | The rss `userId` string provided by [RSSNext/Follow](https://follow.is/) to be included in the `rss.xml`, which can helps to claim rss feed as your own. |
## Other configuration files
The theme also includes a `markup.toml` configuration file. This file contains some important parameters that ensure that Hugo is correctly configured to generate sites built with Blowfish.
@@ -0,0 +1,371 @@
---
title: "配置"
weight: 4
draft: false
description: "介绍 Blowfish 中所有可用的的配置变量。"
slug: "configuration"
tags: ["配置", "文档"]
series: ["部署教程"]
series_order: 4
---
Blowfish 适宜个高度定制化的主题,使用到了一些 Hugo 中最新的特性来简化配置方式。
主题附带了默认配置,可以让你快速启动一个基本的博客或静态网站。
{{< alert "fire" >}}
我们刚刚推出了 CLI 工具,来帮助你快速上手 Blowfish。它将帮助你进行安装和配置。使用以下命令可以全局范围安装 CLI 工具:
```bash
npx blowfish-tools
```
{{< /alert >}}
> 配置文件是基于 TOML 格式的,这也是 Hugo 默认支持的语法。当然如果你愿意,也可以将配置转换成 YAML 或 JSON 格式。
默认情况下,在每个文件中都定义了主题中的可用参数,因此你可以自由调整设置来满足你的需求。
{{< alert >}}
正如[安装说明]({{< ref "/docs/installation#set-up-theme-configuration-files" >}})中的内容,如果你想调整主题配置,可以修改 Hugo 项目中 `config/_default/` 文件夹下的文件,并删除项目根目录中的 `config.toml` 文件。
{{< /alert >}}
## 网站配置
Blowfish 主题支持了 Hugo 框架中定义的所有标准配置变量。但如果希望有更好的体验,需要设置一些特定的配置。
网站配置是通过 `config/_default/config.toml` 文件管理的。下面的表格展示了 Blowfish 中的所有设置.
值得注意的是,表格中提供的变量名可以使用点表示法来简化 TOML 数据结构,例如 `outputs.home` 指的是 `[outputs] home`。
<!-- prettier-ignore-start -->
| 名称 | 默认值 | 描述 |
| ------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `theme` | `"blowfish"` | 当你使用 Hugo 模块安装时,应该移除这个配置项。但对 Git 子模块或本地文件复制的安装方式,必须将其设置为 blowfish 才能正常工作。 |
| `baseURL` | 无 | 网站 URL 根地址。 |
| `defaultContentLanguage` | `"en"` | 这个值决定了主题中组件和内容所使用的默认语言。 参考 [语言和 i18n](#language-and-i18n) 部分来了解 blowfish 支持的所有语言代码。 |
| `enableRobotsTXT` | `true` | 当开启这个值,`robots.txt` 文件将会被创建在站点根目录, 这将允许搜索引擎抓取整个网站。如果你想要自己提供 `robots.txt`,那么设置这个值为 `false` 并把你的文件放置到 `static` 目录下。 为了实现完全控制,你可以需要提供一个 [自定义布局]({{< ref "content-examples#custom-layouts" >}}) 来生成此文件。 |
| `pagination.pagerSize` | `10` | 定义文章列表中,每页展示的文章数量。 |
| `summaryLength` | `0` | 当[扉页参数]({{< ref "front-matter" >}}) 中没有提供文章摘要时,此参数定义了自动生成文章摘要的单词数量。如果值为`0`,则默认使用第一句话作为摘要。当摘要被隐藏,这个值没有任何效果。 |
| `outputs.home` | `["HTML", "RSS", "JSON"]` | 为站点自动生成输出格式。Blowfish 要求 HTML、RSS 和 JSON 都需要有,以保证主题组件可以正常运作。 |
| `permalinks` | 无 | 参考 [Hugo 文档](https://gohugo.io/content-management/urls/#permalinks) 中的自定义文章的固定链接配置。 |
| `taxonomies` | 无 | 参考 [整理内容]({{< ref "getting-started#organising-content" >}}) 中的分类器配置。 |
<!-- prettier-ignore-end -->
## 缩略图
Blowfish 的创立开端旨在便于为文章添加视觉效果。如果你熟悉 Hugo 的文章结构,只需要在你文章所在的文件夹中,放置一个以`feature*`开头的图像文件(Blowfish支持所有格式的文件,但更推荐使用 `.png` 或 `.jpg`)。就这样,Blowfish 就能够将图像文件作为文章的缩略图,而且能够在社交平台的 `<a target="_blank" href="https://oembed.com/">oEmbed</a>` 卡片中使用。
[这里]({{< ref "thumbnails" >}}) 可以看到更多内容,同时我们提供了一个[示例]({{< ref "thumbnail_sample" >}}),以便你具体看看如何操作。
## 语言和i18n
Blowfish 针对多语言网站进行了优化,主题的资源素材目前已经翻译成了多个语言版本。语言配置允许你生成多个版本的内容介绍,为网站的访问者提供他们母语的定制化体验。
Blowfish 主题目前默认支持了以下语言:
| 语言 | 代码 |
| ---------------------------- | ------- |
| Arabic | `ar` |
| Bulgarian | `bg` |
| Bengali | `bn` |
| Catalan | `ca` |
| Czech | `cs` |
| German | `de` |
| English | `en` |
| Esperanto | `eo` |
| Spanish (Spain) | `es` |
| Finnish | `fi` |
| French | `fr` |
| Hebrew | `he` |
| Croatian | `hr` |
| Hungarian | `hu` |
| Indonesian | `id` |
| Italian | `it` |
| Japanese | `ja` |
| Korean | `ko` |
| Dutch | `nl` |
| Polish | `pl` |
| Portuguese (Brazil) | `pt-br` |
| Portuguese (Portugal) | `pt-pt` |
| Romanian | `ro` |
| Russian | `ru` |
| Turkish | `tr` |
| Vietnamese | `vi` |
| Simplified Chinese (China) | `zh-cn` |
| Traditional Chinese (Taiwan) | `zh-tw` |
组件和静态资源的默认翻译在 `i18n/[code].yaml` 文件中,当然如果你想自定义,覆盖对应的文件即可。你也可以使用这种方法添加新的语言。如果你想与社区分享心得翻译,请[提交PR](https://github.com/nunocoracao/blowfish/pulls)。
### 配置
为了让 Blowfish 尽可能的灵活,每个网站都至少语言创建一个语言配置文件。默认情况下,Blowfish 提供了 `config/_default/languages.en.toml` 文件以默认支持英语。
默认的文件可以用来作为创建其他语言的一个模板,如果你希望用英语以外的语言撰写网站,也可以对其重命名。只需要格式遵循 `languages.[language-code].toml` 的命名即可。
{{< alert >}}
**注意:** 保证 [网站设置](#site-configuration) 中的 `defaultContentLanguage`参数和你提供的语言配置文件相匹配。
{{< /alert >}}
#### 全局
<!-- prettier-ignore-start -->
| 名称 | 默认值 | 描述 |
| -------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `languageCode` | `"en"` | Hugo 中的默认语言代码。他可以是一个高层级语言(例如 `en`),也可以是一个变体子语言(例如 `en-au`),但一定需要和语言配置文件中的语言代码相匹配。为了符合 HTML 的规范并设置设置大小写敏感的 `isoCode`,Hugo希望这个值最好是小写。 |
| `languageName` | `"English"` | 语言名称。 |
| `weight` | `1` | 权重决定了在构建多语言时的语言顺序。 |
| `title` | `"Blowfish"` | 网站的标题。它将在网站头部和底部进行展示。 |
<!-- prettier-ignore-end -->
#### 参数
<!-- prettier-ignore-start -->
| 名称 | 默认值 | 描述 |
| ---------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `params.displayName` | `"EN"` | 语言在网站中的展示名。 |
| `params.isoCode` | `"en"` | 用于 HTML 元数据的 ISO 语言代码。他可以是一个高层级语言(例如 `en`),也可以是一个变体子语言(例如 `en-au`)。 |
| `params.rtl` | `false` | 用于指定是否是 RTL 语言。设置为 `true` 则网站会从右向左重拍内容。Blowfish 完全支持同时使用 RTL 和 LTR 语言,并将动态调整。 |
| `params.dateFormat` | `"2 January 2006"` | 用于指定如何日期格式化。参考 [Hugo 文档](https://gohugo.io/functions/format/#gos-layout-string) 了解可以支持的格式。 |
| `params.logo` | 无 | `assets/` 文件夹中站点 logo 的相对路径。该 logo 文件需要提供 2x 分辨率并支持任何图像尺寸。 |
| `params.secondaryLogo` | 无 | `assets/` 文件夹中站点次要 logo 的相对路径。该 logo 文件需要提供 2x 分辨率并支持任何图像尺寸。这个 logo 的颜色方案应该是和上面的是相反或对比的。如果设置了这个值,当用户从 `defaultAppearance` 模式切换时,将会显示这个 logo。 |
| `params.description` | 无 | 网站表述。此参数将会被用作站点元数据。 |
| `params.copyright` | 无 | 此参数是一个 Markdown,用于网站页脚的版权声明。此参数可以包含占位符 { year } ,以此动态插入当前年份。 如果没有提供,Blowfish 将会使用网站 `title` 自动生成版权信息。 |
<!-- prettier-ignore-end -->
#### 作者
| 名称 | 默认值 | 描述 |
| ----------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `author.name` | 无 | 作者名。此参数将展示在文章页脚。并且如果主页使用了个人资料布局,也会展示此值。 |
| `author.image` | 无 | 作者头像的文件路径。图像应该是 1:1 的宽高比。可以放在网站的 `assets/` 文件夹中,也可以是外部 URL。 |
| `author.headline` | 无 | 包含作者头衔的 Markdown。它将展示在主页中作者姓名打分下方。 |
| `author.bio` | 无 | 包含作者简介的 Markdown。它将展示在文章页脚。 |
| `author.links` | 无 | 与作者详细信息一起显示的链接。配置文件中包含示例链接,取消注释即可启用。链接展示的顺序由他们在数组中定义的顺序决定。如果你想自定义链接,可以在 `assets/icons/` 中提供相应的SVG图片。 |
<!-- prettier-ignore-end -->
### 菜单
Blowfish 还支持针对特定语言的菜单配置。菜单配置文件的命名规则和语言配置文件的格式类似。只需要在文件名中提供语言代码,Hugo 就可以知道这是针对哪种语言的菜单。
菜单配置文件的命名格式是 `menus.[language-code].toml`。请始终确保菜单配置项中使用的语言代码和语言配置相匹配。
[入门指南]({{< ref "getting-started#menus" >}})部分更详细地介绍了这个文件的结构。你还可以参考 [Hugo 菜单文档](https://gohugo.io/content-management/menus/),以获取更多配置示例。
## 主题参数
Blowfish 提供了大量控制主题功能的配置参数,下面的表格中列举了 `config/_default/params.toml` 文件中所有的可用参数。
下面列举的文章参数是全局默认值,都可以在每个文章中的前置元数据内容中进行覆盖。详细可以参考 [扉页参数]({{< ref "front-matter" >}})。
<!-- prettier-ignore-start -->
### 全局
| 名称 | 默认值 | 描述 |
| ------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `colorScheme` | `"blowfish"` | 主题使用的颜色方案。合法的值有: `blowfish` (默认)、`avocado`、`fire`、`ocean`、`forest`、`princess`、`neon`、`bloody`、`terminal`、`marvel`、`noir`、`autumn`、`congo` 和 `slate`。 具体参考[颜色方案]({{< ref "getting-started#colour-schemes" >}})以获取更多信息。 |
| `defaultAppearance` | `"light"` | 默认的主题外观,可以是 `light` 或者 `dark`。 |
| `autoSwitchAppearance` | `true` | 主题外观是否根据访问者操作系统的偏好自动切换。设置为 `false` 会强制网站始终使用 `defaultAppearance`。 |
| `enableSearch` | `false` | 是否开启网站的搜索功能,设为 `true` 即为启用。注意,搜索功能依赖于[站点设置](#site-configuration)中的 `outputs.home` 设置,请确保此值配置正确。 |
| `enableCodeCopy` | `false` | 是否可以将`<code>`代码块复制到剪贴板。想要使用代码复制功能,需要将 `highlight.noClasses` 参数设置为 `false`。 阅读 [其他配置文件](#other-configuration-files) 以获取更多信息。 |
| `mainSections` | 无 | 指定最近文章中应该展示的模块。 如果没有指定,则使用文章数量最多的板块。 |
| `showViews` | 无 | 是否显示文章和列表页面的阅读量。这需要集成 firebase ,具体可以看下面。 |
| `showLikes` | 无 | 是否显示文章和列表页面的点赞量。这需要集成 firebase ,具体可以看下面。 |
| `robots` | 无 | 用于支持搜索引擎爬虫如何处理你的网站。如果设置了该值,它将被输出在页面头部。具体的参数值请参考 [Google 文档](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives)。 |
| `disableImageZoom` | `false` | 禁用网站上所有图片缩放功能。 |
| `disableImageOptimization` | `false` | 禁用图片上所有图片的调整大小和优化功能。 |
| `disableTextInHeader` | `false` | 禁用文本类型的标题,对基于 logo 的标题很有用。 |
| `defaultBackgroundImage` | 无 | 设置默认背景图,用于 `background` 和 `hero` 布局下的主页。 |
| `defaultFeaturedImage` | 无 | 设置默认背景图片,用于所有文章的`featured`图片,可以通过文章目录中的 `featured` 图片替换。 |
| `highlightCurrentMenuArea` | 无 | 当菜单被选择时,标记主菜单中的菜单项。 |
| `smartTOC` | 无 | 开启智能目录,视图中的项目将会被高亮显示。 |
| `smartTOCHideUnfocusedChildren` | 无 | 当开启智能目录,如果目录级别不再被聚焦时,将会隐藏更深层次的目录。 |
### 页头
| 名称 | 默认值 | 描述 |
| --------------- | --------- | --------------------------------------------------------------------------------------------- |
| `header.layout` | `"basic"` | 定义整个站点的页头的布局,支持的参数有 `basic`、`fixed`、`fixed-fill`、and `fixed-fill-blur`. |
### 页脚
| 名称 | 默认值 | 描述 |
| ------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------- |
| `footer.showMenu` | `true` | 显示/隐藏页面底部菜单,该菜单可以在 `config/_default/menus.en.toml` 文件中的 `[[footer]]` 部分进行配置。 |
| `footer.showCopyright` | `true` | 是否在底部显示 copyright 版权信息。请注意,如果你想定制,可以在[语言配置](#language-and-i18n)中使用 `copyright` 参数。 |
| `footer.showThemeAttribution` | `true` | 是否在网站底部中显示"powered by" 的主题归属信息。如果禁用此参数,请考虑在你网站的其他位置设置主题归属信息,例如在关于页面。 |
| `footer.showAppearanceSwitcher` | `false` | 是否在也页面底部显示外观切换器。浏览器的本地存储会缓存访问者的偏好设置。 |
| `footer.showScrollToTop` | `true` | 当设置为 `true` 时,显示返回顶部的箭头按钮。 |
### 主页
| 名称 | 默认值 | 描述 |
| ------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `homepage.layout` | `"profile"` | 首页布局参数。合法的参数值有: `page`、`profile`、`hero`、`card`、`background` 或 `custom`。当你设置为 `custom` 时,你必须创建 `/layouts/partials/home/custom.html` 文件以定制自己的布局。参考[主页布局]({{< ref "homepage-layout" >}})来获取更多信息。 |
| `homepage.homepageImage` | 无 | 在 `hero` 和 `card` 布局中使用的图像。图片可以来自于本地的资源目录,也可以是外部图像 URL。参考 [主页布局]({{< ref "homepage-layout" >}}) 来获取更多信息。 |
| `homepage.showRecent` | `false` | 是否在主页展示最新文章列表。 |
| `homepage.showRecentItems` | 5 | 如果将 `showRecent` 设置为 `true`,此参数用于显示多少篇文章。如果没有设置或者为0,则默认显示5篇文章。 |
| `homepage.showMoreLink` | `false` | 是否在主页底部添加“显示更多”,该链接会降会用带到一个预定义位置。 |
| `homepage.showMoreLinkDest` | `/posts` | 更多按钮所指向的位置。 |
| `homepage.cardView` | `false` | 将列表展示为卡片容器。 |
| `homepage.cardViewScreenWidth` | `false` | 增强列表中卡片的宽度,使其可以占据可用的全部宽度。 |
| `homepage.layoutBackgroundBlur` | `false` | 向下滚动主页时,是否模糊背景图。 |
### 文章页
| 名称 | 默认值 | 描述 |
| ------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `article.showDate` | `true` | 是否显示日期。 |
| `article.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 |
| `article.showLikes` | `false` | 是否显示文章点赞量。这需要集成 firebase ,具体可以看下面。 |
| `article.showDateOnlyInArticle` | `false` | 是否在文章内显示日期,不影响文章列表或卡片页面的日期显示。 |
| `article.showDateUpdated` | `false` | 是否展示文章的更新日期。 |
| `article.showAuthor` | `true` | 是否在文章底部显示作者框。 |
| `article.showAuthorBottom` | `false` | 作者框显示在每页的底部而不是顶部。 |
| `article.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 |
| `article.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic`、`big`、`background`、`thumbAndBackground`。 |
| `article.layoutBackgroundBlur` | `true` | 向下滚动文章页时,是否模糊背景图。 |
| `article.layoutBackgroundHeaderSpace` | `true` | 在标题和正文之间添加空白区域间隔。 |
| `article.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 |
| `article.showDraftLabel` | `true` | 当使用 `--buildDrafts` 构建网站时,是否在文章旁边显示草稿。 |
| `article.showEdit` | `false` | 是否展示编辑文章的链接。 |
| `article.editURL` | 无 | 当激活 `article.showEdit` 参数,此参数用于设置文章的编辑链接。 |
| `article.editAppendPath` | `true` | 当激活 `article.showEdit` 参数,是否将文章的路径附加到 `article.editURL` 参数所设置的 URL 后面。 |
| `article.seriesOpened` | `false` | 是否默认显示打开系列模块、 |
| `article.showHeadingAnchors` | `true` | 是否在文章标题旁添加锚点。 |
| `article.showPagination` | `true` | 是否在文章末尾展示上一篇/下一篇的文章链接。 |
| `article.invertPagination` | `false` | 是否翻转下一篇/上一篇文章链接的方向。 |
| `article.showReadingTime` | `true` | 是否展示文章的阅读时间。如果你的语言包含 CJK 语言,需要在 `config.toml` 中开启 `hasCJKLanguage` 参数。 |
| `article.showTableOfContents` | `false` | 是否展示文章的目录。 |
| `article.showRelatedContent` | `false` | 为文章显示相关内容。如果你想要启用此功能,请检查 `config.toml` 文件并复制所有 *related* 相关的参数,如果你想自定义,也可以对 `config.toml` 添加额外配置。更多内容请参考 [Hugo 文档](https://gohugo.io/content-management/related/) 中关于 *related* 的内容。 |
| `article.relatedContentLimit` | `3` | 如果启用`showRelatedContent`,则限制显示相关文章的数量。 |
| `article.showTaxonomies` | `false` | 是否显示文章的分类或标签信息。 |
| `article.showAuthorsBadges` | `false` | 是否在文章或列表中显示 `authors` 分类。这需要开启多个作者 `multiple authors` 和 `authors` 分类法。 请阅读 [这个网页]({{< ref "multi-author" >}}) 来获取更多内容。 |
| `article.showWordCount` | `false` | 是否显示文章的字数。 如果你的语言属于 CJK 语言,需要在 `config.toml` 中开启 `hasCJKLanguage` 参数。 |
| `article.showComments` | `false` | 是否在文章末尾添加 [评论部分]({{< ref "partials#comments" >}})。 |
| `article.sharingLinks` | 无 | 在文章末尾显示的分享链接。如果没有提供或设置为 `false`,则不会显示任何分享链接。可用的值包括:"linkedin"、"bluesky"、"mastodon"、"twitter"、"reddit"、"pinterest"、"facebook"、"email"、"whatsapp" 和 "telegram" |
| `article.showZenMode` | `false` | 指定是否激活文章阅读的禅模式,即隐藏常规的界面元素。 |
### 列表页
| 名称 | 默认值 | 描述 |
| ---------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 |
| `list.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic`、`big`、`background`、`thumbAndBackground`。 |
| `list.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 |
| `list.layoutBackgroundBlur` | `true` | 向下滚动列表页时,是否模糊背景图。 |
| `list.layoutBackgroundHeaderSpace` | `true` | 在标题和正文之间添加空白区域间隔。 |
| `list.showTableOfContents` | `false` | 是否展示目录。 |
| `list.showSummary` | `false` | 是否在列表页显示文章摘要。如果在[扉页参数]({{< ref "front-matter" >}})中没有提供摘要,那么将会使用[站点配置](#site-configuration) 中的 `summaryLength` 参数自动生成一个。 |
| `list.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 |
| `list.showLikes` | `false` | 是否显示文章点赞量。这需要集成 firebase ,具体可以看下面。 |
| `list.showCards` | `false` | 是否将每个文章显示为卡片或简单的内联文本。 |
| `list.groupByYear` | `true` | 是否根据年做聚合。 |
| `list.cardView` | `false` | 将列表展示为卡片容器。 |
| `list.cardViewScreenWidth` | `false` | 增强列表中卡片的宽度,使其可以占据可用的全部宽度。 |
| `list.constrainItemsWidth` | `false` | 将项目宽度限制为 `prose` 以提高可读性。在没有 featurn 图片的时候非常有用。 |
### 网站地图
| 名称 | 默认值 | 描述 |
| ----------------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `sitemap.excludedKinds` | `["taxonomy", "term"]` | 从生成的 `/sitemap.xml` 文件中排除的内容。 具体的配置请参考[Hugo 文档](https://gohugo.io/templates/section-templates/#page-kinds)。 |
### 分类法
| 名称 | 默认值 | 描述 |
| ------------------------------ | ------- | ----------------------------------------------------------------------------------------- |
| `taxonomy.showTermCount` | `true` | 是否在分类列表总显示对应的数量。 |
| `taxonomy.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 |
| `taxonomy.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic`、`big`、`background`、`thumbAndBackground`。 |
| `taxonomy.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 |
| `taxonomy.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 |
| `taxonomy.showLikes` | `false` | 是否显示文章点赞量。这需要集成 firebase ,具体可以看下面。 |
| `taxonomy.showTableOfContents` | `false` | 是否显示目录。 |
| `taxonomy.cardView` | `false` | 将列表展示为卡片容器。 |
### 术语
| 名称 | 默认值 | 描述 |
| -------------------------- | ------- | ------------------------------------------------------------------------------------------ |
| `term.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 |
| `term.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有: `basic`、`big`、`background`、`thumbAndBackground`。 |
| `term.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 |
| `term.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 |
| `term.showLikes` | `false` | 是否显示文章点赞量。这需要集成 firebase ,具体可以看下面。 |
| `term.showTableOfContents` | `false` | 是否显示目录。 |
| `term.groupByYear` | `false` | 是否根据年做聚合。 |
| `term.cardView` | `false` | 将列表展示为卡片容器。 |
| `term.cardViewScreenWidth` | `false` | 增强列表中卡片的宽度,使其可以占据可用的全部宽度。 |
### Firebase(Firebase 平台)
| 名称 | 默认值 | 描述 |
| ---------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `firebase.apiKey` | 无 | Firebase apiKey, 与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 |
| `firebase.authDomain` | 无 | Firebase authDomain,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 |
| `firebase.projectId` | 无 | Firebase projectId,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 |
| `firebase.storageBucket` | 无 | Firebase storageBucket,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 |
| `firebase.messagingSenderId` | 无 | Firebase messagingSenderId,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 |
| `firebase.appId` | 无 | Firebase appId,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 |
| `firebase.measurementId` | 无 | Firebase measurementId,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 |
### Fathom Analytics(一种网站分析工具)
| 名称 | 默认值 | 描述 |
| ------------------------ | ------ | ------------------------------------------------------------------------------------------- |
| `fathomAnalytics.site` | 无 | 支持 Fathom 站点分析平台。更多详细内容请参考 [分析文档]({{< ref "partials#analytics" >}})。 |
| `fathomAnalytics.domain` | 无 | 如果使用自定义域名的 Fathom Analytics,请在此提供,以便从自定义域名获取 `script.js`。 |
### Umami Analytics(一种网站分析工具)
| Name | Default | Description |
|------------------------------|-----------|-------------------------------------------------------------------------------------|
| `umamiAnalytics.websiteid` | 无 | 支持 Umami 站点分析平台。更多详细内容请参考 [分析文档]({{< ref "partials#analytics" >}})。 |
| `umamiAnalytics.domain` | 无 | 如果使用自定义域名的 Umami Analytics,请在此提供,以便从自定义域名获取 `script.js`。 |
| `umamiAnalytics.dataDomains` | 无 | 如果你只想在特别的数个域名中使用 tracker 功能,那么你需要设置它。这个参数的值是逗号分隔的域名列表,如:yoursite.com,yoursite2.com。 |
| `umamiAnalytics.scriptName` | script.js | 用于反广告屏蔽的 script.js 名称,由环境变量 `TRACKER_SCRIPT_NAME` 配置。 |
| `umamiAnalytics.enableTrackEvent` | true | 默认会自动添加 Umami Track Event。如果你不想添加 Event,那学需要设置为 `false`。 |
### Seline Analytics
| Name | Default | Description |
|-----------------------------------|---------|--------------------------------------------------------------------------|
| `selineAnalytics.token` | 无 | Seline 站点分析平台的 token。更多详细内容请参考 [分析文档]({{< ref "partials#analytics" >}})。 |
| `selineAnalytics.enableTrackEvent` | true | 默认会自动添加 Umami Track Event。如果你不想添加 Event,那学需要设置为 `false`。 |
### BuyMeACoffee(赞助平台)
| 名称 | 默认值 | 描述 |
| ----------------------------------- | ------ | ---------------------------------- |
| `buymeacoffee.identifier` | 无 | buymeacoffee 账号的用户名。 |
| `buymeacoffee.globalWidget` | 无 | 激活位于全局的 buymeacoffee 组件。 |
| `buymeacoffee.globalWidgetMessage` | 无 | 新用户首次访问网站时显示的消息。 |
| `buymeacoffee.globalWidgetColor` | 无 | 组件颜色,使用 HEX 格式。 |
| `buymeacoffee.globalWidgetPosition` | 无 | 组件位置,例如 "Left" 或 "Right"。 |
### 验证
| 名称 | 默认值 | 描述 |
| ------------------------ | ------ | -------------------------------------------------------- |
| `verification.google` | 无 | Google 提供的网站验证字符串,用于在网站元数据中包含。 |
| `verification.bing` | 无 | Bing 提供的网站验证字符串,用于在网站元数据中包含。 |
| `verification.pinterest` | 无 | Pinterest 提供的网站验证字符串,用于在网站元数据中包含。 |
| `verification.yandex` | 无 | Yandex 提供的网站验证字符串,用于在网站元数据中包含。 |
<!-- prettier-ignore-end -->
## RSSNext
| Name | Default | Description |
| ------------------------ | --------- |---------------------------------------------------------------------------------------------|
| `rssnext.feedId` | _Not set_ | [RSSNext/Follow](https://follow.is) 提供的 `feeId`,这将被自动添加在 `rss.xml` 中以便完成订阅源所有权验证,证明该源属于你自己。 |
| `rssnext.userId` | _Not set_ | [RSSNext/Follow](https://follow.is) 提供的 `userId`,这将被自动添加在 `rss.xml` 中以便完成订阅源所有权验证,证明该源属于你自己 |
## 别的配置文件
Blowfish 主题还包括 `markup.toml` 配置文件。这个文件包含了一些重要参数,来确保 Hugo 正确配置以生成使用 Blowfish 创建的网站。
需要确保次文件在 `config` 目录中,并设置所需要的值。否则某些功能可能无法正确启用,并可能导致意外行为。
@@ -0,0 +1,257 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.2950529742247572" x="0" y="0" width="711.6800000000001" height="711.6800000000001" patternUnits="userSpaceOnUse">
<g transform="scale(2.7800000000000002)"><circle cx="180.39755796770348" cy="144.2104368598822" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;17.85434406280291" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-44.622752456562516s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-44.622752456562516s"></animate>
</circle><circle cx="16.825168708189995" cy="32.834595161139454" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="272.82516870819" cy="32.834595161139454" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="16.825168708189995" cy="288.8345951611395" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="272.82516870819" cy="288.8345951611395" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="133.7281341523537" cy="37.557212373233874" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;24.44944303845901" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.76558939460953s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.76558939460953s"></animate>
</circle><circle cx="9.311746119524932" cy="139.87259197506899" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;42.09217911991696" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
</circle><circle cx="265.3117461195249" cy="139.87259197506899" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;42.09217911991696" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
</circle><circle cx="228.8288862878399" cy="50.59785782429598" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;19.868262625397918" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-23.68489264848651s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-23.68489264848651s"></animate>
</circle><circle cx="77.20196271561525" cy="31.611804700405518" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;45.28258812229561" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
</circle><circle cx="77.20196271561525" cy="287.6118047004055" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;45.28258812229561" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
</circle><circle cx="153.86297348533364" cy="53.13721410068965" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;56.59657006893606" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
</circle><circle cx="153.86297348533364" cy="309.1372141006897" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;56.59657006893606" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
</circle><circle cx="238.25141956589107" cy="242.3948925366868" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;7.110432319564012" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.8377648779141s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.8377648779141s"></animate>
</circle><circle cx="171.29587360943597" cy="93.62941553592991" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;64.80517552507085" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-41.081630071778505s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-41.081630071778505s"></animate>
</circle><circle cx="33.7803997203791" cy="200.65918731382288" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;23.874060138252702" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.74940953893833s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.74940953893833s"></animate>
</circle><circle cx="171.68455092137125" cy="208.29640936292603" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;10.804694032911527" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-46.827942545330814s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-46.827942545330814s"></animate>
</circle><circle cx="79.4759072969399" cy="14.760241106300118" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;63.07191175406126" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
</circle><circle cx="79.4759072969399" cy="270.7602411063001" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;63.07191175406126" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
</circle><circle cx="34.30718832814177" cy="60.207260607353895" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;36.85782580252244" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
</circle><circle cx="290.30718832814176" cy="60.207260607353895" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;36.85782580252244" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
</circle><circle cx="141.57461629003254" cy="187.07605677907222" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;51.82556427519147" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-39.3497070269789s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-39.3497070269789s"></animate>
</circle><circle cx="89.86556463252813" cy="191.98681310799674" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;42.52162149867297" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.730611990382005s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.730611990382005s"></animate>
</circle><circle cx="135.68751640285163" cy="79.13898775934953" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;13.167119065627332" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-5.604152896601732s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-5.604152896601732s"></animate>
</circle><circle cx="222.37419164851048" cy="172.5138843825768" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;30.712438068878654" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-11.730564332626214s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-11.730564332626214s"></animate>
</circle><circle cx="65.37962957434202" cy="71.08214856672792" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;51.390991126295845" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.53817444257383s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.53817444257383s"></animate>
</circle><circle cx="146.90696443169887" cy="160.58661584710634" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;30.874027084269912" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-48.61529961868726s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-48.61529961868726s"></animate>
</circle><circle cx="20.6640150520578" cy="116.652000839832" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;20.32462575632799" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-16.94818532763218s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-16.94818532763218s"></animate>
</circle><circle cx="14.794147949099273" cy="178.87974595952937" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;62.66357119046049" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
</circle><circle cx="270.7941479490993" cy="178.87974595952937" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;62.66357119046049" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
</circle><circle cx="31.287373376921607" cy="70.1833739363135" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;15.295461964288506" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-13.161686681828998s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-13.161686681828998s"></animate>
</circle><circle cx="178.84317419706238" cy="167.34091291757605" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;62.162205555011425" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-23.327170625044392s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-23.327170625044392s"></animate>
</circle><circle cx="154.05316621664582" cy="55.033341833431564" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;39.67588542484934" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.452897657374963s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.452897657374963s"></animate>
</circle><circle cx="72.19223514179198" cy="135.19246311905093" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;20.804220090813203" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-45.51768235650617s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-45.51768235650617s"></animate>
</circle><circle cx="150.9364802116815" cy="160.51205929354626" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;36.57407641397833" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.280565367328037s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.280565367328037s"></animate>
</circle><circle cx="200.40953970115999" cy="54.21097279269783" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;18.303774190487488" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.214535605827784s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.214535605827784s"></animate>
</circle><circle cx="180.31885618742604" cy="242.78087924898603" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;11.71365962730546" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.612535536027956s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.612535536027956s"></animate>
</circle><circle cx="203.8062010106876" cy="232.68973192108191" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;5.455675580739268" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-11.86697370110249s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-11.86697370110249s"></animate>
</circle><circle cx="171.6066941076269" cy="48.04474014530398" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;38.59286259496349" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.250466319872224s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.250466319872224s"></animate>
</circle><circle cx="125.11525876384411" cy="149.77467373569812" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;46.62256816012656" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-10.699532836506153s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-10.699532836506153s"></animate>
</circle><circle cx="89.16772547042389" cy="100.43557995027065" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.90728701564909" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-20.057887262682318s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-20.057887262682318s"></animate>
</circle><circle cx="163.0802387343303" cy="125.70388388233474" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;60.89399699890593" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.04746538184899s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.04746538184899s"></animate>
</circle><circle cx="147.29969577601045" cy="40.152117547871356" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.17094951058618" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
</circle><circle cx="147.29969577601045" cy="296.15211754787134" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.17094951058618" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
</circle><circle cx="50.39439200506233" cy="147.3941729324677" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;50.69970142939741" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
</circle><circle cx="306.39439200506234" cy="147.3941729324677" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;50.69970142939741" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
</circle><circle cx="188.7139101584322" cy="210.7115210762685" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;29.504019948829963" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-32.532647237390165s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-32.532647237390165s"></animate>
</circle><circle cx="114.22207446357659" cy="124.76935492926279" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;11.986008541965333" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.917226446523447s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.917226446523447s"></animate>
</circle><circle cx="194.31954289149434" cy="166.65089356408262" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;20.194181381536055" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-30.020995894146097s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-30.020995894146097s"></animate>
</circle><circle cx="184.86541783077774" cy="44.886087590301756" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.99589341531981" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
</circle><circle cx="184.86541783077774" cy="300.88608759030177" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.99589341531981" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
</circle><circle cx="128.6294815429427" cy="20.412863761372066" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;58.14291539416182" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
</circle><circle cx="128.6294815429427" cy="276.4128637613721" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;58.14291539416182" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
</circle><circle cx="94.65360523910455" cy="237.65373752048882" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;10.872426017373087" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.286612875431295s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.286612875431295s"></animate>
</circle><circle cx="186.84577473379255" cy="4.291441103039755" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.03848537207753" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
</circle><circle cx="186.84577473379255" cy="260.29144110303974" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.03848537207753" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
</circle><circle cx="3.1171684515748126" cy="10.536170179400985" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="259.1171684515748" cy="10.536170179400985" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="3.1171684515748126" cy="266.536170179401" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="259.1171684515748" cy="266.536170179401" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="188.74527992387326" cy="21.78088381944502" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;24.62604013195285" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
</circle><circle cx="188.74527992387326" cy="277.780883819445" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;24.62604013195285" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
</circle><circle cx="25.856888539646313" cy="42.26884688505775" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="281.8568885396463" cy="42.26884688505775" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="25.856888539646313" cy="298.26884688505777" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="281.8568885396463" cy="298.26884688505777" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="80.07378641634132" cy="99.95189316646443" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;31.25308753538168" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-44.38933261009856s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-44.38933261009856s"></animate>
</circle><circle cx="115.28452115370486" cy="183.50469529806404" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;43.47190520350591" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.01262905715093s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.01262905715093s"></animate>
</circle><circle cx="178.06444021126137" cy="196.65069638203684" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;55.28300103432255" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-31.907669721653242s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-31.907669721653242s"></animate>
</circle><circle cx="44.16845143857357" cy="102.58764890706274" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.592641937222965" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
</circle><circle cx="300.1684514385736" cy="102.58764890706274" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.592641937222965" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
</circle><circle cx="79.90917564776078" cy="58.24933597303385" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;17.76697933939279" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-6.018058267098058s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-6.018058267098058s"></animate>
</circle><circle cx="99.51047224071066" cy="68.21685313096823" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;32.538025421938485" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-24.711449309412114s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-24.711449309412114s"></animate>
</circle><circle cx="170.23837150372032" cy="80.50555967618685" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;49.47798543600463" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-27.302250080429058s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-27.302250080429058s"></animate>
</circle><circle cx="146.82045516936643" cy="81.4540879579799" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;17.51784178229697" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-14.316475870551947s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-14.316475870551947s"></animate>
</circle><circle cx="85.89692843138472" cy="166.66227056758296" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;43.09830041436764" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-25.33233432848061s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-25.33233432848061s"></animate>
</circle><circle cx="177.2226960369944" cy="175.07899171519415" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;43.73555785023012" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-25.121497689569683s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-25.121497689569683s"></animate>
</circle><circle cx="216.86808064093213" cy="27.577527215605766" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;4.737877261879547" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.904900634836528s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.904900634836528s"></animate>
</circle><circle cx="110.04710192749121" cy="180.18493319620214" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;44.77556931875715" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-1.5780314591062772s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-1.5780314591062772s"></animate>
</circle><circle cx="64.71846547185336" cy="75.44443893159085" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;9.889551183237941" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-36.2183301855013s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-36.2183301855013s"></animate>
</circle><circle cx="40.659167565439354" cy="80.92354614012416" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.03611543920749" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
</circle><circle cx="296.65916756543936" cy="80.92354614012416" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.03611543920749" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
</circle><circle cx="158.9398261520183" cy="96.5683673937937" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;9.89977495248037" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-2.5412705195820062s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-2.5412705195820062s"></animate>
</circle></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.2950529742247572)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 42 KiB

@@ -0,0 +1,574 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative"
width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.7735807359934106" x="0" y="0" width="345.6" height="345.6"
patternUnits="userSpaceOnUse">
<g transform="scale(1.35)">
<g>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="253.67183555350317"
y2="322.3700682221699" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10s"></animateTransform>
</g>
<g>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="7.343083737977565" x2="-29.40438263629852" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="2.4358284744095045" x2="-27.900932167205383" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="5s"></animateTransform>
</g>
<g>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="248.28896398255995"
y2="300.28675048655543" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="254.79057005056973"
y2="269.5365126987142" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10.3333333333333335s"></animateTransform>
</g>
</g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.7735807359934106)"></rect>
</svg>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 694 KiB

File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 218 KiB

@@ -0,0 +1,318 @@
---
title: "Content Examples"
weight: 11
draft: false
description: "All the partials available in Blowfish."
slug: "content-examples"
tags: ["content", "example"]
series: ["Documentation"]
series_order: 12
---
If you've been reading the documentation in order, you should now know about all the features and configurations available in Blowfish. This page is designed to pull everything together and offer some worked examples that you might like to use in your Hugo project.
{{< alert >}}
**Tip:** If you're new to Hugo, be sure to check out the [official docs](https://gohugo.io/content-management/page-bundles/) to learn more about the concept of page bundles and resources.
{{< /alert >}}
The examples on this page can all be adapted to different scenarios but hopefully give you some ideas about how to approach formatting a particular content item for your individual project.
## Branch pages
Branch page bundles in Hugo cover items like the homepage, section listings, and taxonomy pages. The important thing to remember about branch bundles is that the filename for this content type is **`_index.md`**.
Blowfish will honour the front matter parameters specified in branch pages and these will override the default settings for that particular page. For example, setting the `title` parameter in a branch page will allow overriding the page title.
### Homepage
| | |
| ------------ | -------------------- |
| **Layout:** | `layouts/index.html` |
| **Content:** | `content/_index.md` |
The homepage in Blowfish is special in that it's overarching design is controlled by the homepage layout config parameter. You can learn more about this in the [Homepage Layout]({{< ref "homepage-layout" >}}) section.
If you want to add custom content to this page, you simply need to create a `content/_index.md` file. Anything in this file will then be included in your homepage.
**Example:**
```yaml
---
title: "Welcome to Blowfish!"
description: "This is a demo of adding content to the homepage."
---
Welcome to my website! I'm really happy you stopped by.
```
_This example sets a custom title and adds some additional text to the body of the page. Any Markdown formatted text is acceptable, including shortcodes, images and links._
### List pages
| | |
| ------------ | ---------------------------- |
| **Layout:** | `layouts/_default/list.html` |
| **Content:** | `content/../_index.md` |
List pages group all the pages within into a section and provide a way for visitors to reach each page. A blog or portfolio are examples of a list page as they group together posts or projects.
Creating a list page is as simple as making a sub-directory in the content folder. For example, to create a "Projects" section, you would create `content/projects/`. Then create a Markdown file for each of your projects.
A list page will be generated by default, however to customise the content, you should also create an `_index.md` page in this new directory.
```shell
.
└── content
└── projects
├── _index.md # /projects
├── first-project.md # /projects/first-project
└── another-project
├── index.md # /projects/another-project
└── project.jpg
```
Hugo will generate URLs for the pages in your projects folder accordingly.
Just like the homepage, content in the `_index.md` file will be output into the generated list index. Blowfish will then list any pages in this section below the content.
**Example:**
```yaml
---
title: "Projects"
description: "Learn about some of my projects."
cascade:
showReadingTime: false
---
This section contains all my current projects.
```
_In this example, the special `cascade` parameter is being used to hide the reading time on any sub-pages within this section. By doing this, any project pages will not have their reading time showing. This is a great way to override default theme parameters for an entire section without having to include them in every individual page._
The [samples section]({{< ref "samples" >}}) of this site is an example of a list page.
### Taxonomy pages
| | |
| ---------------- | -------------------------------- |
| **List layout:** | `layouts/_default/taxonomy.html` |
| **Term layout:** | `layouts/_default/term.html` |
| **Content:** | `content/../_index.md` |
Taxonomy pages come in two forms - taxonomy lists and taxonomy terms. Lists display a listing of each of the terms within a given taxonomy, while terms display a list of pages that are related to a given term.
The terminology can get a little confusing so let's explore an example using a taxonomy named `animals`.
Firstly, to use taxonomies in Hugo, they have to be configured. This is done by creating a config file at `config/_default/taxonomies.toml` and defining the taxonomy name.
```toml
# config/_default/taxonomies.toml
animal = "animals"
```
Hugo expects taxonomies to be listed using their singular and plural forms, so we add the singular `animal` equals the plural `animals` to create our example taxonomy.
Now that our `animals` taxonomy exists, it needs to be added to individual content items. It's as simple as inserting it into the front matter:
```yaml
---
title: "Into the Lion's Den"
description: "This week we're learning about lions."
animals: ["lion", "cat"]
---
```
This has now created two _terms_ within our `animals` taxonomy - `lion` and `cat`.
Although it's not obvious at this point, Hugo will now be generating list and term pages for this new taxonomy. By default the listing can be accessed at `/animals/` and the term pages can be found at `/animals/lion/` and `/animals/cat/`.
The list page will list all the terms contained within the taxonomy. In this example, navigating to `/animals/` will show a page that has links for "lion" and "cat" which take visitors to the individual term pages.
The term pages will list all the pages contained within that term. These term lists are essentially the same as normal [list pages](#list-pages) and behave in much the same way.
In order to add custom content to taxonomy pages, simply create `_index.md` files in the content folder using the taxonomy name as the sub-directory name.
```shell
.
└── content
└── animals
├── _index.md # /animals
└── lion
└── _index.md # /animals/lion
```
Anything in these content files will now be placed onto the generated taxonomy pages. As with other content, the front matter variables can be used to override defaults. In this way you could have a tag named `lion` but override the `title` to be "Lion".
To see how this looks in reality, check out the [tags taxonomy listing]({{< ref "tags" >}}) on this site.
## Leaf pages
| | |
| ------------------------- | ------------------------------- |
| **Layout:** | `layouts/_default/single.html` |
| **Content (standalone):** | `content/../page-name.md` |
| **Content (bundled):** | `content/../page-name/index.md` |
Leaf pages in Hugo are basically standard content pages. They are defined as pages that don't contain any sub-pages. These could be things like an about page, or an individual blog post that lives in the blog section of the website.
The most important thing to remember about leaf pages is that unlike branch pages, leaf pages should be named `index.md` _without_ an underscore. Leaf pages are also special in that they can be grouped together at the top level of the section and named with a unique name.
```shell
.
└── content
└── blog
├── first-post.md # /blog/first-post
├── second-post.md # /blog/second-post
└── third-post
├── index.md # /blog/third-post
└── image.jpg
```
When including assets in a page, like an image, a page bundle should be used. Page bundles are created using a sub-directory with an `index.md` file. Grouping the assets with the content in its own directory is important as many of the shortcodes and other theme logic assumes that resources are bundled alongside pages.
**Example:**
```yaml
---
title: "My First Blog Post"
date: 2022-01-25
description: "Welcome to my blog!"
summary: "Learn more about me and why I am starting this blog."
tags: ["welcome", "new", "about", "first"]
---
_This_ is the content of my blog post.
```
Leaf pages have a wide variety of [front matter]({{< ref "front-matter" >}}) parameters that can be used to customise how they are displayed.
### External links
Blowfish has a special feature that allows links to external pages to appear alongside articles in the article listings. This is useful if you have content on third party websites like Medium, or research papers that you'd like to link to, without replicating the content in your Hugo site.
In order to create an external link article, some special front matter needs to be set:
```yaml
---
title: "My Medium post"
date: 2022-01-25
externalUrl: "https://medium.com/"
summary: "I wrote a post on Medium."
showReadingTime: false
_build:
render: "false"
list: "local"
---
```
Along with the normal front matter parameters like `title` and `summary`, the `externalUrl` parameter is used to tell Blowfish that this is not an ordinary article. The URL provided here will be where visitors are directed when they select this article.
Additionally, we use a special Hugo front matter parameter `_build` to prevent a normal page for this content being generated - there's no point generating a page since we're linking to an external URL!
The theme includes an archetype to make generating these external link articles simple. Just specify `-k external` when making new content.
```shell
hugo new -k external posts/my-post.md
```
### Simple pages
| | |
| ----------------- | ------------------------------ |
| **Layout:** | `layouts/_default/simple.html` |
| **Front Matter:** | `layout: "simple"` |
Blowfish also includes a special layout for simple pages. The simple layout is a full-width template that just places Markdown content into the page without any special theme features.
The only features available in the simple layout are breadcrumbs and sharing links. However, the behaviour of these can still be controlled using the normal page [front matter]({{< ref "front-matter" >}}) variables.
To enable the simple layout on a particular page, add the `layout` front matter variable with a value of `"simple"`:
```yaml
---
title: "My landing page"
date: 2022-03-08
layout: "simple"
---
This page content is now full-width.
```
## Custom layouts
One of the benefits of Hugo is that it makes it easy to create custom layouts for the whole site, individual sections or pages.
Layouts follow all the normal Hugo templating rules and more information is available in the [official Hugo docs](https://gohugo.io/templates/introduction/).
### Overriding default layouts
Each of the content types discussed above lists the layout file that is used to generate each type of page. If this file is created in your local project it will override the theme template and thus can be used to customise the default style of the website.
For example, creating a `layouts/_default/single.html` file will allow the layout of leaf pages to be completely customised.
### Custom section layouts
It is also simple to create custom layouts for individual content sections. This is useful when you want to make a section that lists a certain type of content using a particular style.
Let's step through an example that creates a custom "Projects" page that lists projects using a special layout.
In order to do this, structure your content using the normal Hugo content rules and create a section for your projects. Additionally, create a new layout for the projects section by using the same directory name as the content and adding a `list.html` file.
```shell
.
└── content
│ └── projects
│ ├── _index.md
│ ├── first-project.md
│ └── second-project.md
└── layouts
└── projects
└── list.html
```
This `list.html` file will now override the default list template, but only for the `projects` section. Before we look at this file, lets first look at the individual project files.
```yaml
---
title: "Blowfish"
date: 2021-08-11
icon: "github"
description: "A theme for Hugo built with Tailwind CSS."
topics: ["Hugo", "Web", "Tailwind"]
externalUrl: "https://github.com/nunocoracao/blowfish/"
---
```
_In this example we are assigning some metadata for each project that we can then use in our list template. There's no page content, but there's nothing stopping you from including it. It's your own custom template after all!_
With the projects defined, now we can create a list template that outputs the details of each project.
```go
{{ define "main" }}
<section class="mt-8">
{{ range .Pages }}
<article class="pb-6">
<a class="flex" href="{{ .Params.externalUrl }}">
<div class="mr-3 text-3xl text-neutral-300">
<span class="relative inline-block align-text-bottom">
{{ partial "icon.html" .Params.icon }}
</span>
</div>
<div>
<h3 class="flex text-xl font-semibold">
{{ .Title }}
</h3>
<p class="text-sm text-neutral-400">
{{ .Description }}
</p>
</div>
</a>
</article>
{{ end }}
</section>
{{ end }}
```
Although this is quite a straightforward example, you can see that it steps through each of the pages in this section (ie. each project), and then outputs HTML links to each project alongside an icon. The metadata in the front matter for each project is used to determine which information is displayed.
Keep in mind that you'll need to ensure the relevant styles and classes are available, which may require the Tailwind CSS to be recompiled. This is discussed in more detail in the [Advanced Customisation]({{< ref "advanced-customisation" >}}) section.
When making custom templates like this one, it's always easiest to take a look at how the default Blowfish template works and then use that as a guide. Remember, the [Hugo docs](https://gohugo.io/templates/introduction/) are a great resource to learn more about creating templates too.
@@ -0,0 +1,318 @@
---
title: "コンテンツの例"
weight: 11
draft: false
description: "Blowfish で利用可能なすべてのパーシャル。"
slug: "content-examples"
tags: ["content", "example"]
series: ["Documentation"]
series_order: 12
---
ドキュメントを順に読んできた方なら、Blowfish で利用可能なすべての機能と設定について、すでにご存じでしょう。このページでは、これまで説明してきたすべてをまとめて、Hugo プロジェクトで使用できる実践的なサンプルを紹介します。
{{< alert >}}
**ヒント:** Hugo を初めて使用する場合は、[公式ドキュメント](https://gohugo.io/content-management/page-bundles/)でページバンドルとリソースの概念について、さらに詳しく学習することをお勧めします。
{{< /alert >}}
このページの例は、さまざまなシナリオに適応できます。あなたのプロジェクトで、特定のコンテンツをどのようにフォーマットするか、そのヒントになれば幸いです。
## ブランチページ
Hugo のブランチページバンドルは、ホームページ、セクションリスト、タクソノミーページなどを指します。ブランチバンドルで覚えておくべき重要なことは、このコンテンツタイプのファイル名が **`_index.md`** であることです。
Blowfish は、ブランチページで指定された Front Matter のパラメータを認識し、特定のページのデフォルト設定を上書きします。例えば、ブランチページで `title` パラメータを設定すると、そのページのタイトルを上書きできます。
### ホームページ
| | |
| ------------ | -------------------- |
| **レイアウト:** | `layouts/index.html` |
| **コンテンツ:** | `content/_index.md` |
Blowfish のホームページは、その全体デザインがホームページレイアウト設定パラメータによって制御される、特別なページです。詳細は[ホームページレイアウト]({{< ref "homepage-layout" >}})セクションをご覧ください。
ホームページに独自のコンテンツを追加するには、`content/_index.md` ファイルを作成するだけです。このファイルの内容が、ホームページに表示されます。
**例:**
```yaml
---
title: "Blowfish へようこそ!"
description: "ホームページにコンテンツを追加するデモです。"
---
私のウェブサイトへようこそ! お越しいただき、本当に嬉しいです。
```
_この例では、独自のタイトルを設定し、ページ本文にテキストを追加しています。ショートコード、画像、リンクなど、Markdown 形式のテキストはすべて使用できます。_
### リストページ
| | |
| ------------ | ---------------------------- |
| **レイアウト:** | `layouts/_default/list.html` |
| **コンテンツ:** | `content/../_index.md` |
リストページは、セクション内の全ページをまとめて、訪問者が各ページを閲覧できるようにします。ブログやポートフォリオは、投稿やプロジェクトをまとめるリストページの代表例です。
リストページは、コンテンツフォルダ内にサブディレクトリを作成するだけで簡単に作成できます。例えば、「プロジェクト」セクションを作成するには、`content/projects/` を作成します。そして、各プロジェクト用の Markdown ファイルを作成します。
リストページはデフォルトで生成されますが、コンテンツをカスタマイズするには、この新しいディレクトリ内に `_index.md` ファイルも作成する必要があります。
```shell
.
└── content
└── projects
├── _index.md # /projects
├── first-project.md # /projects/first-project
└── another-project
├── index.md # /projects/another-project
└── project.jpg
```
Hugo は、projects フォルダ内の各ページに対して、適切な URL を自動生成します。
ホームページと同様に、`_index.md` ファイルの内容は、生成されたリストのインデックスページに表示されます。そして、Blowfish は、そのセクション内のページをコンテンツの下に一覧表示します。
**例:**
```yaml
---
title: "プロジェクト"
description: "私のプロジェクトのいくつかをご紹介します。"
cascade:
showReadingTime: false
---
このセクションでは、私の現在進行中のプロジェクトを紹介しています。
```
_この例では、特別な `cascade` パラメータを使用して、このセクション内の各ページの閲覧時間を非表示にしています。これにより、各プロジェクトページでは閲覧時間が表示されなくなります。これは、個々のページにパラメータを記述することなく、セクション全体のデフォルトのテーマパラメータを上書きできる便利な方法です。_
このサイトの[サンプルセクション]({{< ref "samples" >}})は、リストページの活用例です。
### タクソノミーページ
| | |
| ---------------- | -------------------------------- |
| **リストレイアウト:** | `layouts/_default/taxonomy.html` |
| **タームレイアウト:** | `layouts/_default/term.html` |
| **コンテンツ:** | `content/../_index.md` |
タクソノミーページには、「タクソノミーリスト」と「タクソノミーターム」の2種類があります。リストは特定のタクソノミー内の各タームの一覧を表示し、タームは特定のタームに関連付けられたページ一覧を表示します。
少し複雑に感じるかもしれないので、`animals` というタクソノミーを例に説明します。
まず、Hugo でタクソノミーを使用するには、設定が必要です。`config/_default/taxonomies.toml` に設定ファイルを作成し、タクソノミー名を定義しましょう。
```toml
# config/_default/taxonomies.toml
animal = "animals"
```
Hugo ではタクソノミーを単数形と複数形で設定する必要があるため、ここでは `animal` (単数形) = `animals` (複数形) として、サンプルのタクソノミーを作成します。
`animals` タクソノミーが作成できたので、次はこれを個々のコンテンツに追加します。フロントマターに以下のように記述するだけです。
```yaml
---
title: "ライオンの巣窟へ"
description: "今週はライオンについて学びます。"
animals: ["lion", "cat"]
---
```
これで、`animals` タクソノミー内に `lion` と `cat` という2つの _ターム_ が作成されました。
この時点ではまだ分かりませんが、Hugo はこの新しいタクソノミーのために、リストページとタームページを自動生成します。デフォルトでは、リストページは `/animals/`、タームページは `/animals/lion/` と `/animals/cat/` でアクセスできます。
リストページには、タクソノミーに含まれるすべてのタームが一覧表示されます。この例では、`/animals/` にアクセスすると、「lion」と「cat」へのリンクが表示され、それぞれのタームページへ移動できます。
タームページには、そのタームに関連付けられたすべてのページが表示されます。タームリストは、基本的に通常の[リストページ](#リストページ)と同じで、ほぼ同様に機能します。
タクソノミーページに独自のコンテンツを追加するには、タクソノミー名をサブディレクトリ名として、`content` フォルダ内に `_index.md` ファイルを作成するだけです。
```shell
.
└── content
└── animals
├── _index.md # /animals
└── lion
└── _index.md # /animals/lion
```
これらのファイルに記述した内容はすべて、自動生成されたタクソノミーページに表示されます。他のコンテンツと同様に、フロントマターの変数を使用してデフォルト値を上書きできます。例えば、`lion` というタグ名を付けつつ、`title` を「Lion」と表示することも可能です。
実際の表示例は、このサイトの[タグタクソノミーリスト]({{< ref "tags" >}})をご覧ください。
## リーフページ
| | |
| ------------------------- | ------------------------------- |
| **レイアウト:** | `layouts/_default/single.html` |
| **コンテンツ (スタンドアロン):** | `content/../page-name.md` |
| **コンテンツ (バンドル):** | `content/../page-name/index.md` |
Hugo のリーフページは、基本的に標準的なコンテンツページです。サブページを含まないページとして定義されます。例えば、自己紹介ページや、ウェブサイトのブログセクションにある個別のブログ記事などが該当します。
リーフページで最も重要なのは、ブランチページとは異なり、ファイル名をアンダースコアを _付けずに_ `index.md` とすることです。また、リーフページはセクションのトップレベルでグループ化し、それぞれに固有の名前を付けられるという点でも特別です。
```shell
.
└── content
└── blog
├── first-post.md # /blog/first-post
├── second-post.md # /blog/second-post
└── third-post
├── index.md # /blog/third-post
└── image.jpg
```
画像などのアセットをページに含める場合は、ページバンドルを使用する必要があります。ページバンドルは、`index.md` ファイルを含むサブディレクトリを使用して作成します。多くのショートコードやその他のテーマロジックは、リソースがページと共にバンドルされていることを前提としているため、アセットとコンテンツを独自のディレクトリにまとめておくことが重要です。
**例:**
```yaml
---
title: "初めてのブログ記事"
date: 2022-01-25
description: "私のブログへようこそ!"
summary: "私自身と、このブログを始めた理由についてご紹介します。"
tags: ["welcome", "new", "about", "first"]
---
_これ_ が私のブログ記事の本文です。
```
リーフページでは、表示方法をカスタマイズするために、様々な[フロントマター]({{< ref "front-matter" >}})パラメータを使用できます。
### 外部リンク
Blowfish には、記事リストの記事と一緒に外部リンクを表示できる特別な機能があります。これは、Medium などのサードパーティのウェブサイトにコンテンツがある場合や、Hugo サイトにコンテンツを複製せずにリンクしたい研究論文がある場合に便利です。
外部リンク記事を作成するには、特別なフロントマターを設定する必要があります。
```yaml
---
title: "私の Medium 記事"
date: 2022-01-25
externalUrl: "https://medium.com/"
summary: "Medium に記事を投稿しました。"
showReadingTime: false
_build:
render: "false"
list: "local"
---
```
`title` や `summary` などの通常の Front Matter パラメータに加えて、`externalUrl` パラメータは、これが通常の記事ではないことを Blowfish に伝えるために使用されます。ここに指定された URL は、訪問者がこの記事を選択した際にリダイレクトされる場所です。
さらに、特別な Hugo フロントマターパラメータ `_build` を使用して、このコンテンツの通常のページが生成されないようにします。外部リンクにリダイレクトするため、ページを生成する必要はありません。
テーマには、外部リンク記事を簡単に作成するためのアーキタイプが含まれています。新しいコンテンツを作成する際に、`-k external` を指定するだけです。
```shell
hugo new -k external posts/my-post.md
```
### シンプルページ
| | |
| ----------------- | ------------------------------ |
| **レイアウト:** | `layouts/_default/simple.html` |
| **フロントマター:** | `layout: "simple"` |
Blowfish には、シンプルなページ用の特別なレイアウトも用意されています。シンプルレイアウトは、特別なテーマ機能を使用せずに、Markdown コンテンツのみを表示する全幅テンプレートです。
シンプルレイアウトで利用できる機能は、パンくずリストと共有リンクのみです。ただし、これらの動作は、通常のページの[フロントマター]({{< ref "front-matter" >}})変数を使用して制御できます。
特定のページでシンプルレイアウトを有効にするには、`layout` フロントマター変数に値 `"simple"` を設定します。
```yaml
---
title: "私のランディングページ"
date: 2022-03-08
layout: "simple"
---
このページのコンテンツは全幅で表示されます。
```
## カスタムレイアウト
Hugo の利点の 1 つは、サイト全体、個別のセクション、またはページごとに、簡単にカスタムレイアウトを作成できることです。
レイアウトは、通常の Hugo テンプレートルールに従います。詳細は[公式 Hugo ドキュメント](https://gohugo.io/templates/introduction/)をご覧ください。
### デフォルトレイアウトの上書き
上記の各コンテンツタイプには、それぞれのタイプのページを生成するために使用されるレイアウトファイルが記載されています。このファイルをローカルプロジェクトで作成すると、テーマのテンプレートが上書きされるため、ウェブサイトのデフォルトスタイルをカスタマイズできます。
例えば、`layouts/_default/single.html` ファイルを作成すると、リーフページのレイアウトを完全にカスタマイズできます。
### カスタムセクションレイアウト
個々のコンテンツセクション用に、カスタムレイアウトを作成することも簡単です。特定のスタイルを使用して、特定のタイプのコンテンツを一覧表示するセクションを作成したい場合に便利です。
特別なレイアウトを使用してプロジェクトを一覧表示する、カスタム「プロジェクト」ページを作成する例を見てみましょう。
まず、通常の Hugo コンテンツルールに従ってコンテンツを構成し、プロジェクト用のセクションを作成します。次に、コンテンツと同じディレクトリ名を使用し、`list.html` ファイルを追加して、プロジェクトセクション用の新しいレイアウトを作成します。
```shell
.
└── content
│ └── projects
│ ├── _index.md
│ ├── first-project.md
│ └── second-project.md
└── layouts
└── projects
└── list.html
```
この `list.html` ファイルは、デフォルトのリストテンプレートを上書きしますが、`projects` セクションに対してのみ有効です。このファイルの中身を見る前に、まず個々のプロジェクトファイルを見てみましょう。
```yaml
---
title: "Blowfish"
date: 2021-08-11
icon: "github"
description: "Tailwind CSS を使用して構築された Hugo テーマ。"
topics: ["Hugo", "Web", "Tailwind"]
externalUrl: "https://github.com/nunocoracao/blowfish/"
---
```
_ここでは、各プロジェクトのメタデータを設定しています。このメタデータは、後ほどリストテンプレートで使用できます。ページコンテンツはありませんが、必要に応じて追加することも可能です。あなた独自のカスタムテンプレートですから!_
プロジェクトが定義できたので、次は各プロジェクトの詳細を出力するリストテンプレートを作成しましょう。
```go
{{ define "main" }}
<section class="mt-8">
{{ range .Pages }}
<article class="pb-6">
<a class="flex" href="{{ .Params.externalUrl }}">
<div class="mr-3 text-3xl text-neutral-300">
<span class="relative inline-block align-text-bottom">
{{ partial "icon.html" .Params.icon }}
</span>
</div>
<div>
<h3 class="flex text-xl font-semibold">
{{ .Title }}
</h3>
<p class="text-sm text-neutral-400">
{{ .Description }}
</p>
</div>
</a>
</article>
{{ end }}
</section>
{{ end }}
```
これは非常にシンプルな例ですが、このセクションの各ページ (つまり、各プロジェクト) を順に処理し、アイコンと共に各プロジェクトへの HTML リンクを出力しています。各プロジェクトのフロントマターのメタデータは、表示される情報を決定するために使用されます。
関連するスタイルとクラスが利用可能であることを確認する必要があることに注意してください。場合によっては、Tailwind CSS の再コンパイルが必要になる場合があります。これについては、[高度なカスタマイズ]({{< ref "advanced-customisation" >}})セクションで詳しく説明しています。
このようなカスタムテンプレートを作成する際には、まずデフォルトの Blowfish テンプレートの動作を確認し、それを参考にすることをお勧めします。[Hugo ドキュメント](https://gohugo.io/templates/introduction/)も、テンプレート作成について学ぶための優れた情報源です。
@@ -1,6 +1,6 @@
---
title: "Content Examples"
date: 2020-08-09
weight: 11
draft: false
description: "All the partials available in Blowfish."
slug: "content-examples"
@@ -0,0 +1,318 @@
---
title: "内容示例"
weight: 11
draft: false
description: "包含 Blowfish 中所有可用部分的示例、"
slug: "content-examples"
tags: ["内容", "示例"]
series: ["部署教程"]
series_order: 12
---
如果你已经按顺序阅读了文档,那么你现在应该已经了解了 Blowfish 中所有的功能和配置信息。这个页面旨在把所有内容整合在一起,并提供一些你会在 Hugo 项目中使用的示例。
{{< alert >}}
**提示:** 如果你是Hugo的新用户,请务必阅读[官方文档](https://gohugo.io/content-management/page-bundles/),了解更多关于页面捆绑和资源的概念。
{{< /alert >}}
这个页面上的示例都可以根据不同的场景进行调整,期待你在做自己项目的同时,提出一些对特定内容格式化的想法。
## 分支页面
Hugo 中的分支页面包括主页、部分列表页面和分类页面等内容,请记住,这些分支页面的文件名都是 **`_index.md`**。
Blowfish 支持在分支页面中设置[扉页参数]({{< ref "front-matter" >}}),在扉页中设置的参数将会覆盖在配置文件中设置的参数默认值。例如,在分支页面中的 `title` 参数将会覆盖页面标题的默认值。
### 主页
| | |
| ------------ | -------------------- |
| **Layout:** | `layouts/index.html` |
| **Content:** | `content/_index.md` |
Blowfish 中的主页比较特殊,它的整体设计是由主页的布局参数控制的。你可以在 [主页布局]({{< ref "homepage-layout" >}}) 来获取更多内容。
如果你想自定义主页的内容,你仅需创建一个 `content/_index.md` 文件。该文件中的任何内容都会包含在你的主页中。
**示例:**
```yaml
---
title: "欢迎来到 Blowfish !"
description: "这是往主页中添加内容的例子。"
---
欢迎来到我的网站!我很高兴你的来访。
```
_这个例子设置了一个自定义标题,并在页面正文中添加了一些额外的内容。当然任何的 Markdown 都是可接受的,包括短代码、图片和连接。_
### 列表页
| | |
| ------------ | ---------------------------- |
| **Layout:** | `layouts/_default/list.html` |
| **Content:** | `content/../_index.md` |
列表页将所有页面聚合到一个目录下,并为访问者提供了一种浏览页面的方式。博客或者作品集是一个典型案例,因为这两种类型的网站会将帖子或项目整合到一个列表页中。
创建一个列表页就如同创建子目录一样简单。例如,要创建一个 "Projects" 列表页,你可以创建`content/projects/`。然后为你的项目创建一个 Markdown 文件。
Creating a list page is as simple as making a sub-directory in the content folder. For example, to create a "Projects" section, you would create `content/projects/`. Then create a Markdown file for each of your projects.
列表页面默认会自动生成,如果你想在列表添加一些页自定义内容,还需要在此目录创建一个 `_index.md` 文件。
```shell
.
└── content
└── projects
├── _index.md # /projects
├── first-project.md # /projects/first-project
└── another-project
├── index.md # /projects/another-project
└── project.jpg
```
Hugo 将会自动为目录中对应的项目页面生成 URL。
类似于主页,列表页面也可以通过 `_index.md` 文件来添加自定义的内容。Blowfish将会在自定义内容的下方,展示这个列表所包含的所有子页面。
**示例:**
```yaml
---
title: "项目"
description: "了解我的一些项目。"
cascade:
showReadingTime: false
---
本节包含了我所有的当前项目。
```
_在上面的示例中,这里的 `cascade` 参数被用来隐藏该列表页下任何子页面的阅读时间。这样做是的任何子页面都不会显示阅读时间,这是一种为整个部分添加默认参数的好方法。_
[样本部分]({{< ref "samples" >}})提供了列表页面的例子。
### 分类页面
| | |
| ---------------- | -------------------------------- |
| **List layout:** | `layouts/_default/taxonomy.html` |
| **Term layout:** | `layouts/_default/term.html` |
| **Content:** | `content/../_index.md` |
分类页面有两种形式:分类列表和分类术语。列表页面显示给定分类中每个属于的列表,术语页面显示与给定术语相关的页面列表。
术语这个词可能会有些令人困惑,所以这里让我们举个例子,假设将 `animals` 分类。
首先,想要在 Hugo 中使用分类,需要先进行配置。通过创建 `config/_default/taxonomies.toml` 文件并定义分类名称来完成创建。
```toml
# config/_default/taxonomies.toml
animal = "animals"
```
Hugo 期望分类定义式 单数 = “复数” 的形式,所以这里添加单数 `animal` 等于复数 `animals` 来创建我们的分类示例。
现在 `animals` 分类就有了,需要在内容中添加它。下面是一个简单的在扉页参数中添加分类的例子:
```yaml
---
title: "进入狮子的巢穴"
description: "这周我们学习狮子。"
animals: ["lion", "cat"]
---
```
现在我们已经在 `animals` 分类中添加了 `lion` 和 `cat` 两个术语。
目前看起来还不太明显,但是 Hugo 将会为这个分类自动生成分类列表页和两个术语页。默认情况下可以在 `/animals/` 地址访问列表页,在 `/animals/lion/` 和 `/animals/cat/` 访问术语页。
这个列表页会列举出所有包含在这个分类中的术语。在上面的例子中,`/animals/` 页面会包含 "lion" 和 "cat" 的链接,以此将访问者导向至具体的术语页。
术语页将会列举出包含这个术语的所有页面。这些术语页面本质上和[列表页面](#list-pages)相同,并且以类似的方式运作。
如果你想在分类页面中添加自定义的内容,只需要对应文件夹的目录中创建 `_index.md` 文件即可。
```shell
.
└── content
└── animals
├── _index.md # /animals
└── lion
└── _index.md # /animals/lion
```
这些 `_index.md` 中的内容都会放置在生成的分类页面上。与其他页面一样,[扉页参数]({{< ref "front-matter" >}})中设置的变量也可以用来覆盖默认值。比如你可以有一个标签名是`lion`,但是可以将其覆盖成 "Lion"。
想要查看实际效果,可以看[标签分类列表]({{< ref "tags" >}})。
## 叶子页面
| | |
| ------------------------- | ------------------------------- |
| **Layout:** | `layouts/_default/single.html` |
| **Content (standalone):** | `content/../page-name.md` |
| **Content (bundled):** | `content/../page-name/index.md` |
Hugo 中的页面叶子页面是一个标准的内容页面,它不包含子页面的页面。可以作为关于页面,或者位于个人博客网站中的文章。
最重要的是,与分支页面不同,叶子页面应该被命名为 `index.md`,而不是带下划线的`_index.md`。叶子页面比较特殊,它可以是一个在列表页面中的一个有唯一名称的文件,也可以是在一个有唯一名称的页面捆绑包。
```shell
.
└── content
└── blog
├── first-post.md # /blog/first-post
├── second-post.md # /blog/second-post
└── third-post
├── index.md # /blog/third-post
└── image.jpg
```
当页面中包含类似图片的资源,应该使用页面捆绑包,即子目录的方式。页面捆绑包时一个包含 `index.md` 文件的子目录。将资源和页面内容打包在同一个目录中是必要的,因为许多短代码和其他主题逻辑假设资源和页面捆绑在一起,
**示例:**
```yaml
---
title: "我的第一篇博客文章"
date: 2022-01-25
description: "欢迎来到我的博客"
summary: "了解更多关于我和我创建博客的初衷。"
tags: ["welcome", "new", "about", "first"]
---
_这_ 是博客的内容。
```
叶子页面有很多的[扉页参数]({{< ref "front-matter" >}}),来帮你你自定义展示它。
### 外部链接
Blowfish 允许外部页面链接和文章列表一起显示在列表页。如果你在第三方网站(如Medium)有文章,或者你想连接到研究论文,而不想在 Hugo 中复制内容,这将非常有用。
为了创建一个外部链接文章,需要设置一些特殊的扉页参数:
```yaml
---
title: "我的 Medium 文章"
date: 2022-01-25
externalUrl: "https://medium.com/"
summary: "我在Medium上写了一篇文章。"
showReadingTime: false
_build:
render: "false"
list: "local"
---
```
除了像 `title` 和 `summary` 这种普通的扉页参数外,需要设置 `externalUrl` 参数来告诉 Blowfish 这不是一篇普通的文章。访问者在访问后,会被重定向到这里提供的 URL。
此外,我们使用了 `_build` 参数来避免 Hugo 生成一个普通页面。因为我们是一个连接到外部的 URL,生成页面是没有意义的。
Hugo 中可以通过命令来快速生成一个外部链接的文件,在创建新的外部链接是,只需要指定 `-k external` 即可。这让生成外部链接文章变得更简单。
```shell
hugo new -k external posts/my-post.md
```
### 简单页面
| | |
| ----------------- | ------------------------------ |
| **Layout:** | `layouts/_default/simple.html` |
| **Front Matter:** | `layout: "simple"` |
Blowfish 包含了一个用于简单页面的布局。简单布局是一个全宽的模板,并仅仅展示 Markdown 中的内容,不包含任何主题中的特性。
简单布局中唯一可用的特性是面包屑导航和分享链接。这个行为也是通过 [扉页参数]({{< ref "front-matter" >}}) 来控制。
如果想在特定页面上启用简单布局,添加 `layout` 扉页参数,并设置为 `"simple"`:
```yaml
---
title: "我的着陆页"
date: 2022-03-08
layout: "simple"
---
这个页面的内容是全宽的。
```
## 自定义布局
Hugo 的其中一个好处就是它让整个站点、单独内容或页面创建自定义布局变得容易。
自定义布局遵循所有 Hugo 的模板规则,更多信息可以在 [Hugo 官方文档](https://gohugo.io/templates/introduction/) 中找到。
### 覆盖默认布局
上面讨论的每种内容类型都列出了其对应的布局文件。如果你在本地项目中创建了这个文件,它将覆盖主题的默认模板,由此可以来自定义网站的样式布局。
例如,创建一个 `layouts/_default/single.html` 文件,此文件将允许用户完全自定义叶子页面的布局。
### 自定义部分布局
如果你想为个别内容创建自定义布局也很简单。这在使用特定样式列出某种类型内容时会非常有效。
让我们简单看一个例子,来了解如何为"Projects"页面创建自定义的特殊布局。
为了做到这一点,使用常规的Hugo规则来在 `content` 目录下组织你的内容。此外,在和 `layout` 目录中创建和内容部分相同的目录结构,并在此目录下添加一个 `list.html` 文件,此文件是 "projects" 内容的一个新的列表页布局。
```shell
.
└── content
│ └── projects
│ ├── _index.md
│ ├── first-project.md
│ └── second-project.md
└── layouts
└── projects
└── list.html
```
`list.html` 文件将会覆盖默认的模板,但只会作用在 `projects` 部分。我们先看看 `_index.md` 文件的内容。
```yaml
---
title: "Blowfish"
date: 2021-08-11
icon: "github"
description: "用Tailwind CSS构建的Hugo主题。"
topics: ["Hugo", "Web", "Tailwind"]
externalUrl: "https://github.com/nunocoracao/blowfish/"
---
```
_在这个例子中,我们为每个项目添加了一些参数,然后我们在列表模板中可以使用他们。虽然这个例子没有页面的内容,但这并不组织你添加内容。这是自己的的自定义模板,完全可以随心所欲!_
定义了项目内容后,现在我们可以创建一个列表模板来输出项目中的信息。
```go
{{ define "main" }}
<section class="mt-8">
{{ range .Pages }}
<article class="pb-6">
<a class="flex" href="{{ .Params.externalUrl }}">
<div class="mr-3 text-3xl text-neutral-300">
<span class="relative inline-block align-text-bottom">
{{ partial "icon.html" .Params.icon }}
</span>
</div>
<div>
<h3 class="flex text-xl font-semibold">
{{ .Title }}
</h3>
<p class="text-sm text-neutral-400">
{{ .Description }}
</p>
</div>
</a>
</article>
{{ end }}
</section>
{{ end }}
```
尽管这是一个比较简单的例子,但你可以看到这里的 `list.html` 文件遍历了本节中的所有子页面,然后输出了每个页面的 HTML 链接 和图标。每个项目的扉页参数被用来确定显示哪些信息。
Although this is quite a straightforward example, you can see that it steps through each of the pages in this section (ie. each project), and then outputs HTML links to each project alongside an icon. The metadata in the front matter for each project is used to determine which information is displayed.
请记住,构建网站的时候需要重新编译 Tailwind CSS,一定要确保相关的样式和类可用。这在[高级定制]({{< ref "advanced-customisation" >}})部分有更详细的说明。
当尝试使用自定义模板时,请务必先了解默认的 Blowfish 模板是如何工作的,然后将其作为指南或模板。补充一点,[Hugo 文档](https://gohugo.io/templates/introduction/) 也是学习创建自定义模板的宝贵资源。
@@ -0,0 +1,574 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative"
width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.7735807359934106" x="0" y="0" width="345.6" height="345.6"
patternUnits="userSpaceOnUse">
<g transform="scale(1.35)">
<g>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="253.67183555350317"
y2="322.3700682221699" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10s"></animateTransform>
</g>
<g>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="7.343083737977565" x2="-29.40438263629852" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="2.4358284744095045" x2="-27.900932167205383" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="5s"></animateTransform>
</g>
<g>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="248.28896398255995"
y2="300.28675048655543" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="254.79057005056973"
y2="269.5365126987142" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10.3333333333333335s"></animateTransform>
</g>
</g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.7735807359934106)"></rect>
</svg>
Loaded 100 of 966 files, more files were not shown because too many files have changed in this diff. Show more