PowerShellOrg / Plaster

Plaster is a template-based file and project generator written in PowerShell.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Plaster - Past, Present, and Future

jdhitsolutions opened this issue · comments

Now that the Plaster module has a new home, we want to let everyone know where we are headed. First, this module has not been abandoned, although it certainly hasn't gotten much love lately. Here is what we are planning.

  • First, our goal is to bring the module up-to-date and fully compatible with Windows PowerShell 5.1 and PowerShell 7.x.
  • Next, expect to see many issues closed. There are issues going back 5 years that are most likely stale and should have been handled a long time ago. We will make notes of comments from these issues that are still relevant today.
  • Existing pull requests will be looked at, but we may not accept anything until our design review is complete. Please do not submit new pull requests at this time.
  • Finally, we want to look at this project with fresh eyes. It is possible that there will be significant design changes, if we feel they are warranted to meet our primary goal.

We intend to open up the Discussion section of this repository. Issues should be for bug and problem reporting.

If there is an opportunity to reimagine Plaster, this might be a good time to consider if it needs its own template language or if it would be better to leverage an existing template engine. Generating text files with templates is a solved problem. Plaster can leverage an existing templating engine to reduce the footprint of the plaster code base as well as the documentation overhead.

Leveraging an existing template language would even come with the benefit of syntax hilighting plugins for vs code with no additional work.

With all the great templating tools available, it might even be worth considering support for more than one language especially if there was a desire to preserve compatibility with the existing plaster templating language.

T4

T4 would be an option as it is meant for generating code type files, technically it is a part of the visual studio SDK but mono has a port.

Razor Syntax

Razor Syntax is originally used in asp.net MVC but there are projects which have liberated it.

dotnet new

dotnet new has a template engine which would also be an option, this also has a defined the interface for prompting the parameters from the user

Liquid & Other Text-Template Engines

Liquid is a popular templating language for web developers and there are a number of C# projects which implement the spec.

This is good information which I will move to Discussions. You are right that now is the time to revisit the overall strategy