Skip to content

feat: PRSDM-10268 bring up to date with advanced config#276

Merged
Quantumplate merged 33 commits intomasterfrom
develop
Feb 25, 2026
Merged

feat: PRSDM-10268 bring up to date with advanced config#276
Quantumplate merged 33 commits intomasterfrom
develop

Conversation

@Quantumplate
Copy link
Contributor

Bring Presidium Open Source up to Date

  • brought up to date with latest hugo version
  • updated functionality to include embedded Presidium themes

…te-20260217

feat: PRSDM-10268 bring Presidium Open Source up to date 20260217
…-in-binary

feat: PRSDM-10268 incl themes in binary
@Quantumplate Quantumplate self-assigned this Feb 25, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.FS for templates and themes, enabling offline builds via HUGO_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.NewDocumentFromReader can lead to doc being nil and subsequent panics when validateAnchor calls doc.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 clears seen, but no longer resets tracked or queue. Because tracked is a map and queue is a list, subsequent calls to Validate() on the same validator instance can accumulate stale results/links across runs. Reinitialize/clear v.tracked and v.queue at the start of Validate() (or restore an explicit cleanup step).
    pkg/domain/service/validate/impl.go:1
  • Similar to the other validation implementation: Validate() clears only seen and no longer clears tracked or the queue. This can cause reports to include results from previous runs. Reinitialize/clear the collections at the start of Validate().
    pkg/domain/service/hugo/hugo.go:1
  • os.Setenv returns an error and is currently unchecked. With errcheck enabled in .golangci.yml, this will likely be flagged in CI. Capture and handle the return value (and similarly consider handling os.Setenv/os.Unsetenv calls 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>
Quantumplate and others added 2 commits February 25, 2026 17:01
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@Quantumplate Quantumplate merged commit 82e44d6 into master Feb 25, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants