-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added new diagram showing the engine usage,
- Loading branch information
Showing
1 changed file
with
105 additions
and
4 deletions.
There are no files selected for viewing
109 changes: 105 additions & 4 deletions
109
fj-doc-guide/src/main/docs/asciidoc/chapters/00_1_what_is.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,111 @@ | ||
[#doc-what-is] | ||
=== What is Fugerit Venus Doc? | ||
|
||
Fugerit Venus Doc is a document generation framework. | ||
link:https://github.com/fugerit-org/fj-doc[Fugerit Venus Doc] is a document generation framework, largely based on link:https://freemarker.apache.org/[Apache FreeMarker template] engine and on a xref:#doc-format-entry-point[custom document format] (available in XML (default), JSON, YAML and Kotlin). | ||
|
||
It is based a xref:#doc-format-entry-point[source format] to describe the document structure (available in XML (default), JSON, YAML and Kotlin). | ||
The source format can be rendered to different output formats through xref:#doc-handlers[Doc Handlers]. (the actual rendering often depends on other open source libraries like link:https://xmlgraphics.apache.org/fop/[Apache FOP] or link:https://opencsv.sourceforge.net/[OpenCSV]). | ||
|
||
It heavenly relies on link:https://freemarker.apache.org[Apache FreeMarker] for source format composition. | ||
Here is a diagram showing the usage of the framework on a typical scenario. | ||
|
||
The source format can be rendered to different output formats through xref:#doc-handlers[Doc Handlers]. (the actual rendering often depends on other open source libraries like link:https://xmlgraphics.apache.org/fop/[Apache FOP] or link:https://opencsv.sourceforge.net/[OpenCSV]). | ||
. Using XML as document source format | ||
. Picking two output format (HTML and MarkDown) | ||
|
||
[mermaid, title="Fugerit Venus Doc engine"] | ||
.... | ||
flowchart TD | ||
T --> F | ||
J --> F | ||
I1 --> D1 --> R1 | ||
I2 --> D2 --> R2 | ||
F --> O --> D1 | ||
O --> D2 | ||
subgraph FreeMarker Template | ||
T["#lt;doc#gt; | ||
#lt;metadata#gt;...#lt;/metadata#gt; | ||
#lt;body#gt; | ||
... | ||
#lt;para#gt;Hello ?{name}!#lt;/para#gt; | ||
... | ||
#lt;/body#gt; | ||
#lt;/doc#gt;"] | ||
style T text-align:left | ||
end | ||
subgraph Doc Process Context | ||
J["... | ||
model.setName(#quot;Venus#quot;); | ||
..."] | ||
style J text-align:left | ||
end | ||
subgraph Output Document Selection | ||
I1(HTML) | ||
I2(MarkDown) | ||
I3(PDF) | ||
end | ||
subgraph Venus FreeMarker Doc Process | ||
F(("Apache | ||
FreeMarker")) | ||
O["#lt;doc#gt; | ||
#lt;metadata#gt;...#lt;/metadata#gt; | ||
#lt;body#gt; | ||
... | ||
#lt;h head-level=#quot;2#quot;#gt;Hello Venus!#lt;/h#gt; | ||
... | ||
#lt;/body#gt; | ||
#lt;/doc#gt;"] | ||
style O text-align:left | ||
D1(("HTML | ||
Doc Handler")) | ||
D2(("MarkDown | ||
Doc Handler")) | ||
end | ||
subgraph HTML Document | ||
R1["#lt;html#gt; | ||
... | ||
#lt;h2#gt;Hello World!#lt;/h2#gt; | ||
... | ||
#lt;/html#gt;"] | ||
style R1 text-align:left | ||
end | ||
subgraph MarkDown Document | ||
R2["... | ||
## Hello World! | ||
..."] | ||
style R2 text-align:left | ||
end | ||
.... | ||
|
||
For who is familiar with Apache FreeMarker this is basically an evolution of its approach : | ||
|
||
[mermaid, title="Apache FreeMarker template engine"] | ||
.... | ||
flowchart TD | ||
T --> F | ||
J --> F | ||
F --> O | ||
subgraph Template | ||
T["#lt;html#gt; | ||
... | ||
Hello ?{name}! | ||
... | ||
#lt;/html#gt;"] | ||
style T text-align:left | ||
end | ||
subgraph Java Objects | ||
J["... | ||
model.setName(#quot;World#quot;); | ||
..."] | ||
style J text-align:left | ||
end | ||
F(("Apache | ||
FreeMarker")) | ||
subgraph Output | ||
O["#lt;html#gt; | ||
... | ||
Hello World! | ||
... | ||
#lt;/html#gt;"] | ||
style O text-align:left | ||
end | ||
.... | ||
|
||
NOTE: This diagram is a reproduction of the one in link:https://freemarker.apache.org/[What is Apache FreeMarker?] page. |