You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by sg...@apache.org on 2020/08/11 20:45:50 UTC

[freemarker-generator] branch FREEMARKER-153 updated: FREEMARKER-153 Prefix the template path for commonly used templates with "freemarker-generator/"

This is an automated email from the ASF dual-hosted git repository.

sgoeschl pushed a commit to branch FREEMARKER-153
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git


The following commit(s) were added to refs/heads/FREEMARKER-153 by this push:
     new a77c069  FREEMARKER-153 Prefix the template path for commonly used templates with "freemarker-generator/"
a77c069 is described below

commit a77c069533ca91c05180fc4f94b3a475c1be9533
Author: Siegfried Goeschl <si...@gmail.com>
AuthorDate: Tue Aug 11 22:45:33 2020 +0200

    FREEMARKER-153 Prefix the template path for commonly used templates with "freemarker-generator/"
---
 .../src/scripts/run-examples.bat                   | 50 +++++++++++-----------
 .../src/scripts/run-examples.sh                    | 50 +++++++++++-----------
 .../markdown/cli/advanced/cli-configuration.md     |  2 +-
 .../src/site/markdown/cli/concepts/data-sources.md | 12 +++---
 .../src/site/markdown/cli/concepts/named-uris.md   |  8 ++--
 .../src/site/markdown/cli/concepts/passing-data.md |  8 ++--
 .../site/markdown/cli/concepts/template-loading.md |  4 +-
 .../site/markdown/cli/concepts/transformation.md   |  6 +--
 .../markdown/cli/introduction/getting-started.md   |  2 +-
 .../site/markdown/cli/usage/running-examples.md    | 18 ++++----
 .../site/markdown/cli/usage/transforming-csv.md    |  6 +--
 .../templates/{ => freemarker-generator}/cat.ftl   |  0
 .../csv/csv/transform.ftl                          |  2 +-
 .../csv/html/transform.ftl                         |  2 +-
 .../csv/md/transform.ftl                           |  2 +-
 .../excel/csv/transform.ftl                        |  2 +-
 .../excel/html/transform.ftl                       |  0
 .../excel/md/transform.ftl                         |  0
 .../templates/{ => freemarker-generator}/info.ftl  |  0
 .../json/yaml/transform.ftl                        |  0
 .../{ => freemarker-generator}/lib/commons-csv.ftl |  0
 .../yaml/json/transform.ftl                        |  0
 .../freemarker/generator/cli/ExamplesTest.java     | 29 +++++++------
 .../generator/cli/TemplateLoadingTest.java         |  2 +-
 24 files changed, 103 insertions(+), 102 deletions(-)

diff --git a/freemarker-generator-cli/src/scripts/run-examples.bat b/freemarker-generator-cli/src/scripts/run-examples.bat
index 2fb6f34..c472333 100644
--- a/freemarker-generator-cli/src/scripts/run-examples.bat
+++ b/freemarker-generator-cli/src/scripts/run-examples.bat
@@ -27,8 +27,8 @@ REM =========================================================================
 REM Info
 REM =========================================================================
 
-echo "templates\info.ftl"
-%FREEMARKER_CMD% -t info.ftl README.md > target\out\info.txt
+echo "templates\freemarker-generator\info.ftl"
+%FREEMARKER_CMD% -t freemarker-generator\info.ftl README.md > target\out\info.txt
 
 REM =========================================================================
 REM Demo
@@ -52,11 +52,11 @@ REM =========================================================================
 REM CSV
 REM =========================================================================
 
-echo "templates\csv\html\transform.ftl"
-%FREEMARKER_CMD% -t csv\html\transform.ftl examples\data\csv\contract.csv > target\out\contract.html
+echo "templates\freemarker-generator\csv\html\transform.ftl"
+%FREEMARKER_CMD% -t freemarker-generator\csv\html\transform.ftl examples\data\csv\contract.csv > target\out\contract.html
 
-echo "templates\csv\md\transform.ftl"
-%FREEMARKER_CMD% -t csv\md\transform.ftl examples\data\csv\contract.csv > target\out\contract.md
+echo "templates\freemarker-generator\csv\md\transform.ftl"
+%FREEMARKER_CMD% -t freemarker-generator\csv\md\transform.ftl examples\data\csv\contract.csv > target\out\contract.md
 
 echo "examples\templates\csv\shell\curl.ftl"
 %FREEMARKER_CMD% -t .\examples\templates\csv\shell\curl.ftl examples\data\csv\user.csv > target\out\curl.sh
@@ -102,16 +102,16 @@ REM =========================================================================
 echo "examples\templates\excel\dataframe\transform.ftl"
 %FREEMARKER_CMD% -t examples\templates\excel\dataframe\transform.ftl examples\data\excel\test.xls > target\out\test.xls.dataframe.txt
 
-echo "templates\excel\html\transform.ftl"
-%FREEMARKER_CMD% -t excel\html\transform.ftl examples\data\excel\test.xls > target\out\test.xls.html
-%FREEMARKER_CMD% -t excel\html\transform.ftl examples\data\excel\test.xlsx > target\out\test.xslx.html
-%FREEMARKER_CMD% -t excel\html\transform.ftl examples\data\excel\test-multiple-sheets.xlsx > target\out\test-multiple-sheets.xlsx.html
+echo "templates\freemarker-generator\excel\html\transform.ftl"
+%FREEMARKER_CMD% -t freemarker-generator\excel\html\transform.ftl examples\data\excel\test.xls > target\out\test.xls.html
+%FREEMARKER_CMD% -t freemarker-generator\excel\html\transform.ftl examples\data\excel\test.xlsx > target\out\test.xslx.html
+%FREEMARKER_CMD% -t freemarker-generator\excel\html\transform.ftl examples\data\excel\test-multiple-sheets.xlsx > target\out\test-multiple-sheets.xlsx.html
 
-echo "templates\excel\md\transform.ftl"
-%FREEMARKER_CMD% -t excel\md\transform.ftl examples\data\excel\test-multiple-sheets.xlsx > target\out\test-multiple-sheets.xlsx.md
+echo "templates\freemarker-generator\excel\md\transform.ftl"
+%FREEMARKER_CMD% -t freemarker-generator\excel\md\transform.ftl examples\data\excel\test-multiple-sheets.xlsx > target\out\test-multiple-sheets.xlsx.md
 
-echo "templates\excel\csv\transform.ftl"
-%FREEMARKER_CMD% -t excel\csv\transform.ftl examples\data\excel\test-multiple-sheets.xlsx > target\out\test-multiple-sheets.xlsx.csv
+echo "templates\freemarker-generator\excel\csv\transform.ftl"
+%FREEMARKER_CMD% -t freemarker-generator\excel\csv\transform.ftl examples\data\excel\test-multiple-sheets.xlsx > target\out\test-multiple-sheets.xlsx.csv
 
 echo "examples\templates\excel\csv\custom.ftl"
 %FREEMARKER_CMD% -t examples\templates\excel\csv\custom.ftl -Pcsv.format=MYSQL examples\data\excel\test.xls > target\out\test-transform-xls.csv
@@ -133,8 +133,8 @@ REM =========================================================================
 echo "examples\templates\json\csv\swagger-endpoints.ftl"
 %FREEMARKER_CMD% -t examples\templates\json\csv\swagger-endpoints.ftl examples\data\json\swagger-spec.json > target\out\swagger-spec.csv
 
-echo "templates\json\yaml\transform.ftl"
-%FREEMARKER_CMD% -t json\yaml\transform.ftl examples\data\json\swagger-spec.json > target\out\swagger-spec.yaml
+echo "templates\freemarker-generator\json\yaml\transform.ftl"
+%FREEMARKER_CMD% -t freemarker-generator\json\yaml\transform.ftl examples\data\json\swagger-spec.json > target\out\swagger-spec.yaml
 
 echo "examples\templates\json\md\github-users.ftl"
 %FREEMARKER_CMD% -t examples\templates\json\md\github-users.ftl examples\data\json\github-users.json > target\out\github-users.md
@@ -154,21 +154,21 @@ echo "examples\data\template"
 %FREEMARKER_CMD% -t examples\data\template -PNGINX_HOSTNAME=localhost -o target\out\template
 
 REM =========================================================================
-REM YAML
+REM XML
 REM =========================================================================
 
-echo "examples\templates\yaml\txt\transform.ftl"
-%FREEMARKER_CMD% -t examples\templates\yaml\txt\transform.ftl examples\data\yaml\customer.yaml > target\out\customer.txt
-
-echo "templates\yaml\json\transform.ftl"
-%FREEMARKER_CMD% -t yaml\json\transform.ftl examples\data\yaml\swagger-spec.yaml > target\out\swagger-spec.json
+echo "examples\templates\xml\txt\recipients.ftl"
+%FREEMARKER_CMD% -t examples\templates\xml\txt\recipients.ftl examples\data\xml\recipients.xml > target\out\recipients.txt
 
 REM =========================================================================
-REM XML
+REM YAML
 REM =========================================================================
 
-echo "examples\templates\xml\txt\recipients.ftl"
-%FREEMARKER_CMD% -t examples\templates\xml\txt\recipients.ftl examples\data\xml\recipients.xml > target\out\recipients.txt
+echo "examples\templates\yaml\txt\transform.ftl"
+%FREEMARKER_CMD% -t examples\templates\yaml\txt\transform.ftl examples\data\yaml\customer.yaml > target\out\customer.txt
+
+echo "templates\freemarker-generator\yaml\json\transform.ftl"
+%FREEMARKER_CMD% -t freemarker-generator\yaml\json\transform.ftl examples\data\yaml\swagger-spec.yaml > target\out\swagger-spec.json
 
 echo "Created the following sample files in .\target\out"
 dir .\target\out
\ No newline at end of file
diff --git a/freemarker-generator-cli/src/scripts/run-examples.sh b/freemarker-generator-cli/src/scripts/run-examples.sh
index 3c37013..89f86e7 100755
--- a/freemarker-generator-cli/src/scripts/run-examples.sh
+++ b/freemarker-generator-cli/src/scripts/run-examples.sh
@@ -32,8 +32,8 @@ FREEMARKER_CMD=./bin/freemarker-generator
 # Info
 #############################################################################
 
-echo "templates/info.ftl"
-$FREEMARKER_CMD -t info.ftl README.md > target/out/info.txt || { echo >&2 "Test failed.  Aborting."; exit 1; }
+echo "templates/freemarker-generator/info.ftl"
+$FREEMARKER_CMD -t freemarker-generator/info.ftl README.md > target/out/info.txt || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
 #############################################################################
 # Demo
@@ -57,11 +57,11 @@ $FREEMARKER_CMD -i '${tools.dataframe.print(tools.dataframe.fromMaps(tools.gson.
 # CSV
 #############################################################################
 
-echo "templates/csv/html/transform.ftl"
-$FREEMARKER_CMD -t csv/html/transform.ftl examples/data/csv/contract.csv > target/out/contract.html || { echo >&2 "Test failed.  Aborting."; exit 1; }
+echo "templates/freemarker-generator/csv/html/transform.ftl"
+$FREEMARKER_CMD -t freemarker-generator/csv/html/transform.ftl examples/data/csv/contract.csv > target/out/contract.html || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
-echo "templates/csv/md/transform.ftl"
-$FREEMARKER_CMD -t csv/md/transform.ftl examples/data/csv/contract.csv > target/out/contract.md || { echo >&2 "Test failed.  Aborting."; exit 1; }
+echo "templates/freemarker-generator/csv/md/transform.ftl"
+$FREEMARKER_CMD -t freemarker-generator/csv/md/transform.ftl examples/data/csv/contract.csv > target/out/contract.md || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
 echo "examples/templates/csv/shell/curl.ftl"
 $FREEMARKER_CMD -t ./examples/templates/csv/shell/curl.ftl examples/data/csv/user.csv > target/out/curl.sh || { echo >&2 "Test failed.  Aborting."; exit 1; }
@@ -122,16 +122,16 @@ $FREEMARKER_CMD -t examples/templates/accesslog/combined-access.ftl examples/dat
 echo "examples/templates/excel/dataframe/transform.ftl"
 $FREEMARKER_CMD -t examples/templates/excel/dataframe/transform.ftl examples/data/excel/test.xls > target/out/test.xls.dataframe.txt || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
-echo "examples/templates/excel/html/transform.ftl"
-$FREEMARKER_CMD -t excel/html/transform.ftl examples/data/excel/test.xls > target/out/test.xls.html || { echo >&2 "Test failed.  Aborting."; exit 1; }
-$FREEMARKER_CMD -t excel/html/transform.ftl examples/data/excel/test.xlsx > target/out/test.xslx.html || { echo >&2 "Test failed.  Aborting."; exit 1; }
-$FREEMARKER_CMD -t excel/html/transform.ftl examples/data/excel/test-multiple-sheets.xlsx > target/out/test-multiple-sheets.xlsx.html || { echo >&2 "Test failed.  Aborting."; exit 1; }
+echo "templates/freemarker-generator/excel/html/transform.ftl"
+$FREEMARKER_CMD -t freemarker-generator/excel/html/transform.ftl examples/data/excel/test.xls > target/out/test.xls.html || { echo >&2 "Test failed.  Aborting."; exit 1; }
+$FREEMARKER_CMD -t freemarker-generator/excel/html/transform.ftl examples/data/excel/test.xlsx > target/out/test.xslx.html || { echo >&2 "Test failed.  Aborting."; exit 1; }
+$FREEMARKER_CMD -t freemarker-generator/excel/html/transform.ftl examples/data/excel/test-multiple-sheets.xlsx > target/out/test-multiple-sheets.xlsx.html || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
-echo "templates/excel/md/transform.ftl"
-$FREEMARKER_CMD -t excel/md/transform.ftl examples/data/excel/test-multiple-sheets.xlsx > target/out/test-multiple-sheets.xlsx.md || { echo >&2 "Test failed.  Aborting."; exit 1; }
+echo "templates/freemarker-generator/excel/md/transform.ftl"
+$FREEMARKER_CMD -t freemarker-generator/excel/md/transform.ftl examples/data/excel/test-multiple-sheets.xlsx > target/out/test-multiple-sheets.xlsx.md || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
-echo "templates/excel/csv/transform.ftl"
-$FREEMARKER_CMD -t excel/csv/transform.ftl examples/data/excel/test-multiple-sheets.xlsx > target/out/test-multiple-sheets.xlsx.csv || { echo >&2 "Test failed.  Aborting."; exit 1; }
+echo "templates/freemarker-generator/excel/csv/transform.ftl"
+$FREEMARKER_CMD -t freemarker-generator/excel/csv/transform.ftl examples/data/excel/test-multiple-sheets.xlsx > target/out/test-multiple-sheets.xlsx.csv || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
 echo "examples/templates/excel/csv/custom.ftl"
 $FREEMARKER_CMD -t examples/templates/excel/csv/custom.ftl -Pcsv.format=MYSQL examples/data/excel/test.xls > target/out/test-transform-xls.csv || { echo >&2 "Test failed.  Aborting."; exit 1; }
@@ -153,8 +153,8 @@ $FREEMARKER_CMD -t examples/templates/html/txt/licence.ftl examples/data/html/de
 echo "examples/templates/json/csv/swagger-endpoints.ftl"
 $FREEMARKER_CMD -t examples/templates/json/csv/swagger-endpoints.ftl examples/data/json/swagger-spec.json > target/out/swagger-spec.csv || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
-echo "templates/json/yaml/transform.ftl"
-$FREEMARKER_CMD -t json/yaml/transform.ftl examples/data/json/swagger-spec.json > target/out/swagger-spec.yaml || { echo >&2 "Test failed.  Aborting."; exit 1; }
+echo "templates/freemarker-generator/json/yaml/transform.ftl"
+$FREEMARKER_CMD -t freemarker-generator/json/yaml/transform.ftl examples/data/json/swagger-spec.json > target/out/swagger-spec.yaml || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
 echo "examples/templates/json/md/github-users.ftl"
 $FREEMARKER_CMD -t examples/templates/json/md/github-users.ftl examples/data/json/github-users.json > target/out/github-users.md || { echo >&2 "Test failed.  Aborting."; exit 1; }
@@ -174,21 +174,21 @@ echo "examples/data/template"
 $FREEMARKER_CMD -t examples/data/template -PNGINX_HOSTNAME=localhost -o target/out/template  || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
 #############################################################################
-# YAML
+# XML
 #############################################################################
 
-echo "examples/templates/yaml/txt/transform.ftl"
-$FREEMARKER_CMD -t examples/templates/yaml/txt/transform.ftl examples/data/yaml/customer.yaml > target/out/customer.txt || { echo >&2 "Test failed.  Aborting."; exit 1; }
-
-echo "templates/yaml/json/transform.ftl"
-$FREEMARKER_CMD -t yaml/json/transform.ftl examples/data/yaml/swagger-spec.yaml > target/out/swagger-spec.json || { echo >&2 "Test failed.  Aborting."; exit 1; }
+echo "examples/templates/xml/txt/recipients.ftl"
+$FREEMARKER_CMD -t examples/templates/xml/txt/recipients.ftl examples/data/xml/recipients.xml > target/out/recipients.txt || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
 #############################################################################
-# XML
+# YAML
 #############################################################################
 
-echo "examples/templates/xml/txt/recipients.ftl"
-$FREEMARKER_CMD -t examples/templates/xml/txt/recipients.ftl examples/data/xml/recipients.xml > target/out/recipients.txt || { echo >&2 "Test failed.  Aborting."; exit 1; }
+echo "examples/templates/yaml/txt/transform.ftl"
+$FREEMARKER_CMD -t examples/templates/yaml/txt/transform.ftl examples/data/yaml/customer.yaml > target/out/customer.txt || { echo >&2 "Test failed.  Aborting."; exit 1; }
+
+echo "templates/freemarker-generator/yaml/json/transform.ftl"
+$FREEMARKER_CMD -t freemarker-generator/yaml/json/transform.ftl examples/data/yaml/swagger-spec.yaml > target/out/swagger-spec.json || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
 echo "Created the following sample files in ./target/out"
 ls -l ./target/out
\ No newline at end of file
diff --git a/freemarker-generator-cli/src/site/markdown/cli/advanced/cli-configuration.md b/freemarker-generator-cli/src/site/markdown/cli/advanced/cli-configuration.md
index 8e8743e..bb8b8ca 100644
--- a/freemarker-generator-cli/src/site/markdown/cli/advanced/cli-configuration.md
+++ b/freemarker-generator-cli/src/site/markdown/cli/advanced/cli-configuration.md
@@ -67,7 +67,7 @@ If a  `~/freemarker-generator` is found it will be automatically added to the `F
 You can easily check this, e.g.  
 
 ```
-> freemarker-generator -t info.ftl
+> freemarker-generator -t freemarker-generator/info.ftl
 
 FreeMarker Generator Template Loader Directories
 ------------------------------------------------------------------------------
diff --git a/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md b/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md
index 9e3228f..d0cdef7 100644
--- a/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md
+++ b/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md
@@ -13,7 +13,7 @@ A `DataSource` consists of lazy-loaded data available in Apache FreeMarker's mod
 A `DataSource` can be loaded from the file system, e.g. as positional command line argument
 
 ```
-freemarker-cli -t info.ftl README.md
+freemarker-cli -t freemarker-generator/info.ftl README.md
 
 FreeMarker Generator DataSources
 ------------------------------------------------------------------------------
@@ -24,7 +24,7 @@ FreeMarker Generator DataSources
 from an URL
 
 ```
-freemarker-cli --data-source xkcd=https://xkcd.com/info.0.json -t info.ftl
+freemarker-cli --data-source xkcd=https://xkcd.com/info.0.json -t freemarker-generator/info.ftl
 
 FreeMarker Generator DataSources
 ------------------------------------------------------------------------------
@@ -36,7 +36,7 @@ or from an environment variable, e.g. `NGINX_CONF` having a JSON payload
 
 ```
 export NGINX_CONF='{"NGINX_PORT":"8443","NGINX_HOSTNAME":"localhost"}'
-freemarker-cli -t info.ftl -s conf=env:///NGINX_CONF#mimeType=application/json
+freemarker-cli -t freemarker-generator/info.ftl -s conf=env:///NGINX_CONF#mimeType=application/json
 
 FreeMarker Generator DataSources
 ------------------------------------------------------------------------------
@@ -47,7 +47,7 @@ FreeMarker Generator DataSources
 Of course you can load multiple `DataSources` directly
 
 ```
-freemarker-cli -t info.ftl README.md xkcd=https://xkcd.com/info.0.json
+freemarker-cli -t freemarker-generator/info.ftl README.md xkcd=https://xkcd.com/info.0.json
  
 FreeMarker Generator DataSources
 ------------------------------------------------------------------------------
@@ -60,7 +60,7 @@ FreeMarker Generator DataSources
 or load them from a directory
 
 ```
-freemarker-cli -t info.ftl -s examples/data
+freemarker-cli -t freemarker-generator/info.ftl -s examples/data
 FreeMarker Generator DataSources
 ------------------------------------------------------------------------------
     [#1], name=combined-access.log, group=default, contentType=text/plain, charset=UTF-8, length=2,068 Bytes
@@ -74,7 +74,7 @@ FreeMarker Generator DataSources
 which can be combined with `include` and `exclude` filters
 
 ```
-freemarker-cli -t info.ftl -s examples/data --data-source-include=*.json
+freemarker-cli -t freemarker-generator/info.ftl -s examples/data --data-source-include=*.json
 
 FreeMarker Generator DataSources
 ------------------------------------------------------------------------------
diff --git a/freemarker-generator-cli/src/site/markdown/cli/concepts/named-uris.md b/freemarker-generator-cli/src/site/markdown/cli/concepts/named-uris.md
index 1eda49f..b2c2fe3 100644
--- a/freemarker-generator-cli/src/site/markdown/cli/concepts/named-uris.md
+++ b/freemarker-generator-cli/src/site/markdown/cli/concepts/named-uris.md
@@ -29,7 +29,7 @@ For our purposes, the scheme and the path components are especially important, t
 The following Named URI loads a "user.csv" and the data source is available as `my_users` 
 
 ```
-freemarker-cli -t info.ftl my_users=examples/data/csv/user.csv
+freemarker-cli -t freemarker-generator/info.ftl my_users=examples/data/csv/user.csv
 [#1], name=my_users, group=default, contentType=text/csv, charset=UTF-8, length=376 Bytes
 URI : file:examples/data/csv/user.csv
 ```
@@ -37,7 +37,7 @@ URI : file:examples/data/csv/user.csv
 A Named URI allows to pass additional information as part of the fragment, e.g. the charset of the text file 
 
 ```
-freemarker-cli -t info.ftl my_users=examples/data/csv/user.csv#charset=UTF-16
+freemarker-cli -t freemarker-generator/info.ftl my_users=examples/data/csv/user.csv#charset=UTF-16
 [#1], name=my_users, group=default, contentType=text/csv, charset=UTF-16, length=376 Bytes
 URI : file:examples/data/csv/user.csv
 ```
@@ -45,7 +45,7 @@ URI : file:examples/data/csv/user.csv
 In addition to the simplified file syntax full URIs can be used
 
 ```
-freemarker-cli -t info.ftl http://google.com?foo=bar
+freemarker-cli -t freemarker-generator/info.ftl http://google.com?foo=bar
 [#1], name=google.com, group=default, contentType=text/html, charset=ISO-8859-1, length=-1 Bytes
 URI : http://google.com?foo=bar
 ```
@@ -53,7 +53,7 @@ URI : http://google.com?foo=bar
 and also combined with a name
 
 ```
-freemarker-cli -t info.ftl page=http://google.com?foo=bar
+freemarker-cli -t freemarker-generator/info.ftl page=http://google.com?foo=bar
 [#1], name=page, group=default, contentType=text/html, charset=ISO-8859-1, length=-1 Bytes
 URI : http://google.com?foo=bar
 ```
diff --git a/freemarker-generator-cli/src/site/markdown/cli/concepts/passing-data.md b/freemarker-generator-cli/src/site/markdown/cli/concepts/passing-data.md
index 4ff77de..d181c01 100644
--- a/freemarker-generator-cli/src/site/markdown/cli/concepts/passing-data.md
+++ b/freemarker-generator-cli/src/site/markdown/cli/concepts/passing-data.md
@@ -10,7 +10,7 @@
 User-supplied system properties are added to the JVM's system properties
 
 ```
-> freemarker-generator -Dfoo1=foo1 -D foo2=foo2 -t info.ftl 
+> freemarker-generator -Dfoo1=foo1 -D foo2=foo2 -t freemarker-generator/info.ftl 
 ```
  
 ### User-Supplied Parameters
@@ -23,7 +23,7 @@ User-supplied parameters allow to pass additional information to an Apache FreeM
 Pass a simple name/value pair on the command line 
 
 ```
-> freemarker-generator -t info.ftl -P key=value
+> freemarker-generator -t freemarker-generator/info.ftl -P key=value
 
 User Supplied Parameters
 ------------------------------------------------------------------------------
@@ -33,7 +33,7 @@ User Supplied Parameters
 By providing a `group` you can create nested maps
 
 ```
-> freemarker-generator -t info.ftl -P foo1:group=bar1 -P foo2:group=bar2
+> freemarker-generator -t freemarker-generator/info.ftl -P foo1:group=bar1 -P foo2:group=bar2
 
 User Supplied Parameters
 ------------------------------------------------------------------------------
@@ -43,7 +43,7 @@ User Supplied Parameters
 It is also possible to mix and match the two approaches
 
 ```
-> freemarker-generator -t info.ftl -P foo1:group=bar1 -P foo2:group=bar2 -P key=value
+> freemarker-generator -t freemarker-generator/info.ftl -P foo1:group=bar1 -P foo2:group=bar2 -P key=value
 
 User Supplied Parameters
 ------------------------------------------------------------------------------
diff --git a/freemarker-generator-cli/src/site/markdown/cli/concepts/template-loading.md b/freemarker-generator-cli/src/site/markdown/cli/concepts/template-loading.md
index f05dbd5..9de70b6 100644
--- a/freemarker-generator-cli/src/site/markdown/cli/concepts/template-loading.md
+++ b/freemarker-generator-cli/src/site/markdown/cli/concepts/template-loading.md
@@ -17,7 +17,7 @@ In order the render a template it needs to be loaded first - there are multiple
 You can check the currently used template loader directories easily on the command line, e.g.
 
 ```
-freemarker-generator -t info.ftl
+freemarker-generator -t freemarker-generator/info.ftl
 
 FreeMarker Generator Template Loader Directories
 ------------------------------------------------------------------------------
@@ -29,7 +29,7 @@ FreeMarker Generator Template Loader Directories
 The main benefit of `MultiTemplateLoader` is the use of abstract template paths finding a template in the template loader directories
 
 ```
-freemarker-generator -t info.ftl
+freemarker-generator -t freemarker-generator/info.ftl
 ``` 
 
 and [Template Includes](https://freemarker.apache.org/docs/ref_directive_include.html)
diff --git a/freemarker-generator-cli/src/site/markdown/cli/concepts/transformation.md b/freemarker-generator-cli/src/site/markdown/cli/concepts/transformation.md
index fe9b7f0..03a9b3a 100644
--- a/freemarker-generator-cli/src/site/markdown/cli/concepts/transformation.md
+++ b/freemarker-generator-cli/src/site/markdown/cli/concepts/transformation.md
@@ -19,7 +19,7 @@ Transforming a single template to a single output file
 
 ```
 freemarker-generator \
--t csv/md/transform.ftl examples/data/csv/contract.csv \
+-t freemarker-generator/csv/md/transform.ftl examples/data/csv/contract.csv \
 -o target/contract.md
 ```
 
@@ -27,8 +27,8 @@ Transforming multiple templates to multiple output files (1:1 mapping between te
 
 ```
 > freemarker-generator \
--t csv/md/transform.ftl -o target/contract.md \
--t csv/html/transform.ftl -o target/contract.html \
+-t freemarker-generator/csv/md/transform.ftl -o target/contract.md \
+-t freemarker-generator/csv/html/transform.ftl -o target/contract.html \
 examples/data/csv/contract.csv
 
 > tree target 
diff --git a/freemarker-generator-cli/src/site/markdown/cli/introduction/getting-started.md b/freemarker-generator-cli/src/site/markdown/cli/introduction/getting-started.md
index 6d5c376..035b492 100644
--- a/freemarker-generator-cli/src/site/markdown/cli/introduction/getting-started.md
+++ b/freemarker-generator-cli/src/site/markdown/cli/introduction/getting-started.md
@@ -84,7 +84,7 @@ The distribution ships with a couple of FreeMarker templates and the `templates/
 to better understand `Apache FreeMarker Generator`
 
 ```
-> freemarker-generator -t info.ftl
+> freemarker-generator -t freemarker-generator/info.ftl
 FreeMarker Generator Information
 ------------------------------------------------------------------------------
 FreeMarker version     : 2.3.30
diff --git a/freemarker-generator-cli/src/site/markdown/cli/usage/running-examples.md b/freemarker-generator-cli/src/site/markdown/cli/usage/running-examples.md
index 694ce15..d13b2f2 100644
--- a/freemarker-generator-cli/src/site/markdown/cli/usage/running-examples.md
+++ b/freemarker-generator-cli/src/site/markdown/cli/usage/running-examples.md
@@ -121,8 +121,8 @@ creates the following output
 Sometimes you have a CSV file which needs to be translated in Markdown or HTML - there are on-line solutions available such as [CSV To Markdown Table Generator](https://donatstudios.com/CsvToMarkdownTable) but having a local solution gives you more flexibility.
 
 ```text
-> freemarker-generator -t csv/md/transform.ftl examples/data/csv/contract.csv
-> freemarker-generator -t csv/html/transform.ftl examples/data/csv/contract.csv
+> freemarker-generator -t freemarker-generator/csv/md/transform.ftl examples/data/csv/contract.csv
+> freemarker-generator -t freemarker-generator/csv/html/transform.ftl examples/data/csv/contract.csv
 ```
 
 The FreeMarker template is shown below
@@ -266,10 +266,10 @@ ENDPOINT;METHOD;CONSUMES;PRODUCES;SUMMARY;DESCRIPTION
 Another day my project management asked me to create a CSV configuration file based on an Excel documents - as usual manual copying was not an option due to required data cleanup and data transformation. So I thought about Apache POI which support XLS and XLSX documents - integration of Apache POI was a breeze but the resulting code was not particularly useful example. So a more generic transformation was provided to show the transformation of Excel documents ...
 
 ```text
-> freemarker-generator -t excel/html/transform.ftl examples/data/excel/test.xls
-> freemarker-generator -t excel/html/transform.ftl examples/data/excel/test.xlsx
-> freemarker-generator -t excel/html/transform.ftl examples/data/excel/test-multiple-sheets.xlsx
-> freemarker-generator -t excel/md/transform.ftl examples/data/excel/test-multiple-sheets.xlsx
+> freemarker-generator -t freemarker-generator/excel/html/transform.ftl examples/data/excel/test.xls
+> freemarker-generator -t freemarker-generator/excel/html/transform.ftl examples/data/excel/test.xlsx
+> freemarker-generator -t freemarker-generator/excel/html/transform.ftl examples/data/excel/test-multiple-sheets.xlsx
+> freemarker-generator -t freemarker-generator/excel/md/transform.ftl examples/data/excel/test-multiple-sheets.xlsx
 ```
 
 The provided FTL transforms an Excel into a HTML document supporting multiple Excel sheets
@@ -617,7 +617,7 @@ date "+%FT%H:%M:%S" | tr -d '\n'; curl --write-out ',${record.disposer},%{http_c
 Rendering the FreeMarker template 
 
 ```
-> freemarker-generator -t ./examples/templates/csv/shell/curl.ftl examples/data/csv/user.csv
+> freemarker-generator -t examples/templates/csv/shell/curl.ftl examples/data/csv/user.csv
 ```
 
 generates the following shell script
@@ -889,11 +889,11 @@ yields
 Sometimes we simply need to transform a JSON into an equivalent YAML or the other way around
 
 ```
-> freemarker-generator -t yaml/json/transform.ftl examples/data/yaml/swagger-spec.yaml 
+> freemarker-generator -t freemarker-generator/yaml/json/transform.ftl examples/data/yaml/swagger-spec.yaml 
 > freemarker-generator -i '${tools.gson.toJson(tools.yaml.parse(dataSources?values[0]))}' examples/data/yaml/swagger-spec.yaml
 > freemarker-generator -i '${tools.gson.toJson(yaml)}' -m yaml=examples/data/yaml/swagger-spec.yaml
 
-> freemarker-generator -t json/yaml/transform.ftl examples/data/json/swagger-spec.json
+> freemarker-generator -t freemarker-generator/json/yaml/transform.ftl examples/data/json/swagger-spec.json
 > freemarker-generator -i '${tools.yaml.toYaml(tools.gson.parse(dataSources?values[0]))}' examples/data/json/swagger-spec.json
 > freemarker-generator -i '${tools.yaml.toYaml(json)}' -m json=examples/data/json/swagger-spec.json
 ```
diff --git a/freemarker-generator-cli/src/site/markdown/cli/usage/transforming-csv.md b/freemarker-generator-cli/src/site/markdown/cli/usage/transforming-csv.md
index d3ef50b..d87fa6c 100644
--- a/freemarker-generator-cli/src/site/markdown/cli/usage/transforming-csv.md
+++ b/freemarker-generator-cli/src/site/markdown/cli/usage/transforming-csv.md
@@ -19,7 +19,7 @@ freemarker-generator \
  -PCSV_SOURCE_FORMAT=DEFAULT \
  -PCSV_TARGET_FORMAT=EXCEL \
  -PCSV_TARGET_DELIMITER=SEMICOLON \
- -t csv/csv/transform.ftl \
+ -t freemarker-generator/csv/csv/transform.ftl \
  https://raw.githubusercontent.com/apache/freemarker-generator/master/freemarker-generator-cli/examples/data/csv/contract.csv 
 ```  
 
@@ -39,7 +39,7 @@ The following command line prints the resulting MarkDown to `stdout`
 ```
 freemarker-generator \
  -PCSV_SOURCE_FORMAT=DEFAULT \
- -t csv/md/transform.ftl \
+ -t freemarker-generator/csv/md/transform.ftl \
  https://raw.githubusercontent.com/apache/freemarker-generator/master/freemarker-generator-cli/examples/data/csv/contract.csv 
 ```  
 
@@ -52,7 +52,7 @@ Of course it is possible to convert a CSV to HTML as well
 ```
 freemarker-generator \
  -PCSV_SOURCE_FORMAT=DEFAULT \
- -t csv/html/transform.ftl \
+ -t freemarker-generator/csv/html/transform.ftl \
  https://raw.githubusercontent.com/apache/freemarker-generator/master/freemarker-generator-cli/examples/data/csv/contract.csv 
 ```  
 
diff --git a/freemarker-generator-cli/src/templates/cat.ftl b/freemarker-generator-cli/src/templates/freemarker-generator/cat.ftl
similarity index 100%
rename from freemarker-generator-cli/src/templates/cat.ftl
rename to freemarker-generator-cli/src/templates/freemarker-generator/cat.ftl
diff --git a/freemarker-generator-cli/src/templates/csv/csv/transform.ftl b/freemarker-generator-cli/src/templates/freemarker-generator/csv/csv/transform.ftl
similarity index 94%
rename from freemarker-generator-cli/src/templates/csv/csv/transform.ftl
rename to freemarker-generator-cli/src/templates/freemarker-generator/csv/csv/transform.ftl
index 52512af..3941c4c 100644
--- a/freemarker-generator-cli/src/templates/csv/csv/transform.ftl
+++ b/freemarker-generator-cli/src/templates/freemarker-generator/csv/csv/transform.ftl
@@ -15,7 +15,7 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<#import "/lib/commons-csv.ftl" as csv />
+<#import "/freemarker-generator/lib/commons-csv.ftl" as csv />
 <#assign dataSource = dataSources?values[0]>
 <#assign csvParser = tools.csv.parse(dataSource, csv.sourceFormat())>
 <#assign csvTargetFormat = csv.targetFormat()>
diff --git a/freemarker-generator-cli/src/templates/csv/html/transform.ftl b/freemarker-generator-cli/src/templates/freemarker-generator/csv/html/transform.ftl
similarity index 96%
rename from freemarker-generator-cli/src/templates/csv/html/transform.ftl
rename to freemarker-generator-cli/src/templates/freemarker-generator/csv/html/transform.ftl
index e216558..d027672 100644
--- a/freemarker-generator-cli/src/templates/csv/html/transform.ftl
+++ b/freemarker-generator-cli/src/templates/freemarker-generator/csv/html/transform.ftl
@@ -15,7 +15,7 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<#import "/lib/commons-csv.ftl" as csv />
+<#import "/freemarker-generator/lib/commons-csv.ftl" as csv />
 <#assign dataSource = dataSources?values[0]>
 <#assign csvParser = tools.csv.parse(dataSource, csv.sourceFormat())>
 <#assign csvHeaders = csvParser.getHeaderNames()>
diff --git a/freemarker-generator-cli/src/templates/csv/md/transform.ftl b/freemarker-generator-cli/src/templates/freemarker-generator/csv/md/transform.ftl
similarity index 96%
rename from freemarker-generator-cli/src/templates/csv/md/transform.ftl
rename to freemarker-generator-cli/src/templates/freemarker-generator/csv/md/transform.ftl
index 4710e56..6929b31 100644
--- a/freemarker-generator-cli/src/templates/csv/md/transform.ftl
+++ b/freemarker-generator-cli/src/templates/freemarker-generator/csv/md/transform.ftl
@@ -14,7 +14,7 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<#import "/lib/commons-csv.ftl" as csv />
+<#import "/freemarker-generator/lib/commons-csv.ftl" as csv />
 <#assign dataSource = dataSources?values[0]>
 <#assign csvParser = tools.csv.parse(dataSource, csv.sourceFormat())>
 <#assign headers = (csvParser.getHeaderMap()!{})?keys>
diff --git a/freemarker-generator-cli/src/templates/excel/csv/transform.ftl b/freemarker-generator-cli/src/templates/freemarker-generator/excel/csv/transform.ftl
similarity index 96%
rename from freemarker-generator-cli/src/templates/excel/csv/transform.ftl
rename to freemarker-generator-cli/src/templates/freemarker-generator/excel/csv/transform.ftl
index 208dc07..18179f4 100644
--- a/freemarker-generator-cli/src/templates/excel/csv/transform.ftl
+++ b/freemarker-generator-cli/src/templates/freemarker-generator/excel/csv/transform.ftl
@@ -16,7 +16,7 @@
   under the License.
 -->
 <#-- Parse the first data source & sheet of the Excel document -->
-<#import "/lib/commons-csv.ftl" as csv />
+<#import "/freemarker-generator/lib/commons-csv.ftl" as csv />
 <#assign workbook = tools.excel.parse(dataSources?values[0])>
 <#assign sheet = tools.excel.getSheets(workbook)[0]>
 <#assign records = tools.excel.toTable(sheet)>
diff --git a/freemarker-generator-cli/src/templates/excel/html/transform.ftl b/freemarker-generator-cli/src/templates/freemarker-generator/excel/html/transform.ftl
similarity index 100%
rename from freemarker-generator-cli/src/templates/excel/html/transform.ftl
rename to freemarker-generator-cli/src/templates/freemarker-generator/excel/html/transform.ftl
diff --git a/freemarker-generator-cli/src/templates/excel/md/transform.ftl b/freemarker-generator-cli/src/templates/freemarker-generator/excel/md/transform.ftl
similarity index 100%
rename from freemarker-generator-cli/src/templates/excel/md/transform.ftl
rename to freemarker-generator-cli/src/templates/freemarker-generator/excel/md/transform.ftl
diff --git a/freemarker-generator-cli/src/templates/info.ftl b/freemarker-generator-cli/src/templates/freemarker-generator/info.ftl
similarity index 100%
rename from freemarker-generator-cli/src/templates/info.ftl
rename to freemarker-generator-cli/src/templates/freemarker-generator/info.ftl
diff --git a/freemarker-generator-cli/src/templates/json/yaml/transform.ftl b/freemarker-generator-cli/src/templates/freemarker-generator/json/yaml/transform.ftl
similarity index 100%
rename from freemarker-generator-cli/src/templates/json/yaml/transform.ftl
rename to freemarker-generator-cli/src/templates/freemarker-generator/json/yaml/transform.ftl
diff --git a/freemarker-generator-cli/src/templates/lib/commons-csv.ftl b/freemarker-generator-cli/src/templates/freemarker-generator/lib/commons-csv.ftl
similarity index 100%
rename from freemarker-generator-cli/src/templates/lib/commons-csv.ftl
rename to freemarker-generator-cli/src/templates/freemarker-generator/lib/commons-csv.ftl
diff --git a/freemarker-generator-cli/src/templates/yaml/json/transform.ftl b/freemarker-generator-cli/src/templates/freemarker-generator/yaml/json/transform.ftl
similarity index 100%
rename from freemarker-generator-cli/src/templates/yaml/json/transform.ftl
rename to freemarker-generator-cli/src/templates/freemarker-generator/yaml/json/transform.ftl
diff --git a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java
index e7c8c2d..ae79148 100644
--- a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java
+++ b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java
@@ -31,12 +31,13 @@ public class ExamplesTest extends AbstractMainTest {
 
     @Test
     public void shouldRunInfo() throws IOException {
-        assertValid(execute("-t info.ftl README.md"));
+        assertValid(execute("-t freemarker-generator/info.ftl README.md"));
+        assertValid(execute("-t /freemarker-generator/info.ftl README.md"));
     }
 
     @Test
     public void shouldRunMultipleTimes() throws IOException {
-        assertValid(execute("--times=2 -t info.ftl README.md"));
+        assertValid(execute("--times=2 -t freemarker-generator/info.ftl README.md"));
     }
 
     @Test
@@ -46,22 +47,22 @@ public class ExamplesTest extends AbstractMainTest {
 
     @Test
     public void shouldRunCsvExamples() throws IOException {
-        assertValid(execute("-t csv/html/transform.ftl src/examples/data/csv/contract.csv"));
-        assertValid(execute("-t csv/md/transform.ftl src/examples/data/csv/contract.csv"));
+        assertValid(execute("-t freemarker-generator/csv/html/transform.ftl src/examples/data/csv/contract.csv"));
+        assertValid(execute("-t freemarker-generator/csv/md/transform.ftl src/examples/data/csv/contract.csv"));
         assertValid(execute("-t src/examples/templates/csv/shell/curl.ftl src/examples/data/csv/user.csv"));
         assertValid(execute("-t src/examples/templates/csv/fo/transform.ftl src/examples/data/csv/locker-test-users.csv"));
         assertValid(execute("-t src/examples/templates/csv/fo/transactions.ftl src/examples/data/csv/transactions.csv"));
         assertValid(execute("-t src/examples/templates/csv/html/transactions.ftl src/examples/data/csv/transactions.csv"));
-        assertValid(execute("-t csv/csv/transform.ftl src/examples/data/csv/contract.csv"));
+        assertValid(execute("-t freemarker-generator/csv/csv/transform.ftl src/examples/data/csv/contract.csv"));
     }
 
     @Test
     public void shouldRunExcelExamples() throws IOException {
-        assertValid(execute("-t excel/html/transform.ftl src/examples/data/excel/test.xls"));
-        assertValid(execute("-t excel/html/transform.ftl src/examples/data/excel/test.xlsx"));
-        assertValid(execute("-t excel/html/transform.ftl src/examples/data/excel/test-multiple-sheets.xlsx"));
-        assertValid(execute("-t excel/md/transform.ftl src/examples/data/excel/test-multiple-sheets.xlsx"));
-        assertValid(execute("-t excel/csv/transform.ftl src/examples/data/excel/test-multiple-sheets.xlsx"));
+        assertValid(execute("-t freemarker-generator/excel/html/transform.ftl src/examples/data/excel/test.xls"));
+        assertValid(execute("-t freemarker-generator/excel/html/transform.ftl src/examples/data/excel/test.xlsx"));
+        assertValid(execute("-t freemarker-generator/excel/html/transform.ftl src/examples/data/excel/test-multiple-sheets.xlsx"));
+        assertValid(execute("-t freemarker-generator/excel/md/transform.ftl src/examples/data/excel/test-multiple-sheets.xlsx"));
+        assertValid(execute("-t freemarker-generator/excel/csv/transform.ftl src/examples/data/excel/test-multiple-sheets.xlsx"));
         assertValid(execute("-t src/examples/templates/excel/csv/custom.ftl -Pcsv.format=MYSQL src/examples/data/excel/test.xls"));
         assertValid(execute("-t src/examples/templates/excel/dataframe/transform.ftl src/examples/data/excel/test.xls"));
     }
@@ -75,7 +76,7 @@ public class ExamplesTest extends AbstractMainTest {
     public void shouldRunJsonExamples() throws IOException {
         assertValid(execute("-t src/examples/templates/json/csv/swagger-endpoints.ftl src/examples/data/json/swagger-spec.json"));
         assertValid(execute("-t src/examples/templates/json/md/github-users.ftl src/examples/data/json/github-users.json"));
-        assertValid(execute("-t json/yaml/transform.ftl src/examples/data/json/swagger-spec.json"));
+        assertValid(execute("-t freemarker-generator/json/yaml/transform.ftl src/examples/data/json/swagger-spec.json"));
     }
 
     @Test
@@ -86,7 +87,7 @@ public class ExamplesTest extends AbstractMainTest {
     @Test
     public void shouldRunYamlExamples() throws IOException {
         assertValid(execute("-t src/examples/templates/yaml/txt/transform.ftl src/examples/data/yaml/customer.yaml"));
-        assertValid(execute("-t yaml/json/transform.ftl src/examples/data/yaml/swagger-spec.yaml"));
+        assertValid(execute("-t freemarker-generator/yaml/json/transform.ftl src/examples/data/yaml/swagger-spec.yaml"));
     }
 
     @Test
@@ -135,8 +136,8 @@ public class ExamplesTest extends AbstractMainTest {
 
     @Test
     public void shouldTransformMultipleTemplates() throws IOException {
-        assertValid(execute("-t csv/md/transform.ftl -t csv/html/transform.ftl src/examples/data/csv/contract.csv"));
-        assertValid(execute("-t csv/md/transform.ftl -o target/contract.md -t csv/html/transform.ftl -o target/contract.html src/examples/data/csv/contract.csv"));
+        assertValid(execute("-t freemarker-generator/csv/md/transform.ftl -t freemarker-generator/csv/html/transform.ftl src/examples/data/csv/contract.csv"));
+        assertValid(execute("-t freemarker-generator/csv/md/transform.ftl -o target/contract.md -t freemarker-generator/csv/html/transform.ftl -o target/contract.html src/examples/data/csv/contract.csv"));
     }
 
     @Test
diff --git a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java
index 1ec9a0f..a1ba5e6 100644
--- a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java
+++ b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/TemplateLoadingTest.java
@@ -26,7 +26,7 @@ import static org.junit.Assert.assertEquals;
 public class TemplateLoadingTest extends AbstractMainTest {
 
     private static final int SUCCESS = 0;
-    private static final String ANY_TEMPLATE_NAME = "src/templates/info.ftl";
+    private static final String ANY_TEMPLATE_NAME = "./src/templates/freemarker-generator/info.ftl";
     private static final String CURR_DIR = System.getProperty("user.dir", ".");
 
     @Test