feat: PRSDM-10268 bring up to date with advanced config#276
Merged
Quantumplate merged 33 commits intomasterfrom Feb 25, 2026
Merged
feat: PRSDM-10268 bring up to date with advanced config#276Quantumplate merged 33 commits intomasterfrom
Quantumplate merged 33 commits intomasterfrom
Conversation
…te-20260217 feat: PRSDM-10268 bring Presidium Open Source up to date 20260217
…ub.com/SPANDigital/presidium into feat/PRSDM-10268-incl-themes-in-binary
…-in-binary feat: PRSDM-10268 incl themes in binary
Contributor
There was a problem hiding this comment.
Pull request overview
Updates Presidium Open Source to a newer Hugo/toolchain setup and adds support for embedded (offline) Hugo themes.
Changes:
- Switched from packr/packd to
embed.FSfor templates and themes, enabling offline builds viaHUGO_MODULE_REPLACEMENTS. - Updated templates/configs/Makefiles and upgraded dependencies (Hugo + Go ecosystem).
- Added CI, GoReleaser workflow updates, and a Docker-based offline embedded-themes test path.
Reviewed changes
Copilot reviewed 76 out of 84 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/hugo | Adds Hugo as a git submodule pointer. |
| themes/presidium-styling-base | Adds styling theme as a git submodule pointer. |
| themes/presidium-layouts-blog | Adds blog layouts theme as a git submodule pointer. |
| themes/presidium-layouts-base | Adds base layouts theme as a git submodule pointer. |
| test-embedded-themes.sh | Adds an offline Docker-based smoke test for embedded themes. |
| templates/runbook/go.mod.tmpl | Introduces a runbook template module file using the updated Go version. |
| templates/runbook/go.mod | Removes previously-templated go.mod file (replaced by .tmpl). |
| templates/runbook/config.yaml | Updates runbook Hugo config to import embedded Presidium modules. |
| templates/runbook/Makefile | Adds template Makefile for refresh/tidy/serve workflows. |
| templates/requirements/go.mod.tmpl | Introduces a requirements template module file using the updated Go version. |
| templates/requirements/go.mod | Removes previously-templated go.mod file (replaced by .tmpl). |
| templates/requirements/config.yaml | Updates requirements Hugo config to import embedded Presidium modules. |
| templates/requirements/Makefile | Adds template Makefile for refresh/tidy/serve workflows. |
| templates/onboarding/go.mod | Bumps onboarding template Go version. |
| templates/onboarding/config.yml | Normalizes YAML indentation and updates params structure. |
| templates/onboarding/Makefile | Adds refresh/tidy/serve targets and draft support. |
| templates/design/go.mod | Bumps design template Go version. |
| templates/design/config.yml | Normalizes YAML indentation and updates module mounts. |
| templates/design/Makefile | Adds refresh/tidy/serve targets and draft support. |
| templates/default/go.mod | Bumps default template Go version. |
| templates/default/config.yaml | Normalizes YAML indentation and updates params structure. |
| templates/default/Makefile | Adds refresh/tidy/serve targets and draft support. |
| templates/blog/go.mod | Bumps blog template Go version. |
| reports/tests-cov.out | Removes committed coverage output file. |
| pkg/utils/slug.go | Replaces deprecated strings.Title with x/text/cases and modernizes replacements. |
| pkg/utils/fs.go | Cleans up afero walk callback error handling. |
| pkg/filesystem/fsutil_test.go | Stops ignoring filesystem errors in tests by explicitly discarding return values. |
| pkg/filesystem/fsutil.go | Replaces errors.New(fmt.Sprintf(...)) with fmt.Errorf. |
| pkg/domain/wizard/initwzd/impl.go | Adapts to generator.New() returning (SiteGenerator, error) and removes dot-import. |
| pkg/domain/versioning/versioning.go | Uses fmt.Fprintf and simplifies loop control. |
| pkg/domain/service/validation/validation.go | Refactors validation flow and simplifies control structures / imports. |
| pkg/domain/service/validate/impl.go | Refactors validation flow and simplifies control structures / imports. |
| pkg/domain/service/themes/themes.go | Adds embedded-themes extraction service. |
| pkg/domain/service/themes/themes_test.go | Adds unit tests for embedded themes extraction + module root detection. |
| pkg/domain/service/template/template.go | Switches template loading to embed.FS + fs.WalkDir, removes packr. |
| pkg/domain/service/template/template_test.go | Adds test ensuring templates can be enumerated. |
| pkg/domain/service/searchmapvalidation/searchmapvalidation.go | Simplifies missing-files found check. |
| pkg/domain/service/hugo/hugo.go | Wraps Hugo execution with embedded theme extraction + env injection/cleanup. |
| pkg/domain/service/hugo/hugo_test.go | Adds tests/benchmarks around Hugo wrapper behavior. |
| pkg/domain/service/generator/generator.go | Makes generator initialization fallible (returns error) and modernizes errors. |
| pkg/domain/service/generator/generaror_test.go | Updates for new generator constructor signature and removes goutils dependency. |
| pkg/domain/service/conversion/markdown/parse.go | Upgrades YAML parsing to v3. |
| pkg/domain/service/conversion/markdown/parse_test.go | Ignores remove errors explicitly in tests. |
| pkg/domain/service/conversion/markdown/operations.go | Removes Hugo paths dep, adds URL detection, uses strings.Contains/ReplaceAll. |
| pkg/domain/service/conversion/markdown/markdown_test.go | Removes goutils dependency and uses rand/v2 for IDs. |
| pkg/domain/service/conversion/markdown/manipulate.go | Removes dot-import and improves write error handling. |
| pkg/domain/service/conversion/markdown/frontmatter.go | Upgrades YAML to v3 and writes bytes directly. |
| pkg/domain/service/conversion/markdown/frontmatter_test.go | Ignores remove errors explicitly in tests. |
| pkg/domain/service/conversion/html/html.go | Uses strings.Contains for HTML detection. |
| pkg/domain/service/conversion/fileactions/fileactions.go | Removes github.com/pkg/errors usage and modernizes errors/printing. |
| pkg/domain/service/conversion/fileactions/fileactions_test.go | Adds error handling when creating files and writing frontmatter. |
| pkg/domain/service/conversion/conversion.go | Adapts to hugo Execute returning error and updates copy.Skip signature. |
| pkg/domain/model/generator/model.go | Adds new templates: requirements and runbook. |
| pkg/configtranslation/configfile.go | Upgrades YAML to v3 and fixes struct tags + parsing logic. |
| embedded.go | Adds embedded FS definitions for templates and themes. |
| main.go | Registers embedded FS with template/themes services. |
| go.mod | Upgrades Go version and bumps dependencies (incl. Hugo). |
| docs/static/presidium-site.scss | Adds SCSS entry point for site based on embedded theme sass. |
| docs/layouts/index.html | Updates docs landing page to use new SCSS pipeline and reformats HTML. |
| docs/go.mod | Bumps docs module Go version and updates theme module versions. |
| docs/go.sum | Updates theme module sums to new versions. |
| docs/config.yml | Updates docs title and normalizes YAML indentation. |
| docs/content/recipes/hosting/github-pages.md | Updates GitHub Actions versions and runner image. |
| docs/Makefile | Adds docs refresh/tidy/serve targets. |
| Dockerfile.test | Adds Docker-based offline verification build using embedded themes. |
| .goreleaser.yaml | Removes packr hook and sets build tags. |
| .golangci.yml | Adds golangci-lint configuration. |
| .gitmodules | Adds submodules for Hugo and Presidium themes. |
| .gitignore | Adds ignores for reports and other artifacts. |
| .github/workflows/release.yml | Updates release workflow to Go 1.25 + theme preparation step. |
| .github/workflows/goreleaser.yml | Removes legacy goreleaser workflow. |
| .github/workflows/gh-pages.yml | Updates GitHub Pages workflow action versions. |
| .github/workflows/ci.yml | Adds CI workflow for lint/test/build. |
| README.md | Adds development notes about embedded Hugo/themes. |
Comments suppressed due to low confidence (5)
pkg/domain/service/validate/impl.go:1
- Ignoring the error from
goquery.NewDocumentFromReadercan lead todocbeing nil and subsequent panics whenvalidateAnchorcallsdoc.Find(...). Handle the error and return it (or report a broken link) instead of discarding it.
pkg/domain/service/validation/validation.go:1 Validate()now only clearsseen, but no longer resetstrackedorqueue. Becausetrackedis a map andqueueis a list, subsequent calls toValidate()on the same validator instance can accumulate stale results/links across runs. Reinitialize/clearv.trackedandv.queueat the start ofValidate()(or restore an explicit cleanup step).
pkg/domain/service/validate/impl.go:1- Similar to the other validation implementation:
Validate()clears onlyseenand no longer clearstrackedor thequeue. This can cause reports to include results from previous runs. Reinitialize/clear the collections at the start ofValidate().
pkg/domain/service/hugo/hugo.go:1 os.Setenvreturns an error and is currently unchecked. Witherrcheckenabled in.golangci.yml, this will likely be flagged in CI. Capture and handle the return value (and similarly consider handlingos.Setenv/os.Unsetenvcalls in the defer).
pkg/domain/service/validation/validation.go:1- Typo in error message: 'propably' should be 'probably'.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Zalaras
approved these changes
Feb 25, 2026
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bring Presidium Open Source up to Date