Minor improvements and code cleanup
diff --git a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/MimetypesFileTypeMapFactory.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/MimetypesFileTypeMapFactory.java
index b75a422..955dbb9 100644
--- a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/MimetypesFileTypeMapFactory.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/activation/MimetypesFileTypeMapFactory.java
@@ -31,10 +31,13 @@
             mimeTypes.addMimeTypes("application/vnd.ms-excel xls XLS");
             mimeTypes.addMimeTypes("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx XLSX");
             mimeTypes.addMimeTypes("application/xml xml XML");
+            mimeTypes.addMimeTypes("application/xhtml+xml xhtml XHTML");
             mimeTypes.addMimeTypes("text/csv csv CSV");
-            mimeTypes.addMimeTypes("text/plain txt TXT log LOG ini INI properties md MD");
-            mimeTypes.addMimeTypes("text/yaml yml YML yaml YAML");
+            mimeTypes.addMimeTypes("text/plain env txt TXT log LOG ini INI properties");
+            mimeTypes.addMimeTypes("text/html htm HTML HTM HTML");
+            mimeTypes.addMimeTypes("text/markdown md MD");
             mimeTypes.addMimeTypes("text/tab-separated-values tsv TSV");
+            mimeTypes.addMimeTypes("text/yaml yml YML yaml YAML");
         }
 
         return mimeTypes;
diff --git a/freemarker-generator-cli/README.md b/freemarker-generator-cli/README.md
index 754dd24..524f7b3 100644
--- a/freemarker-generator-cli/README.md
+++ b/freemarker-generator-cli/README.md
@@ -983,6 +983,9 @@
 > bin/freemarker-cli -i '${JsonPathTool.parse(Datasources.first).read("$.info.title")}' site/sample/json/swagger-spec.json; echo
 Swagger Petstore
 
+> bin/freemarker-cli -i 'Post Title : ${JsonPathTool.parse(Datasources.first).read("$.title")}' https://jsonplaceholder.typicode.com/posts/2
+Post Title : qui est esse
+
 > bin/freemarker-cli -i '${XmlTool.parse(Datasources.first)["recipients/person[1]/name"]}' site/sample/xml/recipients.xml; echo
 John Smith
 
diff --git a/freemarker-generator-cli/templates/cat.ftl b/freemarker-generator-cli/templates/cat.ftl
index 820e4ff..a42b02b 100644
--- a/freemarker-generator-cli/templates/cat.ftl
+++ b/freemarker-generator-cli/templates/cat.ftl
@@ -15,9 +15,8 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<#assign lines = Datasources.get(0).getLineIterator()>
-<#compress>
-    <#list lines as line>
-        ${line}
-    </#list>
-</#compress>
\ No newline at end of file
+<#list Datasources.list as datasource>
+<#list datasource.lineIterator as line>
+${line}
+</#list>
+</#list>
diff --git a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVTool.java b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVTool.java
index 755ea33..56e4bb9 100644
--- a/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVTool.java
+++ b/freemarker-generator-tools/src/main/java/org/apache/freemarker/generator/tools/commonscsv/CommonsCSVTool.java
@@ -44,8 +44,8 @@
 
 public class CommonsCSVTool {
 
-    public CSVParser parse(Datasource da) {
-        return parse(da, CSVFormat.DEFAULT);
+    public CSVParser parse(Datasource datasource) {
+        return parse(datasource, CSVFormat.DEFAULT);
     }
 
     public CSVParser parse(Datasource datasource, CSVFormat format) {
@@ -64,6 +64,10 @@
         }
     }
 
+    public CSVParser parse(String csv) {
+        return parse(csv, CSVFormat.DEFAULT);
+    }
+
     public CSVParser parse(String csv, CSVFormat format) {
         if (StringUtils.isEmpty(csv)) {
             throw new IllegalArgumentException("No CSV was provided");