<#
.SYNOPSIS
Generates the MDX files used for your website's "Command Reference" pages.
#>
param (
[Parameter(Mandatory = $True)][string] $Module,
[Parameter(Mandatory = $False)][string] $ModuleVersion
)
Set-StrictMode -Version Latest
$PSDefaultParameterValues['*:ErrorAction'] = "Stop"
# 1. Fetch/Define module versions
$modules = @{}
if ($ModuleVersion) {
$modules.$Module = $ModuleVersion
} else {
$modules.$Module = (Find-Module -Name $Module).Version
}
$modules."Alt3.Docusaurus.Powershell" = (Find-Module -Name Alt3.Docusaurus.Powershell).Version
$modules.PlatyPS = (Find-Module -Name PlatyPS).Version
# 2. Install and Import required modules
$modules.GetEnumerator() | ForEach-Object {
if (-not ((Get-Module -ListAvailable $_.Name).Version -contains $_.Value)) {
Install-Module $_.Name -RequiredVersion $_.Value -Force -SkipPublisherCheck -AllowClobber -Scope CurrentUser
}
Import-Module -Name $_.Name -RequiredVersion $_.Value -Force
}
# 3. Configure generation options
$docusaurusOptions = @{
Module = $Module
DocsFolder = "./docs"
SideBar = "commands"
EditUrl = "null" # Prevents 'Edit this Page' button
Exclude = @("Get-DummyFunction")
MetaDescription = 'Help page for the "%1" command'
MetaKeywords = @("PowerShell", "Help", "Documentation")
AppendMarkdown = "## EDIT THIS PAGE`nThis page was auto-generated using the comment based help in $($Module) $($modules.$Module)."
}
# 4. Generate MDX files
Push-Location $PSScriptRoot
$outputFolder = Join-Path -Path $docusaurusOptions.DocsFolder -ChildPath $docusaurusOptions.Sidebar | Join-Path -ChildPath "*.*"
if (Test-Path -Path $outputFolder) { Remove-Item -Path $outputFolder }
New-DocusaurusHelp @docusaurusOptions
Pop-Location