PowerShell MAML帮助生成器

时间:2010-03-02 22:27:25

标签: powershell maml

有没有人知道用于生成PowerShell cmdlet帮助文件的实用程序?手工做似乎有点乏味......

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

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

5 个答案:

答案 0 :(得分:4)

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

如果您使用它并找到更正,请随时更新the script on PoshCode

答案 1 :(得分:1)

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

该模块从PowerShell帮助脚本构建PowerShell MAML帮助文件。 帮助脚本几乎是WYSIWYG,它们看起来非常类似于结果帮助。 尽管如此,它们只是脚本,这使得许多有用的功能变得简单。 其中一个是为多种文化构建帮助文件。

以下是命令(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 = '...'
        }
        #...
    )
}

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

您不再需要手动维护并行MAML文件!只需检测您的构建,以便在重新编译C#项目时执行文档生成器,并获得模块 dll 模块。的 DLL-Help.xml 即可。当您调用Get-Help时,PowerShell直接使用后者来为您的cmdlet提供帮助。

XmlDoc2CmdletDoc甚至提供-strict开关,以确保您全面记录了cmdlet;如果你使用了这个开关而你错过了某些东西,那么你的构建将失败,就像它应该的那样。

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

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

我非常喜欢这个开源实用程序,所以我开始为它做出贡献,提供了上述几个好处。我写了一篇关于使用它的综合指南,名为Documenting Your PowerShell Binary Cmdlets,刚刚发布在Simple-Talk.com上。