diff --git a/.github/workflows/asciidoc_2_gh_pages.yml b/.github/workflows/asciidoc_2_gh_pages.yml
index 22fbb3c9e..f1ec1aaa9 100644
--- a/.github/workflows/asciidoc_2_gh_pages.yml
+++ b/.github/workflows/asciidoc_2_gh_pages.yml
@@ -50,8 +50,8 @@ jobs:
- name: Verify Mermaid CLI installation
run: mmdc --version
- - name: Convert AsciiDoc to HTML5
- run: cd fj-doc-guide;mvn clean asciidoctor:process-asciidoc@asciidoc-to-html
+ - name: Convert AsciiDoc to HTML5 and PDF
+ run: cd fj-doc-guide;mvn clean asciidoctor:process-asciidoc@asciidoc-to-html asciidoctor:process-asciidoc@asciidoc-to-pdf
- name: Build Legacy Pages
uses: actions/jekyll-build-pages@main
@@ -64,6 +64,9 @@ jobs:
- name: Copy new site
run: cp -fr ./fj-doc-guide/target/generated-html5/ ./fj-doc-guide/target/site/guide/
+ - name: Copy pdf buide
+ run: cp -fr ./fj-doc-guide/target/generated-pdf/fj-doc-guide-*.pdf ./fj-doc-guide/target/site/guide/fj-doc-guide.pdf
+
- name: Setup Pages
uses: actions/configure-pages@main
diff --git a/.github/workflows/build_maven_package.yml b/.github/workflows/build_maven_package.yml
index a8d704054..73d43ba83 100644
--- a/.github/workflows/build_maven_package.yml
+++ b/.github/workflows/build_maven_package.yml
@@ -37,4 +37,3 @@ jobs:
maven-additional-profiles: ',buildreact'
disable-maven-dependency-submission: ${{ vars.DISABLE_MAVEN_DEPENDENCY_SUBMISSION }}
disable-upload-sarif: ${{ vars.DISABLE_UPLOAD_SARIF }}
- maven-core: '2'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 84eb445ae..585e20446 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+### Changed
+
+- [fj-doc-maven-plugin] support for asciidoc doc handler (fj-doc-version 8.8.7+)
+- [fj-doc-maven-plugin] updated readme information for quarkus-3 flavour
+- [fj-doc-guide] added pdf documentation
+- [fj-doc-playground-quarkus] fj-doc-ext-kotlin-version set to 0.4.2
+
## [8.9.2] - 2024-10-14
### Changed
diff --git a/README.md b/README.md
index 010ddb78d..43778ea08 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,8 @@ Framework to produce documents in different output formats starting from an XML
[![Online playground](https://img.shields.io/badge/Try%20Now-Online%20Playground-1AC736?style=for-the-badge&logo=Onlinect%20Playground&logoColor=white)](https://docs.fugerit.org/fj-doc-playground/home/)
[![Fugerit Github Project Conventions](https://img.shields.io/badge/Fugerit%20Org-Project%20Conventions-1A36C7?style=for-the-badge&logo=Onlinect%20Playground&logoColor=white)](https://universe.fugerit.org/src/docs/conventions/index.html)
-[![view - Guide](https://img.shields.io/badge/view-Guide-blue?style=for-the-badge)](https://venusdocs.fugerit.org/guide/ "Go to project documentation")
+[![HTML - Guide](https://img.shields.io/badge/HTML-Guide-blue?style=for-the-badge)](https://venusdocs.fugerit.org/guide/ "Go to project HTML documentation")
+[![PDF - Guide](https://img.shields.io/badge/PDF-Guide-red?style=for-the-badge)](https://venusdocs.fugerit.org/guide/fj-doc-guide.pdf "Go to project PDF documentation")
The Core library (fj-doc-base) is all you need to start, even though typically you will use at least :
* [fj-doc-base](fj-doc-base/README.md)
@@ -38,14 +39,6 @@ Full build is made by :
`mvn clean install -P full,test`
-Or with the maven wrapper for linux :
-
-`./mvnw clean install -P full,test`
-
-Or with the maven wrapper for windows :
-
-`./mvnw clean install -P full,test`
-
### Run
The Fugerit Venus Doc project is a library for generating documents to be included.
diff --git a/fj-doc-guide/pom.xml b/fj-doc-guide/pom.xml
index 76cb5896d..2dfb474bd 100644
--- a/fj-doc-guide/pom.xml
+++ b/fj-doc-guide/pom.xml
@@ -24,12 +24,12 @@
3.0.0
- 2.3.15
- 2.5.12
- 2.3.0
- 1.2024.3
+ 2.3.18
+ 3.0.0
+ 2.3.1
+ 1.2024.5
1.0.3
- 9.4.6.0
+ 9.4.8.0
yyyy-MM-dd'T'HH:mm:ss'Z'
${project.build.directory}/generated-pdf
${project.build.directory}/generated-html5
diff --git a/fj-doc-guide/src/main/docs/asciidoc/attributes/_attributes-common.adoc b/fj-doc-guide/src/main/docs/asciidoc/attributes/_attributes-common.adoc
index 9c370ca27..ad74facda 100644
--- a/fj-doc-guide/src/main/docs/asciidoc/attributes/_attributes-common.adoc
+++ b/fj-doc-guide/src/main/docs/asciidoc/attributes/_attributes-common.adoc
@@ -1,10 +1,9 @@
:author: Matteo Franci
:revnumber: v1.0.0
-:revdate: June XX, 2024
+:revdate: October 15, 2024
:email: m@fugerit.org
-:description: This is a comparison of a simple online demo photobook \
-implemented with three popular java cloud ready framework.
-:keywords: java, graalvm, spring, springboot, quarkus, micronaut
+:description: Fugerit Doc Venus : document generation framework
+:keywords: java, xml, json, yaml, kotlin, pdf, html, xlsx, csv, document generation
:encoding: utf-8
:lang: en
:toc: left
diff --git a/fj-doc-guide/src/main/docs/asciidoc/chapters/03_4_doc_format_info.adoc b/fj-doc-guide/src/main/docs/asciidoc/chapters/03_4_doc_format_info.adoc
new file mode 100644
index 000000000..553f71197
--- /dev/null
+++ b/fj-doc-guide/src/main/docs/asciidoc/chapters/03_4_doc_format_info.adoc
@@ -0,0 +1,38 @@
+[#doc-format-entry-point-info]
+=== Doc Format Info Element
+
+The _info_ element is available to setup some specific properties of the document.
+
+Here is a link:https://venusdocs.fugerit.org/docs/html/doc_meta_info.html[list of possible info element].
+
+For instance in this document we set following _info_ elements :
+
+* margin
+* doc-title
+* doc-author
+* doc-language
+
+Some DocHandler will ignore some info elements.
+
+[source,xml]
+----
+
+
+
+
+
+ 10;10;10;30
+
+ Hello World
+ fugerit79
+ en
+
+
+ Hello World!
+
+
+
+----
diff --git a/fj-doc-guide/src/main/docs/asciidoc/chapters/06_0_base.adoc b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_0_base.adoc
new file mode 100644
index 000000000..86daf0590
--- /dev/null
+++ b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_0_base.adoc
@@ -0,0 +1,50 @@
+<<<
+[#doc-handler-base]
+=== [fj-doc-base]
+
+Here are described the doc handlers included in the basic module, which usually is always included :
+
+[source,xml]
+----
+
+ org.fugerit.java
+ fj-doc-base
+ ${fj-doc-version}
+
+----
+
+[#doc-handler-base-md-ext]
+==== MarkDown (Extended)
+
+This doc handler would render a MarkDown (Extended) document. The Basic and Extended version only differ for table management. Basic version will render tables in html.
+
+*In brief* :
+
+- *compliance level* : _HIGH_
+- *compliance detail* : All generic link:#doc-format-entry-point[Venus Doc Format] elements are supported.
+- *native ready* : _YES_
+
+Add this element to ** :
+
+[source,xml]
+----
+
+----
+
+[#doc-handler-base-md-basic]
+==== MarkDown (Basic)
+
+This doc handler would render a MarkDown (Basic) document. The Basic and Extended version only differ for table management. Basic version will render tables in html.
+
+*In brief* :
+
+- *compliance level* : _HIGH_
+- *compliance detail* : All generic link:#doc-format-entry-point[Venus Doc Format] elements are supported.
+- *native ready* : _YES_
+
+Add this element to ** :
+
+[source,xml]
+----
+
+----
\ No newline at end of file
diff --git a/fj-doc-guide/src/main/docs/asciidoc/chapters/06_1_freemarker-html.adoc b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_1_freemarker-html.adoc
index 2024a12f6..f48c9f611 100644
--- a/fj-doc-guide/src/main/docs/asciidoc/chapters/06_1_freemarker-html.adoc
+++ b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_1_freemarker-html.adoc
@@ -18,6 +18,12 @@ To use this doc handler, you will need to add the following dependency :
This doc handler would render a full html document.
+*In brief* :
+
+- *compliance level* : _HIGH_
+- *compliance detail* : All generic link:#doc-format-entry-point[Venus Doc Format] elements are supported.
+- *native ready* : _YES_
+
Add this element to ** :
[source,xml]
@@ -31,9 +37,33 @@ Add this element to ** :
This doc handler would render only the body of the html document.
(useful to inject the body as a fragment).
+*In brief* :
+
+- *compliance level* : _HIGH_
+- *compliance detail* : All generic link:#doc-format-entry-point[Venus Doc Format] elements are supported.
+- *native ready* : _YES_
+
Add this element to ** :
[source,xml]
----
+----
+
+[#doc-handler-freemarker-asciidoc]
+==== Asciidoc (ADOC)
+
+This doc handler would be rendered as an asciidoc document.
+
+*In brief* :
+
+- *compliance level* : _HIGH_
+- *compliance detail* : All generic link:#doc-format-entry-point[Venus Doc Format] elements are supported.
+- *native ready* : _YES_
+
+Add this element to ** :
+
+[source,xml]
+----
+
----
\ No newline at end of file
diff --git a/fj-doc-guide/src/main/docs/asciidoc/chapters/06_2_mod-fop.adoc b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_2_mod-fop.adoc
index 26dceb328..e73c74e50 100644
--- a/fj-doc-guide/src/main/docs/asciidoc/chapters/06_2_mod-fop.adoc
+++ b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_2_mod-fop.adoc
@@ -1,6 +1,6 @@
<<<
[#doc-handler-mod-fop]
-=== [fj-doc-mod-fop]
+=== [fj-doc-mod-fop] A PDF/FO DocHandler
To use this doc handler, you will need to add the following dependency :
@@ -22,6 +22,12 @@ Usually Apache FOP uses link:https://www.w3.org/TR/xslt-30/[XSL Transformations]
This doc handler would render a full PDF document with default FOP configuration.
+*In brief* :
+
+- *compliance level* : _HIGH_
+- *compliance detail* : All generic link:#doc-format-entry-point[Venus Doc Format] elements are supported.
+- *native ready* : _NO_ (As Apache FOP is not ready).
+
Add this element to ** :
[source,xml]
@@ -114,6 +120,12 @@ And here a link:https://venusdocs.fugerit.org/fj-doc-sample/src/main/resources/f
This doc handler would render a full link:https://xmlgraphics.apache.org/fop/fo.html[FO] intermediate document.
+*In brief* :
+
+- *compliance level* : _HIGH_
+- *compliance detail* : All generic link:#doc-format-entry-point[Venus Doc Format] elements are supported.
+- *native ready* : _YES_
+
[source,xml]
----
diff --git a/fj-doc-guide/src/main/docs/asciidoc/chapters/06_3_mod-poi.adoc b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_3_mod-poi.adoc
new file mode 100644
index 000000000..af5277d48
--- /dev/null
+++ b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_3_mod-poi.adoc
@@ -0,0 +1,107 @@
+<<<
+[#doc-handler-mod-poi]
+=== [fj-doc-mod-poi] : a XLS/XLSX DocHandler
+
+To use this doc handler, you will need to add the following dependency :
+
+[source,xml]
+----
+
+ org.fugerit.java
+ fj-doc-mod-poi
+ ${fj-doc-version}
+
+----
+
+This module is based on link:https://poi.apache.org/[Apache POI Project].
+
+[#doc-handler-mod-poi-basics]
+==== POI Handler Basics
+
+The following information apply to both xlsx and xls DocHandler.
+
+You will need at least a table, with an _id_ set. (in this example the id is *data-table*).
+
+And the link:https://venusdocs.fugerit.org/docs/html/doc_meta_info.html#excel-table-id[excel-table-id] element with the comma separated enumeration of the table to render as sheet. :
+
+[source,xml]
+----
+data-table=print
+----
+
+The given table (*data-table*) will be rendered as the named sheet (*print*) in the couple : *$tableId*=*$sheetName*.
+
+Here is a full example.
+
+[source,xml]
+----
+
+
+
+
+ data-table=print
+
+
+
+
+ Name |
+ Surname |
+ Title |
+
+
+ |
+ |
+ |
+
+
+ |
+ |
+ |
+
+
+
+
+----
+
+More elements specific to excel format are available link:https://venusdocs.fugerit.org/docs/html/doc_meta_info.html#meta_xls[here].
+
+[#doc-handler-mod-poi-xlsx]
+==== Xlsx DocHandler
+
+This doc handler would a XLSX document.
+
+*In brief* :
+
+- *compliance level* : _MEDIUM_
+- *compliance detail* : Only single table elements of the link:#doc-format-entry-point[Venus Doc Format] are rendered.
+- *native ready* : _NO_ (As Apache POI is not ready).
+
+Add this element to ** :
+
+[source,xml]
+----
+
+
+----
+
+[#doc-handler-mod-poi-xls]
+==== Xls DocHandler
+
+This doc handler would a XLS document.
+
+*In brief* :
+
+- *compliance level* : _MEDIUM_
+- *compliance detail* : Only single table elements of the link:#doc-format-entry-point[Venus Doc Format] are rendered.
+- *native ready* : _NO_ (As Apache POI is not ready).
+
+Add this element to ** :
+
+[source,xml]
+----
+
+
+----
\ No newline at end of file
diff --git a/fj-doc-guide/src/main/docs/asciidoc/chapters/06_4_mod-opencsv.adoc b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_4_mod-opencsv.adoc
new file mode 100644
index 000000000..174d68ddc
--- /dev/null
+++ b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_4_mod-opencsv.adoc
@@ -0,0 +1,79 @@
+<<<
+[#doc-handler-mod-opencsv]
+=== [fj-doc-mod-opencsv] : a CSV DocHandler
+
+To use this doc handler, you will need to add the following dependency :
+
+*In brief* :
+
+- *compliance level* : _MEDIUM_
+- *compliance detail* : Only a single table element of the link:#doc-format-entry-point[Venus Doc Format] is rendered as a CSV document.
+- *native ready* : _YES_
+
+[source,xml]
+----
+
+ org.fugerit.java
+ fj-doc-mod-opencsv
+ ${fj-doc-version}
+
+----
+
+This module is based on link:https://opencsv.sourceforge.net/[OpenCSV].
+
+This doc handler would a CSV document.
+
+Add this element to ** :
+
+[source,xml]
+----
+
+
+----
+
+You will need at least a table, with an _id_ set. (in this example the id is *data-table*).
+
+And the link:https://venusdocs.fugerit.org/docs/html/doc_meta_info.html#csv-table-id[csv-table-id] element with the comma separated enumeration of the table to render as sheet. :
+
+[source,xml]
+----
+data-table
+----
+
+Here is a full example.
+
+[source,xml]
+----
+
+
+
+ data-table
+
+
+
+
+ Name |
+ Surname |
+ Title |
+
+
+ |
+ |
+ |
+
+
+ |
+ |
+ |
+
+
+
+
+----
+
+More elements specific to CSV format are available link:https://venusdocs.fugerit.org/docs/html/doc_meta_info.html#meta_csv[here].
+
+NOTE: In comparison to Xlsx Doc Handler the OpenCSV one is able to render only one table at once.
\ No newline at end of file
diff --git a/fj-doc-guide/src/main/docs/asciidoc/chapters/06_5_mod-openpdf-ext.adoc b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_5_mod-openpdf-ext.adoc
new file mode 100644
index 000000000..fdc49ad9f
--- /dev/null
+++ b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_5_mod-openpdf-ext.adoc
@@ -0,0 +1,87 @@
+<<<
+[#doc-handler-mod-openpdf-ext]
+=== [fj-doc-mod-openpdf-ext] : a PDF and HTML DocHandler
+
+To use this doc handler, you will need to add the following dependency :
+
+*In brief* :
+
+- *compliance level* : _MEDIUM_
+- *compliance detail* : Most elements of the link:#doc-format-entry-point[Venus Doc Format] are supported. lists have not been implemented yet.
+- *native ready* : _NO_ (As OpenPDF is not ready).
+
+[source,xml]
+----
+
+ org.fugerit.java
+ fj-doc-mod-openpdf-ext
+ ${fj-doc-version}
+
+----
+
+This module is based on link:https://github.com/LibrePDF/OpenPDF/[OpenPDF] (based on a fork of iText).
+
+[#doc-handler-mod-openpdf-ext-pdf]
+==== [fj-doc-mod-openpdf-ext-pdf] : PDF DocHandler
+
+This doc handler would a PDF document.
+
+Add this element to ** :
+
+[source,xml]
+----
+
+
+----
+
+More elements specific to fixed size formats, like PDF, are available link:https://venusdocs.fugerit.org/docs/html/doc_meta_info.html#meta_fixed[here].
+
+[#doc-handler-mod-openpdf-ext-pdf-ref]
+*docHandlerCustomConfig reference for org.fugerit.java.doc.mod.openpdf.ext.PdfTypeHandler"*
+
+[cols="2,1,1,6", options="header"]
+|========================================================================================================================================
+| name | type | default | description
+| *charset* anchor:doc-handler-mod-openpdf-ext-pdf-charset[] | _string_ | _UTF-8_ | This will set the charset to use.
+|========================================================================================================================================
+
+Additionaly *fonts* can be configured as child elements of *docHandlerCustomConfig*
+
+[cols="2,1,1,6", options="header"]
+|========================================================================================================================================
+| name | type | default | description
+| *name* anchor:doc-handler-mod-openpdf-ext-pdf-font-name[] | _string_ | | Name of the font
+| *path* anchor:doc-handler-mod-openpdf-ext-pdf-font-path[] | _string_ | | Path of the font (in classloader of file)
+|========================================================================================================================================
+
+Here is a custom configuration example :
+
+[source,xml]
+----
+
+
+
+
+
+
+----
+
+[#doc-handler-mod-openpdf-ext-html]
+==== [fj-doc-mod-openpdf-ext-html] : HTML DocHandler
+
+This doc handler would a HTML document.
+
+*In brief* :
+
+- *compliance level* : _MEDIUM_
+- *compliance detail* : Most elements of the link:#doc-format-entry-point[Venus Doc Format] are supported. lists have not been implemented yet.
+- *native ready* : _NO_ (As OpenPDF is not ready).
+
+Add this element to ** :
+
+[source,xml]
+----
+
+
+----
+
diff --git a/fj-doc-guide/src/main/docs/asciidoc/chapters/06_6_mod-openrtf-ext.adoc b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_6_mod-openrtf-ext.adoc
new file mode 100644
index 000000000..4893bf0bc
--- /dev/null
+++ b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_6_mod-openrtf-ext.adoc
@@ -0,0 +1,35 @@
+<<<
+[#doc-handler-mod-openrtf-ext]
+=== [fj-doc-mod-openrtf-ext] : a RTF DocHandler
+
+To use this doc handler, you will need to add the following dependency :
+
+*In brief* :
+
+- *compliance level* : _MEDIUM_
+- *compliance detail* : Most elements of the link:#doc-format-entry-point[Venus Doc Format] are supported. lists have not been implemented yet.
+- *native ready* : _NO_ (As OpenRTF is not ready).
+
+[source,xml]
+----
+
+ org.fugerit.java
+ fj-doc-mod-openrtf-ext
+ ${fj-doc-version}
+
+----
+
+This module is based on link:https://github.com/LibrePDF/OpenRTF[OpenRTF].
+
+This doc handler would a RTF document.
+
+Add this element to ** :
+
+[source,xml]
+----
+
+
+----
+
+More elements specific to fixed size formats, like RTF, are available link:https://venusdocs.fugerit.org/docs/html/doc_meta_info.html#meta_fixed[here].
+
diff --git a/fj-doc-guide/src/main/docs/asciidoc/chapters/06_doc_handlers.adoc b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_doc_handlers.adoc
index b0cccd450..bfde28994 100644
--- a/fj-doc-guide/src/main/docs/asciidoc/chapters/06_doc_handlers.adoc
+++ b/fj-doc-guide/src/main/docs/asciidoc/chapters/06_doc_handlers.adoc
@@ -19,3 +19,78 @@ flowchart TB
end
....
+[#doc-handler-module-handlers]
+=== DocHandler Module Index
+
+[cols="4,2,1,3", options="header"]
+|========================================================================================================================================
+| doc-handler | module | type | description
+
+| link:#doc-handler-base-md-ext[org.fugerit.java.doc.base.typehandler.markdown.SimpleMarkdownExtTypeHandlerNoCommentsUTF8]
+| link:#doc-handler-base[fj-doc-base]
+| MD
+| Renders a MarkDown (Extended) document.
+
+| link:#doc-handler-base-md-basic[org.fugerit.java.doc.base.typehandler.markdown.SimpleMarkdownBasicTypeHandlerNoCommentsUTF8]
+| link:#doc-handler-base[fj-doc-base]
+| MD
+| Renders a MarkDown (Basic) document (tables are rendered as HTML).
+
+| link:#doc-handler-freemarker-html[org.fugerit.java.doc.freemarker.html.FreeMarkerHtmlTypeHandlerEscapeUTF8]
+| link:#doc-handler-freemarker[fj-doc-freemarker]
+| HTML
+| Renders HTML documents using link:https://freemarker.apache.org/[Apache FreeMarker template engine].
+
+| link:#doc-handler-freemarker-fragment-html[org.fugerit.java.doc.freemarker.html.FreeMarkerHtmlFragmentTypeHandlerEscapeUTF8]
+| link:#doc-handler-freemarker[fj-doc-freemarker]
+| HTML Fragment
+| Same as above, but an HTML fragment is just the body of the HTML document.
+
+| link:#doc-handler-mod-fop-pdf-basic[org.fugerit.java.doc.mod.fop.PdfFopTypeHandler]
+| link:#doc-handler-mod-fop[fj-doc-mod-fop]
+| PDF (PDF/A, PDF/UA)
+| A PDF doc handler based on link:https://xmlgraphics.apache.org/fop/[Apache FOP Project]. It offers options for PDF/A and PDF/UA formats.
+
+| link:#doc-handler-mod-fop-fo[org.fugerit.java.doc.mod.fop.FreeMarkerFopTypeHandlerUTF8]
+| link:#doc-handler-mod-fop[fj-doc-mod-fop]
+| FO (XLS-FO)
+| A link:https://www.w3.org/2002/08/XSLFOsummary.html[XLS-FO] doc handler based on link:https://xmlgraphics.apache.org/fop/[Apache FOP Project].
+
+| link:#doc-handler-mod-poi-xlsx[org.fugerit.java.doc.mod.poi.XlsxPoiTypeHandler]
+| link:#doc-handler-mod-poi[fj-doc-mod-poi]
+| XLSX
+| Generates an XLSX document using link:https://poi.apache.org/[Apache POI Project].
+
+| link:#doc-handler-mod-poi-xls[org.fugerit.java.doc.mod.poi.XlsPoiTypeHandler]
+| link:#doc-handler-mod-poi[fj-doc-mod-poi]
+| XLS
+| Generates an XLS document using link:https://poi.apache.org/[Apache POI Project].
+
+| link:#doc-handler-mod-opencsv[org.fugerit.java.doc.mod.opencsv.OpenCSVTypeHandler]
+| link:#doc-handler-mod-opencsv[fj-doc-mod-opencsv]
+| CSV
+| Generates a CSV document using link:https://opencsv.sourceforge.net/[OpenCSV].
+
+| link:#doc-handler-mod-openpdf-ext-pdf[org.fugerit.java.doc.mod.openpdf.ext.PdfTypeHandler]
+| link:#doc-handler-mod-openpdf-ext[fj-doc-mod-openpdf-ext] | PDF
+| Generates a PDF document using link:https://github.com/LibrePDF/OpenPDF/[OpenPDF].
+
+| link:#doc-handler-mod-openpdf-ext-html[org.fugerit.java.doc.mod.openpdf.ext.HtmlTypeHandler]
+| link:#doc-handler-mod-openpdf-ext[fj-doc-mod-openpdf-ext]
+| HTML
+| Generates a HTML document using link:https://github.com/LibrePDF/OpenPDF/[OpenPDF].
+
+| link:#doc-handler-mod-openrtf-ext[org.fugerit.java.doc.mod.openrtf.ext.RtfTypeHandler]
+| link:#doc-handler-mod-openrtf-ext[fj-doc-mod-openpdf-ext]
+| RTF
+| Generates a RTF document using link:https://github.com/LibrePDF/OpenRTF[OpenRTF].
+
+|========================================================================================================================================
+
+Each section describing a specific doc handler will contain this quick reference :
+
+*In brief* :
+
+- *compliance level* : _COMPLETE_, _HIGH_, _MEDIUM_, _LOW_, The level of support to link:#doc-format-entry-point[Venus Doc Format].
+- *compliance detail* : The limitations to the support of the link:#doc-format-entry-point[Venus Doc Format] (for instance : unsupported elements or attributes).
+- *native ready* : _YES_, _NO_ (If the doc handler is ready for native compilation with link:https://www.graalvm.org/[GraalVM]).
\ No newline at end of file
diff --git a/fj-doc-guide/src/main/docs/asciidoc/chapters/07_004_doc-faq-resize-xls.adoc b/fj-doc-guide/src/main/docs/asciidoc/chapters/07_004_doc-faq-resize-xls.adoc
new file mode 100644
index 000000000..0dd9a4048
--- /dev/null
+++ b/fj-doc-guide/src/main/docs/asciidoc/chapters/07_004_doc-faq-resize-xls.adoc
@@ -0,0 +1,19 @@
+
+[#doc-faq-clean-resize-xls]
+=== How do I have a Excel document cells resize to fit the content.
+
+It is possible to use the elements :
+
+* link:https://venusdocs.fugerit.org/docs/html/doc_meta_info.html#excel-try-autoresize[excel-try-autoresize]
+* link:https://venusdocs.fugerit.org/docs/html/doc_meta_info.html#excel-fail-on-autoresize-error[excel-fail-on-autoresize-error]
+
+
+For instance :
+
+[source,xml]
+----
+true
+false
+----
+
+The DocHandler will try to automatically resize the cell content of the Excel Sheet.
\ No newline at end of file
diff --git a/fj-doc-guide/src/main/docs/asciidoc/index.adoc b/fj-doc-guide/src/main/docs/asciidoc/index.adoc
index fa16ea703..0b12ee3dd 100644
--- a/fj-doc-guide/src/main/docs/asciidoc/index.adoc
+++ b/fj-doc-guide/src/main/docs/asciidoc/index.adoc
@@ -18,6 +18,7 @@ include::chapters/03_doc_format.adoc[]
include::chapters/03_1_doc_format_xml.adoc[]
include::chapters/03_2_doc_format_json_yaml.adoc[]
include::chapters/03_3_doc_format_kotlin.adoc[]
+include::chapters/03_4_doc_format_info.adoc[]
include::chapters/04_doc_freemarker.adoc[]
include::chapters/04_1_doc_freemarker_config.adoc[]
@@ -25,10 +26,16 @@ include::chapters/04_2_doc_freemarker_chain.adoc[]
include::chapters/04_3_doc_freemarker_usage.adoc[]
include::chapters/06_doc_handlers.adoc[]
+include::chapters/06_0_base.adoc[]
include::chapters/06_1_freemarker-html.adoc[]
include::chapters/06_2_mod-fop.adoc[]
+include::chapters/06_3_mod-poi.adoc[]
+include::chapters/06_4_mod-opencsv.adoc[]
+include::chapters/06_5_mod-openpdf-ext.adoc[]
+include::chapters/06_6_mod-openrtf-ext.adoc[]
include::chapters/07_doc-faq.adoc[]
include::chapters/07_001_doc-faq-create-project.adoc[]
include::chapters/07_002_doc-faq-validate-document.adoc[]
-include::chapters/07_003_doc-faq-clean-source.adoc[]
\ No newline at end of file
+include::chapters/07_003_doc-faq-clean-source.adoc[]
+include::chapters/07_004_doc-faq-resize-xls.adoc[]
\ No newline at end of file
diff --git a/fj-doc-guide/src/main/docs/asciidoc/resources/themes/book_cover_basic_v1.0.0.png b/fj-doc-guide/src/main/docs/asciidoc/resources/themes/book_cover_basic_v1.0.0.png
index 32e543cf6..378df0c68 100644
Binary files a/fj-doc-guide/src/main/docs/asciidoc/resources/themes/book_cover_basic_v1.0.0.png and b/fj-doc-guide/src/main/docs/asciidoc/resources/themes/book_cover_basic_v1.0.0.png differ
diff --git a/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/maven/MojoInit.java b/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/maven/MojoInit.java
index c78357c24..15a9f7fca 100644
--- a/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/maven/MojoInit.java
+++ b/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/maven/MojoInit.java
@@ -9,6 +9,7 @@
import org.fugerit.java.doc.project.facade.FlavourFacade;
import org.fugerit.java.doc.project.facade.FlavourContext;
import org.fugerit.java.doc.project.facade.ModuleFacade;
+import org.fugerit.java.doc.project.facade.VersionCheck;
import java.io.File;
@@ -60,6 +61,8 @@ public void execute() throws MojoExecutionException, MojoFailureException {
context.setModules( ModuleFacade.toModuleList( this.extensions ) );
context.setAddLombok( this.addLombok );
context.setFlavourVersion( this.flavourVersion );
+ context.setVersion( VersionCheck.findVersion( this.version ) );
+ context.setExtensions( this.extensions );
this.getLog().info( String.format( "flavour context : %s", context ) );
FlavourFacade.initProject( context );
} );
diff --git a/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/BasicVenusFacade.java b/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/BasicVenusFacade.java
index b1df42def..8c1712995 100644
--- a/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/BasicVenusFacade.java
+++ b/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/BasicVenusFacade.java
@@ -2,22 +2,17 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.maven.model.*;
-import org.apache.maven.plugin.lifecycle.Execution;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
import org.fugerit.java.core.cfg.ConfigRuntimeException;
import org.fugerit.java.core.io.helper.HelperIOException;
-import org.fugerit.java.core.lang.helpers.BooleanUtils;
import org.fugerit.java.core.lang.helpers.StringUtils;
-import org.fugerit.java.doc.freemarker.tool.FreeMarkerTemplateSyntaxVerifier;
import org.maxxq.maven.dependency.ModelIO;
import java.io.*;
-import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
-import java.util.stream.Collectors;
@Slf4j
public class BasicVenusFacade {
diff --git a/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/FlavourContext.java b/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/FlavourContext.java
index ab9308f90..c459f39d8 100644
--- a/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/FlavourContext.java
+++ b/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/FlavourContext.java
@@ -38,6 +38,12 @@ public class FlavourContext {
@Getter @Setter
private String flavourVersion;
+ @Getter @Setter
+ private String version;
+
+ @Getter @Setter
+ private String extensions;
+
private String toClassName( String base, String splitString ) {
StringBuilder buf = new StringBuilder();
String[] split = base.split( splitString );
@@ -52,4 +58,8 @@ public String getArtifactIdAsClassName() {
return toClassName( res, "\\." );
}
+ public boolean isAsciidocFreemarkerHandlerAvailable() {
+ return VersionCheck.isMajorThan( VenusContext.VERSION_ASCIIDOC_FREEMARKER_HANDLER, this.getVersion() );
+ }
+
}
diff --git a/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/VenusContext.java b/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/VenusContext.java
index a082039e2..585ade564 100644
--- a/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/VenusContext.java
+++ b/fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/VenusContext.java
@@ -19,6 +19,8 @@
@ToString
public class VenusContext {
+ public static final String VERSION_ASCIIDOC_FREEMARKER_HANDLER = "8.8.6";
+
public static final String VERSION_NA_VERIFY_PLUGIN = "8.7.2";
public static final String VERSION_NA_FULL_PROCESS = "8.6.2";
@@ -122,6 +124,10 @@ public boolean isVerifyPluginNotAvailable() {
return VersionCheck.isMajorThan( VERSION_NA_VERIFY_PLUGIN, this.getVersion() );
}
+ public boolean isAsciidocFreemarkerHandlerAvailable() {
+ return VersionCheck.isMajorThan( VERSION_ASCIIDOC_FREEMARKER_HANDLER, this.getVersion() );
+ }
+
public boolean isPreVersion862() {
return VersionCheck.isMajorThan( VERSION_NA_FULL_PROCESS, this.getVersion() );
}
diff --git a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/micronaut-4/DocController.ftl b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/micronaut-4/DocController.ftl
index 75fa6180a..8e648b5aa 100644
--- a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/micronaut-4/DocController.ftl
+++ b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/micronaut-4/DocController.ftl
@@ -27,7 +27,11 @@ public class DocController {
<@fhm.createMicronautPath context=context outputMime="text/markdown" outputExtension="md" outputDescription="Markdown"/>
<@fhm.createMicronautPath context=context outputMime="text/html" outputExtension="html" outputDescription="HTML"/>
-
+
+ <#if context.asciidocFreemarkerHandlerAvailable>
+ <@fhm.createMicronautPath context=context outputMime="text/asciidoc" outputExtension="adoc" outputDescription="AsciiDoc"/>
+ #if>
+
<#if context.modules?seq_contains("fj-doc-mod-fop")>
<@fhm.createMicronautPath context=context outputMime="application/pdf" outputExtension="pdf" outputDescription="PDF"/>
#if>
diff --git a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/openliberty/DocResource.ftl b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/openliberty/DocResource.ftl
index 0c0a83067..a45ccb523 100644
--- a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/openliberty/DocResource.ftl
+++ b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/openliberty/DocResource.ftl
@@ -29,6 +29,10 @@ public class DocResource {
<@fhm.createQuarkusPath context=context outputMime="text/html" outputExtension="html" outputDescription="HTML"/>
+ <#if context.asciidocFreemarkerHandlerAvailable>
+ <@fhm.createQuarkusPath context=context outputMime="text/asciidoc" outputExtension="adoc" outputDescription="AsciiDoc"/>
+ #if>
+
<#if context.modules?seq_contains("fj-doc-mod-fop")>
<@fhm.createQuarkusPath context=context outputMime="application/pdf" outputExtension="pdf" outputDescription="PDF"/>
#if>
diff --git a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-2/DocResource.ftl b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-2/DocResource.ftl
index bd53c3703..de5878fa1 100644
--- a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-2/DocResource.ftl
+++ b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-2/DocResource.ftl
@@ -29,6 +29,10 @@ public class DocResource {
<@fhm.createQuarkusPath context=context outputMime="text/html" outputExtension="html" outputDescription="HTML"/>
+ <#if context.asciidocFreemarkerHandlerAvailable>
+ <@fhm.createQuarkusPath context=context outputMime="text/asciidoc" outputExtension="adoc" outputDescription="AsciiDoc"/>
+ #if>
+
<#if context.modules?seq_contains("fj-doc-mod-fop")>
<@fhm.createQuarkusPath context=context outputMime="application/pdf" outputExtension="pdf" outputDescription="PDF"/>
#if>
diff --git a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-2/DocResourceTest.ftl b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-2/DocResourceTest.ftl
index 46ba44e6e..52a5ed759 100644
--- a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-2/DocResourceTest.ftl
+++ b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-2/DocResourceTest.ftl
@@ -20,6 +20,13 @@ class DocResourceTest {
given().when().get("/doc/example.html").then().statusCode(200);
}
+ <#if context.asciidocFreemarkerHandlerAvailable>
+ @Test
+ void testAsciiDoc() {
+ given().when().get("/doc/example.adoc").then().statusCode(200);
+ }
+ #if>
+
<#if context.modules?seq_contains("fj-doc-mod-fop")>
@Test
void testPdf() {
diff --git a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/DocResource.ftl b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/DocResource.ftl
index 0c0a83067..a45ccb523 100644
--- a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/DocResource.ftl
+++ b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/DocResource.ftl
@@ -29,6 +29,10 @@ public class DocResource {
<@fhm.createQuarkusPath context=context outputMime="text/html" outputExtension="html" outputDescription="HTML"/>
+ <#if context.asciidocFreemarkerHandlerAvailable>
+ <@fhm.createQuarkusPath context=context outputMime="text/asciidoc" outputExtension="adoc" outputDescription="AsciiDoc"/>
+ #if>
+
<#if context.modules?seq_contains("fj-doc-mod-fop")>
<@fhm.createQuarkusPath context=context outputMime="application/pdf" outputExtension="pdf" outputDescription="PDF"/>
#if>
diff --git a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/DocResourceTest.ftl b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/DocResourceTest.ftl
index 46ba44e6e..52a5ed759 100644
--- a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/DocResourceTest.ftl
+++ b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/DocResourceTest.ftl
@@ -20,6 +20,13 @@ class DocResourceTest {
given().when().get("/doc/example.html").then().statusCode(200);
}
+ <#if context.asciidocFreemarkerHandlerAvailable>
+ @Test
+ void testAsciiDoc() {
+ given().when().get("/doc/example.adoc").then().statusCode(200);
+ }
+ #if>
+
<#if context.modules?seq_contains("fj-doc-mod-fop")>
@Test
void testPdf() {
diff --git a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/README.ftl b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/README.ftl
index d3a4f8db5..bbad5b379 100644
--- a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/README.ftl
+++ b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/quarkus-3/README.ftl
@@ -18,6 +18,10 @@ Open the [swagger-ui](http://localhost:8080/q/swagger-ui/)
Test available paths (for instance : [/doc/example.md](http://localhost:8080/doc/example.md))
+NOTE:
+- Powered by Quarkus ${context.flavourVersion}
+- Using Fugerit Venus Doc ${context.version} (extensions : ${context.extensions})
+
## Overview
This project has been initialized using [fj-doc-maven-plugin init goal](https://venusguides.fugerit.org/src/docs/wizard/fj-doc-maven-plugin_init.html).
@@ -25,7 +29,7 @@ This project has been initialized using [fj-doc-maven-plugin init goal](https://
The quarkus 3 structure is similar to running the quarkus create goal :
```shell
-mvn io.quarkus.platform:quarkus-maven-plugin:3.14.2:create \
+mvn io.quarkus.platform:quarkus-maven-plugin:${context.flavourVersion}:create \
-DprojectGroupId=${context.groupId} \
-DprojectArtifactId=${context.artifactId} \
-Dextensions='rest,rest-jackson,config-yaml,smallrye-openapi'
diff --git a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/springboot-3/DocController.ftl b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/springboot-3/DocController.ftl
index 86876b6ee..f2f4050f0 100644
--- a/fj-doc-maven-plugin/src/main/resources/config/template/flavour/springboot-3/DocController.ftl
+++ b/fj-doc-maven-plugin/src/main/resources/config/template/flavour/springboot-3/DocController.ftl
@@ -30,7 +30,11 @@ public class DocController {
<@fhm.createSpringBootPath context=context outputMime="text/markdown" outputExtension="md" outputDescription="Markdown"/>
<@fhm.createSpringBootPath context=context outputMime="text/html" outputExtension="html" outputDescription="HTML"/>
-
+
+ <#if context.asciidocFreemarkerHandlerAvailable>
+ <@fhm.createSpringBootPath context=context outputMime="text/asciidoc" outputExtension="adoc" outputDescription="AsciiDoc"/>
+ #if>
+
<#if context.modules?seq_contains("fj-doc-mod-fop")>
<@fhm.createSpringBootPath context=context outputMime="application/pdf" outputExtension="pdf" outputDescription="PDF"/>
#if>
diff --git a/fj-doc-maven-plugin/src/main/resources/config/template/fm-doc-process-config-template.ftl b/fj-doc-maven-plugin/src/main/resources/config/template/fm-doc-process-config-template.ftl
index 852f9efa6..0502111dd 100644
--- a/fj-doc-maven-plugin/src/main/resources/config/template/fm-doc-process-config-template.ftl
+++ b/fj-doc-maven-plugin/src/main/resources/config/template/fm-doc-process-config-template.ftl
@@ -23,6 +23,10 @@
+ <#if context.asciidocFreemarkerHandlerAvailable>
+
+
+ #if>
<#if context.modules?seq_contains("fj-doc-mod-fop")>
diff --git a/fj-doc-playground-quarkus/pom.xml b/fj-doc-playground-quarkus/pom.xml
index a1166a1be..df469d127 100644
--- a/fj-doc-playground-quarkus/pom.xml
+++ b/fj-doc-playground-quarkus/pom.xml
@@ -24,7 +24,7 @@
3.4.1
3.1.0
1.4.3
- 0.4.1
+ 0.4.2
2.0.21