128 Commits

Author SHA1 Message Date
Sped0n
268159e7d2 refactor: unify bundled assets with subdirs and Hugo mounts
Move bundled outputs to dedicated css/js subdirs. Update Vite
config to output directly to bundled/ with simplified naming.
Add Hugo module mounts to expose as assets/bundled and
static/bundled. Adjust gitignore and partial accordingly.

Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-14 18:15:24 +08:00
Sped0n
2e7131a5a5 ci: update bundled artifacts [skip ci] 2025-11-12 09:15:02 +00:00
Sped0n
1de3926c49 docs: correct Solid.js to SolidJS in theme description
Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 17:14:20 +08:00
Sped0n
4b1f529589 refactor: migrate to vite for critical scss bundling, remove dart sass dependency
Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 17:14:20 +08:00
Sped0n
8b3b5cd77a fix: use absolute URL for fw font in scss
Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 17:14:20 +08:00
Sped0n
3a0025ebd1 docs: update documentations
Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 05:41:50 +08:00
Sped0n
283f386371 refactor: remove redundant ESLint config import
Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 05:15:58 +08:00
Sped0n
4c91cd269e refactor: upgrade to pnpm 10 and update docs
Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 05:15:58 +08:00
Sped0n
304abf3b65 refactor: switch to sass-embedded and remove manual install
Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 05:15:58 +08:00
Sped0n
99a2866d4a docs: update README.md
Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 03:25:59 +08:00
Sped0n
ba46f52d55 ci: build with multiple Hugo versions and update caches
Add matrix strategy for 'latest' and '0.114.0' in build job. Update
pnpm and Hugo cache keys for better reliability. Push artifacts only
for 'latest' version. Add [skip ci] to format commit message.

Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 02:40:38 +08:00
Sped0n
48eaa9d95b docs: restructure documentation
Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 02:40:38 +08:00
Sped0n
6be1a924de refactor: update hugo npm scripts
Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 00:27:13 +08:00
Sped0n
ba0def753e refactor: remove i18n labels and centralize in config
Delete multilingual i18n files for UI labels. Add English labels to
params.toml under [labels]. Update 404.html, single.html, and nav.html
to use site.Params.labels instead of i18n.

Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 00:27:13 +08:00
Sped0n
c9410c9644 ci: update bundled artifacts [skip ci] 2025-11-11 16:10:49 +00:00
Sped0n
1d1f893c92 ci: format code 2025-11-12 00:10:06 +08:00
Sped0n
7d4bed3ba6 feat: use absolute URLs for assets
closes #473, closes #476

Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 00:10:06 +08:00
Sped0n
72b830def9 refactor: remove multilingual support and language-specific fonts
Simplify to Geist font family for all languages. Update README, SCSS,
partials, and config. Fix style template execution order.

Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 00:10:06 +08:00
Ryan
6b2c1de9d8 Misc (#516)
* chore: remove obsolete modern Sass API config in Vite

Signed-off-by: Sped0n <hi@sped0n.com>

* docs: update README thumbnail to absolute URL

Signed-off-by: Sped0n <hi@sped0n.com>

---------

Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-11 21:07:35 +08:00
Sped0n
ae899035ae ci: update bundled artifacts [skip ci] 2025-11-11 12:22:05 +00:00
Ryan
36721f8bf6 Bump deps (#515)
* chore: add nix flake for reproducible dev environment

Signed-off-by: Sped0n <hi@sped0n.com>

* refactor: migrate SCSS to modern Sass (@use/@forward)

Update mixins to use Sass module functions (map.has-key/get).
Configure Vite for modern Sass API.
Introduce _foundation.scss for forwarding core modules.

Signed-off-by: Sped0n <hi@sped0n.com>

* fix: replace deprecated _build with build in frontmatter

Signed-off-by: Sped0n <hi@sped0n.com>

* chore: add vcache.sh script for vercel build cache management

Signed-off-by: Sped0n <hi@sped0n.com>

* refactor: migrate to ESLint v9 flat config

Remove legacy .eslintrc.json, .eslintignore, and .prettierrc.json.

Add eslint.config.mjs with love, prettier, solid, and import rules.

Update devDependencies (eslint@9, @typescript-eslint@8, etc.) and scripts.

Minor TS fixes: remove eslint-disable, add error logging, simplify conditional.

Signed-off-by: Sped0n <hi@sped0n.com>

* chore: replace vcache.sh with vercel.sh for Vercel build process

Delete vcache.sh script.

Add vercel.sh: install Dart Sass v1.93.3, copy generated assets between
node_modules and project dirs, run vite:build + hugo build, then copy back.

Signed-off-by: Sped0n <hi@sped0n.com>

* chore: setup dart-sass and split build steps in GitHub workflow

Signed-off-by: Sped0n <hi@sped0n.com>

---------

Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-11 20:20:29 +08:00
Sped0n
2dcbb5e5d5 ci: update bundled artifacts [skip ci] 2025-10-22 12:32:34 +00:00
dependabot[bot]
07aa48f2db build(deps-dev): bump vite-plugin-solid from 2.10.2 to 2.11.9 (#496)
Bumps [vite-plugin-solid](https://github.com/solidjs/vite-plugin-solid) from 2.10.2 to 2.11.9.
- [Release notes](https://github.com/solidjs/vite-plugin-solid/releases)
- [Changelog](https://github.com/solidjs/vite-plugin-solid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/vite-plugin-solid/commits/vite-plugin-solid@2.11.9)

---
updated-dependencies:
- dependency-name: vite-plugin-solid
  dependency-version: 2.11.9
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 20:31:38 +08:00
dependabot[bot]
099513500c build(deps-dev): bump eslint-plugin-import from 2.31.0 to 2.32.0 (#495)
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.31.0 to 2.32.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.31.0...v2.32.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-version: 2.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 12:15:18 +00:00
dependabot[bot]
f0da771dca build(deps-dev): bump typescript from 5.7.2 to 5.9.3 (#494)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.2 to 5.9.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.2...v5.9.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 12:13:11 +00:00
Sped0n
dfd4abdf2a ci: update bundled artifacts [skip ci] 2025-10-22 12:12:05 +00:00
dependabot[bot]
6f8ce6bbd8 build(deps-dev): bump terser from 5.37.0 to 5.44.0 (#499)
Bumps [terser](https://github.com/terser/terser) from 5.37.0 to 5.44.0.
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/compare/v5.37.0...v5.44.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 12:11:21 +00:00
dependabot[bot]
543a08d472 build(deps-dev): bump eslint-config-prettier from 9.1.0 to 10.1.8 (#498)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 9.1.0 to 10.1.8.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v9.1.0...v10.1.8)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-version: 10.1.8
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 12:10:10 +00:00
Sped0n
05599ef190 ci: update bundled artifacts [skip ci] 2025-10-22 12:08:56 +00:00
dependabot[bot]
95bd4d1c28 build(deps): bump solid-js from 1.9.4 to 1.9.9 (#502)
Bumps [solid-js](https://github.com/solidjs/solid) from 1.9.4 to 1.9.9.
- [Release notes](https://github.com/solidjs/solid/releases)
- [Changelog](https://github.com/solidjs/solid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/solid/compare/v1.9.4...v1.9.9)

---
updated-dependencies:
- dependency-name: solid-js
  dependency-version: 1.9.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 20:08:12 +08:00
dependabot[bot]
835cd6f343 build(deps-dev): bump prettier-plugin-organize-imports (#497)
Bumps [prettier-plugin-organize-imports](https://github.com/simonhaenisch/prettier-plugin-organize-imports) from 4.1.0 to 4.3.0.
- [Release notes](https://github.com/simonhaenisch/prettier-plugin-organize-imports/releases)
- [Changelog](https://github.com/simonhaenisch/prettier-plugin-organize-imports/blob/master/changelog.md)
- [Commits](https://github.com/simonhaenisch/prettier-plugin-organize-imports/compare/v4.1.0...v4.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 10:00:57 +00:00
dependabot[bot]
479164bc83 build(deps-dev): bump prettier from 3.3.3 to 3.6.2 (#503)
* build(deps-dev): bump prettier from 3.3.3 to 3.6.2

Bumps [prettier](https://github.com/prettier/prettier) from 3.3.3 to 3.6.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.6.2)

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

Signed-off-by: dependabot[bot] <support@github.com>

* ci: format code

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 09:58:56 +00:00
dependabot[bot]
9ea37b8a3f build(deps): bump tj-actions/changed-files in /.github/workflows (#507)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 41 to 46.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v41...v46)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-version: '46'
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 09:52:27 +00:00
Sped0n
5df519e55f ci: update bundled artifacts [skip ci] 2025-10-21 09:50:35 +00:00
dependabot[bot]
860428d03b build(deps-dev): bump vite from 5.4.2 to 5.4.21 (#508)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.2 to 5.4.21.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.21/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 5.4.21
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 17:49:52 +08:00
Sped0n
c1ad92fbeb ci: update bundled artifacts [skip ci] 2025-10-21 08:52:02 +00:00
dependabot[bot]
78f657618e build(deps): bump gsap from 3.12.5 to 3.13.0 (#504)
Bumps [gsap](https://github.com/greensock/GSAP) from 3.12.5 to 3.13.0.
- [Commits](https://github.com/greensock/GSAP/compare/3.12.5...3.13.0)

---
updated-dependencies:
- dependency-name: gsap
  dependency-version: 3.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 08:51:20 +00:00
dependabot[bot]
1fe7095898 build(deps-dev): bump eslint-import-resolver-typescript (#505)
Bumps [eslint-import-resolver-typescript](https://github.com/import-js/eslint-import-resolver-typescript) from 3.6.3 to 4.4.4.
- [Release notes](https://github.com/import-js/eslint-import-resolver-typescript/releases)
- [Changelog](https://github.com/import-js/eslint-import-resolver-typescript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-import-resolver-typescript/compare/v3.6.3...v4.4.4)

---
updated-dependencies:
- dependency-name: eslint-import-resolver-typescript
  dependency-version: 4.4.4
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 08:48:42 +00:00
dependabot[bot]
0471af5085 build(deps-dev): bump eslint-plugin-prettier from 5.2.1 to 5.5.4 (#506)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.2.1 to 5.5.4.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.2.1...v5.5.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 16:46:40 +08:00
Sped0n
543d630535 chore: update demo site config
Signed-off-by: Sped0n <hi@sped0n.com>
2025-10-21 16:29:11 +08:00
dependabot[bot]
b7ed5a2834 build(deps-dev): bump prettier-plugin-organize-imports (#405)
Bumps [prettier-plugin-organize-imports](https://github.com/simonhaenisch/prettier-plugin-organize-imports) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/simonhaenisch/prettier-plugin-organize-imports/releases)
- [Changelog](https://github.com/simonhaenisch/prettier-plugin-organize-imports/blob/master/changelog.md)
- [Commits](https://github.com/simonhaenisch/prettier-plugin-organize-imports/compare/v4.0.0...v4.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 07:27:30 +00:00
dependabot[bot]
5ba7d77c07 build(deps-dev): bump eslint-plugin-import from 2.29.1 to 2.31.0 (#413)
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.29.1 to 2.31.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.29.1...v2.31.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 07:26:23 +00:00
dependabot[bot]
af82026d1a build(deps-dev): bump sass from 1.77.8 to 1.83.1 (#434)
Bumps [sass](https://github.com/sass/dart-sass) from 1.77.8 to 1.83.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.77.8...1.83.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 07:24:19 +00:00
dependabot[bot]
b5ef661e1c build(deps-dev): bump rollup from 4.21.1 to 4.30.1 (#437)
Bumps [rollup](https://github.com/rollup/rollup) from 4.21.1 to 4.30.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.21.1...v4.30.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 07:23:27 +00:00
dependabot[bot]
883eec1a3b build(deps-dev): bump eslint-plugin-solid from 0.14.2 to 0.14.5 (#435)
Bumps [eslint-plugin-solid](https://github.com/solidjs-community/eslint-plugin-solid) from 0.14.2 to 0.14.5.
- [Release notes](https://github.com/solidjs-community/eslint-plugin-solid/releases)
- [Commits](https://github.com/solidjs-community/eslint-plugin-solid/compare/v0.14.2...v0.14.5)

---
updated-dependencies:
- dependency-name: eslint-plugin-solid
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 07:22:33 +00:00
Sped0n
b027cd03cf ci: update bundled artifacts [skip ci] 2025-01-08 07:21:16 +00:00
dependabot[bot]
aa34979bb4 build(deps-dev): bump terser from 5.31.6 to 5.37.0 (#436)
Bumps [terser](https://github.com/terser/terser) from 5.31.6 to 5.37.0.
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/compare/v5.31.6...v5.37.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 07:20:34 +00:00
dependabot[bot]
08bbfaa3ba build(deps-dev): bump typescript from 5.5.4 to 5.7.2 (#428)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.5.4 to 5.7.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.5.4...v5.7.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 07:19:13 +00:00
Sped0n
b8c6ce2b04 ci: update bundled artifacts [skip ci] 2025-01-08 07:02:54 +00:00
dependabot[bot]
27083c0336 build(deps): bump solid-js from 1.8.22 to 1.9.4 (#433)
Bumps [solid-js](https://github.com/solidjs/solid) from 1.8.22 to 1.9.4.
- [Release notes](https://github.com/solidjs/solid/releases)
- [Changelog](https://github.com/solidjs/solid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/solid/compare/v1.8.22...v1.9.4)

---
updated-dependencies:
- dependency-name: solid-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 07:02:16 +00:00
Sped0n
082458b2aa ci: update bundled artifacts [skip ci] 2025-01-08 06:59:26 +00:00
dependabot[bot]
1c05eb2633 build(deps): bump swiper from 11.1.11 to 11.1.15 (#427)
Bumps [swiper](https://github.com/nolimits4web/Swiper) from 11.1.11 to 11.1.15.
- [Release notes](https://github.com/nolimits4web/Swiper/releases)
- [Changelog](https://github.com/nolimits4web/swiper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nolimits4web/Swiper/compare/v11.1.11...v11.1.15)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 06:58:51 +00:00
Ananth
9016cfb035 Add tamil translation (#430) 2025-01-03 16:19:41 +08:00
Spedon
d9b4100d17 ci: fallback to github.token in ESLint workflow (#431)
- Use `github.token` as a fallback if `secrets.PAT` is not available in the ESLint workflow.

Signed-off-by: Sped0n <hi@sped0n.com>
2025-01-01 13:44:12 +00:00
dependabot[bot]
082f5f4961 build(deps-dev): bump sass from 1.77.6 to 1.77.8 (#359)
Bumps [sass](https://github.com/sass/dart-sass) from 1.77.6 to 1.77.8.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.77.6...1.77.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-29 17:20:59 +00:00
Sped0n
9d91becbd5 ci: update bundled artifacts [skip ci] 2024-08-29 16:37:42 +00:00
dependabot[bot]
2e51b7eb89 build(deps): bump solid-js from 1.8.18 to 1.8.22 (#391)
Bumps [solid-js](https://github.com/solidjs/solid) from 1.8.18 to 1.8.22.
- [Release notes](https://github.com/solidjs/solid/releases)
- [Changelog](https://github.com/solidjs/solid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/solid/commits)

---
updated-dependencies:
- dependency-name: solid-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-29 16:37:05 +00:00
Sped0n
7dd8c2242c ci: update bundled artifacts [skip ci] 2024-08-29 16:35:57 +00:00
dependabot[bot]
2a10e4944e build(deps): bump swiper from 11.1.4 to 11.1.11 (#390)
Bumps [swiper](https://github.com/nolimits4web/Swiper) from 11.1.4 to 11.1.11.
- [Release notes](https://github.com/nolimits4web/Swiper/releases)
- [Changelog](https://github.com/nolimits4web/swiper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nolimits4web/Swiper/compare/v11.1.4...v11.1.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-30 00:35:03 +08:00
dependabot[bot]
7893586d24 build(deps-dev): bump typescript from 5.5.3 to 5.5.4 (#367)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.5.3 to 5.5.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.5.3...v5.5.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-29 16:31:03 +00:00
dependabot[bot]
5a51f83654 build(deps-dev): bump eslint-plugin-promise from 6.4.0 to 6.6.0 (#364)
Bumps [eslint-plugin-promise](https://github.com/eslint-community/eslint-plugin-promise) from 6.4.0 to 6.6.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-promise/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-promise/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-community/eslint-plugin-promise/compare/v6.4.0...v6.6.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-promise
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-29 16:29:27 +00:00
Sped0n
e4d5ac4389 ci: update bundled artifacts [skip ci] 2024-08-29 16:28:26 +00:00
dependabot[bot]
ea3d58760b build(deps-dev): bump vite from 5.3.3 to 5.4.2 (#385)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.3 to 5.4.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.2/packages/vite)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-29 16:27:48 +00:00
dependabot[bot]
4812cdb191 build(deps-dev): bump eslint-plugin-solid from 0.14.1 to 0.14.2 (#380)
Bumps [eslint-plugin-solid](https://github.com/solidjs-community/eslint-plugin-solid) from 0.14.1 to 0.14.2.
- [Release notes](https://github.com/solidjs-community/eslint-plugin-solid/releases)
- [Commits](https://github.com/solidjs-community/eslint-plugin-solid/compare/v0.14.1...v0.14.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-solid
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-29 16:26:52 +00:00
dependabot[bot]
b93b8d3ac6 build(deps-dev): bump prettier from 3.3.2 to 3.3.3 (#362)
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>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-29 16:25:59 +00:00
dependabot[bot]
a7bc6b2df5 build(deps-dev): bump eslint-plugin-prettier from 5.1.3 to 5.2.1 (#368)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.1.3 to 5.2.1.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.1.3...v5.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-29 16:25:07 +00:00
Sped0n
1cfbc8ac28 ci: update bundled artifacts [skip ci] 2024-08-29 16:24:18 +00:00
dependabot[bot]
c4cea2648e build(deps-dev): bump terser from 5.31.1 to 5.31.6 (#381)
Bumps [terser](https://github.com/terser/terser) from 5.31.1 to 5.31.6.
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-29 16:23:32 +00:00
dependabot[bot]
26bdddc5ff build(deps-dev): bump eslint-import-resolver-typescript (#386)
Bumps [eslint-import-resolver-typescript](https://github.com/import-js/eslint-import-resolver-typescript) from 3.6.1 to 3.6.3.
- [Release notes](https://github.com/import-js/eslint-import-resolver-typescript/releases)
- [Changelog](https://github.com/import-js/eslint-import-resolver-typescript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-import-resolver-typescript/compare/v3.6.1...v3.6.3)

---
updated-dependencies:
- dependency-name: eslint-import-resolver-typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-29 16:22:15 +00:00
Spedon
437bbf17e0 docs: clarify relative path usage in documentation (#389)
- Clarify the relative path requirement in the installation documentation
- Update the comment in the configuration file to specify the relative path context

Signed-off-by: Spedon Wen <realsped0n@outlook.com>
2024-08-29 08:04:19 +00:00
Sped0n
2a715327f6 ci: update bundled artifacts [skip ci] 2024-07-11 05:36:52 +00:00
Spedon
c111de15b1 feat: enhance mobile detection logic (#358) 2024-07-11 13:36:15 +08:00
dependabot[bot]
1b9826f582 build(deps-dev): bump vite from 5.3.2 to 5.3.3 (#357) 2024-07-09 14:41:09 +08:00
Sped0n
6a3ce498a9 ci: update bundled artifacts [skip ci] 2024-07-06 14:37:33 +00:00
Spedon
8d48e6347e fix keyboard input (#356)
* fix: enhance accessibility with `tabIndex`

- Add `tabIndex="-1"` to the navigation item for accessibility

* refactor: refactor event handling with SolidJS effects

- Import `createEffect` from 'solid-js'
- Add an `AbortController` for managing event listeners
- Use `createEffect` to conditionally add and remove keydown event listener based on component state
- Remove `onKeyDown` and `tabIndex` attributes from the overlay div
2024-07-06 14:36:50 +00:00
Sped0n
4599a5dfc2 ci: update bundled artifacts [skip ci] 2024-07-04 15:53:45 +00:00
Spedon
7536288baa fix: enhance accessibility with tabIndex (#355)
- Add `tabIndex="-1"` to the navigation item for accessibility
2024-07-04 23:52:54 +08:00
dependabot[bot]
e12c32388b build(deps-dev): bump eslint-plugin-solid from 0.14.0 to 0.14.1 (#345)
Bumps [eslint-plugin-solid](https://github.com/solidjs-community/eslint-plugin-solid) from 0.14.0 to 0.14.1.
- [Release notes](https://github.com/solidjs-community/eslint-plugin-solid/releases)
- [Commits](https://github.com/solidjs-community/eslint-plugin-solid/compare/v0.14.0...v0.14.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-solid
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 09:23:50 +00:00
dependabot[bot]
4198a5fa90 build(deps-dev): bump prettier from 3.2.5 to 3.3.2 (#342)
Bumps [prettier](https://github.com/prettier/prettier) from 3.2.5 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.2.5...3.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 09:22:15 +00:00
dependabot[bot]
089e9b285a build(deps-dev): bump sass from 1.77.1 to 1.77.6 (#341)
Bumps [sass](https://github.com/sass/dart-sass) from 1.77.1 to 1.77.6.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.77.1...1.77.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 09:20:57 +00:00
dependabot[bot]
60e19fed00 build(deps-dev): bump terser from 5.31.0 to 5.31.1 (#337)
Bumps [terser](https://github.com/terser/terser) from 5.31.0 to 5.31.1.
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/compare/v5.31.0...v5.31.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 09:19:11 +00:00
Sped0n
626433e67d ci: update bundled artifacts [skip ci] 2024-07-02 09:17:20 +00:00
dependabot[bot]
cb5080ce41 build(deps-dev): bump vite from 5.2.11 to 5.3.2 (#348)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.11 to 5.3.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.3.2/packages/vite)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 09:16:45 +00:00
dependabot[bot]
e2f8317669 build(deps-dev): bump eslint-plugin-promise from 6.1.1 to 6.4.0 (#352)
Bumps [eslint-plugin-promise](https://github.com/eslint-community/eslint-plugin-promise) from 6.1.1 to 6.4.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-promise/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-promise/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-community/eslint-plugin-promise/compare/v6.1.1...v6.4.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-promise
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 09:15:26 +00:00
Sped0n
5d9e32f62b ci: update bundled artifacts [skip ci] 2024-07-02 09:14:03 +00:00
dependabot[bot]
b96ecd6042 build(deps): bump solid-js from 1.8.17 to 1.8.18 (#349)
Bumps [solid-js](https://github.com/solidjs/solid) from 1.8.17 to 1.8.18.
- [Release notes](https://github.com/solidjs/solid/releases)
- [Changelog](https://github.com/solidjs/solid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/solid/commits)

---
updated-dependencies:
- dependency-name: solid-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 09:13:22 +00:00
dependabot[bot]
5b7ec62106 build(deps-dev): bump prettier-plugin-organize-imports (#351)
Bumps [prettier-plugin-organize-imports](https://github.com/simonhaenisch/prettier-plugin-organize-imports) from 3.2.4 to 4.0.0.
- [Release notes](https://github.com/simonhaenisch/prettier-plugin-organize-imports/releases)
- [Changelog](https://github.com/simonhaenisch/prettier-plugin-organize-imports/blob/master/changelog.md)
- [Commits](https://github.com/simonhaenisch/prettier-plugin-organize-imports/compare/v3.2.4...v4.0.0)

---
updated-dependencies:
- dependency-name: prettier-plugin-organize-imports
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 09:12:06 +00:00
dependabot[bot]
3ca4a0d803 build(deps-dev): bump typescript from 5.4.5 to 5.5.3 (#350)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.5 to 5.5.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.5...v5.5.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 09:10:51 +00:00
Sped0n
a8d8802d9f ci: update bundled artifacts [skip ci] 2024-07-02 09:09:28 +00:00
dependabot[bot]
28782217f1 build(deps): bump swiper from 11.1.1 to 11.1.4 (#333)
Bumps [swiper](https://github.com/nolimits4web/Swiper) from 11.1.1 to 11.1.4.
- [Release notes](https://github.com/nolimits4web/Swiper/releases)
- [Changelog](https://github.com/nolimits4web/swiper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nolimits4web/Swiper/compare/v11.1.1...v11.1.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 09:08:50 +00:00
dependabot[bot]
cfcda29524 build(deps-dev): bump braces from 3.0.2 to 3.0.3 (#343)
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>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 17:07:09 +08:00
Spedon
fb498971c7 chore: update domain (#330) 2024-05-20 14:08:58 +00:00
dependabot[bot]
9dbb3cb624 build(deps-dev): bump typescript from 5.4.4 to 5.4.5 (#320)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.4 to 5.4.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.4...v5.4.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-12 08:20:10 +00:00
Sped0n
129f26dd54 ci: update bundled artifacts [skip ci] 2024-05-12 08:18:26 +00:00
dependabot[bot]
d1f9b843c3 build(deps): bump solid-js from 1.8.16 to 1.8.17 (#322)
Bumps [solid-js](https://github.com/solidjs/solid) from 1.8.16 to 1.8.17.
- [Release notes](https://github.com/solidjs/solid/releases)
- [Changelog](https://github.com/solidjs/solid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/solid/commits)

---
updated-dependencies:
- dependency-name: solid-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-12 08:17:46 +00:00
dependabot[bot]
a7b5ec45ed build(deps-dev): bump eslint-plugin-solid from 0.13.2 to 0.14.0 (#325)
Bumps [eslint-plugin-solid](https://github.com/solidjs-community/eslint-plugin-solid) from 0.13.2 to 0.14.0.
- [Release notes](https://github.com/solidjs-community/eslint-plugin-solid/releases)
- [Commits](https://github.com/solidjs-community/eslint-plugin-solid/compare/v0.13.2...v0.14.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-solid
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-12 08:16:24 +00:00
dependabot[bot]
5d82276734 build(deps-dev): bump sass from 1.74.1 to 1.77.1 (#328)
Bumps [sass](https://github.com/sass/dart-sass) from 1.74.1 to 1.77.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.74.1...1.77.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-12 08:11:54 +00:00
dependabot[bot]
b0c4fa8ea7 build(deps-dev): bump terser from 5.30.3 to 5.31.0 (#324)
Bumps [terser](https://github.com/terser/terser) from 5.30.3 to 5.31.0.
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/compare/v5.30.3...v5.31.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-12 08:09:16 +00:00
Sped0n
a6f983de5d ci: update bundled artifacts [skip ci] 2024-05-12 08:06:38 +00:00
dependabot[bot]
3bc232638a build(deps): bump swiper from 11.1.0 to 11.1.1 (#318)
Bumps [swiper](https://github.com/nolimits4web/Swiper) from 11.1.0 to 11.1.1.
- [Release notes](https://github.com/nolimits4web/Swiper/releases)
- [Changelog](https://github.com/nolimits4web/swiper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nolimits4web/Swiper/compare/v11.1.0...v11.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-12 08:05:42 +00:00
dependabot[bot]
67944df12f build(deps-dev): bump vite from 5.2.8 to 5.2.11 (#327)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.8 to 5.2.11.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.2.11/packages/vite)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-12 16:03:54 +08:00
Sped0n
e82fe6cab2 ci: update bundled artifacts [skip ci] 2024-04-08 09:16:30 +00:00
dependabot[bot]
819df6b2ed build(deps-dev): bump vite from 5.1.7 to 5.2.8 (#315)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.7 to 5.2.8.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.2.8/packages/vite)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 09:15:40 +00:00
Sped0n
dfef87ca55 ci: update bundled artifacts [skip ci] 2024-04-08 09:14:07 +00:00
dependabot[bot]
477b6d748a build(deps): bump swiper from 11.0.7 to 11.1.0 (#311)
Bumps [swiper](https://github.com/nolimits4web/Swiper) from 11.0.7 to 11.1.0.
- [Release notes](https://github.com/nolimits4web/Swiper/releases)
- [Changelog](https://github.com/nolimits4web/swiper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nolimits4web/Swiper/compare/v11.0.7...v11.1.0)

---
updated-dependencies:
- dependency-name: swiper
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 09:13:28 +00:00
dependabot[bot]
31a59c5e9e build(deps-dev): bump terser from 5.29.2 to 5.30.3 (#316)
Bumps [terser](https://github.com/terser/terser) from 5.29.2 to 5.30.3.
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/compare/v5.29.2...v5.30.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 09:12:06 +00:00
dependabot[bot]
e8cdd12151 build(deps-dev): bump sass from 1.71.1 to 1.74.1 (#317)
Bumps [sass](https://github.com/sass/dart-sass) from 1.71.1 to 1.74.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.71.1...1.74.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 09:10:48 +00:00
dependabot[bot]
a8bc17ca12 build(deps-dev): bump typescript from 5.4.2 to 5.4.4 (#314)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.2 to 5.4.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.2...v5.4.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 09:09:35 +00:00
dependabot[bot]
4d04fe1945 build(deps-dev): bump eslint-plugin-solid from 0.13.1 to 0.13.2 (#308)
Bumps [eslint-plugin-solid](https://github.com/solidjs-community/eslint-plugin-solid) from 0.13.1 to 0.13.2.
- [Release notes](https://github.com/solidjs-community/eslint-plugin-solid/releases)
- [Commits](https://github.com/solidjs-community/eslint-plugin-solid/compare/v0.13.1...v0.13.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-solid
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 09:08:26 +00:00
Sped0n
bafd2aa3b3 ci: update bundled artifacts [skip ci] 2024-04-08 09:07:11 +00:00
dependabot[bot]
acf50d10d7 build(deps): bump solid-js from 1.8.15 to 1.8.16 (#306)
Bumps [solid-js](https://github.com/solidjs/solid) from 1.8.15 to 1.8.16.
- [Release notes](https://github.com/solidjs/solid/releases)
- [Changelog](https://github.com/solidjs/solid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/solid/compare/v1.8.15...v1.8.16)

---
updated-dependencies:
- dependency-name: solid-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 09:06:34 +00:00
dependabot[bot]
30a6a3bd23 build(deps-dev): bump vite from 5.1.6 to 5.1.7 (#313)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.6 to 5.1.7.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.1.7/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.1.7/packages/vite)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 17:05:10 +08:00
Spedon
d808782afd docs: update documentation (#303) 2024-03-17 16:23:43 +08:00
Sped0n
5327d7c585 ci: update bundled artifacts [skip ci] 2024-03-17 08:15:57 +00:00
Spedon
d7e7fc68ba refactor: improve top position calculation in stylesheets (#302)
* refactor: improve top position calculation in stylesheets

- Update the top position calculation in the `_collection.scss` file

* refactor: tweak it harder

* Revert "refactor: tweak it harder"

This reverts commit b7bf7e50f8.
2024-03-17 16:15:13 +08:00
dependabot[bot]
7b637637a1 build(deps-dev): bump vite-plugin-solid from 2.10.0 to 2.10.2 (#300)
Bumps [vite-plugin-solid](https://github.com/solidjs/vite-plugin-solid) from 2.10.0 to 2.10.2.
- [Release notes](https://github.com/solidjs/vite-plugin-solid/releases)
- [Changelog](https://github.com/solidjs/vite-plugin-solid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/vite-plugin-solid/commits)

---
updated-dependencies:
- dependency-name: vite-plugin-solid
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-16 21:38:24 +08:00
Sped0n
4a2ef258ba ci: update bundled artifacts [skip ci] 2024-03-16 13:38:04 +00:00
dependabot[bot]
b2c1c96f56 build(deps): bump solid-js from 1.8.14 to 1.8.15 (#290)
Bumps [solid-js](https://github.com/solidjs/solid) from 1.8.14 to 1.8.15.
- [Release notes](https://github.com/solidjs/solid/releases)
- [Changelog](https://github.com/solidjs/solid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/solid/commits)

---
updated-dependencies:
- dependency-name: solid-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-16 21:37:22 +08:00
Sped0n
6d98671856 ci: update bundled artifacts [skip ci] 2024-03-16 13:36:35 +00:00
dependabot[bot]
0b7605b3ff build(deps): bump swiper from 11.0.6 to 11.0.7 (#294)
Bumps [swiper](https://github.com/nolimits4web/Swiper) from 11.0.6 to 11.0.7.
- [Release notes](https://github.com/nolimits4web/Swiper/releases)
- [Changelog](https://github.com/nolimits4web/swiper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nolimits4web/Swiper/compare/v11.0.6...v11.0.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-16 21:35:58 +08:00
dependabot[bot]
c9ca9c682a build(deps-dev): bump vite from 5.1.2 to 5.1.6 (#296)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.2 to 5.1.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.1.6/packages/vite)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-16 21:35:27 +08:00
Sped0n
417a00b9c4 ci: update bundled artifacts [skip ci] 2024-03-16 13:33:45 +00:00
dependabot[bot]
d7a4345f53 build(deps): bump tiny-invariant from 1.3.1 to 1.3.3 (#287)
Bumps [tiny-invariant](https://github.com/alexreardon/tiny-invariant) from 1.3.1 to 1.3.3.
- [Release notes](https://github.com/alexreardon/tiny-invariant/releases)
- [Commits](https://github.com/alexreardon/tiny-invariant/compare/v1.3.1...v1.3.3)

---
updated-dependencies:
- dependency-name: tiny-invariant
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-16 21:33:10 +08:00
dependabot[bot]
2e47be5635 build(deps-dev): bump eslint from 8.56.0 to 8.57.0 (#291)
Bumps [eslint](https://github.com/eslint/eslint) from 8.56.0 to 8.57.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-16 21:32:46 +08:00
dependabot[bot]
0e6fc9384f build(deps-dev): bump terser from 5.27.0 to 5.29.2 (#301)
Bumps [terser](https://github.com/terser/terser) from 5.27.0 to 5.29.2.
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/compare/v5.27.0...v5.29.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-16 21:32:17 +08:00
dependabot[bot]
81eba485d4 build(deps-dev): bump typescript from 5.3.3 to 5.4.2 (#297)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.3.3 to 5.4.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.3.3...v5.4.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-16 21:31:01 +08:00
Spedon
b1553a9a8b fix: fix hugo module version bug (#299)
* docs: Update getStarted.md

* fix: update module version in example site config

* chore: Update index.md

* revert
2024-03-16 21:30:40 +08:00
Spedon
66735f4c65 fix: Update go.mod (#298) 2024-03-16 21:10:25 +08:00
93 changed files with 4644 additions and 3190 deletions

1
.envrc Normal file
View File

@@ -0,0 +1 @@
use flake

View File

@@ -1,3 +0,0 @@
node_modules
static
exampleSite

View File

@@ -1,64 +0,0 @@
{
"env": {
"browser": true,
"es2021": true
},
"extends": [
"standard-with-typescript",
"prettier",
"eslint:recommended",
"plugin:prettier/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:solid/typescript"
],
"parser": "@typescript-eslint/parser",
"plugins": ["prettier", "@typescript-eslint", "solid"],
"parserOptions": {
"ecmaVersion": "latest",
"project": "./tsconfig.json",
"sourceType": "module"
},
"rules": {
"prettier/prettier": "error",
"arrow-body-style": "off",
"prefer-arrow-callback": "off",
"import/no-cycle": "error",
"sort-imports": [
"error",
{
"ignoreCase": false,
"ignoreDeclarationSort": true,
"ignoreMemberSort": true,
"memberSyntaxSortOrder": ["none", "all", "multiple", "single"],
"allowSeparatedGroups": true
}
],
"import/no-unresolved": "error",
"import/order": [
"error",
{
"groups": [
"builtin",
"external",
"internal",
"parent",
"sibling",
"index",
"unknown"
],
"newlines-between": "always",
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}
]
},
"settings": {
"import/resolver": {
"typescript": {
"project": "./tsconfig.json"
}
}
}
}

View File

@@ -24,20 +24,25 @@ jobs:
- name: Get changed files in scope
id: changed-files-specific
uses: tj-actions/changed-files@v41
uses: tj-actions/changed-files@v47
with:
files: |
package.json
pnpm-lock.yaml
tsconfig.json
vite.config.ts
assets/**
build:
timeout-minutes: 30
runs-on: ubuntu-latest
name: Build
name: Build (Hugo ${{ matrix.hugo-version }})
needs: [filter]
if: |
github.ref == 'refs/heads/main' &&
github.event.repository.fork == false
strategy:
matrix:
hugo-version: ['latest', '0.114.0']
steps:
- name: Set current date as env variable
run: |
@@ -52,13 +57,13 @@ jobs:
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2.6.0
with:
hugo-version: '0.114.0'
hugo-version: ${{ matrix.hugo-version }}
extended: true
- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 8
version: 10
- name: Get pnpm store directory
id: pnpm-cache
@@ -68,24 +73,30 @@ jobs:
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: ${{ runner.os }}-pnpm-store-
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('./pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Setup hugo cache
uses: actions/cache@v4
with:
path: ./exampleSite/resources
key: ${{ runner.os }}-hugo-${{ hashFiles('./exampleSite/resources') }}
restore-keys: ${{ runner.os }}-hugo-
key: ${{ runner.os }}-hugo-${{ matrix.hugo-version }}-${{ hashFiles('./exampleSite') }}
restore-keys: |
${{ runner.os }}-hugo-${{ matrix.hugo-version }}-
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm run build
run: |
pnpm run build
- name: Push artifacts
if: ${{ (github.event_name == 'push' || github.event.pull_request.merged == true) && needs.filter.outputs.any_changed == 'true' }}
if: >
matrix.hugo-version == 'latest' &&
(github.event_name == 'push' || github.event.pull_request.merged == true) &&
needs.filter.outputs.any_changed == 'true'
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'ci: update bundled artifacts [skip ci]'

View File

@@ -19,12 +19,12 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ secrets.PAT }}
token: ${{ secrets.PAT || github.token }}
- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 8
version: 10
- name: Get pnpm store directory
id: pnpm-cache
@@ -34,7 +34,7 @@ jobs:
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('./pnpm-lock.yaml') }}
restore-keys: ${{ runner.os }}-pnpm-store-
- name: Install dependencies
@@ -54,4 +54,4 @@ jobs:
if: ${{ steps.format.outcome == 'success' }}
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'ci: format code'
commit_message: 'ci: format code [skip ci]'

5
.gitignore vendored
View File

@@ -1,6 +1,6 @@
# Hugo default output directory
public/
/exampleSite/resources/
exampleSite/resources/
node_modules/
build/
@@ -25,3 +25,6 @@ jsconfig.json
# css map
*.css.map
# dummmy file
bundled/css/critical.js

View File

@@ -1,5 +1,6 @@
node_modules
static
exmapleSite
node_modules/
static/
exmapleSite/
single.json
pnpm-lock.yaml
bundled/

View File

@@ -1,18 +0,0 @@
{
"useTabs": false,
"tabWidth": 2,
"printWidth": 88,
"singleQuote": true,
"trailingComma": "none",
"bracketSpacing": true,
"semi": false,
"plugins": ["prettier-plugin-go-template", "prettier-plugin-organize-imports"],
"overrides": [
{
"files": ["*.html"],
"options": {
"parser": "go-template"
}
}
]
}

View File

@@ -60,7 +60,7 @@ representative at an online or offline event.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
hi@sped0nwen.com.
hi@sped0n.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the

View File

@@ -2,44 +2,38 @@
![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/Sped0n/bridget/build.yml?logo=github) ![GitHub deployments](https://img.shields.io/github/deployments/Sped0n/bridget/Production?logo=vercel&label=deploy)
Bridget is a minimal [Hugo](https://gohugo.io) theme for photographers/visual artists, powered by Solid.js.
Bridget is a minimal [Hugo](https://gohugo.io) theme for photographers/visual artists, based on https://github.com/tylermcrobert/bridget-pictures-www.
Based on the https://github.com/tylermcrobert/bridget-pictures-www.
Here is a [live demo](https://bridget-demo.sped0n.com).
![thumbnail](images/tn.jpg)
![thumbnail](https://raw.githubusercontent.com/Sped0n/bridget/main/images/tn.jpg)
## [Demo Site](https://bridget-demo.sped0nwen.com)
To see this theme in action, here is a live [demo site](https://bridget-demo.sped0nwen.com) which is rendered with **Bridget** theme.
> [!NOTE]
> This repository is currently in **maintaince mode** for two reasons:
>
> 1. I want to keep this theme minimal.
> 2. My bandwith after work is limited.
>
> BUT, bug fixes will be addressed (including related issues and PRs), and they are the **number one priority** for this project.
>
> Please understand that feature request might **NOT** be addressed or may take a long time to be implemented.
>
> Anyway, forks are welcomed, and I'm looking forward to seeing what you can do with the theme.
## Getting Started
Head to this [documentation](https://github.com/Sped0n/bridget/blob/main/doc/getStarted.md) for a complete guidance to get started with the Bridget theme.
Head to this [documentation](https://github.com/Sped0n/bridget/blob/main/docs.md) for a complete guidance to get started with the theme.
## Features
- **Blazingly fast**: 100/100 on both desktop and mobile in [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights)
- Powered by **[Solid.js](https://www.solidjs.com)**, a declarative, efficient, and flexible JavaScript library for building user interfaces
- JS **dynamic loading** (powered by ESM)
- Image **Preloading**/**Lazy loading**
- Powered by **[SolidJS](https://www.solidjs.com)**, a declarative, efficient, and flexible JavaScript library for building user interfaces
- JS **dynamic loading**
- Image **preloading** + **lazy loading**
- **Dynamic resolution** based on view mode
- Multiple **analytics** services supported
- Search engine **verification** supported (Google, Bind, Yandex and Baidu)
## Multilingual and i18n
Bridget supports the following languages:
- English
- Simplified Chinese
- Traditional Chinese
- Japanese
- Korean
- Deutsch
- Spanish
- Italian
- [Contribute with a new language](https://github.com/Sped0n/bridget/pulls)
## Credits
- https://github.com/tylermcrobert/bridget-pictures-www

View File

@@ -1,48 +1,10 @@
@font-face {
font-family: 'Geist';
src:
url('/lib/fonts/GeistVF.woff2') format('woff2 supports variations'),
url('/lib/fonts/GeistVF.woff2') format('woff2-variations');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Noto Sans CJK SC';
src: url('/lib/fonts/NotoSansCJKsc-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Noto Sans CJK TC';
src: url('/lib/fonts/NotoSansCJKtc-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Noto Sans CJK JP';
src: url('/lib/fonts/NotoSansCJKjp-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Noto Sans CJK KR';
src: url('/lib/fonts/NotoSansCJKkr-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Noto Sans';
src: url('/lib/fonts/NotoSans-Regular.woff2') format('woff2');
url(/* @vite-ignore */'{{- "lib/fonts/GeistVF.woff2" | absURL -}}')
format('woff2 supports variations'),
url(/* @vite-ignore */'{{- "lib/fonts/GeistVF.woff2" | absURL -}}')
format('woff2-variations');
font-weight: 400;
font-style: normal;
font-display: swap;
@@ -50,7 +12,7 @@
@font-face {
font-family: 'FW';
src: url('/lib/fonts/fw.woff2') format('woff2');
src: url(/* @vite-ignore */'{{- "lib/fonts/fw.woff2" | absURL -}}') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;

View File

@@ -0,0 +1,4 @@
@forward 'reset';
@forward 'font';
@forward 'typography';
@forward 'mixins';

View File

@@ -1,3 +1,5 @@
@use 'sass:map';
$breakpoints: (
'mobile': 375px,
'tablet': 768px,
@@ -8,8 +10,8 @@ $breakpoints: (
// Breakpoints
@mixin min-width($breakpoint) {
@if map-has-key($breakpoints, $breakpoint) {
@media (min-width: map-get($breakpoints, $breakpoint)) {
@if map.has-key($breakpoints, $breakpoint) {
@media (min-width: map.get($breakpoints, $breakpoint)) {
@content;
}
} @else {
@@ -18,8 +20,8 @@ $breakpoints: (
}
@mixin max-width($breakpoint) {
@if map-has-key($breakpoints, $breakpoint) {
@media (max-width: (map-get($breakpoints, $breakpoint) - 1px)) {
@if map.has-key($breakpoints, $breakpoint) {
@media (max-width: (map.get($breakpoints, $breakpoint) - 1px)) {
@content;
}
} @else {

View File

@@ -1,12 +1,12 @@
@import 'mixins';
@use 'mixins' as *;
body {
line-height: 1.2;
font-size: 16px;
font-family: sans-serif;
font-family: 'Geist', sans-serif;
button {
font-family: 'FW';
font-family: 'FW', sans-serif;
}
@include min-width('tablet') {
@@ -16,51 +16,3 @@ body {
font-size: 19px;
}
}
body:lang(en) {
font-family: 'Geist', sans-serif;
}
body:lang(de) {
font-family: 'Geist', sans-serif;
}
body:lang(es) {
font-family: 'Geist', sans-serif;
}
body:lang(fr) {
font-family: 'Geist', sans-serif;
}
body:lang(it) {
font-family: 'Geist', sans-serif;
}
body:lang(zh-cn) {
font-family: 'Noto Sans', 'Noto Sans CJK SC', sans-serif;
}
body:lang(zh-sg) {
font-family: 'Noto Sans', 'Noto Sans CJK SC', sans-serif;
}
body:lang(zh-hk) {
font-family: 'Noto Sans', 'Noto Sans CJK TC', sans-serif;
}
body:lang(zh-mo) {
font-family: 'Noto Sans', 'Noto Sans CJK TC', sans-serif;
}
body:lang(zh-tw) {
font-family: 'Noto Sans', 'Noto Sans CJK TC', sans-serif;
}
body:lang(ja) {
font-family: 'Noto Sans', 'Noto Sans CJK JP', sans-serif;
}
body:lang(ko) {
font-family: 'Noto Sans', 'Noto Sans CJK KR', sans-serif;
}

View File

@@ -1,3 +1,9 @@
@use 'sass:map';
@use '_core/mixins' as *;
$tablet: map.get($breakpoints, 'tablet') - 1;
article {
padding: var(--space-standard);
max-width: 25em;

View File

@@ -3,12 +3,12 @@
flex-direction: column;
gap: 20vh;
padding-top: 50vh;
padding-top: calc(var(--window-height) * 0.4);
margin-top: calc(var(--nav-height) * -1);
img {
position: sticky;
top: 50vh;
top: calc(var(--window-height) * 0.4);
width: 60vw;
height: 20vh;
@@ -19,7 +19,7 @@
align-self: center;
&:last-child {
margin-bottom: 20vh;
margin-bottom: calc(var(--window-height) * 0.35);
}
}
}

View File

@@ -1,4 +1,8 @@
$tablet: map-get($breakpoints, 'tablet') - 1;
@use 'sass:map';
@use '_core/mixins' as *;
$tablet: map.get($breakpoints, 'tablet') - 1;
@media (max-width: $tablet), (hover: none) {
.container {

View File

@@ -1,4 +1,8 @@
$tablet: map-get($breakpoints, 'tablet') - 1;
@use 'sass:map';
@use '_core/mixins' as *;
$tablet: map.get($breakpoints, 'tablet') - 1;
nav {
display: flex;

View File

@@ -1,5 +1,3 @@
@import '_core/mixins';
:root {
--window-height: 100vh;
--nav-height: 2rem;

View File

@@ -1,12 +1,9 @@
@charset "utf-8";
@import '_core/reset';
@import '_core/font';
@import '_core/typography';
@import '_core/mixins';
@import '_variables';
@import '_core/base';
@use '_core/foundation';
@use '_variables';
@use '_core/base';
@import '_partial/nav';
@import '_partial/article';
@import '_partial/container';
@use '_partial/nav';
@use '_partial/article';
@use '_partial/container';

View File

@@ -1,10 +1,9 @@
@charset "utf-8";
@import '_partial/customCursor';
@import '_partial/stage';
@import '_partial/stageNav';
@use '_partial/customCursor';
@use '_partial/stage';
@use '_partial/stageNav';
@use '_partial/collection';
@use '_partial/gallery';
@import '_partial/collection';
@import '_partial/gallery';
@import 'node_modules/swiper/swiper.scss';
@use '../../node_modules/swiper/swiper.css';

2
assets/ts/critical.ts Normal file
View File

@@ -0,0 +1,2 @@
// this is a dummy file to trick vite to generate a critical.css file
import '../scss/critical.scss'

View File

@@ -1,4 +1,3 @@
// eslint-disable-next-line sort-imports
import { Show, createMemo, createSignal, type JSX } from 'solid-js'
import type { ImageJSON } from '../resources'

View File

@@ -135,7 +135,7 @@ export default function Stage(props: {
}
const onClick: () => void = () => {
!props.isAnimating() && props.setIsOpen(true)
if (!props.isAnimating()) props.setIsOpen(true)
}
const setPosition: () => void = () => {
@@ -422,7 +422,6 @@ export default function Stage(props: {
.catch(() => {
void 0
})
// eslint-disable-next-line solid/reactivity
.then(() => {
// abort controller for cleanup
abortController?.abort()

View File

@@ -1,4 +1,4 @@
import { For, type Accessor, type JSX, type Setter } from 'solid-js'
import { For, createEffect, type Accessor, type JSX, type Setter } from 'solid-js'
import { useState } from '../state'
import { decrement, increment, type Vector } from '../utils'
@@ -24,6 +24,7 @@ export default function StageNav(props: {
type NavItem = (typeof navItems)[number]
// variables
let controller: AbortController | undefined
// eslint-disable-next-line solid/reactivity
const navItems = [props.prevText, props.closeText, props.nextText] as const
@@ -70,6 +71,19 @@ export default function StageNav(props: {
else if (e.key === 'ArrowRight') nextImage()
}
createEffect(() => {
if (props.isOpen()) {
controller = new AbortController()
const abortSignal = controller.signal
window.addEventListener('keydown', handleKey, {
passive: true,
signal: abortSignal
})
} else {
controller?.abort()
}
})
return (
<>
<div class="navOverlay" classList={{ active: props.active() }}>
@@ -80,9 +94,9 @@ export default function StageNav(props: {
onClick={() => {
handleClick(item)
}}
onKeyDown={handleKey}
onFocus={() => props.setHoverText(item)}
onMouseOver={() => props.setHoverText(item)}
tabIndex="-1"
/>
)}
</For>

View File

@@ -38,7 +38,9 @@ const Mobile = lazy(async () => await import('./mobile/layout'))
function Main(): JSX.Element {
// variables
const [ijs] = createResource(getImageJSON)
const isMobile = window.matchMedia('(hover: none)').matches
const isMobile =
window.matchMedia('(hover: none)').matches &&
!window.navigator.userAgent.includes('Win')
// states
const [scrollable, setScollable] = createSignal(true)

View File

@@ -116,7 +116,7 @@ export default function Collection(props: {
data-src={ij.loUrl}
alt={ij.alt}
style={{
transform: `translate3d(${i() !== 0 ? getRandom(-25, 25) : 0}%, ${i() !== 0 ? getRandom(-30, 30) : 0}%, 0)`
transform: `translate3d(${i() !== 0 ? getRandom(-25, 25) : 0}%, ${i() !== 0 ? getRandom(-35, 35) : 0}%, 0)`
}}
onClick={() => {
handleClick(i())

View File

@@ -14,8 +14,16 @@ export async function getImageJSON(): Promise<ImageJSON[]> {
if (document.title.split(' | ')[0] === '404') {
return [] // no images on 404 page
}
const ogUrlMetaTag = document.querySelector(
'meta[property="og:url"]'
) as HTMLMetaElement | null
const indexJsonUrl = ogUrlMetaTag?.content
? new URL('index.json', ogUrlMetaTag.content).href
: new URL('index.json', window.location.href).href
try {
const response = await fetch(`${window.location.href}index.json`, {
const response = await fetch(indexJsonUrl, {
headers: {
Accept: 'application/json'
}
@@ -27,7 +35,8 @@ export async function getImageJSON(): Promise<ImageJSON[]> {
}
return 1
})
} catch (_) {
} catch (e) {
console.error(e)
return []
}
}

1
bundled/css/critical.css Normal file
View File

@@ -0,0 +1 @@
*:where(:not(html,iframe,canvas,img,svg,video,audio):not(svg *,symbol *)){all:unset;display:revert}*,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}a,button{cursor:revert}ol,ul,menu,summary{list-style:none}img{max-inline-size:100%;max-block-size:100%}table{border-collapse:collapse}input,textarea{-webkit-user-select:auto}textarea{white-space:revert}meter{-webkit-appearance:revert;appearance:revert}:where(pre){all:revert;box-sizing:border-box}::placeholder{color:unset}:where([hidden]){display:none}:where([contenteditable]:not([contenteditable=false])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}:where([draggable=true]){-webkit-user-drag:element}:where(dialog:modal){all:revert;box-sizing:border-box}@font-face{font-family:Geist;src:url('{{- "lib/fonts/GeistVF.woff2" | absURL -}}') format("woff2 supports variations"),url('{{- "lib/fonts/GeistVF.woff2" | absURL -}}') format("woff2-variations");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:FW;src:url('{{- "lib/fonts/fw.woff2" | absURL -}}') format("woff2");font-weight:400;font-style:normal;font-display:swap}body{line-height:1.2;font-size:16px;font-family:Geist,sans-serif}body button{font-family:FW,sans-serif}@media(min-width:768px){body{font-size:18px}}@media(min-width:1024px){body{font-size:19px}}:root{--window-height: 100vh;--nav-height: 2rem;--space-standard: .625rem;--z-curtain: 200;--z-nav-gallery: 500;--z-cursor: 600;--z-nav: 800}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{-webkit-user-select:none;user-select:none;background:#fff}html,body{overscroll-behavior-y:none}a,button{cursor:pointer}nav{display:flex;justify-content:space-between;align-items:center;width:100%;height:var(--nav-height);padding:0 var(--space-standard);position:fixed;bottom:0;background:#fff;z-index:var(--z-nav);pointer-events:all}.num{width:.625em;display:inline-block;text-align:center}.current{font-style:italic;text-decoration:underline}@media(max-width:767px),(hover:none){nav{top:0}.index,.threshold{display:none}}article{padding:var(--space-standard);max-width:25em}article p{margin-bottom:1em}article u{text-decoration:underline}article>h1{font-size:1.6em}article>h2{font-size:1.5em}article>h3{font-size:1.375em}article>h4{font-size:1.25em}article>h5{font-size:1.125em}article h1,article h2,article h3,article h4,article h5,article h6{font-weight:700;margin:1.2rem 0}@media(max-width:767px),(hover:none){article{margin-top:var(--nav-height)}}@media(max-width:767px),(hover:none){.container{position:fixed;top:0;z-index:0;width:100vw;height:var(--window-height);overflow-y:scroll;overflow-x:hidden;background:#fff;overscroll-behavior:none;-webkit-overflow-scrolling:none}.disableScroll{pointer-events:none}}

1
bundled/css/main.css Normal file

File diff suppressed because one or more lines are too long

1
bundled/js/0I9ziN.js Normal file

File diff suppressed because one or more lines are too long

1
bundled/js/BMxMXX.js Normal file

File diff suppressed because one or more lines are too long

1
bundled/js/BP5ETi.js Normal file

File diff suppressed because one or more lines are too long

1
bundled/js/DgNkpX.js Normal file

File diff suppressed because one or more lines are too long

0
bundled/js/critical.js Normal file
View File

1
bundled/js/main.js Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,197 +0,0 @@
# Getting Started
The files in `exampleSite` is just a simple example. Now, we will introduce it based on the same structure.
## Requirements
Before you start, make sure you have installed Hugo **extended version**. For more information, see [Hugo's documentation](https://gohugo.io/getting-started/installing/).
Once you have installed Hugo, you can check the version by running the following command:
```shell
hugo version
```
Which should output something like this (the version number may be different), notice the `extended` keyword:
```shell
hugo v0.120.3-a4892a07b41b7b3f1f143140ee4ec0a9a5cf3970+extended darwin/arm64 BuildDate=2023-11-01T17:57:00Z VendorInfo=brew
```
The minimum required Hugo version can be seen in the [`theme.toml`](https://github.com/Sped0n/bridget/blob/main/theme.toml#L19).
## Installation
### Git (for adavanced user)
On the main branch, you can find the theme's latest source code. To use the latest version, you can clone the repository to `themes/bridget` by running the following command in the root directory of your Hugo site:
```shell
git clone https://github.com/Sped0n/bridget themes/bridget
```
If you are already using Git for your site, you can add the theme as a submodule by running the following command in the root directory of your Hugo site:
```shell
git submodule add https://github.com/Sped0n/bridget themes/bridget
```
> ⚠️⚠️⚠️
>
> Please refer to the config section for the following content.
### Module (recommended)
> If you want to have some customizations, use Git installation instead.
This theme is also available as a [Hugo module](https://gohugo.io/hugo-modules/). Run the following command in the root directory of your Hugo site:
First turn your site into a Hugo module (in case you haven't done it yet):
```shell
hugo mod init github.com/me/my-new-site
# or whatever you like, it doesnt necessarily have to be a GitHub repo link.
hugo mod init blablabla
```
Then import the theme as a dependency adding the following line to the `module` section of your site's configuration file.
```toml
# config/_default/hugo.toml
[module]
[[module.imports]]
path = "github.com/Sped0n/bridget"
```
If you want to upgrade the theme, just run:
```shell
hugo mod get -u
```
> ⚠️⚠️⚠️
>
> Please refer to the config section for the following content.
## Content Management
The content is where the pictures/text is stored, while the static refers to the website icons.
```
.
├── content
│ ├── Erwitt
│ │ ├── 1.jpg
│ │ ├── ***
│ │ └── index.md
│ ├── Gruyaert
│ │ ├── 1.jpg
│ │ ├── ***
│ │ └── index.md
│ ├── Info
│ │ └── index.md
│ └── Webb
│ ├── 1.jpg
│ ├── ***
│ └── index.md
└── static
├── dot.png
└── dot.svg
```
In each index.md file, there is a configuration file like this:
```markdown
---
type: _default
layout: single
url: /erwitt/
menu:
main:
weight: 3
identifier: Erwitt
title: Erwitt
unifiedAlt: '© Elliott Erwitt'
_build:
publishResources: false
---
```
- keep the `type` and `layout` **untouched**;
- `url` is the href link to this page, in this case, you can visit this page with `blabla.com/erwitt`;
- `main` is the entry to `menu`;
- `weight` determines the position of this link in the navigation bar, with the first one being 1, the second one being 2, and so on;
- `identifier` should be the **same** as the name of the **upper-level directory**;
- `title` refers to the text that appears on the navigation bar;
- `unifiedAlt` is **optional**, If you left it empty, the alt attribute of the image will default to its file name; if it is set, the alt attributes of all images will be unified to the value you have set;
- `publishResources` is **optional but recommended**, setting it to false will hide unprocessed images in the `public` directory. By default, Hugos value for this option is true, which can potentially result in source image leakage.
- If this is a **showcase** page, simply place the images in the same directory as index.md.
- If this is an **information** page, you can continue writing the information you want to display in index.md.
> However, please note that the CSS for the information page **only provides simple styling for text**. If you have any requirements beyond text and the browser rendering does not meet your expectations, please modify [`_article.scss`](https://github.com/Sped0n/bridget/blob/main/assets/scss/_partial/_article.scss).
As for the **website icon**, place the files in static and then go to config part for further reading.
## Config
You can simply copy this to the root directory of your site with minor modifications, and youll be ready to proceed.
```
.
└── config
└── _default
├── hugo.toml
├── markup.toml
├── params.toml
└── sitemap.toml
```
### `hugo.toml`
We will focus on introducing the part about `theme as module`, detailed comments are provided for other options, so we wont repeat them here.
```toml
# theme as module
[module]
replacements = "github.com/Sped0n/bridget -> ../.."
[[module.imports]]
path = "github.com/Sped0n/bridget"
```
- If you have _installation with Git_
- `replacement`: replace the _path after the arrow_(`../..`) with the location of your local theme file (⚠️⚠️⚠️**relative path only**, example: `themes/bridget`)
- `path`: no change
- If you have _installation with Module_, **remove the `replacements` configuration**.
### `markup.toml`
**DO NOT TOUCH THIS**
### `params.toml`
Detailed description in the comments.
### `sitemap.toml`
https://gohugo.io/templates/sitemap-template/#configuration
## Customization (AKA for developer)
> Before heading to this section, please make sure you have **installation with Git**.
>
> You can use any package manager you want (npm/pnpm/yarn/bun).
- run `pnpm install` to install neceessary dependencies.
- run `pnpm run dev` to host a dev server.
- when youre ready, run `pnpm run build` to update artifacts.

307
docs.md Normal file
View File

@@ -0,0 +1,307 @@
### Contents
- [Prequisites](#prequisites)
- [Installation](#installation)
- [Hugo Modules (Recommended)](#hugo-modules-recommended)
- [Git Repository (For Customizations)](#git-repository-for-customizations)
- [Content Management](#content-management)
- [`index.md`](#indexmd)
- [Front Matter](#front-matter)
- [Markdown Content](#markdown-content)
- [Favicon](#favicon)
- [Configuration](#configuration)
- [`hugo.toml`](#hugotoml)
- [`markup.toml`](#markuptoml)
- [`outputs.toml`](#outputstoml)
- [`params.toml`](#paramstoml)
- [`sitemap.toml`](#sitemaptoml)
- [Usage](#usage)
- [Customizations](#customizations)
- [Change Font](#change-font)
- [Add a Custom Analytic Script](#add-a-custom-analytic-script)
---
## Prequisites
_[Contents](#contents)_
- [Hugo (extended)](https://gohugo.io/installation/), minimum required version can be seen in the [`theme.toml`](https://github.com/Sped0n/bridget/blob/main/theme.toml#L19)
```bash
hugo version
hugo v0.152.2+extended+withdeploy darwin/arm64 BuildDate=unknown VendorInfo=nixpkgs
```
- [pnpm](https://pnpm.io/installation) and [Node.js](https://nodejs.org/en/download), please note that these two are only needed for customizations or development.
```bash
pnpm --version && node --version
10.20.0
v22.20.0
```
## Installation
_[Contents](#contents)_
### Hugo Modules (Recommended)
_[Contents](#contents)_
> [!IMPORTANT]
> Checkout https://gohugo.io/hugo-modules/use-modules/#prerequisite before using Hugo Modules.
First turn your site into a Hugo module (in case you haven't done it yet):
```bash
hugo mod init github.com/me/my-new-site
# or whatever you like, it doesnt need to be a valid GitHub repo link.
hugo mod init blablabla
```
Then import the theme as a dependency adding the following line to the `module` section of your site's configuration file.
```toml
# config/_default/hugo.toml
[module]
[[module.imports]]
path = "github.com/Sped0n/bridget/v2"
```
If you want to upgrade the theme, just run:
```shell
hugo mod get -u
```
### Git Repository (For Customizations)
_[Contents](#contents)_
First clone the repository into your `themes` directory:
```bash
# latest version (main branch, might be unstable)
git clone https://github.com/Sped0n/bridget themes/bridget
# and you can checkout to a specific stable version, see https://github.com/Sped0n/bridget/releases
cd themes/bridget
git checkout v1.0.0
```
If you are already using Git for your site, you can add the theme as a submodule by running the following command in the root directory of your Hugo site:
```bash
git submodule add https://github.com/Sped0n/bridget themes/bridget
```
## Content Management
_[Contents](#contents)_
The content is where the pictures/text is stored, while the static refers to the website icons.
```
.
├── content
│ ├── Erwitt
│ │ ├── 1.jpg
│ │ ├── ***
│ │ └── index.md
│ ├── Gruyaert
│ │ ├── 1.jpg
│ │ ├── ***
│ │ └── index.md
│ ├── Info
│ │ └── index.md
│ └── Webb
│ ├── 1.jpg
│ ├── ***
│ └── index.md
└── static
├── dot.png
└── dot.svg
```
### `index.md`
_[Contents](#contents)_
#### Front Matter
_[Contents](#contents)_
Inside each index.md file, there is a front matter like this:
```markdown
---
type: _default # just copy
layout: single # just copy
url: /erwitt/
menu:
main:
weight: 3
identifier: Erwitt
title: Erwitt
unifiedAlt: '© Elliott Erwitt'
build:
publishResources: false # just copy
---
```
- `url` is the href link to this page, in this case, you can visit this page with `blabla.com/erwitt`;
- `main` is the entry to `menu`;
- `weight` determines the position of this link in the navigation bar, with the first one being 1, the second one being 2, and so on;
- `identifier` should be the **same** as the name of the **upper-level directory**;
- `title` refers to the text that appears on the navigation bar;
- `unifiedAlt` is **optional**, If you left it empty, the alt attribute of the image will default to its file name; if it is set, the alt attributes of all images will be unified to the value you have set;
#### Markdown Content
_[Contents](#contents)_
- If this is a **showcase** page:
- No need to write anything in index.md.
- Place the images in the same directory as `index.md`.
- If this is an **information** page:
- You can write anything in index.md, and it will be rendered as HTML.
- However, please note that the CSS for the information page **only provides simple styling for text**. If you have any requirements beyond text and the browser rendering does not meet your expectations, please modify [`_article.scss`](https://github.com/Sped0n/bridget/blob/main/assets/scss/_partial/_article.scss).
### Favicon
_[Contents](#contents)_
As for the **website icon**, place the files under `static` directory and then go to [config](#configuration) part for further reading.
## Configuration
_[Contents](#contents)_
You can simply copy `exampleSite/config` to the root directory, with some minor modifications and you should be good to go.
```
.
└── config
└── _default
├── hugo.toml
├── markup.toml
├── outputs.toml
├── params.toml
└── sitemap.toml
```
### `hugo.toml`
_[Contents](#contents)_
First, what you need to modify is the `baseURL` and `title`:
```toml
# timeout
timeout = "1200s"
# your website url
baseURL = 'https://bridget-demo.sped0n.com' # <-- MODIFY ME
# website title
title = 'Bridget' # <-- MODIFY ME
# don't touch this
disableKinds = ["section", "taxonomy", "term", "home"]
# robots.txt
enableRobotsTXT = true
```
Depend on which [installation](#installation) method you choose, you need to modify the `module` section:
- If you use [Hugo Modules](#hugo-modules-recommended):
```toml
[module]
[[module.imports]]
path = "github.com/Sped0n/bridget/v2"
```
- If you use [Git Repository](#git-repository-for-customizations):
```toml
[module]
# This is the relative path to hugo theme directory([official doc](https://gohugo.io/hugo-modules/configuration/#module-configuration-top-level))**.
replacements = "github.com/Sped0n/bridget/v2 -> ../.."
[[module.imports]]
path = "github.com/Sped0n/bridget/v2"
```
### `markup.toml`
_[Contents](#contents)_
**Just copy it.**
### `outputs.toml`
_[Contents](#contents)_
**Just copy it.**
_[Contents](#contents)_
### `params.toml`
_[Contents](#contents)_
Detailed description in the comments.
### `sitemap.toml`
_[Contents](#contents)_
https://gohugo.io/templates/sitemap-template/#configuration
## Usage
_[Contents](#contents)_
Bridget will work as a normal Hugo theme (if you don't have needs to customize), https://gohugo.io/getting-started/usage/ is a great start.
For further reading, you can refer to the `scripts` field of `package.json`.
## Customizations
_[Contents](#contents)_
> [!IMPORTANT]
> Please make sure you have [installation with Git](#git-repository-for-customizations).
>
> If you want to try some changes on the `exampleSite`, below are some commands you might need:
>
> - `pnpm install` to install dependencies.
> - `pnpm run dev` to start a dev server (`http://localhost:1313`).
> - `pnpm run build` to update artifacts.
### Change Font
_[Contents](#contents)_
These are the places you need to focus on:
- `assets/scss/_core/_font.scss` (`@font-face`)
- `assets/scss/_core/_typography.scss` (`body.font-family`)
- `layouts/partials/head/link.html` (`preload`)
- `static/lib/fonts/GeistVF.woff2` (font file itself)
### Add a Custom Analytic Script
_[Contents](#contents)_
Go to `layouts/_default/baseof.html`:
```html
<!doctype html>
<html lang="{{- site.LanguageCode -}}">
<head>
/* ---------- INSERT HERE ---------- */
</head>
<body lang="{{- site.LanguageCode -}}">
<div class="analytics">/* ---------- OR HERE ---------- */</div>
</body>
</html>
```

79
eslint.config.mjs Normal file
View File

@@ -0,0 +1,79 @@
import js from '@eslint/js'
import tsParser from '@typescript-eslint/parser'
import love from 'eslint-config-love'
import importPlugin from 'eslint-plugin-import'
import prettier from 'eslint-plugin-prettier/recommended'
import solid from 'eslint-plugin-solid/configs/recommended'
import { defineConfig, globalIgnores } from 'eslint/config'
import tseslint from 'typescript-eslint'
export default defineConfig([
js.configs.recommended,
tseslint.configs.recommended,
importPlugin.flatConfigs.recommended,
solid,
globalIgnores(['node_modules/', 'static/', 'exampleSite/', '*.mjs', 'bundled/']),
{
...love,
...prettier,
languageOptions: {
parser: tsParser,
ecmaVersion: 'latest',
sourceType: 'module',
parserOptions: {
project: './tsconfig.json'
}
},
settings: {
'import/resolver': {
typescript: {
project: './tsconfig.json'
}
}
},
rules: {
'prettier/prettier': 'error',
'arrow-body-style': 'off',
'prefer-arrow-callback': 'off',
'import/no-cycle': 'error',
'sort-imports': [
'error',
{
ignoreCase: false,
ignoreDeclarationSort: true,
ignoreMemberSort: true,
memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],
allowSeparatedGroups: true
}
],
'import/no-unresolved': 'error',
'import/order': [
'error',
{
groups: [
'builtin',
'external',
'internal',
'parent',
'sibling',
'index',
'unknown'
],
'newlines-between': 'always',
alphabetize: {
order: 'asc',
caseInsensitive: true
}
}
]
}
}
])

View File

@@ -1,27 +1,16 @@
# timeout
timeout = "1200s"
# your website url
baseURL = 'https://www.example.com/'
baseURL = 'https://bridget-demo.sped0n.com'
# website title
title = 'Bridget'
# don't touch this
disableKinds = ["section", "taxonomy", "term", "home"]
# robots.txt
enableRobotsTXT = true
# available options
# * en (powered by Geist)
# * de (powered by Geist)
# * es (powered by Geist)
# * fr (powered by Geist)
# * it (powered by Geist)
# * zh-sg zh-cn (powered by Noto Sans SC)
# * zh-hk zh-tw zh-mo (powered by Noto Sans TC)
# * ja (powered by Noto Sans JP)
# * ko (powered by Noto Sans KR)
defaultContentLanguage = 'en'
# theme as module
[module]
replacements = "github.com/Sped0n/bridget -> ../.." # deploy with local dir WARN: delete this line if you want to deploy with git
replacements = "github.com/Sped0n/bridget/v2 -> ../.." # deploy with local dir (relative to hugo site theme dir) WARN: delete this line if you want to deploy with git
[[module.imports]]
path = "github.com/Sped0n/bridget" # deploy with git (recommended) WARN: you should also set `bundled` to true in params.toml !!!
path = "github.com/Sped0n/bridget/v2" # deploy with git (recommended)

View File

@@ -1,6 +1,23 @@
# --- REQUIRED -----------------------------------------------------------------
# description of the site (will be placed in meta)
description = "Bridget is a minimal Hugo theme designed for photographers/visual artists."
# resize options for dynamic resolution, please refer to https://gohugo.io/content-management/image-processing/#image-processing-options
loResOpt = "800x webp Lanczos q60"
hiResOpt = "2500x webp Lanczos q75"
# labels (text shown on the UI)
[labels]
next = "next"
prev = "prev"
close = "close"
threshold = "Threshold"
error = "page not found"
loading = "loading..."
# --- OPTIONAL -----------------------------------------------------------------
# whether to use favicon resource links
# generate these with https://realfavicongenerator.net
favicon = true
@@ -9,16 +26,7 @@ svgFavicon = "/dot.svg"
# fallback png favicon for unsupported browsers
svgFaviconFallback = "/dot.png"
# resize options for dynamic resolution, please refer to https://gohugo.io/content-management/image-processing/#image-processing-options
loResOpt = "800x webp Lanczos q60"
hiResOpt = "2500x webp Lanczos q75"
# page config
[page]
# unified alt text for all images in the page
unifiedAlt = ''
# Site verification code for Google/Bing/Yandex/Pinterest/Baidu
# site verification code for Google/Bing/Yandex/Pinterest/Baidu
[verification]
google = ""
bing = ""
@@ -28,7 +36,7 @@ baidu = ""
so = ""
sogou = ""
# Analytics config
# analytics config
[analytics]
enable = true
# Google Analytics
@@ -46,10 +54,10 @@ server = ""
id = ""
# Umami Analytics
[analytics.umami]
data_website_id = "44a4a42d-ec8e-44c9-a38c-7533929e9845"
src = "https://umami.sped0nwen.com/script.js"
data_website_id = "942d4c0d-ebd0-4da7-936a-bd278af32e5e"
src = "https://umami.sped0n.com/script.js"
data_host_url = ""
data_domains = "bridget-demo.sped0nwen.com"
data_domains = "bridget-demo.sped0n.com"
# Plausible Analytics
[analytics.plausible]
data_domain = ""
@@ -61,8 +69,8 @@ token = ""
[analytics.splitbee]
enable = false
# no cookie mode
No_cookie = true
no_cookie = true
# respect the do not track setting of the browser
Do_not_track = true
do_not_track = true
# token(optional), more info on https://splitbee.io/docs/embed-the-script
data_token = ""

View File

@@ -8,6 +8,6 @@ menu:
identifier: Erwitt
title: Erwitt
unifiedAlt: '© Elliott Erwitt'
_build:
build:
publishResources: false
---

View File

@@ -8,6 +8,6 @@ menu:
identifier: Gruyaert
title: Gruyaert
unifiedAlt: '© Harry Gruyaert'
_build:
build:
publishResources: false
---

View File

@@ -8,13 +8,13 @@ menu:
identifier: Info
title: Info
unifiedAlt: ''
_build:
build:
publishResources: false
---
Bridget is a _minimal_ Hugo theme designed for photographers/visual artists.
Bridget is a _minimal_ Hugo theme designed for photographers/visual artists, powered by <u>[SolidJS](https://www.solidjs.com)</u>.
The inspiration for this theme came from a video by <u>[Hyperlexed](https://www.youtube.com/@Hyperplexed)</u>, which can be found <u>[here](https://www.youtube.com/watch?v=Jt3A2lNN2aE)</u>. Initially, it was developed using no third-party dependencies. However, after website designer <u>[Tyler McRobert](https://tylermcrobert.com)</u> made the source code publicly available, I realized that I have invented many unnecessary wheels, and this project was modified to porting the original design to hugo while focusing on _performance_.
The inspiration for this theme came from a video by <u>[Hyperlexed](https://www.youtube.com/@Hyperplexed)</u>, which can be found <u>[here](https://www.youtube.com/watch?v=Jt3A2lNN2aE)</u>. Initially, it was developed using no third-party dependencies. However, after website designer <u>[Tyler McRobert](https://tylermcrobert.com)</u> made the source code publicly available, I realized that I have invented many unnecessary wheels, and this project was modified to porting the original design to Hugo while focusing on _performance_.
Once again, great shout out to <u>[Tyler McRobert](https://tylermcrobert.com)</u> for his inspiration to this project.
@@ -22,4 +22,4 @@ Once again, great shout out to <u>[Tyler McRobert](https://tylermcrobert.com)</u
Original site design by <u>[Tyler McRobert](https://tylermcrobert.com)</u>.
&copy; {{< year >}} <u>[Spedon](https://github.com/Sped0n)</u> | Powered by [Hugo](https://gohugo.io)
&copy; {{< year >}} <u>[Spedon](https://github.com/Sped0n)</u> | Built with Hugo

View File

@@ -8,6 +8,6 @@ menu:
identifier: Webb
title: Webb
unifiedAlt: '© Alex Webb'
_build:
build:
publishResources: false
---

25
flake.lock generated Normal file
View File

@@ -0,0 +1,25 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1762596750,
"narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=",
"rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e",
"revCount": 891611,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.891611%2Brev-b6a8526db03f735b89dd5ff348f53f752e7ddc8e/019a684c-ea63-75fd-99cc-3b869954e5f9/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

37
flake.nix Normal file
View File

@@ -0,0 +1,37 @@
{
description = "bridget";
inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1";
outputs =
{ self, ... }@inputs:
let
supportedSystems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
forEachSupportedSystem =
f:
inputs.nixpkgs.lib.genAttrs supportedSystems (
system:
f {
pkgs = import inputs.nixpkgs { inherit system; };
}
);
in
{
devShells = forEachSupportedSystem (
{ pkgs }:
{
default = pkgs.mkShellNoCC {
packages = with pkgs; [
nodejs
nodePackages.pnpm
hugo
go
];
};
}
);
};
}

2
go.mod
View File

@@ -1,3 +1,3 @@
module github.com/Sped0n/bridget
module github.com/Sped0n/bridget/v2
go 1.21.3

18
hugo.toml Normal file
View File

@@ -0,0 +1,18 @@
[[module.mounts]]
source = 'archetypes'
target = 'archetypes'
[[module.mounts]]
source = 'assets'
target = 'assets'
[[module.mounts]]
source = 'layouts'
target = 'layouts'
[[module.mounts]]
source = 'static'
target = 'static'
[[module.mounts]]
source = "bundled"
target = "assets/bundled"
[[module.mounts]]
source = "bundled"
target = "static/bundled"

View File

@@ -1,12 +0,0 @@
[next]
other = "nächste"
[prev]
other = "vorher"
[close]
other = "schließen"
[threshold]
other = "schwelle"
[404]
other = "seite nicht gefunden"
[loading]
other = "lade..."

View File

@@ -1,12 +0,0 @@
[next]
other = "next"
[prev]
other = "prev"
[close]
other = "close"
[threshold]
other = "threshold"
[404]
other = "page not found"
[loading]
other = "loading..."

View File

@@ -1,12 +0,0 @@
[next]
other = "siguiente"
[prev]
other = "previo"
[close]
other = "cerrar"
[threshold]
other = "umbral"
[404]
other = "página no encontrada"
[loading]
other = "cargando..."

View File

@@ -1,12 +0,0 @@
[next]
other = "suivant"
[prev]
other = "précédent"
[close]
other = "fermer"
[threshold]
other = "seuil"
[404]
other = "page non trouvée"
[loading]
other = "chargement..."

View File

@@ -1,12 +0,0 @@
[next]
other = "prossimo"
[prev]
other = "precedente"
[close]
other = "chiudi"
[threshold]
other = "soglia"
[404]
other = "pagina non trovata"
[loading]
other = "caricamento..."

View File

@@ -1,12 +0,0 @@
[next]
other = "進む"
[prev]
other = "後退"
[close]
other = "閉じる"
[threshold]
other = "しきい値"
[404]
other = "ページが見つかりません"
[loading]
other = "読み込み中..."

View File

@@ -1,12 +0,0 @@
[next]
other = "전진"
[prev]
other = "물러나세요"
[close]
other = "닫기"
[threshold]
other = "임계값"
[404]
other = "페이지를 찾을 수 없습니다"
[loading]
other = "로딩중..."

View File

@@ -1,12 +0,0 @@
[next]
other = "前进"
[prev]
other = "后退"
[close]
other = "关闭"
[threshold]
other = "阈值"
[404]
other = "页面不存在"
[loading]
other = "加载中..."

View File

@@ -1,12 +0,0 @@
[next]
other = "前進"
[prev]
other = "後退"
[close]
other = "關閉"
[threshold]
other = "閾值"
[404]
other = "找不到頁面"
[loading]
other = "載入中..."

View File

@@ -1,12 +0,0 @@
[next]
other = "前進"
[prev]
other = "後退"
[close]
other = "關閉"
[threshold]
other = "閾值"
[404]
other = "找不到頁面"
[loading]
other = "載入中..."

View File

@@ -1,12 +0,0 @@
[next]
other = "前进"
[prev]
other = "后退"
[close]
other = "关闭"
[threshold]
other = "阈值"
[404]
other = "页面不存在"
[loading]
other = "加载中..."

View File

@@ -1,12 +0,0 @@
[next]
other = "前進"
[prev]
other = "後退"
[close]
other = "關閉"
[threshold]
other = "閾值"
[404]
other = "找不到頁面"
[loading]
other = "載入中..."

View File

@@ -2,9 +2,15 @@
<div class="container">
{{- partial "nav.html" . -}}
<article>
<p class="error">&#9949; <u>404</u>&nbsp;{{- i18n 404 -}}&nbsp;&#9949;</p>
<p class="error">&#9949; <u>404</u>&nbsp;{{- i18n 404 -}}&nbsp;&#9949;</p>
<p class="error">&#9949; <u>404</u>&nbsp;{{- i18n 404 -}}&nbsp;&#9949;</p>
<p class="error">
&#9949; <u>404</u>&nbsp;{{- site.Params.labels.error -}}&nbsp;&#9949;
</p>
<p class="error">
&#9949; <u>404</u>&nbsp;{{- site.Params.labels.error -}}&nbsp;&#9949;
</p>
<p class="error">
&#9949; <u>404</u>&nbsp;{{- site.Params.labels.error -}}&nbsp;&#9949;
</p>
</article>
</div>
{{- end -}}

View File

@@ -1,10 +1,10 @@
{{- define "main" -}}
<div
class="container"
data-next="{{- i18n "next" -}}"
data-prev="{{- i18n "prev" -}}"
data-close="{{- i18n "close" -}}"
data-loading="{{- i18n "loading" -}}"
data-next="{{- site.Params.labels.next -}}"
data-prev="{{- site.Params.labels.prev -}}"
data-close="{{- site.Params.labels.close -}}"
data-loading="{{- site.Params.labels.loading -}}"
>
{{- with .Content -}}
<article>

View File

@@ -5,9 +5,9 @@
{{- $weight := -1 -}}
{{- range site.Menus.main -}}
{{ $menu_item_url := .URL | relLangURL }}
{{ $page_url:= $currentPage.RelPermalink | relLangURL }}
{{ if eq $menu_item_url $page_url }}
{{- $menu_item_url := .URL | relLangURL -}}
{{- $page_url:= $currentPage.RelPermalink | relLangURL -}}
{{- if eq $menu_item_url $page_url -}}
{{- $identifier = .Identifier -}}
{{- $title = .Title -}}
{{- $weight = .Weight -}}

View File

@@ -1,9 +0,0 @@
{{- $res := false -}}
{{- range . -}}
{{- if eq site.LanguageCode . -}}
{{- $res = true -}}
{{- end -}}
{{- end -}}
{{- return $res -}}

View File

@@ -1,8 +1,8 @@
{{- if site.Params.favicon -}}
{{- with site.Params.svgFavicon -}}
<link rel="icon" type="image/svg+xml" href="{{ . }}" />
<link rel="icon" type="image/svg+xml" href="{{- . -}}" />
{{- with site.Params.svgFaviconFallback -}}
<link rel="icon" type="image/png" href="{{ . }}" />
<link rel="icon" type="image/png" href="{{- . -}}" />
{{- end -}}
{{- else -}}
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />

View File

@@ -1,16 +1,16 @@
{{/* fingerprint */}}
{{- /* fingerprint */ -}}
{{- $fingerprint := .Scratch.Get "fingerprint" | default "" -}}
{{/* critical style */}}
{{- $style := dict "Source" "scss/critical.scss" "Fingerprint" $fingerprint -}}
{{- $options := dict "enableSourceMap" true "includePaths" (slice "node_modules") -}}
{{- $style = dict "Context" . "ToCSS" $options "Inline" true | merge $style -}}
{{- /* critical style */ -}}
{{- $style := dict "Source" "bundled/css/critical.css" "Fingerprint" $fingerprint -}}
{{- $options := dict "enableSourceMap" false -}}
{{- $style = dict "Context" . "ToCSS" $options "Inline" true "Template" true | merge $style -}}
{{- partial "plugin/style.html" $style -}}
{{- $style := dict "Link" "/bundled/css/main.css" "Defer" true -}}
{{- $style := dict "Link" ("bundled/css/main.css" | absURL) "Defer" true -}}
{{- partial "plugin/style.html" $style -}}
{{/* fuck safari */}}
{{- /* fuck safari */ -}}
<script>
function z() {
const r = document.querySelector(':root')
@@ -20,44 +20,20 @@
window.addEventListener('resize', z, { passive: true })
</script>
{{/* main js */}}
{{- $script := dict "Link" "/bundled/js/main.js" "Defer" true "Esm" true -}}
{{- /* main js */ -}}
{{- $script := dict "Link" ("bundled/js/main.js" | absURL) "Defer" true "Esm" true -}}
{{- partial "plugin/script.html" $script -}}
{{/* fonts */}}
<link rel="preload" href="/lib/fonts/fw.woff2" as="font" crossorigin />
{{- if (partial "function/langCode.html" (slice "en" "de" "fr" "es" "it")) -}}
<link rel="preload" href="/lib/fonts/GeistVF.woff2" as="font" crossorigin />
{{- else if (partial "function/langCode.html" (slice "zh-cn" "zh-sg")) -}}
<link rel="preload" href="/lib/fonts/NotoSans-Regular.woff2" as="font" crossorigin />
<link
rel="preload"
href="/lib/fonts/NotoSansCJKsc-Regular.woff2"
as="font"
crossorigin
/>
{{- else if (partial "function/langCode.html" (slice "zh-tw" "zh-hk" "zh-mo")) -}}
<link rel="preload" href="/lib/fonts/NotoSans-Regular.woff2" as="font" crossorigin />
<link
rel="preload"
href="/lib/fonts/NotoSansCJKtc-Regular.woff2"
as="font"
crossorigin
/>
{{- else if (partial "function/langCode.html" (slice "ja")) -}}
<link rel="preload" href="/lib/fonts/NotoSans-Regular.woff2" as="font" crossorigin />
<link
rel="preload"
href="/lib/fonts/NotoSansCJKjp-Regular.woff2"
as="font"
crossorigin
/>
{{- else if (partial "function/langCode.html" (slice "ko")) -}}
<link rel="preload" href="/lib/fonts/NotoSans-Regular.woff2" as="font" crossorigin />
<link
rel="preload"
href="/lib/fonts/NotoSansCJKkr-Regular.woff2"
as="font"
crossorigin
/>
{{- end -}}
{{- /* fonts */ -}}
<link
rel="preload"
href="{{- "lib/fonts/fw.woff2" | absURL -}}"
as="font"
crossorigin
/>
<link
rel="preload"
href="{{- "lib/fonts/GeistVF.woff2" | absURL -}}"
as="font"
crossorigin
/>

View File

@@ -1,22 +1,22 @@
{{/* Title */}}
{{- /* Title */ -}}
{{- $page_title := "" -}}
{{- with partial "function/currentMenuItem.html" . -}}
{{ $page_title = printf "%s" site.Title | printf "%s%s" " | " | printf "%s%s" .Title | printf "%s" }}
{{- $page_title = printf "%s" site.Title | printf "%s%s" " | " | printf "%s%s" .Title | printf "%s" -}}
{{- end -}}
<title>{{ $page_title }}</title>
<title>{{- $page_title -}}</title>
{{/* Basic */}}
<meta name="Description" content="{{ site.Params.description }}" />
<meta name="application-name" content="{{ $page_title }}" />
<meta name="apple-mobile-web-app-title" content="{{ $page_title }}" />
{{- /* Basic */ -}}
<meta name="Description" content="{{- site.Params.description -}}" />
<meta name="application-name" content="{{- $page_title -}}" />
<meta name="apple-mobile-web-app-title" content="{{- $page_title -}}" />
{{/* Opengraph */}}
<meta property="og:title" content="{{ $page_title }}" />
<meta name="twitter:title" content="{{ $page_title }}" />
{{- /* Opengraph */ -}}
<meta property="og:title" content="{{- $page_title -}}" />
<meta name="twitter:title" content="{{- $page_title -}}" />
<meta property="og:type" content="website" />
<meta property="og:url" content="{{ .Permalink }}" />
<meta property="og:description" content="{{ site.Params.description }}" />
<meta name="twitter:description" content="{{ site.Params.description }}" />
<meta property="og:url" content="{{- .Permalink -}}" />
<meta property="og:description" content="{{- site.Params.description -}}" />
<meta name="twitter:description" content="{{- site.Params.description -}}" />
{{/* Generator */}}
{{ hugo.Generator }}
{{- /* Generator */ -}}
{{- hugo.Generator -}}

View File

@@ -1,21 +1,21 @@
{{- with site.Params.verification.google -}}
<meta name="google-site-verification" content="{{ . }}" />
<meta name="google-site-verification" content="{{- . -}}" />
{{- end -}}
{{- with site.Params.verification.bing -}}
<meta name="msvalidate.01" content="{{ . }}" />
<meta name="msvalidate.01" content="{{- . -}}" />
{{- end -}}
{{- with site.Params.verification.yandex -}}
<meta name="yandex-verification" content="{{ . }}" />
<meta name="yandex-verification" content="{{- . -}}" />
{{- end -}}
{{- with site.Params.verification.pinterest -}}
<meta name="p:domain_verify" content="{{ . }}" />
<meta name="p:domain_verify" content="{{- . -}}" />
{{- end -}}
{{- with site.Params.verification.baidu -}}
<meta name="baidu-site-verification" content="{{ . }}" />
<meta name="baidu-site-verification" content="{{- . -}}" />
{{- end -}}
{{- with site.Params.verification.sogou -}}
<meta name="sogou_site_verification" content="{{ . }}" />
<meta name="sogou_site_verification" content="{{- . -}}" />
{{- end -}}
{{- with site.Params.verification.so -}}
<meta name="360-site-verification" content="{{ . }}" />
<meta name="360-site-verification" content="{{- . -}}" />
{{- end -}}

View File

@@ -1,6 +1,6 @@
<nav>
<div class="navArtist">
<a href="/">{{ site.Title }}</a>
<a href="/">{{- site.Title -}}</a>
</div>
<div class="links">
{{- $index := 0 -}}
@@ -9,7 +9,7 @@
{{- $currentIndex = sub .Weight 1 -}}
{{- end -}}
{{- $menus := .Site.Menus.main -}}
{{- $len := len $menus }}
{{- $len := len $menus -}}
{{- range $menus -}}
{{- $url := .URL | relURL -}}
{{- if eq (add $index 1) $len -}}
@@ -37,7 +37,7 @@
{{- with partial "function/getImageSlice.html" . -}}
{{- $length = len . -}}
{{- end -}}
<span>{{- i18n "threshold" | strings.FirstUpper -}}:</span>
<span>{{- site.Params.labels.threshold -}}:</span>
<span>
<button class="dec">&#xFF0D;</button>
<span class="num"></span><span class="num"></span><span class="num"></span

View File

@@ -5,7 +5,7 @@
{{- with $analytics.google.id -}}
<script type="text/javascript">
window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());
gtag('config', '{{ . }}'{{ if $analytics.google.anonymizeIP }}, { 'anonymize_ip': true }{{ end }});
gtag('config', '{{- . -}}'{{- if $analytics.google.anonymizeIP -}}, { 'anonymize_ip': true }{{- end -}});
</script> {{- printf "https://www.googletagmanager.com/gtag/js?id=%v" . | dict "Async" true "Source" | partial "plugin/script.html" -}}
{{- end -}}
@@ -13,7 +13,7 @@
{{- with $analytics.fathom.id -}}
<script type="text/javascript">
window.fathom=window.fathom||function(){(fathom.q=fathom.q||[]).push(arguments);};
fathom('set', 'siteId', '{{ . }}');
fathom('set', 'siteId', '{{- . -}}');
fathom('trackPageview');
</script> {{- dict "Source" ($analytics.fathom.server | default "cdn.usefathom.com" | printf "https://%v/tracker.js") "Async" true "Attr" "id=fathom-script" | partial "plugin/script.html" -}}
{{- end -}}
@@ -24,7 +24,7 @@
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?{{ . }}";
hm.src = "https://hm.baidu.com/hm.js?{{- . -}}";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
@@ -36,10 +36,10 @@
<script
async
defer
data-website-id="{{ . }}"
src="{{ $analytics.umami.src }}"
{{ with $analytics.umami.data_host_url }}data-host-url="{{ . }}"{{ end }}
{{ with $analytics.umami.data_domains }}data-domains="{{ . }}"{{ end }}
data-website-id="{{- . -}}"
src="{{- $analytics.umami.src -}}"
{{- with $analytics.umami.data_host_url -}}data-host-url="{{- . -}}"{{- end -}}
{{- with $analytics.umami.data_domains -}}data-domains="{{- . -}}"{{- end -}}
></script>
{{- end -}}
@@ -48,8 +48,8 @@
<script
async
defer
data-domain="{{ . }}"
src="{{ $analytics.plausible.src }}"
data-domain="{{- . -}}"
src="{{- $analytics.plausible.src -}}"
></script>
{{- end -}}
@@ -58,17 +58,17 @@
<script
defer
src="https://static.cloudflareinsights.com/beacon.min.js"
data-cf-beacon='{"token": "{{ $analytics.cloudflare.token }}"}'
data-cf-beacon='{"token": "{{- $analytics.cloudflare.token -}}"}'
></script>
{{- end -}}
{{- /* Splitbee Analytics */ -}}
{{- if $analytics.splitbee.enable -}}
{{- $attr := "" -}}
{{- if $analytics.splitbee.Do_not_track -}}
{{- if $analytics.splitbee.do_not_track -}}
{{- $attr = printf `%v data-respect-dnt` $attr -}}
{{- end -}}
{{- if $analytics.splitbee.No_cookie -}}
{{- if $analytics.splitbee.no_cookie -}}
{{- $attr = printf `%v data-no-cookie` $attr -}}
{{- end -}}
{{- with $analytics.splitbee.data_token -}}
@@ -76,7 +76,7 @@
{{- end -}}
<script
defer
{{ with $attr }}{{ . | safeHTMLAttr }}{{ end }}
{{- with $attr -}}{{- . | safeHTMLAttr -}}{{- end -}}
src="https://cdn.splitbee.io/sb.js"
></script>
{{- end -}}

View File

@@ -11,13 +11,13 @@
{{- $resource = resources.FromString $.Path . -}}
{{- end -}}
{{- if $resource -}}
{{- with .Template -}}
{{- $resource = $resource | resources.ExecuteAsTemplate . $.Context -}}
{{- end -}}
{{- with .ToCSS -}}
{{- $options := . | merge (dict "outputStyle" "compressed") -}}
{{- $resource = $resource | toCSS $options -}}
{{- end -}}
{{- with .Template -}}
{{- $resource = $resource | resources.ExecuteAsTemplate . $.Context -}}
{{- end -}}
{{- if or .Minify .Inline -}}
{{- $resource = $resource | minify -}}
{{- end -}}
@@ -37,26 +37,26 @@
rel="preload"
as="style"
onload="this.onload=null;this.rel='stylesheet'"
href="{{ $href }}"
{{ if .Crossorigin }}crossorigin="anonymous"{{ end }}{{ with $integrity }}
integrity="{{ . }}"
{{ end }}{{ with .Attr }}{{ . | safeHTMLAttr }}{{ end }}
href="{{- $href -}}"
{{- if .Crossorigin -}}crossorigin="anonymous"{{- end -}}{{- with $integrity -}}
integrity="{{- . -}}"
{{- end -}}{{- with .Attr -}}{{- . | safeHTMLAttr -}}{{- end -}}
/>
<noscript
><link
rel="stylesheet"
href="{{ $href }}"
{{ if .Crossorigin }}crossorigin="anonymous"{{ end }}{{ with $integrity }}
integrity="{{ . }}"
{{ end }}{{ with .Attr }}{{ . | safeHTMLAttr }}{{ end }}
href="{{- $href -}}"
{{- if .Crossorigin -}}crossorigin="anonymous"{{- end -}}{{- with $integrity -}}
integrity="{{- . -}}"
{{- end -}}{{- with .Attr -}}{{- . | safeHTMLAttr -}}{{- end -}}
/></noscript>
{{- else -}}
<link
rel="stylesheet"
href="{{ $href }}"
{{ if .Crossorigin }}crossorigin="anonymous"{{ end }}{{ with $integrity }}
integrity="{{ . }}"
{{ end }}{{ with .Attr }}{{ . | safeHTMLAttr }}{{ end }}
href="{{- $href -}}"
{{- if .Crossorigin -}}crossorigin="anonymous"{{- end -}}{{- with $integrity -}}
integrity="{{- . -}}"
{{- end -}}{{- with .Attr -}}{{- . | safeHTMLAttr -}}{{- end -}}
/>
{{- end -}}
{{- end -}}

View File

@@ -58,4 +58,4 @@ Disallow: /
User-agent: *
Allow: /
Sitemap: {{ "/sitemap.xml" | absURL }}
Sitemap: {{- "/sitemap.xml" | absURL -}}

View File

@@ -1 +1 @@
{{ now.Year }}
{{- now.Year -}}

View File

@@ -22,9 +22,9 @@
{{- $weeks := div (sub now.Unix .Lastmod.Unix) 604800 -}}
{{- $priority := sub 1 (div $weeks 10.0 ) -}}
{{- if ge .Sitemap.Priority $priority -}}
<priority>{{ .Sitemap.Priority }}</priority>
<priority>{{- .Sitemap.Priority -}}</priority>
{{- else -}}
<priority>{{ $priority }}</priority>
<priority>{{- $priority -}}</priority>
{{- end -}}
{{- end -}}
@@ -32,14 +32,14 @@
{{- range .Translations -}}
<xhtml:link
rel="alternate"
hreflang="{{ .Lang }}"
href="{{ .Permalink }}"
hreflang="{{- .Lang -}}"
href="{{- .Permalink -}}"
/>
{{- end -}}
<xhtml:link
rel="alternate"
hreflang="{{ .Lang }}"
href="{{ .Permalink }}"
hreflang="{{- .Lang -}}"
href="{{- .Permalink -}}"
/>
{{- end -}}
</url>

View File

@@ -3,23 +3,23 @@
"version": "v1.0.0",
"type": "module",
"description": "bridget theme source file",
"packageManager": "pnpm@8.10.2",
"packageManager": "pnpm@10.20.0",
"private": true,
"sideEffects": false,
"scripts": {
"vite": "vite build --no-watch",
"vite": "DISABLE_WATCH=1 vite build",
"lint": "eslint . --fix && prettier --write .",
"lint:check": "eslint . && prettier . --check",
"dev": "run-p vite:dev hugo:dev",
"build": "run-s vite:build hugo:build",
"server": "run-p vite:server hugo:server",
"vite:build": "vite build --no-watch --minify terser",
"vite:server": "vite build --minify terser",
"vite:build": "DISABLE_WATCH=1 vite build",
"vite:server": "vite build",
"vite:dev": "vite build --mode development --minify false",
"hugo:build": "hugo --logLevel info --source=exampleSite --gc",
"hugo:preview": "hugo --logLevel info --source=exampleSite -D --gc",
"hugo:dev": "hugo server --source=exampleSite --gc -D --disableFastRender --watch --logLevel info",
"hugo:server": "hugo server --source=exampleSite --gc --disableFastRender -e production --watch --logLevel info"
"hugo:build": "hugo --logLevel info --source=exampleSite --minify",
"hugo:preview": "hugo --logLevel info --source=exampleSite -D",
"hugo:dev": "hugo server --source=exampleSite -D --disableFastRender --watch --logLevel info",
"hugo:server": "hugo server --source=exampleSite --disableFastRender -e production --watch --logLevel info"
},
"repository": {
"type": "git",
@@ -39,32 +39,30 @@
},
"homepage": "https://github.com/Sped0n/bridget#readme",
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard": "^17.1.0",
"eslint-config-standard-with-typescript": "^43.0.1",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-solid": "^0.13.1",
"@eslint/js": "^9.39.1",
"@types/node": "^24.10.0",
"@typescript-eslint/parser": "^8.46.4",
"eslint": "^9.39.1",
"eslint-config-love": "^133.0.0",
"eslint-config-prettier": "^10.1.8",
"eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-solid": "^0.14.5",
"npm-run-all": "^4.1.5",
"prettier": "3.2.5",
"prettier": "3.6.2",
"prettier-plugin-go-template": "^0.0.15",
"prettier-plugin-organize-imports": "^3.2.4",
"sass": "^1.71.1",
"terser": "^5.27.0",
"typescript": "^5.3.3",
"vite": "^5.1.2",
"vite-plugin-solid": "^2.10.0"
"prettier-plugin-organize-imports": "^4.3.0",
"sass-embedded": "^1.93.3",
"typescript": "^5.9.3",
"typescript-eslint": "^8.46.4",
"vite": "^7.2.2",
"vite-plugin-solid": "^2.11.10"
},
"dependencies": {
"gsap": "^3.12.5",
"solid-js": "^1.8.14",
"swiper": "^11.0.6",
"tiny-invariant": "^1.3.1"
"gsap": "^3.13.0",
"solid-js": "^1.9.10",
"swiper": "^12.0.3",
"tiny-invariant": "^1.3.3"
}
}

6153
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

23
prettier.config.mjs Normal file
View File

@@ -0,0 +1,23 @@
/**
* @see https://prettier.io/docs/configuration
* @type {import("prettier").Config}
*/
const config = {
useTabs: false,
tabWidth: 2,
printWidth: 88,
singleQuote: true,
trailingComma: 'none',
bracketSpacing: true,
semi: false,
plugins: ['prettier-plugin-go-template', 'prettier-plugin-organize-imports'],
overrides: [
{
files: ['*.html'],
options: {
parser: 'go-template'
}
}
]
}
export default config

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -6,9 +6,9 @@ license = "MIT"
licenselink = "https://github.com/Sped0n/bridget/blob/main/LICENSE"
description = "Bridget is a minimal Hugo theme designed for photographers/visual artists."
homepage = "https://github.com/Sped0n/bridget"
demosite = "https://bridget-demo.sped0nwen.com"
demosite = "https://bridget-demo.sped0n.com"
tags = ["gallery", "minimal", "portfolio", "responsive"]
features = ["SEO optimized", "TypeScript", "multi-language support"]
features = ["SEO optimized", "TypeScript"]
[author]
name = "sped0n"

View File

@@ -11,7 +11,8 @@
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"jsx": "preserve",
"jsxImportSource": "solid-js"
"jsxImportSource": "solid-js",
"types": ["node"]
},
"$schema": "https://json.schemastore.org/tsconfig",
"display": "Recommended"

35
vercel.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/usr/bin/env bash
set -euo pipefail
node_modules_generated_dir="./node_modules/exampleSite/resources/_gen"
project_generated_dir="./exampleSite/resources/_gen"
copy_generated_assets_to_project() {
if [ -d "${node_modules_generated_dir}" ]; then
rm -rf "${project_generated_dir}"
mkdir -p "${project_generated_dir}"
cp -a "${node_modules_generated_dir}/." "${project_generated_dir}"
echo "Copied '${node_modules_generated_dir}' to '${project_generated_dir}'."
else
echo "Source '${node_modules_generated_dir}' not found, skipping copy to project."
fi
}
run_site_build() {
pnpm run vite:build && hugo --logLevel info --source=exampleSite --gc --minify
}
copy_generated_assets_to_node_modules() {
rm -rf "${node_modules_generated_dir}"
if [ -d "${project_generated_dir}" ]; then
mkdir -p "${node_modules_generated_dir}"
cp -a "${project_generated_dir}/." "${node_modules_generated_dir}"
echo "Copied '${project_generated_dir}' back to '${node_modules_generated_dir}'."
else
echo "Source '${project_generated_dir}' not found, skipping copy to node_modules."
fi
}
copy_generated_assets_to_project
run_site_build
copy_generated_assets_to_node_modules

View File

@@ -4,12 +4,17 @@ import solidPlugin from 'vite-plugin-solid'
export default defineConfig({
plugins: [solidPlugin()],
build: {
outDir: './static/bundled',
watch: {
include: 'assets/**'
},
outDir: './bundled',
watch: process.env.DISABLE_WATCH
? null
: {
include: 'assets/**'
},
rollupOptions: {
input: './assets/ts/main.tsx',
input: {
main: './assets/ts/main.tsx',
critical: './assets/ts/critical.ts'
},
output: {
format: 'es',
entryFileNames: 'js/[name].js',
@@ -17,13 +22,12 @@ export default defineConfig({
assetFileNames: '[ext]/[name].[ext]',
compact: true
}
},
terserOptions: {
compress: {
passes: 3
},
output: {
comments: false
}
},
css: {
preprocessorOptions: {
scss: {
loadPaths: ['./assets/scss']
}
}
}