{"id":13599486,"url":"https://github.com/iainbrighton/PScribo","last_synced_at":"2025-04-10T12:33:03.689Z","repository":{"id":1975031,"uuid":"42396825","full_name":"iainbrighton/PScribo","owner":"iainbrighton","description":"PowerShell documentation framework","archived":false,"fork":false,"pushed_at":"2023-06-21T20:29:58.000Z","size":1067,"stargazers_count":228,"open_issues_count":19,"forks_count":35,"subscribers_count":27,"default_branch":"dev","last_synced_at":"2024-08-02T17:37:21.814Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iainbrighton.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2015-09-13T13:29:25.000Z","updated_at":"2024-06-30T20:01:03.000Z","dependencies_parsed_at":"2023-07-06T01:53:26.269Z","dependency_job_id":null,"html_url":"https://github.com/iainbrighton/PScribo","commit_stats":{"total_commits":175,"total_committers":8,"mean_commits":21.875,"dds":"0.22285714285714286","last_synced_commit":"ff757591c40b9665fea4206113059d0d51534db6"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iainbrighton%2FPScribo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iainbrighton%2FPScribo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iainbrighton%2FPScribo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iainbrighton%2FPScribo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iainbrighton","download_url":"https://codeload.github.com/iainbrighton/PScribo/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223437703,"owners_count":17144972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T17:01:05.027Z","updated_at":"2024-11-07T00:32:07.494Z","avatar_url":"https://github.com/iainbrighton.png","language":"PowerShell","funding_links":[],"categories":["PowerShell","Documentation Helper"],"sub_categories":[],"readme":"[![Build status](https://ci.appveyor.com/api/projects/status/wxh7sa8llmgosdhe?svg=true)](https://ci.appveyor.com/project/iainbrighton/pscribo)\n![Platforms](https://img.shields.io/powershellgallery/p/PScribo.svg)\n![Version](https://img.shields.io/powershellgallery/v/PScribo.svg)\n![Downloads](https://img.shields.io/powershellgallery/dt/PScribo.svg)\n\n# PScribo (Preview) #\n\n_PScribo_ (pronounced 'skree-bo') is an open-source project that implements a documentation domain-specific language\n(DSL) for PowerShell (Core) and Windows PowerShell, used to create a \"document\" in a standardised format. The resulting \"document\" can be\nexported into various formats by \"plugins\", for example, text, HTML, XML and/or Microsoft Word format.\n\nPScribo provides a set of functions that make it easy to create a document-like structure within Powershell scripts\nwithout having to be concerned with handling output formatting or supporting multiple output formats.\n\n## Authoring Example ##\n\n```powershell\nImport-Module PScribo\n\nDocument 'PScribo Example' {\n\n    Paragraph -Style Heading1 'This is Heading 1'\n    Paragraph -Style Heading2 'This is Heading 2'\n    Paragraph -Style Heading3 'This is Heading 3'\n    Paragraph 'This is a regular line of text indented 0 tab stops'\n    Paragraph -Tabs 1 'This is a regular line of text indented 1 tab stops. This text should not be displayed as a hanging indent, e.g. not just the first line of the paragraph indented.'\n    Paragraph -Tabs 2 'This is a regular line of text indented 2 tab stops'\n    Paragraph -Tabs 3 'This is a regular line of text indented 3 tab stops'\n    Paragraph 'This is a regular line of text in the default font in italics' -Italic\n    Paragraph 'This is a regular line of text in the default font in bold' -Bold\n    Paragraph 'This is a regular line of text in the default font in bold italics' -Bold -Italic\n    Paragraph 'This is a regular line of text in the default font in 14 point' -Size 14\n    Paragraph 'This is a regular line of text in Courier New font' -Font 'Courier New'\n    Paragraph \"This is a regular line of text indented 0 tab stops with the computer name as data: $env:COMPUTERNAME\"\n    Paragraph \"This is a regular line of text indented 0 tab stops with the computer name as data in bold: $env:COMPUTERNAME\" -Bold\n    Paragraph \"This is a regular line of text indented 0 tab stops with the computer name as data in bold italics: $env:COMPUTERNAME\" -Bold -Italic\n    Paragraph \"This is a regular line of text indented 0 tab stops with the computer name as data in 14 point bold italics: $env:COMPUTERNAME\" -Bold -Italic -Size 14\n    Paragraph \"This is a regular line of text indented 0 tab stops with the computer name as data in 8 point Courier New bold italics: $env:COMPUTERNAME\" -Bold -Italic -Size 8 -Font 'Courier New'\n\n    PageBreak\n\n    $services = Get-CimInstance -ClassName Win32_Service | Select-Object -Property DisplayName, State, StartMode | Sort-Object -Property DisplayName\n\n    Style -Name 'Stopped Service' -Color White -BackgroundColor Firebrick -Bold\n\n    Section -Style Heading1 'Standard-Style Tables' {\n        Section -Style Heading2 'Autofit Width Autofit Cell No Highlighting' {\n            Paragraph -Style Heading3 'Example of an autofit table width, autofit contents and no cell highlighting.'\n            Paragraph \"Services ($($services.Count) Services found):\"\n            $services | Table -Columns DisplayName,State,StartMode -Headers 'Display Name','Status','Startup Type' -Width 0\n        }\n    }\n\n    PageBreak\n\n    Section -Style Heading2 'Full Width Autofit Cell Highlighting' {\n        Paragraph -Style Heading3 'Example of a full width table with autofit columns and individual cell highlighting.'\n        Paragraph \"Services ($($services.Count) Services found):\"\n        \u003c# Highlight individual cells with \"StoppedService\" style where state = stopped and startup = auto #\u003e\n        $stoppedAutoServicesCell = $services.Clone()\n        $stoppedAutoServicesCell | Where { $_.State -eq 'Stopped' -and $_.StartMode -eq 'Auto'} | Set-Style -Property State -Style StoppedService\n        $stoppedAutoServicesCell | Table -Columns DisplayName,State,StartMode -Headers 'Display Name','Status','Startup Type' -Tabs 1\n    }\n\n} | Export-Document -Path ~\\Desktop -Format Word,Html,Text -Verbose\n```\n\nFor more detailed infomation on the documentation DSL, see\n[about_PScriboDocument](https://raw.githubusercontent.com/iainbrighton/PScribo/dev/en-US/about_PScriboDocument.help.txt). For more detailed examples, see\n[about_PScriboExamples](https://raw.githubusercontent.com/iainbrighton/PScribo/dev/en-US/about_PScriboExamples.help.txt)\n\n\nPScribo can export documentation in a variety of formats and currently supports creation of text, xml, html and Microsoft Word formats. For more detailed infomation on the plugins and output customisations, see\n[about_PScriboPlugins](https://raw.githubusercontent.com/iainbrighton/PScribo/dev/en-US/about_PScriboPlugins.help.txt).\n\n### Example Html Output ###\n\n![](./ExampleHtmlOutput.png)\n\n[Example Html Document Download](https://raw.githubusercontent.com/iainbrighton/PScribo/dev/PScriboExample.html)\n\n### Example Word Output ###\n\n![](./ExampleWordOutput.png)\n\n[Example Word Document Download](https://raw.githubusercontent.com/iainbrighton/PScribo/dev/PScriboExample.docx)\n\n### Example Text Output ###\n\n![](./ExampleTextOutput.png)\n\n[Example text Document Download](https://raw.githubusercontent.com/iainbrighton/PScribo/dev/PScriboExample.txt)\n\n### Example Json Output ###\n\n![](./ExampleJsonOutput.png)\n\n[Example Json Document Download](https://raw.githubusercontent.com/iainbrighton/PScribo/dev/PScriboExample.json)\n\nIf you find it useful, unearth any bugs or have any suggestions for improvements,\nfeel free to add an [issue](https://github.com/iainbrighton/PScribo/issues) or\nplace a comment at the project home page.\n\n## Installation ##\n\nThe _PScribo_ __preview__ is currently available as a Powershell module in the\n[PowerShell gallery](https://www.powershellgallery.com/items?q=pscribo) and requires __Powershell 3.0__ or later. PScribo is supported on both Windows PowerShell and PowerShell Core (including Linux and macOS support).\n\n* Automatic (via PowerShell Gallery)\n\n  * Run `Install-Module PScribo`.\n  * Run `Import-Module PScribo`.\n* Manual\n\n  * Download and unblock the latest .zip file.\n  * Extract the .zip into your $PSModulePath, e.g. `~\\Documents\\WindowsPowerShell\\Modules\\`.\n  * Ensure the extracted folder is named `PScribo`.\n  * Run 'Import-Module `PScribo`.\n\nFor an introduction to the PScribo framework, you can view the presentation given at the\n[PowerShell Summit Europe 2015](https://www.youtube.com/watch?v=pNIC70bjBZE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiainbrighton%2FPScribo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiainbrighton%2FPScribo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiainbrighton%2FPScribo/lists"}