@chrixm chrixm released this Jul 25, 2018

Assets 8

The "wJRE" versions are self contained applications/executables (x64 Only) which have zero dependencies to be able to run. They contain a cut-down version of OpenJRE 10.0.2. If you already have Java installed and prefer to use your system run-time, then you can continue to download the smaller binaries without "wJRE".

SHA-256 Hashes

45477679419f3c0939c5a8056b2c8f9e788a2fd23a6d3865f1d7eeeacfcd5c4b TemplateFx_v267_Windows.zip
ec98337bc7bd72c6fa30da5e108cc62ed49b1e4f153ee58043adeec4432c9226 TemplateFx_v267_Windows_wJRE.zip
40bf41d25858fd8336eeadecb568662a009c99bafc90509e1e3056e9503b6862 TemplateFx_v267_MacOS.dmg
65bed21ad6b7d349f2a4741be5b1cde8171b91b6be8751028b099289b5ea84bf TemplateFx_v267_MacOS_wJRE.dmg
ea3288c1ed61d130cd79aae1e5245b3404b91a77278ee34a1f4217c9e280653f TemplateFx_v267_JAR.zip
32cbbfea673f12711c6e104150b36f5c82f4290c9c14f61a43310deba25baef0 TemplateFx_Server_v267_JAR.zip


  • Provided MacOS and Windows versions (x64 only) which are bundled with OpenJRE 10.0.2 to provide a zero-dependency option.
  • Added support for markers using #$ syntax within the Template pane on right click - see section 4.6 in the User Guide.
  • Added support to the IPCalc to perform multi dns lookups based on regex style static characters classes and groups.
  • Added support to the IPCalc aggregate function to also calculate the supernet with subnet fill in.
  • Fixed a bug which caused TemplateFx to hang on generation if a script syntax error was detected within a Snippet.
  • Updated the JavaScript "aggregate" function to use a space between IPv4 and IPv6 subnets instead of "-".
  • Updated the IPCalc to filter out any non-ASCII 7-bit characters from the input box.
  • Renamed "Copy List of IPs" to "Copy Last List of IPs" in IPCalc.
  • Renamed "Copy Reverse List of IPs" to "Copy Last Reverse List of IPs" in IPCalc.
  • Increased the default height of the window from 640 to 700 pixels to accommodate the updated IPCalc usage screen.

@chrixm chrixm released this Mar 14, 2018 · 2 commits to master since this release

Assets 6

SHA-256 Hashes

1dc003a393b5161b1a53d39dfbcf88ac8a2491cb80aec844ab99f1f1666cd065 TemplateFx_v266_MacOS.dmg
cb64f8dfc389f7aa8b7d441d9d5fb2ef18a82de732d2b823a30bac0b26acf6f2 TemplateFx_v266_Windows.zip
4438c0d68fc86d9bb50c332f5a60a15759509f533dd330f6146b07fa6c21cc4b TemplateFx_v266_JAR.zip
41ecc48818cbe2786c416454ba7bc03c1dc320d995650732b838fe7685684f34 TemplateFx_Server_v266_JAR.zip


  • Updated the minimum JRE version to 8 to allow the removal of legacy code and to keep up with deprecation.
  • Removed support for decryption of pre v2.54 legacy encryption - to open in v2.66 or later you need to re-save with v2.54 or later.
  • Removed custom "PBKDF2WithHmacSHA512" routines as we now have native support in Java 8.
  • Removed custom Base64 routines as we now have native support in Java 8.
  • Removed 58 anonymous inner classes by using Lambdas in Java 8.
  • Fixed a bug where the percentage bar wasn't reaching 100% when using "skiprow()" in templates.
  • Added support for script blocks within GROUP tags to dynamically generate the position number.
  • Added a warning when using both "GROUP BY" blocks and "Group By" in the DataTemplate.
  • Fixed a bug where it was still syntax highlighting IF, GROUP and FOR blocks in script blocks.
  • Added "Copy Last Output" support to IPCalc for subnet DNS lookups and subnet calculations.
  • Update to IPCalc in moving "Prev Network" back to where it was originally in the output.
  • Added support for including external JavaScript libraries using "-lib" in TemplateFx Server.
  • Fixed an inconsistency in the way HTML files were being opened when using "In Browser".
  • Fixed an issue where blank lines within "~FILTER" were being raised as invalid syntax.
  • Added support in the IPCalc for advanced subnetting calculations.
  • Updated "templatefx.fields()" function to return null if no rows match.
  • Updates to IPCalc to deal with some soon to be deprecated code in Java 10.
  • Margin highlighting is now disabled if "Wrap Long Lines" is enabled as it doesn't work.
  • Added caching to JavaScript IP functions to speed up subsequent requests if "Cache JavaScript Libraries" is enabled.
  • Added a check for invalid characters when importing DataTemplates with Snippets.
  • Added a summary to the IPCalc when performing an nslookup on a subnet.
  • Added a JavaScript "cidr2range()" function.
  • Added a JavaScript "supernet()" function.

@chrixm chrixm released this Dec 30, 2017 · 4 commits to master since this release

Assets 6

SHA-256 Hashes

dfd4107d40c128722189057461229a0e0d675ef1daafde3e60ab89738bcf189e TemplateFx_v265_MacOS.dmg
3e570a878988aaa42d0fa64a67c9942ea6264dbd76310ace7448eb30833f2f90 TemplateFx_v265_Windows.zip
7c190ef157ad8bbc68a7d41fecce0b3204f637303febafa488233ad419a5b9a1 TemplateFx_v265_Jar.zip
04151b220e448cb414fc541323e707b319b23363626fd02077bcd2eacdacce1e TemplateFx_Server_v265_Jar.zip
8bb053e0a14290fdf935635d32da59618399fbac2ba9b67399349434f35375b0 TemplateFx.exe
3a0387a773a164011e4cdbce0bf23277414090bc4287b34f3bf00d1bc2ca0241 TemplateFx.jar
11a77c52daffdb5f15f9ca0363bc6fedd274f2a0f7a5e9d069d4affcfb21edbe TemplateFxS.jar


  • MAY BREAK THINGS WARNING: Updated TemplateFx Server URL from "/dataTemplate" to "/generate".
  • Fixed an issue with the TemplateFx Server where it wasn't allowing Data-less DataTemplates.
  • Increased the default TemplateFx Server processing limit to 2 minutes from 90 seconds.
  • Added the ability to change the processing limit on the TemplateFx Server on the command line.
  • Updated the format of the "elapsed" field in the TemplateFx Server response to float.
  • Changed the default TemplateFx Server port (8080 for HTTP and 8443 for HTTPS).
  • TemplateFx Server now supports a web friendly JSON request format.
  • Reduced the thickness of the border for margin highlighting in the GUI.
  • Updates to the IP Calc to provide a continuous output instead of always clearing the screen.
  • Fixed an exception if you pressed "CTRL+C" during IP Calc operations.
  • Implemented some JavaScript optimisations using CompiledScript to speed things up a tiny bit.
  • Added "cidrmask()" JavaScript function to convert from subnet mask to cidr.

@chrixm chrixm released this Oct 26, 2017 · 6 commits to master since this release

Assets 6
  • Fixed a bug with margin highlighting - it was getting out of sync during output generation.
  • Updated "templatefx.first()" and "templatefx.last()" to include a filter option like "templatefx.fields()"
  • Updated documentation to add an example of negating a filter in the "templatefx.fields()" function.
  • Fixed a bug in IPCalc where you couldn't pass a query like "nslookup"
  • Moved "Prev Network" higher up in the output to come before the current network.

@chrixm chrixm released this Oct 2, 2017 · 8 commits to master since this release

Assets 6
  • TemplateFx Server now processes requests in parallel - fixed the thread safety issue.
  • Added left margin highlighting in the GUI to show the start and end of the current FOR, IF or GROUP block.
  • Added support for JavaScript function "skiprow()" to disregard the output from the current row.
  • Updated JavaScript function "insubnet()" to also test whether one subnet is within another.
  • Updated for Java 9 by replacing some deprecated methods with alternatives where they exist in JDK 1.7.
  • Updated the MacOS application launcher so it now correctly finds Java 9.
  • Updated TemplateFx so it now correctly works with "Open With" and is associated with ".dt" files on MacOS.
  • Updated TemplateFx so the About and Quit handlers now work with Java 9 on MacOS.

@chrixm chrixm released this Aug 19, 2017 · 10 commits to master since this release

Assets 3
  • Issue with thread safety for TemplateFx Server - requests are now temporarily processed in serial.

@chrixm chrixm released this Aug 18, 2017 · 12 commits to master since this release

Assets 5
  • Added the TemplateFx Server - a minimalist server implementation of the core templating engine as a REST API.
  • Added support for Template-only and Data-less DataTemplates.
  • Extended support for inter group ordering to go alongside intra group ordering.
  • Disabled rotating of DNS servers on timeout - bad things happen under Cisco AnyConnect.
  • Fixed a bug where elapsed time started before the user actually hit "OK" on "Generate Output" dialog.
  • Added support for providing data as JSON within an text based DataTemplate.
  • Updated documentation to provide examples of regex matching using IF blocks.
  • Updated the "pad()" JavaScript function to allow a different padding character.
  • Added null check to JavaScript IP functions (null in = null out).

@chrixm chrixm released this May 4, 2017 · 14 commits to master since this release

Assets 5
  • Updated "IP Calc" tab so it ignores irregular whitespace characters on input.
  • Added non-standard JavaScript HEREDOC support for script blocks and JavaScript libraries.
  • Moved all the internal JavaScript functions into TemplateFx.js so they are accessible from external JS libs.
  • Optimised the DNS lookup function when you have multiple NICs under Windows - rotates DNS servers on timeout.
  • Added support for JavaScript function "base64encode()" due to a lack of "btoa()" support in Java's JavaScript ScriptEngine.
  • Added support for JavaScript function "base64decode()" due to a lack of "atob()" support in Java's JavaScript ScriptEngine.
  • Added support for a powerful "aggregate()" JavaScript function to summarise prefixes into the smallest possible list.
  • Added support for the same aggregate function to the "IP Calc" tab.
  • Added anchors/bookmarks to the User Guide for direct access into some sections.
  • Fixed a bug if you tried to bookmark a DataTemplate which hadn't been saved.
  • You can now proceed on a multi-line input box using CTRL+ instead of clicking "OK".
  • Updated "range2cidr()" function so the lower address can be on either side.
  • Updated "range2cidr()" function so it deals with scenarios where both sides match - a range specifying a single host.

@chrixm chrixm released this Apr 11, 2017 · 16 commits to master since this release

Assets 5
  • Added support for JavaScript function "templatefx.fields()" to return all row values for a specific field with optional filter.
  • Added support for JavaScript function "pad()" to provide left, right or middle alignment of text.
  • The JavaScript IP manipulation functions now use the same codepath for both IPv4 and IPv6 - just use different bit lengths.
  • The IPv6 JavaScript functions now accept a full subnet mask as well as CIDR representation.
  • Fixed an issue which caused a security violation if the current directory didn't match the working directory.
  • Deprecated "templatefx.group_start" in favour of "templatefx.first()".
  • Deprecated "templatefx.group_end" in favour of "templatefx.last()".
  • Removed the bundled "lodash.js" JavaScript library from the distribution - can still be manually included by downloading.

@chrixm chrixm released this Feb 19, 2017 · 18 commits to master since this release

Assets 5
  • Enabled the Java SecurityManager to protect users against malicious JavaScript blocks.
  • Major changes to start to modulise the codebase - lots and lots of changes to code paths.
  • Fixed a bug that stopped people being able to paste data from Excel into TemplateFx on MacOS.
  • Added the ability to comment out lines within ~FILTER snippets using "#".
  • Added syntax highlighting to the snippets pane for commented out lines using "#".
  • ~FILTER snippet is automatically selected on load and import if it exists.
  • Updated "templatefx.first()" and "templatefx.last()" to work with first and last rows.
  • Updated JavaScript functions so they don't use Reflection.
  • Changed command line argument "/DoI" to "-DoI".