azure-sdk-for-cpp/eng/scripts/docs/Docs-ToC.ps1
Daniel Jurek 20ee0acdf5
learn.microsoft.com docs onboarding engsys (#6818)
* Add metadata fetching

* Update docindex.yml to use new params and variables

* Add onboarding logic and update .gitignore to allow eng/scripts/docs edits

* Test: point to different branch

* Skip onboarding legacy moniker

* Add docs to release process

* REVERT: Test eng/common changes to Update-DocsMsPackages.ps1

* Remove nightly branch work, those require hosted docs

* Make CHANGELOG.md comply with rules

* Fix relevant spelling issues

* TEST: Add GitHub token

* Branch

* push branch

* Set DefinitionId

* Test branch

* Token

* Remove unnecessary condition

* Commitish

* Specify monikers

* Revert test-related changes
2025-12-02 13:26:51 -08:00

86 lines
3.0 KiB
PowerShell

function GetOnboardingFile($docRepoLocation, $moniker) {
$packageOnboardingFile = "$docRepoLocation/ci-configs/packages-latest.json"
if ("preview" -eq $moniker) {
$packageOnboardingFile = "$docRepoLocation/ci-configs/packages-preview.json"
}
return $packageOnboardingFile
}
# $GetOnboardedDocsMsPackagesFn = "Get-${Language}-OnboardedDocsMsPackages"
function Get-cpp-OnboardedDocsMsPackages($DocRepoLocation) {
$packageOnboardingFiles = @(
"$DocRepoLocation/ci-configs/packages-latest.json",
"$DocRepoLocation/ci-configs/packages-preview.json")
$onboardedPackages = @{}
foreach ($file in $packageOnboardingFiles) {
$onboardingSpec = ConvertFrom-Json (Get-Content $file -Raw)
foreach ($spec in $onboardingSpec.packages) {
$packageName = $spec.name
$onboardedPackages[$packageName] = $null
}
}
return $onboardedPackages
}
# $GetOnboardedDocsMsPackagesForMonikerFn = "Get-${Language}-OnboardedDocsMsPackagesForMoniker"
function Get-cpp-OnboardedDocsMsPackagesForMoniker($DocRepoLocation, $moniker) {
$packageOnboardingFile = GetOnboardingFile `
-docRepoLocation $DocRepoLocation `
-moniker $moniker
$onboardedPackages = @{}
$onboardingSpec = ConvertFrom-Json (Get-Content $packageOnboardingFile -Raw)
foreach ($spec in $onboardingSpec.packages) {
$jsonFile = "$DocRepoLocation/metadata/$($moniker)/$($spec.name).json"
if (Test-Path $jsonFile) {
$onboardedPackages[$spec.name] = ConvertFrom-Json (Get-Content $jsonFile -Raw)
}
else {
$onboardedPackages[$spec.name] = $null
}
}
return $onboardedPackages
}
# $GetPackageLevelReadmeFn = "Get-${Language}-PackageLevelReadme"
function Get-cpp-PackageLevelReadme($packageMetadata) {
return GetPackageReadmeName -packageMetadata $packageMetadata
}
function GetPackageReadmeName($packageMetadata) {
# Fallback to get package-level readme name if metadata file info does not exist
$packageLevelReadmeName = $packageMetadata.Package.ToLower().Replace('azure-', '')
# If there is a metadata json for the package use the DocsMsReadmeName from
# the metadata function
if ($packageMetadata.PSObject.Members.Name -contains "FileMetadata") {
$readmeMetadata = &$GetDocsMsMetadataForPackageFn -PackageInfo $packageMetadata.FileMetadata
$packageLevelReadmeName = $readmeMetadata.DocsMsReadMeName
}
return $packageLevelReadmeName
}
# $GetDocsMsTocDataFn = "Get-${Language}-DocsMsTocData"
function Get-cpp-DocsMsTocData($packageMetadata, $docRepoLocation) {
$packageLevelReadmeName = GetPackageReadmeName -packageMetadata $packageMetadata
$packageTocHeader = GetDocsTocDisplayName $packageMetadata
$output = [PSCustomObject]@{
PackageLevelReadmeHref = "~/docs-ref-services/{moniker}/$packageLevelReadmeName-readme.md"
PackageTocHeader = $packageTocHeader
TocChildren = @($packageMetadata.Package)
}
return $output
}
# $GetRepositoryLinkFn = "Get-${Language}-RepositoryLink"
function Get-cpp-RepositoryLink($packageInfo) {
return "$PackageRepositoryUri/$($packageInfo.Package)-cpp"
}