src/documentation/Build-Documentation.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using module .\.\MKDocumentationInfo.psm1

function Build-Documentation {
    [CmdletBinding(PositionalBinding = $true, 
        DefaultParameterSetName = "ByPath")]
    Param
    (
        [Parameter(Mandatory = $false,
            Position = 0,
            ValueFromPipeline = $false, 
            ParameterSetName = "ByPath")]
        [string]$Path = '.',

        [Parameter(Mandatory = $false)]
        [string]$MarkdownFolder = 'docs',

        [Parameter(Mandatory = $false)]
        [string]$Locale = 'en-US',
        
        [Parameter(Mandatory = $false)]
        [string]$OnlineVersionUrlTemplate = '',

        [Parameter(Mandatory = $false)]
        [ValidateSet("Auto", "Omit")]
        [string]$OnlineVersionUrlPolicy = 'Auto',
        
        [switch]
        $NoReImportModule,

        [switch]
        $Force
    )

    DynamicParam {
        return GetModuleNameSet -Position 0 -Mandatory 
    }
    
    begin {
        # Output Field Separator - default is ' '
        $OFS = ''
        
        $Name = $PSBoundParameters['Name']

        $DocInfo = [MKDocumentationInfo]::new(
            $Name,
            $Path,
            $MarkdownFolder,
            $Locale,
            $OnlineVersionUrlTemplate,
            $OnlineVersionUrlPolicy,
            $MarkdownSnippetCollection,
            $NoReImportModule.IsPresent
        )
    }

    end {
        Write-Host ("PowerBolt is now building documentation for " + $DocInfo.ModuleName) -ForegroundColor Green

        Write-Output $DocInfo | `
            Build-PlatyPSMarkdown -Force:$Force.IsPresent | `
            New-ExternalHelpFromPlatyPSMarkdown | `
            Update-ReadmeFromPlatyPSMarkdown

        $OFS = ' '
    }
}