6

有谁知道用于生成 PowerShell cmdlet 帮助文件的实用程序?手动操作似乎有点乏味...

我找到了:http: //blogs.msdn.com/powershell/archive/2007/09/01/new-and-improved-cmdlet-help-editor-tool.aspx

有更新版本吗?我无法选择模块。我有一个二进制模块。

4

5 回答 5

4

我创建了一个 Powershell 脚本,该脚本将为 cmdlet 和函数生成 MAML,无论它们是否属于模块。它并不完美,因为生成的 MAML 需要一些手动编辑,但您引用的 cmdlet 帮助编辑器也是如此。我在这里有一篇关于它的博客文章

如果您使用它并找到更正,请随时更新PoshCode 上的脚本

于 2010-03-03T12:36:58.310 回答
1

我必须记录我的模块,但没有找到比创建自己的 MAML 帮助构建器更好的解决方案。这里是: https ://github.com/nightroman/Helps

该模块从 PowerShell 帮助脚本构建 PowerShell MAML 帮助文件。帮助脚本几乎是所见即所得,它们看起来与结果帮助非常相似。尽管如此,它们只是脚本,这使得许多有用的功能变得容易。其中之一是为多种文化构建帮助文件。

以下是命令(cmdlet、函数、脚本)和提供程序的帮助数据模板:

### Command help data

@{
    command = 'Name'
    synopsis = '...'
    description = '...'
    sets = @{
        Set1 = '...'
        #...
    }
    parameters = @{
        Param1 = '...'
        #...
    }
    inputs = @(
        @{
            type = '...'
            description = '...'
        }
        #...
    )
    outputs = @(
        @{
            type = '...'
            description = '...'
        }
        #...
    )
    notes = '...'
    examples = @(
        @{
            title = '...'
            introduction = '...'
            code = {
            }
            remarks = '...'
            test = {
                . $args[0]
            }
        }
        #...
    )
    links = @(
        @{
            text = '...'
            URI = '...'
        }
        #...
    )
}

### Provider help data

@{
    provider = 'Name'
    drives = '...'
    synopsis = '...'
    description = '...'
    capabilities = '...'
    tasks = @(
        @{
            title = '...'
            description = '...'
            examples = @(
                @{
                    title = '...'
                    introduction = '...'
                    code = {
                    }
                    remarks = '...'
                    test = {
                        . $args[0]
                    }
                }
            )
        }
        #...
    )
    parameters = @(
        @{
            name = '...'
            type = '...'
            description = '...'
            cmdlets = '...'
            values = @(
                @{
                    value = '...'
                    description = '...'
                }
                #...
            )
        }
        #...
    )
    notes = '...'
    links = @(
        @{
            text = '...'
            URI = '...'
        }
        #...
    )
}
于 2011-08-04T18:21:44.487 回答
1

随着开源XmlDoc2CmdletDoc的出现,您现在可以像任何其他 C# 库一样记录二进制PowerShell cmdlet(即用 C# 编写的那些),并且就像脚本化cmdlet(那些用 PowerShell 编写的)一样:使用内联文档注释。

您不再需要手动维护并行MAML文件!只需检测您的构建,以便当您重新编译 C# 项目时,它会执行文档生成器,并且您会同时获得一个module . dll和一个模块dll-Help.xml。PowerShell 直接使用后者在您调用Get-Help.

XmlDoc2CmdletDoc 甚至提供了一个-strict开关来确保您已经全面记录了您的 cmdlet;如果您使用开关并且错过了某些内容,那么您的构建将失败,因为它应该。

XmlDoc2CmdletDoc 自动提供的其他好处(此列表中的“部分”是指由 提供的帮助部分Get-Help):

  • 输出部分中的每个自定义类型都包含一个描述。
  • 语法部分包括枚举类型的可能值。
  • 参数部分包括枚举类型的可能值。
  • 别名会自动记录在“参数”部分。
  • 别名被视为一等参数,因此您可以就别名寻求帮助。
  • 您可以选择在输入部分对参数使用不同的描述,就像对参数部分的描述一样。
  • Web 链接会自动以 markdown 格式呈现,以便对实时链接进行可能的后处理。(此增强功能待定。)

我非常喜欢这个开源实用程序,因此我开始为它做出贡献,提供了上述几个好处。我写了一个使用它的综合指南,题为记录你的 PowerShell 二进制Cmdlets,刚刚发布在 Simple-Talk.com 上。

于 2015-12-10T22:38:21.260 回答
0

我一直在寻找一种将文档嵌入到 snapin/module C# 代码中的方法,而PoshBuild开始看起来像是我的最佳选择。它没有提供包含某些文档元素(例如,概要和示例)的方法,但它仍然是一个不错的选择。

于 2011-09-02T17:37:52.740 回答
0

在用于编辑 XML PowerShell 帮助 (PSMAML) 的图形工具方面,您可以使用:

于 2015-11-21T10:54:35.500 回答