Creare la Guida basata su XML con PlatyPS
Quando si crea un modulo di PowerShell, è sempre consigliabile includere informazioni dettagliate per i cmdlet creati. Se i cmdlet sono implementati in codice compilato, è necessario usare la Guida basata su XML. Questo formato XML è noto come Microsoft Assistance Markup Language (MAML).
La documentazione legacy di PowerShell SDK contiene informazioni dettagliate sulla creazione della Guida per i cmdlet di PowerShell inclusi in moduli. Tuttavia, PowerShell non fornisce strumenti per la creazione della Guida basata su XML. La documentazione dell'SDK illustra la struttura della Guida MAML, ma lascia agli utenti il compito di creare manualmente il contenuto MAML complesso e profondamente annidato.
Questa è l'attività per cui può essere utile il modulo PlatyPS.
Che cos'è PlatyPS?
PlatyPS è uno strumento open source iniziato come progetto hackathon per semplificare la creazione e la manutenzione di MAML. PlatyPS documenta la sintassi dei set di parametri e i singoli parametri per ogni cmdlet nel modulo. PlatyPS crea file markdown strutturati che contengono informazioni sulla sintassi. Non consente di creare descrizioni o fornire esempi.
PlatyPS crea segnaposto per le descrizioni e gli esempi. Dopo aver aggiunto le informazioni necessarie, PlatyPS compila i file markdown in file MAML. Il sistema di Guida di PowerShell supporta anche file della Guida concettuali in formato testo normale (argomenti "about"). PlatyPS offre un cmdlet per creare un modello Markdown strutturato per un nuovo file about, ma questi file about_*.help.txt
devono essere gestiti manualmente.
È possibile includere i file della Guida MAML e di testo con il modulo. PlatyPS può anche essere usato per compilare i file della Guida in un pacchetto CAB che può essere ospitato per la Guida aggiornabile.
Introduzione all'uso di PlatyPS
Per prima cosa, è necessario installare PlatyPS da PowerShell Gallery.
# Install using PowerShellGet 2.x
Install-Module platyps -Force
# Install using PSResourceGet 1.x
Install-PSResource platyps -Force
Dopo aver installato PlatyPS, importare il modulo nella sessione.
Import-Module platyps
Il diagramma di flusso seguente illustra il processo di creazione o aggiornamento del contenuto di riferimento di PowerShell.
Creare contenuto Markdown per un modulo di PowerShell
Importare il nuovo modulo nella sessione. Ripetere questo passaggio per ogni modulo che è necessario documentare.
Eseguire il comando seguente per importare i moduli:
Import-Module <your module name>
Usare PlatyPS per generare file markdown per la pagina del modulo e tutti i cmdlet associati all'interno del modulo. Ripetere questo passaggio per ogni modulo che è necessario documentare.
$OutputFolder = <output path> $parameters = @{ Module = <ModuleName> OutputFolder = $OutputFolder AlphabeticParamsOrder = $true WithModulePage = $true ExcludeDontShow = $true Encoding = [System.Text.Encoding]::UTF8 } New-MarkdownHelp @parameters New-MarkdownAboutHelp -OutputFolder $OutputFolder -AboutName "topic_name"
Se la cartella di output non esiste,
New-MarkdownHelp
la crea. In questo esempioNew-MarkdownHelp
crea un file markdown per ogni cmdlet nel modulo. Crea anche la pagina del modulo in un file denominato<ModuleName>.md
. Questa pagina del modulo contiene un elenco dei cmdlet contenuti nel modulo e i segnaposto per la descrizione della sezione Riepilogo. I metadati nella pagina del modulo provengono dal manifesto del modulo e vengono usati da PlatyPS per creare il file XML HelpInfo (come illustrato di seguito).New-MarkdownAboutHelp
crea una nuovo file about denominatoabout_topic_name.md
.Per altre informazioni, vedere New-MarkdownHelp e New-MarkdownAboutHelp.
Aggiornare il contenuto Markdown esistente quando il modulo viene modificato
PlatyPS può anche aggiornare i file markdown esistenti per un modulo. Usare questo passaggio per aggiornare i moduli esistenti con nuovi cmdlet, nuovi parametri o parametri modificati.
Importare il nuovo modulo nella sessione. Ripetere questo passaggio per ogni modulo che è necessario documentare.
Eseguire il comando seguente per importare i moduli:
Import-Module <your module name>
Usare PlatyPS per aggiornare i file markdown per la pagina di destinazione del modulo e tutti i cmdlet associati all'interno del modulo. Ripetere questo passaggio per ogni modulo che è necessario documentare.
$parameters = @{ Path = <folder with Markdown> RefreshModulePage = $true AlphabeticParamsOrder = $true UpdateInputOutput = $true ExcludeDontShow = $true LogPath = <path to store log file> Encoding = [System.Text.Encoding]::UTF8 } Update-MarkdownHelpModule @parameters
Update-MarkdownHelpModule
aggiorna il cmdlet e i file markdown del modulo nella cartella specificata. Non aggiorna iabout_*.md
file. Il file del modulo (ModuleName.md
) riceve l'eventuale nuovo testo della sezione Riepilogo aggiunto ai file del cmdlet. Gli aggiornamenti ai file dei cmdlet includono le modifiche seguenti:- Nuovi set di parametri
- Nuovi parametri
- Metadati dei parametri aggiornati
- Informazioni sui tipi di input e output aggiornati
Per altre informazioni, vedere Update-MarkdownHelpModule.
Modificare i file markdown nuovi o aggiornati
PlatyPS documenta la sintassi dei set di parametri e dei singoli parametri. Non consente di creare descrizioni o fornire esempi. Le aree specifiche in cui è necessario il contenuto sono racchiuse tra parentesi graffe. ad esempio {{ Fill in the Description }}
È necessario aggiungere un riepilogo, una descrizione del cmdlet, le descrizioni per ogni parametro e almeno un esempio.
Per informazioni dettagliate sulla scrittura di contenuto di PowerShell, vedere gli articoli seguenti:
Nota
PlatyPS ha uno schema specifico usato per i riferimenti ai cmdlet. Questo schema consente solo determinati blocchi Markdown in sezioni specifiche del documento. Se si inserisce contenuto nella posizione sbagliata, il passaggio di compilazione di PlatyPS ha esito negativo. Per altre informazioni, vedere la documentazione relativa allo schema nel repository di PlatyPS. Per un esempio completo di informazioni di riferimento sui cmdlet ben formate, vedere Get-Item.
Dopo aver fornito il contenuto richiesto per ogni cmdlet, è necessario assicurarsi di aggiornare la pagina di destinazione del modulo. Verificare che il modulo includa i valori Module Guid
e Download Help Link
corretti nei metadati YAML del file <module-name>.md
. Aggiungere eventuali metadati mancanti.
Inoltre, è possibile notare che alcuni cmdlet non hanno una sezione Riepilogo (breve descrizione). Il comando seguente aggiorna la pagina di destinazione del modulo con il testo della descrizione del Riepilogo. Aprire la pagina di destinazione del modulo per verificare le descrizioni.
Update-MarkdownHelpModule -Path <full path output folder> -RefreshModulePage
Ora che è stato immesso tutto il contenuto, è possibile creare i file della Guida MAML visualizzati da Get-Help
nella console di PowerShell.
Creare i file della Guida esterni
Questo passaggio consente di creare i file della Guida MAML visualizzati da Get-Help
nella console di PowerShell.
Per compilare i file MAML, eseguire il comando seguente:
New-ExternalHelp -Path <folder with MDs> -OutputPath <output help folder>
New-ExternalHelp
converte tutti i file Markdown del cmdlet in uno o più file MAML. I file about vengono convertiti in file di testo normale con il formato seguente per il nome: about_topic_name.help.txt
. Il contenuto di Markdown deve soddisfare il requisito dello schema PlatyPS. New-ExternalHelp
termina con errori quando il contenuto non segue lo schema. Per correggere le violazioni dello schema, è necessario modificare i file.
Attenzione
PlatyPS offre scarsi risultati per la conversione dei file about_*.md
in testo normale. Per ottenere risultati accettabili, è necessario usare codice Markdown molto semplice. Potrebbe essere preferibile mantenere i file about_topic_name.help.txt
in formato testo normale, anziché consentire a PlatyPS di convertirli.
Al termine di questo passaggio, i file *-help.xml
e about_*.help.txt
saranno disponibili nella cartella di output di destinazione.
Per altre informazioni, vedere New-ExternalHelp
Testare i file della Guida compilati
È possibile verificare il contenuto con il cmdlet Get-HelpPreview:
Get-HelpPreview -Path "<ModuleName>-Help.xml"
Il cmdlet legge il file MAML compilato e restituisce il contenuto nello stesso formato ricevuto da Get-Help
. In questo modo è possibile esaminare i risultati per verificare che i file markdown siano stati compilati correttamente e producano i risultati desiderati. Se si rileva un errore, modificare nuovamente i file markdown e ricompilare il file MAML.
A questo punto i file della Guida sono pronti per la pubblicazione.
Pubblicazione della Guida
Ora che i file markdown sono stati compilati come file della Guida di PowerShell, si è pronti per renderli disponibili agli utenti. Sono disponibili due opzioni per fornire informazioni della Guida nella console di PowerShell.
- Includere i file della Guida nel pacchetto del modulo
- Creare un pacchetto della Guida aggiornabile che gli utenti installano con il cmdlet
Update-Help
Includere i file della Guida nel pacchetto del modulo
I file della Guida possono essere inclusi nel pacchetto del modulo. Vedere Scrittura della Guida per i moduli per informazioni dettagliate sulla struttura di cartelle. È necessario includere l'elenco dei file della Guida nel valore della chiave FileList nel manifesto del modulo.
Creare un pacchetto della Guida aggiornabile
I passaggi generali per creare la Guida aggiornabile includono:
- Trovare un sito Internet per ospitare i file della Guida
- Aggiungere una chiave HelpInfoURI al manifesto del modulo
- Creare un file XML HelpInfo
- Creare i file CAB
- Caricare i file
Per altre informazioni, vedere Supporto per la Guida aggiornabile: procedura dettagliata.
PlatyPS ti assiste con alcuni di questi passaggi.
HelpInfoURI è un URL che punta alla posizione in cui sono ospitati i file della Guida in Internet. Questo valore viene configurato nel manifesto del modulo. Update-Help
legge il manifesto del modulo per ottenere questo URL e scaricare il contenuto della Guida aggiornabile. Questo URL deve puntare solo al percorso della cartella e non ai singoli file. Update-Help
costruisce i nomi di file da scaricare in base ad altre informazioni dal manifesto del modulo e dal file XML HelpInfo.
Importante
HelpInfoURI deve terminare con un carattere barra rovesciata (/
). Senza tale carattere, Update-Help
non è possibile costruire i percorsi di file corretti per scaricare il contenuto. Inoltre, la maggior parte dei servizi file basati su HTTP distingue tra maiuscole e minuscole. È importante che i metadati del modulo nel file XML HelpInfo contengano la lettera maiuscola corretta.
Il cmdlet New-ExternalHelp
crea il file XML HelpInfo nella cartella di output. Il file XML HelpInfo viene compilato usando i metadati YAML contenuti nei file markdown del modulo (ModuleName.md
).
Il cmdlet New-ExternalHelpCab
crea file ZIP e CAB contenenti i file MAML e about_*.help.txt
compilati. I file CAB sono compatibili con tutte le versioni di PowerShell.
PowerShell 6 e versioni successive possono usare file ZIP.
$helpCabParameters = @{
CabFilesFolder = $MamlOutputFolder
LandingPagePath = $LandingPage
OutputFolder = $CabOutputFolder
}
New-ExternalHelpCab @helpCabParameters
Dopo aver creato i file ZIP e CAB, caricare i file ZIP, CAB e XML HelpInfo nel file server HTTP. Posizionare i file nel percorso indicato da HelpInfoURI.
Per altre informazioni, vedere New-ExternalHelpCab.
Altre opzioni di pubblicazione
Markdown è un formato versatile che è facile da trasformare in altri formati per la pubblicazione. Usando uno strumento come Pandoc, è possibile convertire i file della Guida Markdown in molti formati diversi di documenti, inclusi i formati testo normale, HTML, PDF e Office.
Inoltre, i cmdlet ConvertFrom-Markdown e Show-Markdown in PowerShell 6 e versioni successive possono essere usati per convertire codice Markdown in HTML o creare una visualizzazione colorata nella console di PowerShell.
Problemi noti
PlatyPS è molto rigoroso nel rispettare lo schema per la struttura dei file markdown creati e compilati. È molto facile scrivere markdown valido che viola questo schema. Per altre informazioni, vedere la guida di stile di PowerShell e gli articoli di riferimento sulla modifica.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per