Skip to content

Implement: Migrate Process-PSModule Framework to Zensical (Minor Bump) #336

@MariusStorhaug

Description

Overview

This issue tracks the implementation of Zensical migration in Process-PSModule framework and related GitHub Actions. This is a minor version bump of the Process-PSModule framework—docs tooling is being upgraded but the module structure and release workflow remain unchanged.

Related Issues

Implementation Phases

Phase 1: Prepare Zensical Template & Tooling

  • Create PSModule-standard zensical.toml template with recommended features:

    • Navigation instant loading, progress, tracking, expansion, top, path breadcrumbs, pruning, indexes
    • Search with highlighting enabled by default
    • Markdown extensions: toc, attr_list, admonition, md_in_html, pymdownx.details, pymdownx.superfences (for code copy)
    • Social links (Discord, GitHub) from current Material config
    • Classic theme variant (for visual continuity) or modern variant (for forward-looking design—TBD)
  • Document Zensical feature mapping:

    • Map current mkdocs.yml features to zensical.toml equivalents
    • Document Tier 2 plugin equivalents (git-authors, git-revision-date-localized, git-committers)
    • Record any gaps or workarounds needed
  • Create TOML placeholder substitution logic:

    • Adapt token replacement to work with TOML syntax (not YAML)
    • Replace -{{ REPO_NAME }}- and -{{ REPO_OWNER }}- at build time in zensical.toml

Phase 2: Update Build-Site Workflow

  • Replace MkDocs/Material install with Zensical install in .github/workflows/Build-Site.yml

    • Change pip install mkdocs-material → pip install zensical
    • Remove git-plugin installs (git-authors, git-revision-date-localized, git-committers)
    • Update workflow log groups and commands
  • Implement config discovery/build logic:

    • Check for zensical.toml first; if present, use it directly
    • If only mkdocs.yml exists, use Zensical's native mkdocs.yml support (fallback)
    • Log which config file was used for debugging
  • Update build command:

    • Change mkdocs build --config-file mkdocs.yml → zensical build --config-file zensical.toml (or equivalent)
    • Preserve existing site output path and artifact flow
    • Validate pages artifact is generated with same shape as before

Phase 3: Validate Test Fixtures & Parity

  • Update fixture zensical.toml files:

    • ests/srcTestRepo/zensical.toml
      
    • ests/srcWithManifestTestRepo/zensical.toml
      
    • Migrate from existing mkdocs.yml templates (kept as fallback reference)
  • Test site build with fixtures:

    • Build succeeds with zensical build
    • Generated site artifacts have expected structure
    • Navigation, search, and markdown rendering match baseline
  • Validate code copy button:

  • Verify markdown rendering:

    • Admonitions, details, tables, code highlighting render correctly
    • Links and anchors remain stable (URL parity)
    • Special markdown extensions behave as expected

Phase 4: Update Framework Documentation

  • Update README.md:

    • Replace Material for MkDocs references with Zensical
    • Update docs pipeline diagram/description if present
    • Add note about zensical.toml as primary config format
  • Create migration guide:

    • Document how module repos transition from mkdocs.yml → zensical.toml
    • Provide copy-paste zensical.toml template for modules
    • Link to Zensical docs for additional customization
  • Document PSModule-approved feature set:

    • List supported theme features, markdown extensions, plugins
    • Call out Tier 2 plugin limitations (if any gaps remain)
    • Include troubleshooting for common issues

Phase 5: Clean Up & Release

  • Close or merge PR Enable MkDocs code-copy buttons in documentation site configs #334:

    • If copy-button is now handled by Zensical config, close as superseded
    • If additional work needed, document blockers
  • Verify all CI checks pass:

    • Build-Site workflow completes successfully
    • Generated docs deploy to Pages without error
    • No regressions in module doc builds
  • Create framework release notes:

    • Minor version bump (e.g., v2.1.0 → v2.2.0 if semver applies)
    • Highlight Zensical migration, copy-button parity, config format
    • Link to migration guide for module maintainers

Success Criteria

  • Specification issue Specification: Migrate Documentation Pipeline to Zensical with Capability Parity + Code Copy Button #335 is detailed and accepted
  • Build-Site workflow builds Zensical docs successfully
  • Test fixture repos build docs with no regressions
  • Code copy button is present and functional in generated docs
  • Framework README and guides are updated with Zensical references
  • Module repos can adopt new Process-PSModule version and use zensical.toml
  • Backward compatibility is maintained (mkdocs.yml still works via Zensical native support)
  • Framework release notes document the migration

Notes

Acceptance Definition

When all checkboxes above are complete, the framework is ready for:

  1. Merging to Process-PSModule main branch
  2. Tagging a new minor version release
  3. Publishing migration guide to module maintainers
  4. Opening a tracking issue for module repo rollout (see related Epic)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions