You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+21-30Lines changed: 21 additions & 30 deletions
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,10 @@ If you like or are using this project please give it a star or leave some feedba
8
8
9
9
## What is it?
10
10
11
-
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.
11
+
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:
12
+
-**Code-generation**. Generate serializers, smart-enums, lookup tables etc from structured data
13
+
-**Quick and dirty data-processing**. Pull a json file from a URL and extract the fields you're interested in.
14
+
-**Text processing**. Use line mode to filter the contents of large log files to get to the relevant sections
12
15
13
16
Textrude comes in 3 flavours:
14
17
-**textrude.exe** is a Windows CLI tool for use from the console and within build-systems
@@ -19,53 +22,41 @@ Textrude comes in 3 flavours:
19
22
20
23
## Why use it?
21
24
22
-
Let's face it, there are any number of code-generation technologies you might consider. Textrude's strengths are:
23
-
25
+
For **code-generation**, Textrude's strengths are:
24
26
- Easy model (data) creation - use CSV for simple lists or YAML/JSON if you need structured data
25
27
- Low-ceremony syntax while retaining a fully functional programming language
26
28
- Supports multiple input models and multiple output files for a single template
27
29
- Easy to inject additional model context via environment variables or user-supplied definitions
28
-
- Built-in dependency checking integrates well with your build system
29
-
-Allows template re-use via include mechanism
30
+
- Built-in dependency checking integrates well with your build system and avoids unneccesary rebuilds
- Scriban is an easy to understand but relatively powerful scripting language
36
+
-**TextrudeInteractive** provides *immediate* feedback so you can see how the input is being processed by your script
37
+
- You can pipe text into **Textrude** from another command and reuse the templates you developed in **TextrudeInteractive** to shape the output
38
+
-**Textrude** can even pull JSON directly from a URL and feed it through a template.
39
+
32
40
## Download/build
33
41
34
-
The current release is **v1.4.0**.
42
+
The current release is **v1.5.0**.
35
43
36
44
**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.**
37
45
38
46
**To run TextrudeInteractive v1.3 and up you must install the [WebView2 runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/)**
39
47
40
48
- If you just want the binaries, [go here](doc/getBinaries.md).
41
-
42
49
- Alternatively, [building from source](doc/buildFromSource.md) is pretty easy and gives you access to the bleeding-edge!
43
-
44
50
- Or you can create a [Docker image](Docker.md)
45
51
46
52
## What's new
47
53
48
-
### vNext (source only)
49
-
- Add some [syntactic sugar](doc/syntaxExtensions.md)
50
-
- Provide [create_library](doc/userLibrary.md) method for improved library creation
51
-
- LoopLimit now removed and cancellation for long-running in-flight renders is supported
52
-
- textrude.exe can now read models from STDIN or from a URL. See [this doc](doc/buildSystemIntegration.md)
53
-
- textrude.exe model/output specifiers can now include explicit format declaration
54
-
55
-
### v1.4.0 (source/binary)
56
-
- The Monaco text editor is now used for all edit panes including the template editor, definitions and include paths.
57
-
- A single Monaco edit pane is now used for multiple models/outputs for cleaner switching & improved responsiveness
58
-
- The view menu allows visible-whitespace to be toggled on and off
59
-
- Rudimentary syntax highlighting and intellisense are provided for the template editor
60
-
- Models and outputs can now be assigned names
61
-
- Help menu now includes a link to gitter-chat
62
-
- Model, template and output panes now support linking to files.
63
-
- Export/Build... menu now brings up a dialog to help build CLI options.
64
-
- Updated to latest Scriban for [multi-line pipes](https://github.com/scriban/scriban/pull/327)
65
-
- Special thanks to [Martin Hochstrasser](https://github.com/highstreeto) for
66
-
- CAKE build support
67
-
- The fancy new logo!
68
-
54
+
### v1.5.0 (source/binary)
55
+
- Textrude now provides some simple [syntax extensions](doc/syntaxExtensions.md) over *classic* Scriban
56
+
- A [create_library](doc/userLibrary.md) built-in method is now provided to make it easier to create libraries
57
+
- LoopLimit now removed and cancellation of long-running in-flight renders is supported. This makes it easier to process large text files.
58
+
-**Textrude** can now read models from STDIN or from a URL, making it useful for processing the output of other commands.
59
+
-**Textrude** model/output specifiers can now include explicit format declarations.
69
60
70
61
[Full change history](doc/changeHistory.md)
71
62
@@ -94,7 +85,7 @@ Textrude makes heavy use of the following components:
94
85
-[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
95
86
96
87
Huge thanks to the contributors:
97
-
-[Martin Hochstrasser](https://github.com/highstreeto) - Docker support, general build enhancements and integration of the Monaco editor
88
+
-[Martin Hochstrasser](https://github.com/highstreeto) - Docker support, general build enhancements, integration of the Monaco editor and the fancy logo!
98
89
-[Neil MacMullen](https://github.com/NeilMacMullen) - original application concept and implementation
0 commit comments