Files
HugoBlox-kit/package.json
T
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

52 lines
1.7 KiB
JSON

{
"name": "hugo-blox-builder",
"version": "1.0.0",
"description": "The Page Builder for Hugo",
"author": "George Cushen",
"license": "MIT",
"packageManager": "pnpm@10.14.0",
"bugs": {
"url": "https://github.com/HugoBlox/hugo-blox-builder/issues"
},
"homepage": "https://hugoblox.com",
"repository": {
"type": "git",
"url": "git+https://github.com/HugoBlox/hugo-blox-builder.git"
},
"dependencies": {
"alpinejs": "^3.15.0",
"katex": "^0.16.22",
"markmap-autoloader": "^0.18.12",
"medium-zoom": "^1.0.8",
"mermaid": "^11.12.0",
"plotly.js": "^3.1.0",
"preact": "^10.27.2",
"rollup-plugin-delete": "^2.0.0",
"vite": "^7.1.2",
"vite-hugo-plugin": "^3.1.0",
"vite-plugin-static-copy": "^3.1.1"
},
"devDependencies": {
"@biomejs/biome": "^1.9.4",
"stylelint": "14.8.2",
"stylelint-config-standard": "~25.0.0",
"stylelint-scss": "~4.2.0"
},
"scripts": {
"prod": "scripts/view-starter-prod.sh",
"dev": "scripts/view-starter-dev.sh",
"test": "scripts/view-test.sh",
"lint": "pnpm run lint:code && pnpm run lint:style",
"lint:code": "biome check --reporter=summary .",
"lint:code:fix": "biome check --write .",
"lint:style": "stylelint '**/*.css'",
"lint:style:fix": "stylelint '**/*.css' --fix",
"format": "pnpm run lint:code:fix && pnpm run lint:style:fix",
"update:starters": "poetry run python ./scripts/update.py",
"vendor:libs": "vite build --config vite.config.js",
"vendor:libs:watch": "vite build --config vite.config.js --watch",
"vendor:update-and-build": "pnpm up katex mermaid markmap-autoloader alpinejs plotly.js preact --latest && pnpm vendor:libs"
},
"browserslist": "> 1%"
}