52 Commits
Author SHA1 Message Date
George Cushen f107371dc2 fix(tpl): hugo v0.161+ pnpm support 2026-05-04 07:58:10 +01:00
George Cushen b564ceaffa chore: apply biome formatter to source files 2026-05-02 17:06:08 +01:00
George Cushen 23e0bb1269 feat(blox): add steps block
Steps block:
- Three layouts: vertical (stacked with connector line), horizontal
  (side-by-side, connector above), timeline (alternating cards on centre
  line)
- Three marker styles: number (decimal/padded/roman/alpha), icon, dot
- Layout-aware marker sizing - bare 40px icon for horizontal, tinted
  circle for vertical/timeline
- Staggered IntersectionObserver entrance animation
- Code span rendering in step body text
- Added to startup-landing-page template as a horizontal how-it-works
  section
2026-05-02 03:08:09 +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 456a0faf43 tpl(starter): add minimal Tailwind starter template 2026-04-22 01:40:43 +01: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 e7e0c714d3 refactor: rename repo 2026-01-02 19:47:51 +00:00
George Cushen 8441dd2471 refactor: rename repo 2026-01-02 19:02:59 +00:00
George Cushen 6f51c1ac83 build: remove decap 2026-01-02 19:01:31 +00:00
George Cushen 1c1d54bdc3 build: include Pagefind in package.json for local builds 2025-12-31 01:18:09 +00:00
George Cushen f6cbe6ccff feat: optimize dev cont 2025-12-10 01:28:09 +00:00
George Cushen f0eb4a7e9c feat: standardize author profiles & add devcontainer 2025-12-07 01:50:48 +00:00
George Cushen 0ef515fbae chore: update version in CITATION upon release 2025-11-25 00:28:01 +00:00
George Cushen 5f2290d590 starters: standardise starters dir name to templates 2025-10-23 23:43:50 +01:00
George Cushen 787ac94b5d feat: add Dev HUD & 15 Obsidian callouts; more collection filters
Dev tools
- Add HBX Dev HUD (floating button + panel) with live log viewer
- Add get-build-id helper to dedupe logs per build (during `hugo server` refreshes)

Callouts
- Implement Obsidian-compatible callouts (15+ types) with shared renderer
- Add i18n title translations (en, es, fr) for all callout types
- Deprecate `callout` shortcode with suppressible warning; keep working
- Migrate starters to Markdown callouts (>[!TYPE]) and update docs

Logging
- Centralize logging in partial `functions/logger` with info/warn/error levels
- Use fmt.Warnidf for suppressible warnings (consistent IDs)
- Only show info in Dev HUD/JSON (no longer use warnf for info logging); warn/error still printed in CLI
- Include source metadata and build ID on each entry

Blocks – Collection
- Add support for `content.filters.kinds`
- Add `content.filters.tags` (array) alongside existing `filters.tag` (string)

Build/Tailwind/JS
- Fix missing Tailwind v4 styles in Hugo render: include preact-built assets, extract classes from JSX/TSX to `@sources`
- Load Preact client per block, publish source maps in dev; on-demand Alpine

CI
- Re-implement fast fails with panicOnWarning now that info logging as warnf removed
- Fix package splitter change detection: strip trailing slashes; collapse paths to starter roots

Starters/Docs
- Restructure courses under `courses/hugo-blox/`
- Update menus and landing pages
- Replace deprecated callout usage in content and docs
- Replace missing hero icon `download` with `arrow-down-tray` in academic-cv guide

Icons
- Improve icon resolver: default pack inference, better fallback, and precise missing-icon warnings (with page ref)
2025-09-25 01:58:32 +01:00
George Cushen 220330d872 refactor: implement multi-tier logging and drop panicOnWarning
- Centralize logger: warnf/errorf for normal pages; HTML comments for adapters
- Add dev console logs and export structured logs to /hbx-debug.json
- Remove --panicOnWarning from dev scripts; builds no longer fail on warnings
- Fix prior lint/format issues across scripts and templates
2025-09-22 22:48:26 +01: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 1495a500e5 ci: fix 2025-09-21 16:17:58 +01:00
George Cushen c5625bd0b7 ci: add --update-starters-to-commits option to release script
Add standalone option to update starter templates with latest module
commits using Go pseudo-versions instead of creating new release tags.

- New functions for commit info extraction and pseudo-version formatting
- Updates go.mod files with v0.0.0-YYYYMMDDHHMMSS-abcdefabcdef format
- Updates Hugo versions in hugoblox.yaml, netlify.toml, and deploy.yml
- Uses deploy.yml workflow filename (GitHub Pages convention)
- Supports --dry-run for preview and --yes for execution
- Perfect for GitHub UI workflows and development environments

Validated with:
`poetry run python scripts/release_modules.py --update-starters-to-commits --dry-run --log-level INFO`
2025-09-17 00:25:56 +01:00
George Cushen e6734f33ae feat(scripts): default to academic-cv starter when no argument provided
- Update view-starter-dev.sh to default to academic-cv if no starter specified
- Update view-starter-prod.sh to default to academic-cv if no starter specified
- Update usage documentation to show starter name as optional parameter
- Maintain backward compatibility with existing usage patterns
2025-09-17 00:16:19 +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 507f03411f refactor: move Bootstrap modules and templates to dedicated repo
See https://github.com/HugoBlox/hugo-blox-bootstrap
2025-08-25 21:16:45 +01:00
George Cushen ee50bbf7e8 build: refactor build scripts 2025-08-20 18:17:19 +01:00
George Cushen eda76fd050 ci: fix releaser action 2025-08-20 02:37:50 +01:00
George Cushen 33cde7169c ci: fix releaser action 2025-08-20 01:27:19 +01:00
George Cushen a6dc896c98 ci: add releaser action 2025-08-20 01:03:08 +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 6fb35fc7aa build: update config 2025-08-16 02:08:34 +01:00
George Cushen 358962ce08 feat(tailwind): port brand icons, tags page, search, Awards block, card zoom 2023-11-16 07:57:40 +00:00
George Cushen 9b2e271c7c fix: links 2023-11-07 23:09:38 +00:00
Federico AgostiniandGitHub 342a418071 build: preserve comments in language pack synchroniser (#2831)
By migrating from PyYAML to Ruamel for YAML parsing
2022-09-17 15:56:54 +01:00
George Cushen b49528cf1e refactor: move Reveal.JS plugin to its own module
```
module:
  imports:
    - path: github.com/wowchemy/wowchemy-hugo-themes/modules/wowchemy-plugin-reveal
```

See #2792
2022-08-15 18:06:37 +01:00
Geo bfb7d8e3f3 build: update view-starter-dev.sh with renamed modules
See #2754
2022-06-28 20:29:01 +01:00
Geo 50de7bd87e feat: check that Chroma theme exists
Also renames global Chroma theme variables to:

site.Params.features.syntax_highlighter.theme_light
site.Params.features.syntax_highlighter.theme_dark
2022-06-02 20:00:37 +01:00
Geo aa03201adb starters(notes): add Cover image 2022-05-16 19:53:40 +01:00
Geo 1325f0a9c1 starters: redesign of Minimal template 2022-04-21 13:35:30 +01:00
George Cushen 96826d5ea9 build: add script to view starters 2022-02-16 21:55:41 +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 142c7c1d5d i18n: sync language packs 2021-03-06 14:44:28 +00: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 0153af8283 refactor(yaml): run code formatter 2021-01-09 00:12:12 +00:00
George Cushen 38b599c504 fix(scripts): path 2020-11-21 22:27:16 +00:00
George Cushen c67339ac16 refactor: update remaining Academic refs 2020-09-26 23:16:52 +01:00
George Cushen 1f6beec9f7 fix: GA outbound link tracking
Fixes external links opening both in current tab and new tab when `google_analytics` enabled.

Fix #1511
2020-01-26 16:38:01 +00:00
George Cushen df2e1ed79d docs: update language pack lister 2020-01-25 22:35:02 +00: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 eb953ed475 demo: sync preprocessed resources for Hugo Themes Site 2020-01-01 12:56:19 +00:00
George Cushen f30d3252a7 refactor: rename sass folder to scss 2019-10-19 20:53:42 +01:00
George Cushen ede8cef959 feat: update vendor assets & refactor custom CSS path
- Upgrade MathJax from v2 to v3
- Updated Highlight, Leaflet, Fancybox, Mermaid, FontAwesome
- Fixed multilingual icon paths in Web App Manifest
- View Demo script now binds to all network I/F to enable testing on
  other physical devices like smart phones

BREAKING CHANGES:
Removed `plugins_css` from `params.toml`.
Override `custom.scss` to add custom styling.

Close #1400
2019-10-19 20:33:56 +01:00