PowerShell MAML Справочный генератор

Кто-нибудь знает утилиту для генерации файлов справки по командлету PowerShell? Делать это вручную кажется немного утомительным...

Я нашел: http://blogs.msdn.com/powershell/archive/2007/09/01/new-and-improved-cmdlet-help-editor-tool.aspx

Какие-нибудь обновленные версии? Я не могу выбрать модуль. У меня есть двоичный модуль.

5 ответов

Решение

Я создал скрипт Powershell, который будет генерировать MAML для командлетов и функций независимо от того, являются ли они частью модулей. Он не идеален, так как сгенерированный MAML потребует некоторого ручного редактирования, но так же, как и командлет-редактор, на который вы ссылались. У меня есть пост в блоге об этом здесь

Если вы используете его и найдете исправления, не стесняйтесь обновить скрипт на PoshCode.

С появлением XmlDoc2CmdletDoc с открытым исходным кодом вы теперь можете задокументировать ваши двоичные командлеты PowerShell (т.е. написанные на C#), как любые другие библиотеки C#, и так же, как скриптовые командлеты (написанные в PowerShell): используйте комментарии к встроенной документации.

Вам больше не нужно поддерживать параллельный MAML- файл вручную! Просто настройте сборку так, чтобы при перекомпиляции проекта C# он выполнял генератор документации, и вы оба получали модуль. DLL и модуль. dll-Help.xml. Последний напрямую используется PowerShell для предоставления справки по вашим командлетам при вызове Get-Help,

И XmlDoc2CmdletDoc даже предлагает -strict переключитесь, чтобы убедиться, что вы полностью документировали свои командлеты; если вы используете коммутатор и что-то пропустили, сборка завершится неудачно, как и должно быть.

Другие преимущества, автоматически предоставляемые XmlDoc2CmdletDoc ("разделы" в этом списке относятся к разделам справки, представленным Get-Help):

  • Каждый пользовательский тип в разделе " Выходы " содержит описание.
  • Раздел Синтаксис содержит возможные значения для перечисляемых типов.
  • Раздел Parameter содержит возможные значения для перечисляемых типов.
  • Псевдонимы документируются автоматически в разделе " Параметры ".
  • Псевдонимы рассматриваются как первоклассные параметры, поэтому вы можете обратиться за помощью к псевдониму.
  • При желании вы можете использовать другое описание для параметра в разделе " Входы ", как для раздела " Параметры ".
  • Веб-ссылки автоматически отображаются в формате уценки для возможной последующей обработки живых ссылок. (Это улучшение ожидается.)

Мне очень понравилась эта утилита с открытым исходным кодом, и я начал вносить в нее свой вклад, предоставляя несколько из перечисленных выше преимуществ. И я написал подробное руководство по его использованию под названием " Документирование ваших двоичных команд PowerShell", только что опубликованное на Simple-Talk.com.

Мне пришлось документировать свой модуль, и я не нашел лучшего решения, чем создать свой собственный помощник по MAML. Вот оно: https://github.com/nightroman/Helps

Модуль создает файлы справки PowerShell MAML из сценариев справки PowerShell. Сценарии справки почти WYSIWYG, они очень похожи на результат помощи. Тем не менее, они просто сценарии, и это облегчает многие полезные функции. Одним из них является создание файлов справки для нескольких культур.

Вот шаблон справочных данных для команд (командлет, функции, сценарии) и поставщиков:

### 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 = '...'
        }
        #...
    )
}

Я искал способ встроить документацию в код C# оснастки / модуля, и PoshBuild начинает выглядеть как мой лучший вариант. Он не позволяет включать некоторые элементы документации (например, резюме и примеры), но все же это хороший вариант.

С точки зрения графических инструментов для редактирования справки XML PowerShell (PSMAML) вы можете использовать:

Другие вопросы по тегам