Skip to content

Commit

Permalink
Populate online version metadata header for all New-MarkdownHelp calls
Browse files Browse the repository at this point in the history
  • Loading branch information
Sergei Vorobev committed Jun 13, 2016
1 parent 01f33c7 commit 6534fe3
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 7 deletions.
26 changes: 24 additions & 2 deletions src/platyPS/platyPS.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ $script:MODULE_PAGE_LOCALE = "Locale"
$script:MODULE_PAGE_FW_LINK = "Download Help Link"
$script:MODULE_PAGE_HELP_VERSION = "Help Version"

$script:MAML_ONLINE_LINK_DEFAULT_MONIKER = 'Online Version:'

function New-MarkdownHelp
{
[CmdletBinding()]
Expand Down Expand Up @@ -119,6 +121,26 @@ function New-MarkdownHelp
{
# populate template
UpdateMamlObject $mamlObject
if (-not $OnlineVersionUrl)
{
# if it's not passed, we should get it from the existing help
$onlineLink = $mamlObject.Links | Select -First 1
if ($onlineLink)
{
$online = $onlineLink.LinkUri
if ($onlineLink.LinkName -eq $script:MAML_ONLINE_LINK_DEFAULT_MONIKER -or $onlineLink.LinkName -eq $onlineLink.LinkUri)
{
# if links follow standart MS convention or doesn't have name,
# remove it to avoid duplications
$mamlObject.Links.Remove($onlineLink) > $null
}
}
}
else
{
$online = $OnlineVersionUrl
}

$commandName = $mamlObject.Name
# create markdown
if ($NoMetadata)
Expand Down Expand Up @@ -148,7 +170,7 @@ function New-MarkdownHelp

$newMetadata = ($Metadata + @{
$script:EXTERNAL_HELP_FILE_YAML_HEADER = $helpFileName
$script:ONLINE_VERSION_YAML_HEADER = $OnlineVersionUrl
$script:ONLINE_VERSION_YAML_HEADER = $online
})
}

Expand Down Expand Up @@ -1076,7 +1098,7 @@ function SetOnlineVersionUrlLink

if ($OnlineVersionUrl -and ((-not $currentFirstLink) -or ($currentFirstLink.LinkUri -ne $OnlineVersionUrl))) {
$mamlLink = New-Object -TypeName Markdown.MAML.Model.MAML.MamlLink
$mamlLink.LinkName = 'Online Version:'
$mamlLink.LinkName = $script:MAML_ONLINE_LINK_DEFAULT_MONIKER
$mamlLink.LinkUri = $OnlineVersionUrl

# Insert link at the beginning
Expand Down
18 changes: 13 additions & 5 deletions test/Pester/FullLoop.Tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ Import-Module $outFolder\platyPS -Force

Describe 'Full loop for Add-Member cmdlet' {

It 'creates markdown from Add-Member command' {
# run convertion
New-MarkdownHelp -command Add-Member -OutputFolder $outFolder -Force -Encoding ([System.Text.Encoding]::UTF8)
# run convertion
$file = New-MarkdownHelp -command Add-Member -OutputFolder $outFolder -Force -Encoding ([System.Text.Encoding]::UTF8)

It 'generate correct file name' {
$file.FullName | Should Be "$outFolder\Add-Member.md"
}

# test -MarkdownFile piping
$generatedMaml = ls $outFolder\Add-Member.md | New-ExternalHelp -Verbose -OutputPath $outFolder -Force
$generatedMaml = $file | New-ExternalHelp -Verbose -OutputPath $outFolder -Force

It 'generate maml as a valid xml' {
[xml]($generatedMaml | cat -raw) | Should Not Be $null
Expand All @@ -23,6 +25,13 @@ Describe 'Full loop for Add-Member cmdlet' {
$generatedHelpObject = Get-HelpPreview $generatedMaml
$originalHelpObject = Get-Help -Name Microsoft.PowerShell.Utility\Add-Member

Context 'markdown metadata' {
$h = Get-MarkdownMetadata $file
It 'online version is available in metadata and metadat is case-insensitive' {
$h['oNline vErsion'] | Should Be $originalHelpObject.relatedLinks.navigationLink[0].uri
}
}

It 'generate correct Name' {
$generatedHelpObject.Name | Should Be $originalHelpObject.Name
}
Expand Down Expand Up @@ -103,7 +112,6 @@ Describe 'Full loop for Add-Member cmdlet' {
# TODO: rest of properties!!
}


function OutFileAndStripped
{
param([string]$path, [string]$content)
Expand Down

0 comments on commit 6534fe3

Please sign in to comment.