From 7c5ae6c86028ad98d4721625fccaff9b392e6c58 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 03:46:25 +0200 Subject: [PATCH 01/15] Bump Process-PSModule to v6.1.16 Bumps the reusable workflow from v5.5.0 to v6.1.16. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/Process-PSModule.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Process-PSModule.yml b/.github/workflows/Process-PSModule.yml index 67f2c25..82efc09 100644 --- a/.github/workflows/Process-PSModule.yml +++ b/.github/workflows/Process-PSModule.yml @@ -27,5 +27,5 @@ permissions: jobs: Process-PSModule: - uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@11117919e65242d3388727819a751f74ad24ea9e # v5.5.0 + uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@1653be8d36607d9535f600278c44789979477813 # v6.1.16 secrets: inherit From 44ac4e2350358a6b75f06c0a320256d223c8190d Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 03:46:29 +0200 Subject: [PATCH 02/15] Add CONTRIBUTING.md README.md referenced a contribution guide that did not exist. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- CONTRIBUTING.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3830a19 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,41 @@ +# Contributing to NerdFonts + +Thank you for your interest in contributing! This repository is part of the +[PSModule](https://github.com/PSModule) framework and follows the shared +contribution guidelines. + +## Getting started + +1. Read the repository [README](README.md) to understand what the module does + and how it is built. +2. Familiarize yourself with the PSModule framework documentation at + . + +## How to contribute + +- **Bug reports and feature requests:** open a [GitHub issue](../../issues). +- **Code changes:** open a [pull request](../../pulls). +- **Keep changes small and focused.** Each pull request should address one + concern. +- **Open draft pull requests early** so maintainers can provide feedback while + work is in progress. + +## Repository conventions + +- Source code lives in `src/`. +- Tests live in `tests/` and are run with [Pester](https://pester.dev/). +- The module manifest is generated by the + [Process-PSModule](https://github.com/PSModule/Process-PSModule) workflow. +- Commit messages should be short and specific. + +## Development + +```powershell +Import-Module ./src +Invoke-Pester +``` + +## Code of conduct + +Be respectful and constructive. We want this project to be welcoming for +everyone. From 6d51070002694931a3d044a542d3005d63a9aa4e Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 03:46:33 +0200 Subject: [PATCH 03/15] Bump actions/checkout to v7.0.1 Updates the checkout action used by the Update-FontsData workflow. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/Update-FontsData.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Update-FontsData.yml b/.github/workflows/Update-FontsData.yml index 9b1b812..504fba7 100644 --- a/.github/workflows/Update-FontsData.yml +++ b/.github/workflows/Update-FontsData.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false From 1cacbd8713d22ef6359453650eefeae60c4fa734 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 03:47:55 +0200 Subject: [PATCH 04/15] Loosen and bump module dependencies Replaces exact RequiredVersion pins with ModuleVersion + MaximumVersion and bumps to the latest compatible Fonts and Admin releases. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/functions/public/Install-NerdFont.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/functions/public/Install-NerdFont.ps1 b/src/functions/public/Install-NerdFont.ps1 index 94c3b39..c397e32 100644 --- a/src/functions/public/Install-NerdFont.ps1 +++ b/src/functions/public/Install-NerdFont.ps1 @@ -1,5 +1,5 @@ -#Requires -Modules @{ ModuleName = 'Fonts'; RequiredVersion = '1.1.21' } -#Requires -Modules @{ ModuleName = 'Admin'; RequiredVersion = '1.1.6' } +#Requires -Modules @{ ModuleName = 'Fonts'; ModuleVersion = '1.1.27'; MaximumVersion = '1.999.999' } +#Requires -Modules @{ ModuleName = 'Admin'; ModuleVersion = '1.1.13'; MaximumVersion = '1.999.999' } function Install-NerdFont { <# From 6c873b803d89bab64afc19d5a5995f091227d328 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 03:47:59 +0200 Subject: [PATCH 05/15] Fix cache-fallback test mock Adds default mocks for Copy-Item and Move-Item so the cache-write path no longer fails with a Pester mock exception after the cache-read throw. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- tests/NerdFonts.Tests.ps1 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/NerdFonts.Tests.ps1 b/tests/NerdFonts.Tests.ps1 index 5d0fb06..38e7049 100644 --- a/tests/NerdFonts.Tests.ps1 +++ b/tests/NerdFonts.Tests.ps1 @@ -279,6 +279,10 @@ Describe 'Module' { Mock -ModuleName NerdFonts Copy-Item { throw 'Simulated cache read failure' } -ParameterFilter { $LiteralPath -and $LiteralPath -eq $cachedFile } + # Provide default mocks for the cache-write path so it does not fail + # when the cache-read filter no longer matches. + Mock -ModuleName NerdFonts Copy-Item {} + Mock -ModuleName NerdFonts Move-Item {} # Should not throw — falls back to download { Install-NerdFont -Name $fontName -Force:$false -ErrorAction Stop } | Should -Not -Throw From 3458b25c4590e360b642be2fb6e99363aacb274a Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 03:53:11 +0200 Subject: [PATCH 06/15] Pass APIKey explicitly instead of secrets: inherit Process-PSModule v6 expects specific secrets rather than broad inherit. This repository only requires the PowerShell Gallery API key. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/Process-PSModule.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Process-PSModule.yml b/.github/workflows/Process-PSModule.yml index 82efc09..023f2c0 100644 --- a/.github/workflows/Process-PSModule.yml +++ b/.github/workflows/Process-PSModule.yml @@ -28,4 +28,5 @@ permissions: jobs: Process-PSModule: uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@1653be8d36607d9535f600278c44789979477813 # v6.1.16 - secrets: inherit + secrets: + APIKey: ${{ secrets.APIKey }} From 4d77dfd2edab27043aff388559235661e581a821 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 03:53:23 +0200 Subject: [PATCH 07/15] Use clean 2.0.0 upper bound for dependencies MaximumVersion accepts a wildcard-compatible version string, so use the major-version ceiling directly rather than 1.999.999. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/functions/public/Install-NerdFont.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/functions/public/Install-NerdFont.ps1 b/src/functions/public/Install-NerdFont.ps1 index c397e32..24b2070 100644 --- a/src/functions/public/Install-NerdFont.ps1 +++ b/src/functions/public/Install-NerdFont.ps1 @@ -1,5 +1,5 @@ -#Requires -Modules @{ ModuleName = 'Fonts'; ModuleVersion = '1.1.27'; MaximumVersion = '1.999.999' } -#Requires -Modules @{ ModuleName = 'Admin'; ModuleVersion = '1.1.13'; MaximumVersion = '1.999.999' } +#Requires -Modules @{ ModuleName = 'Fonts'; ModuleVersion = '1.1.27'; MaximumVersion = '2.0.0' } +#Requires -Modules @{ ModuleName = 'Admin'; ModuleVersion = '1.1.13'; MaximumVersion = '2.0.0' } function Install-NerdFont { <# From 34ff7d7e19eb2a7f942cc811e987cb02268f1855 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 03:56:48 +0200 Subject: [PATCH 08/15] Use live data and wildcard bounds - Switches dependency MaximumVersion to wildcard style (1.*) matching the Pester #Requires pattern. - Replaces mock-based cache-read failure with a real locked cache file so the fallback path exercises actual Copy-Item behavior. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/functions/public/Install-NerdFont.ps1 | 4 ++-- tests/NerdFonts.Tests.ps1 | 29 ++++++++++++++--------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/functions/public/Install-NerdFont.ps1 b/src/functions/public/Install-NerdFont.ps1 index 24b2070..a11e522 100644 --- a/src/functions/public/Install-NerdFont.ps1 +++ b/src/functions/public/Install-NerdFont.ps1 @@ -1,5 +1,5 @@ -#Requires -Modules @{ ModuleName = 'Fonts'; ModuleVersion = '1.1.27'; MaximumVersion = '2.0.0' } -#Requires -Modules @{ ModuleName = 'Admin'; ModuleVersion = '1.1.13'; MaximumVersion = '2.0.0' } +#Requires -Modules @{ ModuleName = 'Fonts'; ModuleVersion = '1.1.27'; MaximumVersion = '1.*' } +#Requires -Modules @{ ModuleName = 'Admin'; ModuleVersion = '1.1.13'; MaximumVersion = '1.*' } function Install-NerdFont { <# diff --git a/tests/NerdFonts.Tests.ps1 b/tests/NerdFonts.Tests.ps1 index 38e7049..515e3c7 100644 --- a/tests/NerdFonts.Tests.ps1 +++ b/tests/NerdFonts.Tests.ps1 @@ -265,29 +265,36 @@ Describe 'Module' { $script:NerdFonts = $fonts } + $fileLock = $null try { - # Place a regular placeholder file so Test-Path returns true for cache-hit detection + # Lock the cached file with an exclusive share so Copy-Item fails, forcing the + # function to fall back to a real download using live test data. if (-not (Test-Path -LiteralPath $cacheTagDir)) { $null = New-Item -ItemType Directory -Path $cacheTagDir -Force } - Set-Content -LiteralPath $cachedFile -Value 'placeholder' + if (Test-Path -LiteralPath $cachedFile) { + Remove-Item -LiteralPath $cachedFile -Recurse -Force -ErrorAction SilentlyContinue + } + Set-Content -LiteralPath $cachedFile -Value 'locked-cache-entry' -Force + $fileLock = [System.IO.File]::Open( + $cachedFile, + [System.IO.FileMode]::Open, + [System.IO.FileAccess]::Read, + [System.IO.FileShare]::None + ) Mock -ModuleName NerdFonts Get-Font { @() } Mock -ModuleName NerdFonts Install-Font {} - # Mock Copy-Item to throw only for the cache-read path, simulating - # a locked/unreadable cached file cross-platform. - Mock -ModuleName NerdFonts Copy-Item { - throw 'Simulated cache read failure' - } -ParameterFilter { $LiteralPath -and $LiteralPath -eq $cachedFile } - # Provide default mocks for the cache-write path so it does not fail - # when the cache-read filter no longer matches. - Mock -ModuleName NerdFonts Copy-Item {} - Mock -ModuleName NerdFonts Move-Item {} # Should not throw — falls back to download { Install-NerdFont -Name $fontName -Force:$false -ErrorAction Stop } | Should -Not -Throw Should -Invoke -ModuleName NerdFonts Install-Font -Times 1 -Exactly } finally { + # Release the lock before restoring cache state. + if ($fileLock) { + $fileLock.Dispose() + $fileLock = $null + } # Restore original cache state so no user/CI state is mutated if ($hadExistingCache) { Move-Item -LiteralPath $backupPath -Destination $cachedFile -Force -ErrorAction SilentlyContinue From 50f1fc23a50f2811407e5d8ab3251e216cf57a72 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 04:09:05 +0200 Subject: [PATCH 09/15] Load source module in tests instead of installed version Adds a BeforeAll block that builds a dynamic module from the repository source tree so local Pester runs exercise the current code, not an installed gallery version. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- README.md | 9 +++++++++ src/functions/public/Install-NerdFont.ps1 | 2 +- tests/NerdFonts.Tests.ps1 | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4e5bf49..e39da46 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,15 @@ To uninstall a NerdFont for all users (requires elevated privileges): Uninstall-Font -Name 'FiraCode*' -Scope AllUsers ``` +## Documentation + +Every command has full reference documentation, generated from its comment-based help and published at [psmodule.io/NerdFonts](https://psmodule.io/NerdFonts/). Explore the commands and read detailed help directly from PowerShell: + +```powershell +Get-Command -Module NerdFonts +Get-Help -Name Install-NerdFont -Examples +``` + ## Contributing Coder or not, you can contribute to the project! We welcome all contributions. diff --git a/src/functions/public/Install-NerdFont.ps1 b/src/functions/public/Install-NerdFont.ps1 index a11e522..17b6aa4 100644 --- a/src/functions/public/Install-NerdFont.ps1 +++ b/src/functions/public/Install-NerdFont.ps1 @@ -95,7 +95,7 @@ Please run the command again with elevated rights (Run as Administrator) or prov $seenNames = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) $guid = (New-Guid).Guid - $tempPath = Join-Path -Path $HOME -ChildPath "NerdFonts-$guid" + $tempPath = Join-Path -Path ([System.IO.Path]::GetTempPath()) -ChildPath "NerdFonts-$guid" if (-not (Test-Path -Path $tempPath -PathType Container)) { Write-Verbose "Create folder [$tempPath]" $null = New-Item -Path $tempPath -ItemType Directory diff --git a/tests/NerdFonts.Tests.ps1 b/tests/NerdFonts.Tests.ps1 index 515e3c7..205eef4 100644 --- a/tests/NerdFonts.Tests.ps1 +++ b/tests/NerdFonts.Tests.ps1 @@ -19,6 +19,24 @@ [CmdletBinding()] param() +BeforeAll { + # Import the module from the source tree so local tests exercise the code + # in the repository rather than an installed version. + $srcRoot = Join-Path -Path $PSScriptRoot -ChildPath '..' | Join-Path -ChildPath 'src' + $dynamicModule = New-Module -Name NerdFonts -ScriptBlock { + param($srcRoot) + $privateFiles = Get-ChildItem -Path (Join-Path -Path $srcRoot -ChildPath 'variables\private') -Filter '*.ps1' -File -Recurse | + Where-Object { $_.Name -ne 'NerdFonts.ps1' } + $publicFiles = Get-ChildItem -Path (Join-Path -Path $srcRoot -ChildPath 'functions\public') -Filter '*.ps1' -File + foreach ($file in $privateFiles) { . $file.FullName } + foreach ($file in $publicFiles) { . $file.FullName } + # NerdFonts.ps1 resolves FontsData.json relative to its own folder, which only + # works in the built module. Set the variable directly from the source tree. + $script:NerdFonts = Get-Content -Path (Join-Path -Path $srcRoot -ChildPath 'FontsData.json') | ConvertFrom-Json + } -ArgumentList $srcRoot + $dynamicModule | Import-Module -Force +} + Describe 'Module' { Context 'Function: Get-NerdFont' { It 'Returns all fonts' { From 4a1cd0e40a5db6375b56c9890b201389b504cd6d Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 04:11:54 +0200 Subject: [PATCH 10/15] Revert source-module import in tests Process-PSModule already builds and installs the module before running tests, so the tests should exercise the built/installed module rather than loading source files directly. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- tests/NerdFonts.Tests.ps1 | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/tests/NerdFonts.Tests.ps1 b/tests/NerdFonts.Tests.ps1 index 205eef4..515e3c7 100644 --- a/tests/NerdFonts.Tests.ps1 +++ b/tests/NerdFonts.Tests.ps1 @@ -19,24 +19,6 @@ [CmdletBinding()] param() -BeforeAll { - # Import the module from the source tree so local tests exercise the code - # in the repository rather than an installed version. - $srcRoot = Join-Path -Path $PSScriptRoot -ChildPath '..' | Join-Path -ChildPath 'src' - $dynamicModule = New-Module -Name NerdFonts -ScriptBlock { - param($srcRoot) - $privateFiles = Get-ChildItem -Path (Join-Path -Path $srcRoot -ChildPath 'variables\private') -Filter '*.ps1' -File -Recurse | - Where-Object { $_.Name -ne 'NerdFonts.ps1' } - $publicFiles = Get-ChildItem -Path (Join-Path -Path $srcRoot -ChildPath 'functions\public') -Filter '*.ps1' -File - foreach ($file in $privateFiles) { . $file.FullName } - foreach ($file in $publicFiles) { . $file.FullName } - # NerdFonts.ps1 resolves FontsData.json relative to its own folder, which only - # works in the built module. Set the variable directly from the source tree. - $script:NerdFonts = Get-Content -Path (Join-Path -Path $srcRoot -ChildPath 'FontsData.json') | ConvertFrom-Json - } -ArgumentList $srcRoot - $dynamicModule | Import-Module -Force -} - Describe 'Module' { Context 'Function: Get-NerdFont' { It 'Returns all fonts' { From d93884586660e989077cf94ee27ff44695baca61 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 04:45:59 +0200 Subject: [PATCH 11/15] Add trailing slash to canonical documentation links The PSModule source-code test expects public function help links to use the canonical URL ending in '/'. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/functions/public/Get-NerdFont.ps1 | 2 +- src/functions/public/Install-NerdFont.ps1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/functions/public/Get-NerdFont.ps1 b/src/functions/public/Get-NerdFont.ps1 index 4e1537a..933aacb 100644 --- a/src/functions/public/Get-NerdFont.ps1 +++ b/src/functions/public/Get-NerdFont.ps1 @@ -22,7 +22,7 @@ Get the NerdFont with the name ending with 'Code'. .LINK - https://psmodule.io/NerdFonts/Functions/Get-NerdFont + https://psmodule.io/NerdFonts/Functions/Get-NerdFont/ .NOTES More information about the NerdFonts can be found at: diff --git a/src/functions/public/Install-NerdFont.ps1 b/src/functions/public/Install-NerdFont.ps1 index 17b6aa4..728534a 100644 --- a/src/functions/public/Install-NerdFont.ps1 +++ b/src/functions/public/Install-NerdFont.ps1 @@ -40,7 +40,7 @@ function Install-NerdFont { Installs only the monospace variant of all Nerd Fonts to the current user. .LINK - https://psmodule.io/NerdFonts/Functions/Install-NerdFont + https://psmodule.io/NerdFonts/Functions/Install-NerdFont/ .NOTES More information about the NerdFonts can be found at: From cddeb151d9d0ada46240cef046a5ef78a92c00a0 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 04:48:23 +0200 Subject: [PATCH 12/15] Use concrete MaximumVersion for dependencies Process-PSModule's manifest builder converts MaximumVersion to [System.Version], which does not accept wildcards. Use 1.999.999 as the upper bound until Process-PSModule supports wildcard versions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/functions/public/Install-NerdFont.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/functions/public/Install-NerdFont.ps1 b/src/functions/public/Install-NerdFont.ps1 index 728534a..5d36eda 100644 --- a/src/functions/public/Install-NerdFont.ps1 +++ b/src/functions/public/Install-NerdFont.ps1 @@ -1,5 +1,5 @@ -#Requires -Modules @{ ModuleName = 'Fonts'; ModuleVersion = '1.1.27'; MaximumVersion = '1.*' } -#Requires -Modules @{ ModuleName = 'Admin'; ModuleVersion = '1.1.13'; MaximumVersion = '1.*' } +#Requires -Modules @{ ModuleName = 'Fonts'; ModuleVersion = '1.1.27'; MaximumVersion = '1.999.999' } +#Requires -Modules @{ ModuleName = 'Admin'; ModuleVersion = '1.1.13'; MaximumVersion = '1.999.999' } function Install-NerdFont { <# From df3945dda97ec694460814591d3c438ed708aa8e Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 05:10:09 +0200 Subject: [PATCH 13/15] Skip site build until zensical.toml is configured Process-PSModule v6 requires a zensical.toml documentation config for site generation. The repository does not have one, so skip the site build step to unblock the v6 workflow. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/PSModule.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/PSModule.yml b/.github/PSModule.yml index 60d3f27..6276b1b 100644 --- a/.github/PSModule.yml +++ b/.github/PSModule.yml @@ -16,9 +16,9 @@ Test: # Skip: true # MacOS: # Skip: true -# Build: -# Docs: -# Skip: true +Build: + Site: + Skip: true Linter: env: From 418f1205255dec93734cd1405f05c63ccfed7563 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 05:25:11 +0200 Subject: [PATCH 14/15] Migrate documentation config from mkdocs.yml to zensical.toml Process-PSModule v6 builds the documentation site with Zensical, which expects a zensical.toml configuration file. This replaces the legacy .github/mkdocs.yml with an equivalent .github/zensical.toml so the site build can run instead of being skipped. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/mkdocs.yml | 75 ------------------------------------------- .github/zensical.toml | 73 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 75 deletions(-) delete mode 100644 .github/mkdocs.yml create mode 100644 .github/zensical.toml diff --git a/.github/mkdocs.yml b/.github/mkdocs.yml deleted file mode 100644 index df5e17a..0000000 --- a/.github/mkdocs.yml +++ /dev/null @@ -1,75 +0,0 @@ -site_name: -{{ REPO_NAME }}- -theme: - name: material - language: en - font: - text: Roboto - code: Sono - logo: Assets/icon.png - favicon: Assets/icon.png - palette: - # Palette toggle for automatic mode - - media: "(prefers-color-scheme)" - toggle: - icon: material/link - name: Switch to dark mode - # Palette toggle for dark mode - - media: '(prefers-color-scheme: dark)' - scheme: slate - toggle: - primary: black - accent: green - icon: material/toggle-switch-off-outline - name: Switch to light mode - # Palette toggle for light mode - - media: '(prefers-color-scheme: light)' - scheme: default - toggle: - primary: indigo - accent: green - icon: material/toggle-switch - name: Switch to system preference - icon: - repo: material/github - features: - - navigation.instant - - navigation.instant.progress - - navigation.indexes - - navigation.top - - navigation.tracking - - navigation.expand - - search.suggest - - search.highlight - -repo_name: -{{ REPO_OWNER }}-/-{{ REPO_NAME }}- -repo_url: https://github.com/-{{ REPO_OWNER }}-/-{{ REPO_NAME }}- - -plugins: - - search - -markdown_extensions: - - toc: - permalink: true # Adds a link icon to headings - - attr_list - - admonition - - md_in_html - - pymdownx.details # Enables collapsible admonitions - -extra: - social: - - icon: fontawesome/brands/discord - link: https://discord.gg/jedJWCPAhD - name: -{{ REPO_OWNER }}- on Discord - - icon: fontawesome/brands/github - link: https://github.com/-{{ REPO_OWNER }}-/ - name: -{{ REPO_OWNER }}- on GitHub - consent: - title: Cookie consent - description: >- - We use cookies to recognize your repeated visits and preferences, as well - as to measure the effectiveness of our documentation and whether users - find what they're searching for. With your consent, you're helping us to - make our documentation better. - actions: - - accept - - reject diff --git a/.github/zensical.toml b/.github/zensical.toml new file mode 100644 index 0000000..6359241 --- /dev/null +++ b/.github/zensical.toml @@ -0,0 +1,73 @@ +[project] +site_name = "-{{ REPO_NAME }}-" +repo_name = "-{{ REPO_OWNER }}-/-{{ REPO_NAME }}-" +repo_url = "https://github.com/-{{ REPO_OWNER }}-/-{{ REPO_NAME }}-" + +[project.theme] +variant = "classic" +language = "en" +font.text = "Roboto" +font.code = "Sono" +logo = "Assets/icon.png" +favicon = "Assets/icon.png" +features = [ + "navigation.instant", + "navigation.instant.progress", + "navigation.indexes", + "navigation.top", + "navigation.tracking", + "navigation.expand", + "search.suggest", + "search.highlight", + "content.code.copy" +] + +[[project.theme.palette]] +media = "(prefers-color-scheme)" +toggle.icon = "material/link" +toggle.name = "Switch to dark mode" + +[[project.theme.palette]] +media = "(prefers-color-scheme: dark)" +scheme = "slate" +primary = "black" +accent = "green" +toggle.icon = "material/toggle-switch-off-outline" +toggle.name = "Switch to light mode" + +[[project.theme.palette]] +media = "(prefers-color-scheme: light)" +scheme = "default" +primary = "indigo" +accent = "green" +toggle.icon = "material/toggle-switch" +toggle.name = "Switch to system preference" + +[project.theme.icon] +repo = "material/github" + +[project.plugins.search] + +[project.markdown_extensions.toc] +permalink = true + +[project.markdown_extensions.attr_list] +[project.markdown_extensions.admonition] +[project.markdown_extensions.md_in_html] +[project.markdown_extensions.pymdownx.details] +[project.markdown_extensions.pymdownx.superfences] + +[[project.extra.social]] +icon = "fontawesome/brands/discord" +link = "https://discord.gg/jedJWCPAhD" +name = "-{{ REPO_OWNER }}- on Discord" + +[[project.extra.social]] +icon = "fontawesome/brands/github" +link = "https://github.com/-{{ REPO_OWNER }}-/" +name = "-{{ REPO_OWNER }}- on GitHub" + +[project.extra.consent] +title = "Cookie consent" +description = "We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. With your consent, you're helping us to make our documentation better." +actions = ["accept", "reject"] From f84b94c695ef97904cbe65560991f34c51b69044 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Mon, 3 Aug 2026 05:26:24 +0200 Subject: [PATCH 15/15] Fix zensical.toml syntax Quote dotted extension keys (pymdownx.details, pymdownx.superfences) to comply with TOML bare-key rules, and remove the redundant search plugin section because Zensical enables search by default. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/zensical.toml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/zensical.toml b/.github/zensical.toml index 6359241..f5abd9e 100644 --- a/.github/zensical.toml +++ b/.github/zensical.toml @@ -46,16 +46,14 @@ toggle.name = "Switch to system preference" [project.theme.icon] repo = "material/github" -[project.plugins.search] - [project.markdown_extensions.toc] permalink = true [project.markdown_extensions.attr_list] [project.markdown_extensions.admonition] [project.markdown_extensions.md_in_html] -[project.markdown_extensions.pymdownx.details] -[project.markdown_extensions.pymdownx.superfences] +[project.markdown_extensions."pymdownx.details"] +[project.markdown_extensions."pymdownx.superfences"] [[project.extra.social]] icon = "fontawesome/brands/discord"