b6db145ad1 | ||
---|---|---|
.github | ||
.vscode | ||
docs | ||
schemas | ||
scripts | ||
src | ||
tests/PSDocs.Tests | ||
.editorconfig | ||
.gitignore | ||
.markdownlint.json | ||
.playps.yml | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
GitVersion.yml | ||
LICENSE | ||
PSDocs.sln | ||
README.md | ||
SECURITY.md | ||
SUPPORT.md | ||
ThirdPartyNotices.txt | ||
build.ps1 | ||
modules.json | ||
pipeline.build.ps1 | ||
ps-docs.yaml | ||
ps-project.yaml | ||
ps-rule.yaml |
README.md
PSDocs
A PowerShell module with commands to generate markdown from objects using PowerShell syntax.
Support
This project uses GitHub Issues to track bugs and feature requests. Please search the existing issues before filing new issues to avoid duplicates.
- For new issues, file your bug or feature request as a new issue.
- For help, discussion, and support questions about using this project, join or start a discussion.
Support for this project/ product is limited to the resources listed above.
Getting the modules
You can download and install the PSDocs module from the PowerShell Gallery.
Module | Description | Downloads / instructions |
---|---|---|
PSDocs | Generate markdown from PowerShell | latest / instructions |
For integration modules see related projects.
Getting started
The following example shows basic PSDocs usage. For specific use cases see scenarios.
Define a document
A document provides instructions on how PSDocs should render an object into documentation.
To define a document, create the Document
script block saved to a file with the .Doc.ps1
extension.
For example:
# File: Sample.Doc.ps1
# Define a document called Sample
Document Sample {
# Define content here
}
Within the document body provide one or more instructions.
For example:
# File: Sample.Doc.ps1
# Define a document called Sample
Document Sample {
# Add an introduction section
Section Introduction {
# Add a comment
"This is a sample file list from $TargetObject"
# Generate a table
Get-ChildItem -Path $TargetObject | Table -Property Name,PSIsContainer
}
}
Execute a document
To execute the document use Invoke-PSDocument
.
For example:
Invoke-PSDocument -InputObject 'C:\';
An example of the output generated is available here.
Scenarios
Language reference
PSDocs extends PowerShell with domain specific language (DSL) keywords and cmdlets.
Keywords
The following language keywords are used by the PSDocs
module:
- Document - Defines a named documentation block
- Section - Creates a named section
- Title - Sets the document title
- Code - Inserts a block of code
- BlockQuote - Inserts a block quote
- Note - Inserts a note using DocFx formatted markdown (DFM)
- Warning - Inserts a warning using DocFx formatted markdown (DFM)
- Metadata - Inserts a yaml header
- Table - Inserts a table from pipeline objects
- Include - Insert content from an external file
Commands
The following commands exist in the PSDocs
module:
The following commands exist in the PSDocs.Dsc
module:
Concepts
The following conceptual topics exist in the PSDocs
module:
Related projects
The following projects use or integrate with PSDocs.
Name | Description |
---|---|
PSDocs.Azure | Generate documentation from Azure infrastructure as code (IaC) artifacts. |
PSDocs.Dsc | Extension for PSDocs to generate markdown from Desired State Configuration. |
Changes and versioning
Modules in this repository will use the semantic versioning model to declare breaking changes from v1.0.0. Prior to v1.0.0, breaking changes may be introduced in minor (0.x.0) version increments. For a list of module changes please see the change log.
Pre-release module versions are created on major commits and can be installed from the PowerShell Gallery. Pre-release versions should be considered experimental. Modules and change log details for pre-releases will be removed as standard releases are made available.
Contributing
This project welcomes contributions and suggestions. If you are ready to contribute, please visit the contribution guide.
Code of Conduct
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Maintainers
License
This project is licensed under the MIT License.