All Projects → NeilMacMullen → Textrude

NeilMacMullen / Textrude

Licence: MIT license
Code generation from YAML/JSON/CSV models via SCRIBAN templates

Programming Languages

C#
18002 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Dockerfile
14818 projects
powershell
5483 projects
shell
77523 projects

Projects that are alternatives of or similar to Textrude

makeme
Embedthis MakeMe
Stars: ✭ 26 (-67.09%)
Mutual labels:  build-automation, build-tool
psh
PSH - PHP shell helper
Stars: ✭ 60 (-24.05%)
Mutual labels:  build-automation, build-tool
aseprite-macos-buildsh
Automated script to create latest release app (either beta, or release whichever is newer) of Aseprite for macOS
Stars: ✭ 143 (+81.01%)
Mutual labels:  build-automation, build-tool
Chronicle Wire
A Java Serialisation Library that supports multiple formats
Stars: ✭ 204 (+158.23%)
Mutual labels:  yaml, csv
makestudio
Setup your Delphi Environment very easily - build your projects with more comfort
Stars: ✭ 43 (-45.57%)
Mutual labels:  build-automation, build-tool
Python Benedict
dict subclass with keylist/keypath support, I/O shortcuts (base64, csv, json, pickle, plist, query-string, toml, xml, yaml) and many utilities. 📘
Stars: ✭ 204 (+158.23%)
Mutual labels:  yaml, csv
dif
'dif' is a Linux preprocessing front end to gvimdiff/meld/kompare
Stars: ✭ 18 (-77.22%)
Mutual labels:  yaml, text-processing
Re Txt
converts text-formats from one to another, it is very useful if you want to re-format a json file to yaml, toml to yaml, csv to yaml, ... etc
Stars: ✭ 59 (-25.32%)
Mutual labels:  yaml, csv
native-samples
Samples of modern build automation for native languages with Gradle
Stars: ✭ 140 (+77.22%)
Mutual labels:  build-automation, build-tool
dynamic.yaml
DEPRECATED: YAML-based data transformations
Stars: ✭ 14 (-82.28%)
Mutual labels:  yaml, code-generation
Just Dashboard
📊 📋 Dashboards using YAML or JSON files
Stars: ✭ 1,511 (+1812.66%)
Mutual labels:  yaml, csv
unity-build-pipeline
Custom BASH script for build, archive, export and upload APK and IPA to server with Telegram notification
Stars: ✭ 59 (-25.32%)
Mutual labels:  build-automation, build-tool
Jobfunnel
Scrape job websites into a single spreadsheet with no duplicates.
Stars: ✭ 1,528 (+1834.18%)
Mutual labels:  yaml, csv
Vscode Data Preview
Data Preview 🈸 extension for importing 📤 viewing 🔎 slicing 🔪 dicing 🎲 charting 📊 & exporting 📥 large JSON array/config, YAML, Apache Arrow, Avro, Parquet & Excel data files
Stars: ✭ 245 (+210.13%)
Mutual labels:  yaml, csv
Countries States Cities Database
🌍 World countries, states, regions, provinces, cities, towns in JSON, SQL, XML, PLIST, YAML, and CSV. All Countries, States, Cities with ISO2, ISO3, Country Code, Phone Code, Capital, Native Language, Timezones, Latitude, Longitude, Region, Subregion, Flag Emoji, and Currency. #countries #states #cities
Stars: ✭ 1,130 (+1330.38%)
Mutual labels:  yaml, csv
millwright
The easiest build tool you'll ever use.
Stars: ✭ 27 (-65.82%)
Mutual labels:  build-automation, build-tool
Emrichen
A Template engine for YAML & JSON
Stars: ✭ 40 (-49.37%)
Mutual labels:  yaml, template-engine
Bashful
Use a yaml file to stitch together commands and bash snippits and run them with a bit of style. Why? Because your bash script should be quiet and shy-like (...and not such a loud mouth).
Stars: ✭ 1,018 (+1188.61%)
Mutual labels:  yaml, build-tool
UnityBuildManager
Utility for running builds sequence & pushing them to markets & keeping changelog
Stars: ✭ 53 (-32.91%)
Mutual labels:  build-automation, build-tool
Nginx-builder
A tool to build deb or rpm package of required Nginx version from the source code, with the ability to connect third-party modules. Nginx parameters are set in the yaml configuration file.
Stars: ✭ 143 (+81.01%)
Mutual labels:  build-automation, build-tool

Textude

NuGet Coverage Status Join the chat at https://gitter.im/Textrude/community

Downloads

GitHub release NuGet Chocolatey

Give a Star!

If you like or are using this project please give it a star or leave some feedback in the discussions section. A little feedback goes a long way - thanks!

What is it?

Textrude is a tool to feed CSV,YAML, JSON or plain-text files into 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 or use the convenience commands to process data files from the command line.
  • 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
  • textrude_linux as above but for Linux
  • TextrudeInteractive is a Windows UI tool for rapid prototyping and development of models and templates.

Screenshot of TextrudeInteractive

Why use it?

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 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

Textrude requires .Net 6.0. If it's not already on your machine you will be prompted to install it.

To run TextrudeInteractive v1.3 and up the [WebView2 runtime] is required. If this is not already installed on your PC you can obtain it from (https://developer.microsoft.com/en-us/microsoft-edge/webview2/) (This is not required if you just want to run the CLI tool.)

  • If you just want the binaries, go here.
  • Or download using Chocolatey choco install textrude Important - TextrudeInteractive is not currently correctly installed in Chocolatey release
  • Alternatively, building from source is pretty easy and gives you access to the bleeding-edge!
  • Or you can create a Docker image
  • Textrude is also available on nuget

What's new

vNext (source only)

  • Retarget to Net6
  • Fix bug where a StackOverflowException could be thrown if textrude.to_csv/to_json/to_yaml was called on recursive object
  • Add snippet support for script editor (thanks to Olof Wistrand)

v1.7.0 (source/binary)

  • Chocolatey install is available.
  • A number of cli convenience commands have been added to make it easier to process data files.
  • Textrude can now emit serialised representations of object trees
  • Textrude can now guess the format of models based on the first few hundred bytes of content.
  • Textrude now supports a set of flexible time recognition and comparison functions.
  • More examples added
  • TextrudeInteractive is now much better at cancelling in-flight renders
  • TextrudeInteractive now configures Webview to use APPDATALOCAL for cached data

Full change history

Documentation

Credits and contributors

Textrude makes heavy use of the following components:

Huge thanks to the contributors:

  • Martin Hochstrasser - Docker support, general build enhancements, integration of the Monaco editor and the fancy logo!
  • Neil MacMullen - original application concept and implementation

Help wanted

If you fancy making Textrude better, I'd be happy to have help! Grab something from the issues list or suggest an idea. Alternatively you can contribute script snippets, improve the documentation or spread the word by writing an article!

What's with the name

It's short for Text-extrude but if you can't stop seeing it as Text-Rude you are not alone.

It is unrelated to both the rather cool (but apparently abandoned project) Textruder and the plastics company Tex-Trude

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].