protected override void ProcessRecord() { var helpInfos = HelpInfo.Select(hi => hi.ToPsHelpInfo()); var variantGroups = FunctionInfo.Select(fi => fi.BaseObject).Cast <FunctionInfo>() .Join(helpInfos, fi => fi.Name, phi => phi.CmdletName, (fi, phi) => fi.ToVariants(phi)) .Select(va => new VariantGroup(ModuleInfo.Name, va.First().CmdletName, va, String.Empty)); WriteMarkdowns(variantGroups, ModuleInfo.ToModuleInfo(), DocsFolder, ExamplesFolder); }
protected override void ProcessRecord() { try { var helpInfos = HelpInfo.Select(hi => hi.ToPsHelpInfo()); var variantGroups = FunctionInfo.Select(fi => fi.BaseObject).Cast <FunctionInfo>() .Join(helpInfos, fi => fi.Name, phi => phi.CmdletName, (fi, phi) => fi.ToVariants(phi)) .Select(va => new VariantGroup(ModuleInfo.Name, va.First().CmdletName, va, String.Empty)); WriteMarkdowns(variantGroups, ModuleInfo.ToModuleInfo(), DocsFolder, ExamplesFolder); } catch (Exception ee) { Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); throw ee; } }
protected override void ProcessRecord() { Directory.CreateDirectory(DocsFolder); var variantGroups = FunctionInfo.Select(fi => fi.BaseObject).Cast <FunctionInfo>() .Select(fi => fi.ToVariants()) .Select(va => new VariantGroup(va.First().CmdletName, va, String.Empty)) .ToArray(); var helpInfos = HelpInfo.Select(hi => hi.ToPsHelpInfo()).ToArray(); var markdownInfos = variantGroups.Join(helpInfos, vg => vg.CmdletName, phi => phi.CmdletName, (vg, phi) => new MarkdownHelpInfo(vg, phi, ExamplesFolder)).ToArray(); foreach (var markdownInfo in markdownInfos) { var sb = new StringBuilder(); sb.Append(markdownInfo.ToHelpMetadataOutput()); sb.Append($"# {markdownInfo.CmdletName}{Environment.NewLine}{Environment.NewLine}"); sb.Append($"## SYNOPSIS{Environment.NewLine}{markdownInfo.Synopsis.ReplaceSentenceEndWithNewline()}{Environment.NewLine}{Environment.NewLine}"); sb.Append($"## SYNTAX{Environment.NewLine}{Environment.NewLine}"); var hasMultipleParameterSets = markdownInfo.SyntaxInfos.Length > 1; foreach (var syntaxInfo in markdownInfo.SyntaxInfos) { sb.Append(syntaxInfo.ToHelpSyntaxOutput(hasMultipleParameterSets)); } sb.Append($"## DESCRIPTION{Environment.NewLine}{markdownInfo.Description.ReplaceSentenceEndWithNewline()}{Environment.NewLine}{Environment.NewLine}"); sb.Append($"## EXAMPLES{Environment.NewLine}{Environment.NewLine}"); foreach (var exampleInfo in markdownInfo.Examples) { sb.Append(exampleInfo.ToHelpExampleOutput()); } sb.Append($"## PARAMETERS{Environment.NewLine}{Environment.NewLine}"); foreach (var parameter in markdownInfo.Parameters) { sb.Append(parameter.ToHelpParameterOutput()); } if (markdownInfo.SupportsShouldProcess) { foreach (var parameter in SupportsShouldProcessParameters) { sb.Append(parameter.ToHelpParameterOutput()); } } if (markdownInfo.SupportsPaging) { foreach (var parameter in SupportsPagingParameters) { sb.Append(parameter.ToHelpParameterOutput()); } } sb.Append($"### CommonParameters{Environment.NewLine}This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).{Environment.NewLine}{Environment.NewLine}"); sb.Append($"## INPUTS{Environment.NewLine}{Environment.NewLine}"); foreach (var input in markdownInfo.Inputs) { sb.Append($"### {input}{Environment.NewLine}{Environment.NewLine}"); } sb.Append($"## OUTPUTS{Environment.NewLine}{Environment.NewLine}"); foreach (var output in markdownInfo.Outputs) { sb.Append($"### {output}{Environment.NewLine}{Environment.NewLine}"); } sb.Append($"## ALIASES{Environment.NewLine}{Environment.NewLine}"); foreach (var alias in markdownInfo.Aliases) { sb.Append($"### {alias}{Environment.NewLine}{Environment.NewLine}"); } sb.Append($"## NOTES{Environment.NewLine}{Environment.NewLine}"); if (markdownInfo.ComplexInterfaceInfos.Any()) { sb.Append($"### {ComplexParameterHeader}"); } foreach (var complexInterfaceInfo in markdownInfo.ComplexInterfaceInfos) { sb.Append($"#### {complexInterfaceInfo.ToNoteOutput(includeDashes: true, includeBackticks: true)}{Environment.NewLine}{Environment.NewLine}"); } sb.Append($"## RELATED LINKS{Environment.NewLine}{Environment.NewLine}"); foreach (var relatedLink in markdownInfo.RelatedLinks) { sb.Append($"{relatedLink}{Environment.NewLine}{Environment.NewLine}"); } File.WriteAllText(Path.Combine(DocsFolder, $"{markdownInfo.CmdletName}.md"), sb.ToString()); } WriteModulePage(markdownInfos); }