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
This commit is contained in:
George Cushen committed 2025-08-30 14:43:37 +01:00
1 parent acb0eb7b8a
commit 93585c868d
69 files changed
+229 -122

No files matched your search

+2 -1
View File
@@ -24,7 +24,8 @@
"**/pagefind/**": true
},
"explorer.excludeGitIgnore": true,
"workbench.editor.labelFormat": "medium",
"breadcrumbs.enabled": true,
"npm.packageManager": "pnpm",
"editor.formatOnSave": true,
+59 -24
View File
@@ -65,30 +65,6 @@ minify:
keepSpecialComments: true
sitemap:
changefreq: weekly
module:
hugoVersion:
min: '0.148.2'
extended: true
imports:
- path: github.com/HugoBlox/hugo-blox-builder/modules/blox-analytics
mounts:
- source: content
target: content
- source: static
target: static
- source: layouts
target: layouts
- source: data
target: data
- source: assets
target: assets
- source: i18n
target: i18n
- source: archetypes
target: archetypes
- disableWatch: true
source: hugo_stats.json
target: assets/notwatching/hugo_stats.json
security:
funcs:
getenv:
@@ -113,3 +89,62 @@ params:
date_format: 'Jan 2, 2006'
time_format: '3:04 PM'
address_format: en-us
module:
hugoVersion:
min: '0.148.2'
extended: true
imports:
- path: github.com/HugoBlox/hugo-blox-builder/modules/blox-analytics
mounts:
- source: content
target: content
- source: static
target: static
- source: layouts
target: layouts
- source: data
target: data
- source: assets
target: assets
- source: i18n
target: i18n
- source: archetypes
target: archetypes
- disableWatch: true
source: hugo_stats.json
target: assets/notwatching/hugo_stats.json
# BLOX A) Server-rendered block templates (Go HTML)
- source: blox
target: layouts/partials/hbx/blocks
includeFiles:
- '**/block.html'
# BLOX B) Client islands (compiled with js.Build/js.Batch)
- source: blox
target: assets/js/hbx/blocks
includeFiles:
- '**/*.js'
- '**/*.ts'
- '**/*.jsx'
- '**/*.tsx'
# BLOX C) Block-specific CSS
- source: blox
target: assets/css/hbx/blocks
includeFiles:
- '**/*.css'
# BLOX D) Shared assets (optional)
- source: blox/shared/js
target: assets/js/hbx/shared
- source: blox/shared/css
target: assets/css/hbx/shared
- source: blox
target: assets/img/hbx/blocks
includeFiles:
- '**/*.png'
- '**/*.jpg'
- '**/*.jpeg'
- '**/*.svg'
- '**/*.webp'
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -322,7 +322,7 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
# Feedback widget
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,4 +262,4 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
+1 -1
View File
@@ -262,7 +262,7 @@
# Published with
- id: published_with
translation: Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators.
translation: Made with {hugoblox}.
# Feedback widget
@@ -9,14 +9,9 @@
{{ range $r := site.Data.blox_aliases.renames }}
{{ $block_type = cond (eq $block_type $r.old) $r.new $block_type }}
{{ end }}
{{ $block_path := printf "blox/%s.html" $block_type }}
{{ $block_path := printf "hbx/blocks/%s/block.html" $block_type }}
{{ if not (templates.Exists (printf "_partials/%s" $block_path)) }}
{{ $block_path_community := printf "blox/community/%s.html" $block_type }}
{{ if not (templates.Exists (printf "_partials/%s" $block_path_community)) }}
{{ errorf "%s uses a `%s` blox but the `%s` blox was not found. Check the name of the blox and try again. For a custom or community blox, upload it first to `hugo-blox/blox/community/%s.html`. For an All Access blox, upload it first to `hugo-blox/blox/all-access/%s.html`" $page.File.Path $block_type $block_type $block_type $block_type }}
{{ else }}
{{ $block_path = $block_path_community }}
{{ end }}
{{ errorf "%s uses a `%s` block but the `%s` block was not found at `%s`. Check the name of the block and ensure it exists in the blox/%s/ directory." $page.File.Path $block_type $block_type $block_path $block_type }}
{{ end }}
{{/* Mermaid block: Workaround to make Hugo's .Page.Store.Set cascade up to the parent of headless pages */}}
@@ -0,0 +1,15 @@
{{/* HBX resolver: maps a section { block: "<id>", ... } to the block partial.
This resolver looks up blocks from the blox/<block-id>/block.html structure,
which are mounted to layouts/partials/hbx/blocks/<block-id>/block.html via module.yaml.
*/}}
{{- $id := .section.block -}}
{{- if not $id }}{{ errorf "HBX: section is missing 'block' key: %v" .section }}{{ end -}}
{{- $params := .section -}}
{{- $path := printf "hbx/blocks/%s/block.html" $id -}}
{{- if templates.Exists (printf "partials/%s" $path) -}}
{{ partial $path (dict "wcPage" .ctx "wcBlock" $params "wcIdentifier" ($params.id | default (printf "section-%s" $id))) }}
{{- else -}}
{{ errorf "HBX: block '%s' not found at %q" $id $path }}
{{- end -}}
@@ -0,0 +1,11 @@
{{/* Returns sections from front matter or from data. */}}
{{- $sections := .Params.sections -}}
{{- if not $sections -}}
{{/* Data-driven pages. */}}
{{- $p := .File.PathBase -}}
{{- with index site.Data.pages $p -}}
{{- $sections = .sections -}}
{{- warnf "HBX: Using data-driven sections from data/pages/%s for page %s" $p $.RelPermalink -}}
{{- end -}}
{{- end -}}
{{- return $sections -}}
@@ -1,5 +1,11 @@
{{/* Load Hugo Blox */}}
{{ range $index, $block := .Params.sections }}
{{/* Load Hugo Blox - HBX resolver-based system
Blocks live in `blox/<block-id>/block.html` and are mounted to `layouts/partials/hbx/blocks/<block-id>/block.html`.
Landing pages must specify `sections: [{ block: '<id>', ... }]`.
*/}}
{{/* Use unified sections source */}}
{{- $sections := partial "hbx/sections.html" . -}}
{{ range $index, $block := $sections }}
{{/* Do not show sections intended only for the demo site. */}}
{{ if or (not $block.demo) ($block.demo | and (eq (os.Getenv "HUGO_BLOX_DEMO") "true")) }}
{{ partial "functions/parse_block_v2" (dict "page" $ "block" $block) }}
@@ -10,21 +10,66 @@
{{ end }}
{{ partial $footer_section_path . }}
<p class="powered-by text-center">
{{ $is_sponsor := site.Params.i_am_a_sponsor | default false }}
{{ $hide_published_with_footer := site.Params.power_ups.hide_published_with | default true }}
{{ if not (and $is_sponsor $hide_published_with_footer) }}
{{ $default := "Published with {hugoblox} — the free, {repo_link}open source{/repo_link} website builder that empowers creators." }}
{{ $i18n_published_with := i18n "published_with" | default $default }}
{{ if not (findRE "{hugoblox}" $i18n_published_with) }}
{{ warnf "Please attribute Hugo Blox using `{hugoblox}` in the `published_with` text." }}
{{ $i18n_published_with = $default }}
{{/* Attribution - PLEASE DO NOT REMOVE THIS, SUPPORT OPEN SOURCE */}}
{{- if not (site.Params.i_am_a_sponsor | default false) -}}
{{- $base := "https://hugoblox.com" -}}
{{- $tid := "" -}}
{{- $ref := .Site.Params.affiliate_ref | default "" -}}
{{/* Detect Template */}}
{{ $hugoblox_file := "" }}
{{ if fileExists "hugoblox.yaml" }}
{{ $hugoblox_file = readFile "hugoblox.yaml" }}
{{ if $hugoblox_file }}
{{ $hugoblox_data := $hugoblox_file | transform.Unmarshal }}
{{ $tid = $hugoblox_data.template.id | default "" }}
{{ end }}
{{ $i18n_published_with = replace $i18n_published_with "{hugoblox}" "<a href=\"https://hugoblox.com/?utm_campaign=poweredby\" target=\"_blank\" rel=\"noopener\">Hugo Blox Builder</a>" | safeHTML }}
{{ end }}
{{/* Per-site variant selection */}}
{{- $brandOptions := slice "Hugo Blox" "Hugo Blox Builder" "Hugo Blox — Open Source" -}}
{{- $ctaWhenTemplate := slice "Duplicate this template →" "Clone this template →" "Build yours →" "Create yours →" "Build your site →" "Create your site →" -}}
{{- $ctaNoTemplate := slice "Start free →" "Build yours →" "Create yours →" "Build your site →" "Create your site →" -}}
{{- $seed := .Site.BaseURL -}}
{{- $h := md5 $seed -}}
{{- $digits := replaceRE "[^0-9]" "" $h -}}
{{- if lt (len $digits) 6 }}{{- $digits = printf "%s123456" $digits -}}{{- end -}}
{{- $n := int (substr $digits 0 6) -}}
{{- $brandText := index $brandOptions (mod $n (len $brandOptions)) -}}
{{- $ctaText := cond (ne $tid "")
(index $ctaWhenTemplate (mod $n (len $ctaWhenTemplate)))
(index $ctaNoTemplate (mod $n (len $ctaNoTemplate))) -}}
{{- $target := cond (ne $tid "")
(printf "%s/templates/%s/start" $base $tid)
(printf "%s/start" $base) -}}
{{- $brandHref := printf "%s?utm_source=site_footer&utm_medium=referral&utm_campaign=poweredby_oss&utm_content=brand_%s"
$base (cond (ne $tid "") (printf "%s" $tid) "na") -}}
{{- $ctaHref := printf "%s?utm_source=site_footer&utm_medium=referral&utm_campaign=poweredby_oss&utm_content=cta_%s"
$target (cond (ne $tid "") (printf "%s" $tid) "na") -}}
{{- if ne $ref "" -}}
{{- $brandHref = printf "%s&ref=%s" $brandHref $ref -}}
{{- $ctaHref = printf "%s&ref=%s" $ctaHref $ref -}}
{{- end -}}
<p class="powered-by text-center text-sm opacity-80 py-1">
{{ $published_with := "Made with {hugoblox}." }}
{{ $i18n_published_with := i18n "published_with" | default $published_with }}
{{ $i18n_ctaText := i18n "poweredby_button" | default $ctaText }}
{{ if not (findRE "{hugoblox}" $i18n_published_with) }}
{{ warnf "Please attribute Hugo Blox using `{hugoblox}` in the i18n `published_with` text or sponsor with All Access to remove attribution." }}
{{ $i18n_published_with = $published_with }}
{{ end }}
{{ $i18n_published_with = replace $i18n_published_with "{hugoblox}" (printf "<a class=\"underline hover:opacity-100\" href=\"%s\" target=\"_blank\" rel=\"noopener\" data-hbx=\"poweredby_brand\">%s</a>" $brandHref $brandText) | safeHTML }}
{{ $i18n_published_with = replace $i18n_published_with "{repo_link}" "<a href=\"https://github.com/HugoBlox/hugo-blox-builder\" target=\"_blank\" rel=\"noopener\">" | safeHTML }}
{{ $i18n_published_with = replace $i18n_published_with "{/repo_link}" "</a>" | safeHTML }}
{{ $i18n_published_with | replaceRE "{year}" now.Year | markdownify | emojify | safeHTML }}
{{ end }}
</p>
{{ $i18n_published_with | safeHTML }}
<a class="inline-flex items-center rounded px-2 py-0.5 border border-current ms-2 text-xs hover:opacity-100"
href="{{ $ctaHref }}" target="_blank" rel="noopener" data-hbx="poweredby_cta">{{ $i18n_ctaText }}</a>
</p>
{{- end -}}
</footer>
+6 -10
View File
@@ -32,27 +32,23 @@
"prettier-plugin-go-template": "~0.0.12",
"stylelint": "14.8.2",
"stylelint-config-prettier": "~9.0.3",
"stylelint-config-prettier-scss": "^0.0.1",
"stylelint-config-standard": "~25.0.0",
"stylelint-config-standard-scss": "^3.0.0",
"stylelint-scss": "~4.2.0"
},
"scripts": {
"view": "scripts/view-starter.sh",
"view:local": "scripts/view-starter-dev.sh",
"prod": "scripts/view-starter-prod.sh",
"dev": "scripts/view-starter-dev.sh",
"test": "echo \"Error: no test specified\" && exit 1",
"lint": "pnpm run lint:js && pnpm run lint:style",
"lint:js": "eslint '*/**/*.{js,ts,tsx}'",
"lint:js:fix": "eslint '*/**/*.{js,ts,tsx}' --fix",
"lint:style": "stylelint 'modules/blox-tailwind/**/*.css'",
"lint:style:fix": "stylelint 'modules/blox-tailwind/**/*.css' --fix",
"format": "prettier --write \"*.{css,js,json,md,scss}\" \"./**/*.{css,js,json,md,scss}\"",
"lint:style": "stylelint '**/*.css'",
"lint:style:fix": "stylelint '**/*.css' --fix",
"format": "prettier --write \"*.{css,js,json,md}\" \"./**/*.{css,js,json,md}\"",
"stylelint-conflict-check": "stylelint-config-prettier-check",
"update:starter": "scripts/update-starter.sh",
"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"
},
"browserslist": "> 1%",
"packageManager": "pnpm@10.14.0"
"browserslist": "> 1%"
}
-5
View File
@@ -1,5 +0,0 @@
#!/usr/bin/env zsh
# Generate preprocessed resources for demo site whilst also removing disused resources.
# Run this script from the root Hugo Blox dir.
HUGO_THEME=hugo-blox-builder hugo --source exampleSite --themesDir ../../ --gc
File renamed without changes.
-5
View File
@@ -1,5 +0,0 @@
#!/usr/bin/env zsh
cd "starters/$1"
hugo mod get -u ./...
cd ../..
+7
View File
@@ -10,8 +10,15 @@ cleanup() {
trap cleanup EXIT INT TERM
usage() {
echo "View a starter template with local development modules and debug features."
echo ""
echo "Usage: ./scripts/view-starter-dev.sh <starter-name> [--debug] [--no-pagefind]"
echo "Example: ./scripts/view-starter-dev.sh blog --debug"
echo ""
echo "This script uses:"
echo " • Local development modules (via HUGO_MODULE_REPLACEMENTS)"
echo " • Development environment with demo/debug flags enabled"
echo " • Optional Pagefind search indexing and enhanced debugging"
}
if [ $# -lt 1 ]; then
@@ -8,9 +8,20 @@ exitfn () {
trap "exitfn" INT
usage() {
echo "View a starter template with published production modules."
echo ""
echo "Usage: ./scripts/view-starter-prod.sh <starter-name>"
echo "Example: ./scripts/view-starter-prod.sh blog"
echo ""
echo "This script uses:"
echo " • Published/released modules (no local overrides)"
echo " • Production environment (simulates end-user experience)"
echo " • Minimal configuration for testing published versions"
}
if [ -z "$1" ]; then
echo "Usage: ./scripts/view-starter.sh <starter-name>"
echo "Example: ./scripts/view-starter.sh blog"
usage
exit 1
fi
@@ -31,8 +42,8 @@ if [ -f "package.json" ]; then
fi
fi
HUGO_ENVIRONMENT=development \
HUGOxPARAMSxDECAP_CMSxLOCAL_BACKEND=true \
# Use production environment with published modules (no local module replacements)
HUGO_ENVIRONMENT=production \
hugo server --panicOnWarning --renderStaticToDisk -F --port 8081 --bind 0.0.0.0
trap SIGINT
-11
View File
@@ -1,11 +0,0 @@
#!/usr/bin/env zsh
# View the demo site on any local devices by binding the local IP on port 1315.
# Run this script from the root Hugo Blox dir.
HUGO_THEME=hugo-blox-builder hugo \
--source exampleSite --themesDir ../../ \
--bind=0.0.0.0 -p 1315 --baseURL=http://0.0.0.0:1315 \
--i18n-warnings --minify -e "development" \
server
#HUGO_THEME=hugo-blox-builder hugo convert toYAML --unsafe --themesDir ../../
-2
View File
@@ -91,8 +91,6 @@ jobs:
# Check if site uses Pagefind search
if [ -f "package.json" ] && grep -q "pagefind" package.json; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
elif [ -f "netlify.toml" ] && grep -q "pagefind" netlify.toml; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
fi
- name: Upload artifact
+3
View File
@@ -1,2 +1,5 @@
build:
hugo_version: '0.148.2'
template:
id: "academic-cv"
name: "Academic CV"
-2
View File
@@ -91,8 +91,6 @@ jobs:
# Check if site uses Pagefind search
if [ -f "package.json" ] && grep -q "pagefind" package.json; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
elif [ -f "netlify.toml" ] && grep -q "pagefind" netlify.toml; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
fi
- name: Upload artifact
+3
View File
@@ -1,2 +1,5 @@
build:
hugo_version: '0.148.2'
template:
id: "blog"
name: "Blog"
-2
View File
@@ -91,8 +91,6 @@ jobs:
# Check if site uses Pagefind search
if [ -f "package.json" ] && grep -q "pagefind" package.json; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
elif [ -f "netlify.toml" ] && grep -q "pagefind" netlify.toml; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
fi
- name: Upload artifact
+3
View File
@@ -1,2 +1,5 @@
build:
hugo_version: '0.148.2'
template:
id: "documentation"
name: "Documentation"
-2
View File
@@ -91,8 +91,6 @@ jobs:
# Check if site uses Pagefind search
if [ -f "package.json" ] && grep -q "pagefind" package.json; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
elif [ -f "netlify.toml" ] && grep -q "pagefind" netlify.toml; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
fi
- name: Upload artifact
+3
View File
@@ -1,2 +1,5 @@
build:
hugo_version: '0.148.2'
template:
id: "landing-page"
name: "Landing Page"
-2
View File
@@ -91,8 +91,6 @@ jobs:
# Check if site uses Pagefind search
if [ -f "package.json" ] && grep -q "pagefind" package.json; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
elif [ -f "netlify.toml" ] && grep -q "pagefind" netlify.toml; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
fi
- name: Upload artifact
+3
View File
@@ -1,2 +1,5 @@
build:
hugo_version: '0.148.2'
template:
id: "link-in-bio"
name: "Link in Bio"
-2
View File
@@ -91,8 +91,6 @@ jobs:
# Check if site uses Pagefind search
if [ -f "package.json" ] && grep -q "pagefind" package.json; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
elif [ -f "netlify.toml" ] && grep -q "pagefind" netlify.toml; then
pnpm dlx pagefind --source "public" || npx pagefind --source "public"
fi
- name: Upload artifact
+3
View File
@@ -1,2 +1,5 @@
build:
hugo_version: '0.148.2'
template:
id: "resume"
name: "Resume"