35 Commits
Author SHA1 Message Date
George Cushen 4de0ad0af9 feat(map): add open-source map block (MapLibre GL + OpenFreeMap)
Single-location + multi-marker, side-by-side and map-only layouts.
Zero-config — no API key. MapLibre is vendored via vite and loaded
conditionally when a page contains a map block. Provider resolution
is a single switchable function so other tile providers can be added
later without changing the block contract.
2026-05-17 22:45:49 +01:00
George Cushen 6aa2898258 chore(deps): upgrade to Hugo v0.161.0 (css.TailwindCSS Node.js sandbox)
Hugo v0.161 dropped the standalone tailwindcss binary; @tailwindcss/cli
npm package is now the only accepted transformer, invoked via
`node --permission` (Node >= 22 required).

- Bump module.hugoVersion.min to 0.161.0 in modules/blox/hugo.yaml;
  add comment explaining why security.node.permissions is left to
  Hugo's built-in defaults
- Bump hugo_version / HUGO_VERSION / devcontainer image tag to 0.161.0
  across all 9 templates (hugoblox.yaml, netlify.toml, devcontainer.json)
- Bump devcontainer base image Node 20 → 22 and default Hugo version
- Add scripts/check-template-deps.mjs to assert every template declares
  tailwindcss + @tailwindcss/cli; wire as pnpm check:template-deps
- Harden CI: new audit-template-deps job gates all build jobs; add
  `require.resolve('@tailwindcss/cli/package.json')` check after each
  pnpm install to catch the exact "binary is not a Node.js script" failure
2026-04-30 20:12:37 +01:00
George Cushen a3c21b401e fix: lint 2026-02-19 14:15:26 +00:00
George Cushen ef8a34e33a feat: convert remaining Landing Page blocks from Go HTML to React 2026-02-18 19:21:54 +00:00
George Cushen f4280ddb1c refactor: rename modules and update migration docs
BREAKING CHANGE
Module paths moved to `github.com/HugoBlox/kit` with new names:
- core `blox-tailwind` → `blox`
- analytics → `analytics`
- netlify → `integrations/netlify`
- slides (reveal) → `slides`
Update go.mod, module.yaml/params, scripts, tests, and v0.11 migration guide accordingly.
2026-01-02 20:59:48 +00:00
George Cushen 8441dd2471 refactor: rename repo 2026-01-02 19:02:59 +00:00
George Cushen 0ef515fbae chore: update version in CITATION upon release 2025-11-25 00:28:01 +00:00
George Cushen 6015c70b1e chore(lint): migrate CSS linting to Biome v2.3 (Tailwind v4) and remove stylelint
upgrade @biomejs/biome to ^2.3.2 and migrate biome.json to v2 schema
enable css.parser.tailwindDirectives; ignore .min.css and vendor CSS
remove stylelint deps and .stylelintrc.yaml; switch lint scripts to Biome
update workspace to use Biome for CSS; drop stylelint settings
2025-11-02 20:57:26 +00:00
George Cushen a2aaa838c0 feat(preact+landing): enable Preact block rendering + reusable landing page content system
## Preact Block Integration
- Enable Preact component detection for data-driven pages:
  - Fix init.html to resolve sections_source + per-section ref before Preact detection
  - Correct resource paths: blox/* → js/hbx/blocks/* (Hugo module mounts)
  - Update libraries.html to load Preact core + compiled block scripts
- Add dynamic icon rendering for Preact components:
  - Create Icon.jsx component with SVG decoding
  - Add get_icon_data.html partial for passing icon strings to Preact props
  - Update preact-wrapper.html to fetch icon data and inject into props
  - Wire hero component to render dynamic icons via <Icon svg={icon_svg} />
- Centralized logging system:
  - Add functions/logger.html to wrap warnf/errorf safely
  - Degrade to HTML comments in constrained contexts (content adapters)

## Reusable Landing Page Content System
- Add sections_source support:
  - Page front matter: sections_source: pages/<key> loads base from data/pages/<key>.yaml
  - Inline sections deep-merge over base by position; extras appended
- Add per-section ref system:
  - Any section: ref: blocks/<slug> loads from data/blocks/<slug>.yaml
  - Inline section properties deep-merge over ref (content/design submaps)
  - Enable content reuse across multiple landing pages
- Create reusable block library:
  - Add test/data/blocks/: hero_basic.yaml, features_basic.yaml
  - Add test/content/linked/index.md demo using refs with overrides
- Add pragmatic deep merge for content/design override handling

## Infrastructure & Schemas
- Update base-block.json schema:
  - Fix gradient structure: flat → nested (gradient.start/end/direction)
  - Fix color structure: string|{light,dark} (matches parse_block_v3.html)
  - Update hero schema to properly extend base via $ref
- Fix Tailwind source path generation:
  - Add tailwind_sources.html with test vs starter site logic
  - scripts/view-test.sh: export HUGO_BLOX_TEST_SITE=true
- Update block directory structure:
  - blox/<name>/config.html (was blox/<name>--CONFIG.html)
  - Apply to init.html + parse_block_v2.html
- Code quality improvements:
  - Biome config: match Prettier rules

## Content Adapters (Removed)
- Investigated Hugo content adapters for landing pages
- Found execution context limitations (early build phase, limited site methods)
- Archived to backups/content-adapters-*.zip and removed from test site
- Decision: use standard pages + data linking instead of adapters

This enables dynamic Preact rendering with proper icon support while providing a flexible, reusable content system for landing pages that maintains the "single file = page" mental model with optional advanced linking.
2025-09-22 22:18:03 +01:00
George Cushen d5d2f04c2d chore: adopt Biome + Stylelint, modernize CI/CD, add security/support docs, minor JS fixes
- Linting/format
  - Replace ESLint/Prettier with Biome; remove old configs; add `biome.json`; update scripts
  - Tailwind-friendly `.stylelintrc.yaml`; Stylelint and Biome pass
  - Enable Biome across `modules/**`; prune legacy JS globals; ignore oversized `devicon.json`

- Code fixes
  - `hb-theme.js`: avoid assignment-in-expressions; clearer dataset updates
  - `hugoblox-slides.js`: fix inner var scope (var → let); apply formatting

- CI/CD
  - Split lint/build workflows; add path filters; Node via Corepack (pnpm from package.json)
  - Hugo pinned to env `HUGO_VERSION`; add consistency check vs `starters/academic-cv/hugoblox.yaml`
  - Nightly starters matrix build (academic-cv, landing-page); CodeQL weekly; resource caches

- Workflows/Community
  - Greeter: switch to `pull_request_target`; add Contributor Guide to PR message
  - PR labeler for path-based labels

- Repo policies/docs
  - `CODEOWNERS` for `@gcushen`
  - `SECURITY.md`, `SUPPORT.md`
  - Documented branch protection in `.github/settings.yml`
  - Move `CODE_OF_CONDUCT.md` to `.github/`

- docs(zh): update `README.zh.md` translation

Notes:
- pnpm is sourced from `package.json: packageManager` via Corepack; no hard-coded pnpm versions in CI.
2025-09-17 03:17:38 +01:00
George Cushen 93585c868d feat: refactor block system
Refactored from legacy layouts/partials/blox/* system to:
     - blox/<block-id>/block.html source structure
     - Hugo module mounts to layouts/partials/hbx/blocks/<block-id>/block.html
     - Resolver-based lookup
     - Support for data-driven pages and client islands
2025-08-30 14:43:37 +01:00
George Cushen 88bd615768 build: unify vendor pipeline, externalize head JS, switch docs to pnpm
- Remove modules/blox-tailwind/vite.config.js; use root Vite vendor task
- Vendor alpinejs and markmap; add vendor-libs.js stub
- Replace inline head scripts with CSP-friendly hb-head.js; add font preload + fingerprint
- Update scripts/docs to pnpm; remove unused @tailwindcss/vite
2025-08-20 23:54:14 +01:00
George Cushen 7722abcd66 feat: upgrade from Tailwind v3 to v4
See Tailwind v4 breaking changes: https://tailwindcss.com/docs/upgrade-guide
See Hugo's new integration with Tailwind v4: https://gohugo.io/functions/css/tailwindcss/

Close #3211
2025-08-17 20:58:14 +01:00
George Cushen 655af4dd30 ci: update 2025-08-16 03:37:48 +01:00
George Cushen 6fb35fc7aa build: update config 2025-08-16 02:08:34 +01:00
George Cushen 04d15375b2 build: update build config 2025-08-16 02:08:34 +01:00
George Cushen 9b2e271c7c fix: links 2023-11-07 23:09:38 +00:00
George Cushen 6f622fb134 chore: update lint rules 2023-10-24 22:46:49 +01:00
rodrigoalcarazdelaosa c329e54a1e feat: update JS dependencies to their latest versions (#2934) 2023-04-20 21:35:43 +01:00
rodrigoalcarazdelaosa 24e842c9af feat: upgrade FontAwesome from 6.0.0 to 6.1.2 (#2788) 2022-08-14 13:22:38 +01:00
Geo aa03201adb starters(notes): add Cover image 2022-05-16 19:53:40 +01:00
Geo 872132abc6 style: upgrade devDependencies
Stylelint added many new default rules

Added some temp rule exclusions until code can be refactored

Ran ESlint and Stylelint auto-fixer to fix any new errors which can be auto-fixed
2022-05-14 13:50:15 +01:00
Geo 6f48b6368a fix: upstream Bootstrap bug in mobile menu toggle
Bootstrap error: TypeError: Cannot read properties of undefined (reading '_isTransitioning')

Resolved in Bootstrap v4.6.1

See https://discord.com/channels/722225264733716590/742863504515793149/967407603284078662

See https://github.com/twbs/bootstrap/releases/tag/v4.6.1
2022-04-23 18:40:13 +01:00
Geo cc5708bb9c feat: detect Mermaid on nested headless pages
See #2643
2022-03-22 21:27:41 +00:00
rodrigoalcarazdelaosa acd5e742af feat: update Font Awesome from v5.15.3 to v6 (#2650)
Close #2649
2022-03-09 00:06:24 +00:00
George Cushen 96826d5ea9 build: add script to view starters 2022-02-16 21:55:41 +00:00
George Cushen 994d21b3dd feat: add support for Headroom
When header.on_scroll == "disappear", with sensible defaults
2021-12-18 19:42:10 +00:00
George Cushen 64c3c7e8a2 feat: rename repo to wowchemy-hugo-themes
Except repo name in module names as that would be a breaking change
2021-10-04 12:18:12 +01:00
George Cushen c750304197 perf: install core libs directly rather than via external CDN
Increase performance in countries such as China.

Addresses the case where countries block or restrict CDNs, or when external CDNs go offline.

See https://github.com/wowchemy/wowchemy-hugo-modules/pull/2351
2021-07-17 14:03:31 +01:00
George Cushen 3ae036b9c3 feat(style): update Bootstrap from 4.5 to 4.6
Get fixes and minor improvements
2021-02-19 10:01:40 +00:00
George Cushen 7b235ea453 feat: rewritten Figure shortcode supporting multi-resolutions
New shortcode supports
- enable re-usable *optimized* image assets from new primary media library location at `assets/images/`
- new behavior: load image from page dir falling back to media library at `assets/images/` and then to remote URI.
- multi-res support. leading to increased perf.
- custom ID for cross-refs
- efficient, vanilla (non-jQuery), MIT licensed image zooming
- FancyBox now only loaded for Gallery shortcode
- themeable SVG support
- native lazy loading

Experimental, may change.

BREAKING CHANGE:
Move any figure images (i.e. not the `sharing.*` image) from `static/media/` to `assets/images/`

See #2164
2021-02-14 22:59:12 +00:00
George Cushen 3f1c4b4df2 refactor: move test/ and yarn to repo root
Also lint and format entire repo, beyond just wowchemy/ dir

URL encode `(` and `)` in `[#MadeWithWowchemy](...(..)...)` in Readme.md for Prettier
2021-02-03 20:11:16 +00:00
George Cushen 2376fb5177 chore: move monorepo files to theme 2020-09-26 14:47:36 +01:00
George Cushen d9e553a96b style: upgrade Bootstrap from 4.3.1 to 4.4.1 2020-01-23 22:15:37 +00:00
George Cushen 92200d6327 refactor: convert CSS to SCSS
Remove Bootstrap from Header and assets.toml
  Remove Bootstrap JS CDN version in footer and assets.toml
  Add latest Bootstrap v4 SASS files locally
  Include Bootstrap JS locally
  Convert Academic's CSS to SASS (mainly SASS variables + Go templating)
  Convert Academic's theming system to integrate with SASS
  Parse SASS in header using Hugo and convert to CSS
  Minify and md5 fingerprint bundled CSS
  Fix Slider widget (reuses .wg-hero but animation and `clear` removed)
  Add Bootstrap files to repo so that Node is not required

See #680
2019-04-24 23:56:41 +01:00