This is an automated email from the ASF dual-hosted git repository.
sgoeschl pushed a commit to branch FREEMARKER-146
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
The following commit(s) were added to refs/heads/FREEMARKER-146 by this push:
new 5295d43 FREEMARKER-146 Cleanly separate example templates and data
from user-supplied content
5295d43 is described below
commit 5295d43f675994facfbe589fcead581034dbcf7f
Author: Siegfried Goeschl <[email protected]>
AuthorDate: Thu Jun 18 17:19:05 2020 +0200
FREEMARKER-146 Cleanly separate example templates and data from
user-supplied content
---
freemarker-generator-cli/templates/csv/csv/transform.ftl | 2 +-
freemarker-generator-cli/templates/csv/html/transform.ftl | 12 +++++++++---
freemarker-generator-cli/templates/csv/md/transform.ftl | 10 ++++++++--
freemarker-generator-cli/templates/excel/csv/transform.ftl | 11 ++++++++---
freemarker-generator-cli/templates/excel/html/transform.ftl | 1 +
5 files changed, 27 insertions(+), 9 deletions(-)
diff --git a/freemarker-generator-cli/templates/csv/csv/transform.ftl
b/freemarker-generator-cli/templates/csv/csv/transform.ftl
index 05d60af..33988e1 100644
--- a/freemarker-generator-cli/templates/csv/csv/transform.ftl
+++ b/freemarker-generator-cli/templates/csv/csv/transform.ftl
@@ -29,7 +29,7 @@
</#compress>
<#function createCsvParser dataSource>
- <#assign initialCvsInFormat = CSVTool.formats[CSV_IN_FORMAT!"DEFAULT"]>
+ <#assign initialCvsInFormat =
CSVTool.formats[CSV_IN_FORMAT!"DEFAULT"].withHeader()>
<#assign csvInDelimiter =
CSVTool.toDelimiter(CSV_IN_DELIMITER!initialCvsInFormat.getDelimiter())>
<#assign cvsInFormat = initialCvsInFormat.withDelimiter(csvInDelimiter)>
<#return CSVTool.parse(dataSource, cvsInFormat)>
diff --git a/freemarker-generator-cli/templates/csv/html/transform.ftl
b/freemarker-generator-cli/templates/csv/html/transform.ftl
index 65eb4f1..d5b5515 100644
--- a/freemarker-generator-cli/templates/csv/html/transform.ftl
+++ b/freemarker-generator-cli/templates/csv/html/transform.ftl
@@ -17,8 +17,7 @@
-->
<#assign dataSource = DataSources.get(0)>
<#assign name = dataSource.name>
-<#assign cvsFormat = CSVTool.formats["DEFAULT"].withHeader()>
-<#assign csvParser = CSVTool.parse(dataSource, cvsFormat)>
+<#assign csvParser = createCsvParser(DataSources.get(0))>
<#assign csvHeaders = csvParser.getHeaderNames()>
<#--------------------------------------------------------------------------->
<!DOCTYPE html>
@@ -53,4 +52,11 @@
<th>${field}</th>
</#list>
</tr>
-</#macro>
\ No newline at end of file
+</#macro>
+<#--------------------------------------------------------------------------->
+<#function createCsvParser dataSource>
+ <#assign initialCvsInFormat =
CSVTool.formats[CSV_IN_FORMAT!"DEFAULT"].withHeader()>
+ <#assign csvInDelimiter =
CSVTool.toDelimiter(CSV_IN_DELIMITER!initialCvsInFormat.getDelimiter())>
+ <#assign cvsInFormat = initialCvsInFormat.withDelimiter(csvInDelimiter)>
+ <#return CSVTool.parse(dataSource, cvsInFormat)>
+</#function>
\ No newline at end of file
diff --git a/freemarker-generator-cli/templates/csv/md/transform.ftl
b/freemarker-generator-cli/templates/csv/md/transform.ftl
index fca0bc5..303552c 100644
--- a/freemarker-generator-cli/templates/csv/md/transform.ftl
+++ b/freemarker-generator-cli/templates/csv/md/transform.ftl
@@ -15,8 +15,7 @@
specific language governing permissions and limitations
under the License.
-->
-<#assign cvsFormat = CSVTool.formats["DEFAULT"].withHeader()>
-<#assign csvParser = CSVTool.parse(DataSources.get(0), cvsFormat)>
+<#assign csvParser = createCsvParser(DataSources.get(0))>
<#assign csvHeaders = csvParser.getHeaderMap()?keys>
<#assign csvRecords = csvParser.records>
<#--------------------------------------------------------------------------->
@@ -35,3 +34,10 @@
| ${column.iterator()?join(" | ", "")} |
</#list>
</#macro>
+<#--------------------------------------------------------------------------->
+<#function createCsvParser dataSource>
+ <#assign initialCvsInFormat =
CSVTool.formats[CSV_IN_FORMAT!"DEFAULT"].withHeader()>
+ <#assign csvInDelimiter =
CSVTool.toDelimiter(CSV_IN_DELIMITER!initialCvsInFormat.getDelimiter())>
+ <#assign cvsInFormat = initialCvsInFormat.withDelimiter(csvInDelimiter)>
+ <#return CSVTool.parse(dataSource, cvsInFormat)>
+</#function>
\ No newline at end of file
diff --git a/freemarker-generator-cli/templates/excel/csv/transform.ftl
b/freemarker-generator-cli/templates/excel/csv/transform.ftl
index 2455c49..babec81 100644
--- a/freemarker-generator-cli/templates/excel/csv/transform.ftl
+++ b/freemarker-generator-cli/templates/excel/csv/transform.ftl
@@ -15,17 +15,22 @@
specific language governing permissions and limitations
under the License.
-->
-<#assign format = CVS_IN_FORMAT!"DEFAULT">
<#-- Parse the first data source & sheet of the Excel document -->
<#assign workbook = ExcelTool.parse(DataSources.get(0))>
<#assign sheet = ExcelTool.getSheets(workbook)[0]>
<#assign records = ExcelTool.toTable(sheet)>
<#-- Setup CSVPrinter -->
-<#assign cvsFormat = CSVTool.formats[format]>
-<#assign csvPrinter = CSVTool.printer(cvsFormat, SystemTool.writer)>
+<#assign csvPrinter = createCsvPrinter()>
<#-- Print each line of the Excel as CSV record -->
<#compress>
<#list records as record>
${csvPrinter.printRecord(record)}
</#list>
</#compress>
+<#--------------------------------------------------------------------------->
+<#function createCsvPrinter>
+ <#assign initialCvsOutFormat = CSVTool.formats[CSV_OUT_FORMAT!"DEFAULT"]>
+ <#assign csvOutDelimiter =
CSVTool.toDelimiter(CSV_OUT_DELIMITER!initialCvsOutFormat.getDelimiter())>
+ <#assign cvsOutFormat = initialCvsOutFormat.withDelimiter(csvOutDelimiter)>
+ <#return CSVTool.printer(cvsOutFormat, SystemTool.writer)>
+</#function>
diff --git a/freemarker-generator-cli/templates/excel/html/transform.ftl
b/freemarker-generator-cli/templates/excel/html/transform.ftl
index 68ccc42..58ace89 100644
--- a/freemarker-generator-cli/templates/excel/html/transform.ftl
+++ b/freemarker-generator-cli/templates/excel/html/transform.ftl
@@ -81,3 +81,4 @@
</#list>
</table>
</#macro>
+