Skip to content

Commit

Permalink
Bump version to 1.5.0 (#106)
Browse files Browse the repository at this point in the history
  • Loading branch information
NeilMacMullen authored Mar 5, 2021
1 parent c56c887 commit 931677e
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 31 deletions.
51 changes: 21 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ If you like or are using this project please give it a star or leave some feedba

## What is it?

Textrude is a cross-platform general-purpose code-generation tool. It can easily import data from CSV,YAML, JSON or plain-text files and apply [Scriban](https://github.com/scriban/scriban) templates to quickly scaffold output files.
Textrude is a tool to feed CSV,YAML, JSON or plain-text files into [Scriban](https://github.com/scriban/scriban) templates. That makes it useful for:
- **Code-generation**. Generate serializers, smart-enums, lookup tables etc from structured data
- **Quick and dirty data-processing**. Pull a json file from a URL and extract the fields you're interested in.
- **Text processing**. Use line mode to filter the contents of large log files to get to the relevant sections

Textrude comes in 3 flavours:
- **textrude.exe** is a Windows CLI tool for use from the console and within build-systems
Expand All @@ -19,53 +22,41 @@ Textrude comes in 3 flavours:

## Why use it?

Let's face it, there are any number of code-generation technologies you might consider. Textrude's strengths are:

For **code-generation**, Textrude's strengths are:
- Easy model (data) creation - use CSV for simple lists or YAML/JSON if you need structured data
- Low-ceremony syntax while retaining a fully functional programming language
- Supports multiple input models and multiple output files for a single template
- Easy to inject additional model context via environment variables or user-supplied definitions
- Built-in dependency checking integrates well with your build system
- Allows template re-use via include mechanism
- Built-in dependency checking integrates well with your build system and avoids unneccesary rebuilds
- Support for template re-use/libraries
- Real-time prototyping tool (TextrudeInteractive)

For **text-processing** or **data-processing**
- Scriban is an easy to understand but relatively powerful scripting language
- **TextrudeInteractive** provides *immediate* feedback so you can see how the input is being processed by your script
- You can pipe text into **Textrude** from another command and reuse the templates you developed in **TextrudeInteractive** to shape the output
- **Textrude** can even pull JSON directly from a URL and feed it through a template.

## Download/build

The current release is **v1.4.0**.
The current release is **v1.5.0**.

**Textrude requires [.Net 5.0](https://dotnet.microsoft.com/download/dotnet/5.0). If it's not already on your machine you will be prompted to install it.**

**To run TextrudeInteractive v1.3 and up you must install the [WebView2 runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/)**

- If you just want the binaries, [go here](doc/getBinaries.md).

- Alternatively, [building from source](doc/buildFromSource.md) is pretty easy and gives you access to the bleeding-edge!

- Or you can create a [Docker image](Docker.md)

## What's new

### vNext (source only)
- Add some [syntactic sugar](doc/syntaxExtensions.md)
- Provide [create_library](doc/userLibrary.md) method for improved library creation
- LoopLimit now removed and cancellation for long-running in-flight renders is supported
- textrude.exe can now read models from STDIN or from a URL. See [this doc](doc/buildSystemIntegration.md)
- textrude.exe model/output specifiers can now include explicit format declaration

### v1.4.0 (source/binary)
- The Monaco text editor is now used for all edit panes including the template editor, definitions and include paths.
- A single Monaco edit pane is now used for multiple models/outputs for cleaner switching & improved responsiveness
- The view menu allows visible-whitespace to be toggled on and off
- Rudimentary syntax highlighting and intellisense are provided for the template editor
- Models and outputs can now be assigned names
- Help menu now includes a link to gitter-chat
- Model, template and output panes now support linking to files.
- Export/Build... menu now brings up a dialog to help build CLI options.
- Updated to latest Scriban for [multi-line pipes](https://github.com/scriban/scriban/pull/327)
- Special thanks to [Martin Hochstrasser](https://github.com/highstreeto) for
- CAKE build support
- The fancy new logo!

### v1.5.0 (source/binary)
- Textrude now provides some simple [syntax extensions](doc/syntaxExtensions.md) over *classic* Scriban
- A [create_library](doc/userLibrary.md) built-in method is now provided to make it easier to create libraries
- LoopLimit now removed and cancellation of long-running in-flight renders is supported. This makes it easier to process large text files.
- **Textrude** can now read models from STDIN or from a URL, making it useful for processing the output of other commands.
- **Textrude** model/output specifiers can now include explicit format declarations.

[Full change history](doc/changeHistory.md)

Expand Down Expand Up @@ -94,7 +85,7 @@ Textrude makes heavy use of the following components:
- [MaterialDesignToolkit](https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit), [MaterialDesignExtensions](https://spiegelp.github.io/MaterialDesignExtensions) and [Ookii Dialogs](https://github.com/augustoproiete/ookii-dialogs-wpf)to make the UI a bit less clunky

Huge thanks to the contributors:
- [Martin Hochstrasser](https://github.com/highstreeto) - Docker support, general build enhancements and integration of the Monaco editor
- [Martin Hochstrasser](https://github.com/highstreeto) - Docker support, general build enhancements, integration of the Monaco editor and the fancy logo!
- [Neil MacMullen](https://github.com/NeilMacMullen) - original application concept and implementation


Expand Down
2 changes: 2 additions & 0 deletions Textrude.sln.DotSettings
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeInspection/CodeAnnotations/NamespacesWithAnnotations/=TextrudeInteractive_002EAnnotations/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Humanizr/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Recognised/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=scriban/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=serialiser/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Textrude/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
8 changes: 7 additions & 1 deletion doc/changeHistory.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Full change history

### v1.5.0
- Textrude now provides some simple [syntax extensions](doc/syntaxExtensions.md) over *classic* Scriban
- A [create_library](doc/userLibrary.md) built-in method is now provided to make it easier to create libraries
- LoopLimit now removed and cancellation of long-running in-flight renders is supported. This makes it easier to process large text files.
- **Textrude** can now read models from STDIN or from a URL, making it useful for processing the output of other commands.
- **Textrude** model/output specifiers can now include explicit format declarations.

### v1.4.0
- The Monaco text editor is now used for all edit panes including the template editor, definitions and include paths.
- A single Monaco edit pane is now used for multiple models/outputs for cleaner switching & improved responsiveness
Expand All @@ -14,7 +21,6 @@
- CAKE build support
- The fancy new logo!


### v1.3.0
- Models and outputs can be added/removed on a per-project basis
- Syntax highlighting for output panes
Expand Down

0 comments on commit 931677e

Please sign in to comment.