Scroll Top
Evotec Services sp. z o.o., ul. DrozdΓ³w 6, MikoΕ‚Γ³w, 43-190, Poland

PSWriteHTML PowerShell Module

PSWriteHTML - PowerShell Module

wakatime

PSWriteHTML is PowerShell Module to generate beautiful HTML reports, pages, emails without any knowledge of HTML, CSS or JavaScript. To get started basics PowerShell knowledge is required. PSWriteHTML is a fork of ReportHTML module. I've forked ReportHTML due to it being outdated and not maintained. I also wanted to address some problems it had and add more features. As it stands PSWriteHTML is a complete rewrite. Make sure to read blog posts provided to understand the concepts and how you can use PSWriteHTML for your own needs.

How to install

While you can take sources and use it from here, PSWriteHTML actually is composed of multiple other of my modules. To get it up and running you will need *PSSharedGoods, and PSSharedGoods will need Connectimo and PSWriteColor. While Connectimo or PSWriteColor aren't needed for PSWriteHTML, PSSharedGoods uses them for some of the commands and it will fail without them. You can get all that from sources but if you just want to use my modules you should use the Install-Module command. It's available in PowerShell 5.1. As an added bonus when I publish modules to PowerShellGallery I remove any junk, minimize modules to a single file which makes them faster to load and use. I really encourage you to use the module from PowerShellGallery and treat GitHub as a highly development version. Since version 0.0.61 when PSWriteHTML is published every dependency is baked into PSWriteHTML. That means you don't need to download any other modules unless you want to contribute to this project.

Installing

Install-Module -Name PSWriteHTML -AllowClobber -Force

Force and AllowClobber aren't necessary but they do skip errors in case some appear.

Updating

Update-Module -Name PSWriteHTML

That's it. Whenever there's a new version you simply run the command and you can enjoy it. Remember, that you may need to close, reopen the PowerShell session if you have already used the module before updating it.

The important thing is if something works for you on production, keep using it till you test the new version on a test computer. I do changes that may not be big, but big enough that auto-update will break your code. For example, small rename to a parameter and your code stops working! Be responsible!

Dependencies: PSSharedGoods, PSWriteColor and Connectimo are only used during development. When published to PSGallery / Releases it's a merged release without any dependencies.

Articles worth reading to understand use cases

Changelog

PSWriteHTML undergoes changes that hopefully will make it more versalite, consistent and better. Please make sure to read changes before updating, as we're undergoing some breaking changes from time to time. Full changelog can be found here.

Advantages over ReportHTML

  • complete rewrite
  • faster report building (from 20+ seconds to 0-2 seconds)
  • updated libraries
  • bunch of different, new features
  • easier building HTML

Credits

Matthew Quickenden (@lucidqdreams) - author of ReportHTML - without him this wouldn't be possible.

Projects using PSWriteHTML (to give you ideas of what you can do)

  • Statusimo is a PowerShell module that is able to generate a Status Page entirely from PowerShell.
  • Dashimo is a PowerShell module that makes generating Dashboards, nice looking HTML, a breeze.
  • Emailimo is a PowerShell module that makes writing nice looking HTML emails, easy!
  • Out-HTMLView is a PowerShell cross-platform command alternative to Out-GridView

Out-HTMLView

For colors, you can visit this online page.

3rd Party Libraries

PSWriteHTML uses some 3rd party libraries to deliver its functionality. It requires those and without them - this project would have a basic functionality. There are two ways to use it

  • With links to CSS/JS which makes code cleaner and easy to see what is happening
  • With code inline in HTML which makes HTML much bigger (default, but makes PSWriteHTML usage offline possible)

Below you can find 3rd party libraries being used.