hugo-academic-mirror/biome.json

81 lines
1.7 KiB
JSON
Raw Permalink Normal View History

{
"$schema": "https://biomejs.dev/schemas/2.3.2/schema.json",
"files": {
"includes": [
"**",
"!**/node_modules",
"!**/public",
"!**/resources",
"!**/_gen",
"!**/assets/dist",
"!**/*.min.js",
"!**/*.min.css",
"!**/pagefind",
"!**/_vendor",
"!**/vendor",
"!**/*.html",
"!**/layouts/**/*.html",
"!**/layouts/**/*.htm",
"!**/*.webmanifest",
"!**/*.backlinks.json",
"!**/hugo_stats.json",
"!**/*.code-workspace",
"!**/modules/blox-tailwind/data/icons/devicon.json",
"!**/templates",
"!**/test",
"!**/modules/**/package.json",
"!**/assets/jsconfig.json",
"!**/docs-local",
"!**/backups",
"!**/modules/blox-tailwind/assets/css/config/safelist.css"
]
},
"formatter": {
"enabled": true,
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:00 +01:00
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 150
},
"javascript": {
"formatter": {
"quoteStyle": "double",
"trailingCommas": "all",
"bracketSpacing": false
},
"globals": ["PagefindUI"]
},
"json": {
"formatter": {
"trailingCommas": "none"
}
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"style": {},
"complexity": {},
"suspicious": {
"noEmptyBlock": "off"
},
"security": {
"noDangerouslySetInnerHtml": "off"
}
}
},
"assist": { "actions": { "source": { "organizeImports": "on" } } },
"css": {
"parser": {
"tailwindDirectives": true
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 150
},
"linter": {
"enabled": true
}
}
}