This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/training.git
The following commit(s) were added to refs/heads/asf-site by this push:
new e76fa72 Site checkin for project Training: Website
e76fa72 is described below
commit e76fa72ae3ce62cc8eb8e73f8ebf300c7d561f59
Author: jenkins <[email protected]>
AuthorDate: Sat Aug 30 16:20:18 2025 +0000
Site checkin for project Training: Website
---
dependencies.html | 10 +-
incubator/mentors/META-INF/MANIFEST.MF | 2 +-
.../classes/org/apache/training/StringUtils.class | Bin 536 -> 536 bytes
.../META-INF/MANIFEST.MF | 2 +-
presentations/airflow/META-INF/MANIFEST.MF | 2 +-
.../comdev/apache-intro/META-INF/MANIFEST.MF | 2 +-
.../comdev/comdev-intro/META-INF/MANIFEST.MF | 2 +-
.../comdev/working-groups/META-INF/MANIFEST.MF | 2 +-
.../WEB-INF/classes/org/apache/StringUtils.class | Bin 518 -> 518 bytes
presentations/druid/META-INF/MANIFEST.MF | 2 +-
presentations/flink/META-INF/MANIFEST.MF | 2 +-
presentations/hadoop/META-INF/MANIFEST.MF | 2 +-
presentations/hive/META-INF/MANIFEST.MF | 2 +-
presentations/ignite/META-INF/MANIFEST.MF | 2 +-
.../WEB-INF/classes/example/PutGetExample.class | Bin 2197 -> 2197 bytes
.../classes/example/SqlExample$Customer.class | Bin 1921 -> 1921 bytes
.../WEB-INF/classes/example/SqlExample.class | Bin 7069 -> 7069 bytes
.../WEB-INF/classes/example/StartClientNode.class | Bin 928 -> 928 bytes
.../WEB-INF/classes/example/StartServerNode.class | Bin 1322 -> 1322 bytes
.../incubator-releases/META-INF/MANIFEST.MF | 2 +-
.../navigating-asf-incubation/META-INF/MANIFEST.MF | 2 +-
.../release-checklist/META-INF/MANIFEST.MF | 2 +-
presentations/mynewt/META-INF/MANIFEST.MF | 2 +-
.../META-INF/MANIFEST.MF | 2 +-
presentations/pulsar/META-INF/MANIFEST.MF | 2 +-
presentations/samza/META-INF/MANIFEST.MF | 2 +-
presentations/spark/basics/META-INF/MANIFEST.MF | 2 +-
.../.asciidoctor/diagram/actdiag-test.png.cache | 1 +
.../demo/.asciidoctor/diagram/erd-test.svg.cache | 1 +
.../diagram/svgbob-circuit-diagram-test.svg.cache | 1 +
.../diagram/svgbob-mindmap-test.svg.cache | 1 +
.../.asciidoctor/diagram/syntrax-test.svg.cache | 1 +
presentations/training/demo/META-INF/MANIFEST.MF | 2 +-
.../demo/WEB-INF/classes/test/StringUtils.class | Bin 506 -> 506 bytes
.../training/demo/images/actdiag-test.png | Bin 0 -> 21986 bytes
.../demo/images/asciidoctor-diagram-process.png | Bin 13811 -> 13812 bytes
.../training/demo/images/auth-protocol.png | Bin 6780 -> 6780 bytes
presentations/training/demo/images/dot-example.svg | 34 +--
presentations/training/demo/images/erd-test.svg | 40 +++
presentations/training/demo/images/nwdiag-test.png | Bin 23371 -> 23329 bytes
.../demo/images/svgbob-circuit-diagram-test.svg | 310 +++++++++++++++++++++
.../training/demo/images/svgbob-mindmap-test.svg | 252 +++++++++++++++++
.../training/demo/images/syntrax-test.svg | 168 +++++++++++
presentations/training/demo/index.html | 156 ++++-------
.../training/presentation/META-INF/MANIFEST.MF | 2 +-
presentations/zookeeper/META-INF/MANIFEST.MF | 2 +-
46 files changed, 871 insertions(+), 148 deletions(-)
diff --git a/dependencies.html b/dependencies.html
index 3a4b3db..ee79ec7 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -951,7 +951,7 @@
<tr class="a">
<td
align="left">training-content-apache-training-demo-1.0.0-SNAPSHOT.war</td>
<td align="right">3.9 MB</td>
- <td align="right">235</td>
+ <td align="right">245</td>
<td align="right">1</td>
<td align="right">1</td>
<td align="center">1.8</td>
@@ -986,8 +986,8 @@
</tr>
<tr class="a">
<td align="right">22</td>
- <td align="right">221.6 MB</td>
- <td align="right">4908</td>
+ <td align="right">221.7 MB</td>
+ <td align="right">4918</td>
<td align="right">8</td>
<td align="right">4</td>
<td align="center">1.8</td>
@@ -995,8 +995,8 @@
</tr>
<tr class="b">
<td align="right">compile: 22</td>
- <td align="right">compile: 221.6 MB</td>
- <td align="right">compile: 4908</td>
+ <td align="right">compile: 221.7 MB</td>
+ <td align="right">compile: 4918</td>
<td align="right">compile: 8</td>
<td align="right">compile: 4</td>
<td align="center">1.8</td>
diff --git a/incubator/mentors/META-INF/MANIFEST.MF
b/incubator/mentors/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/incubator/mentors/META-INF/MANIFEST.MF
+++ b/incubator/mentors/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git
a/incubator/mentors/WEB-INF/classes/org/apache/training/StringUtils.class
b/incubator/mentors/WEB-INF/classes/org/apache/training/StringUtils.class
index 1b50397..13681e6 100644
Binary files
a/incubator/mentors/WEB-INF/classes/org/apache/training/StringUtils.class and
b/incubator/mentors/WEB-INF/classes/org/apache/training/StringUtils.class differ
diff --git
a/iot/magic-industrial-data-acquisition-with-apache-plc4x-tsfile-and-iotdb/META-INF/MANIFEST.MF
b/iot/magic-industrial-data-acquisition-with-apache-plc4x-tsfile-and-iotdb/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
---
a/iot/magic-industrial-data-acquisition-with-apache-plc4x-tsfile-and-iotdb/META-INF/MANIFEST.MF
+++
b/iot/magic-industrial-data-acquisition-with-apache-plc4x-tsfile-and-iotdb/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/airflow/META-INF/MANIFEST.MF
b/presentations/airflow/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/airflow/META-INF/MANIFEST.MF
+++ b/presentations/airflow/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/comdev/apache-intro/META-INF/MANIFEST.MF
b/presentations/comdev/apache-intro/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/comdev/apache-intro/META-INF/MANIFEST.MF
+++ b/presentations/comdev/apache-intro/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/comdev/comdev-intro/META-INF/MANIFEST.MF
b/presentations/comdev/comdev-intro/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/comdev/comdev-intro/META-INF/MANIFEST.MF
+++ b/presentations/comdev/comdev-intro/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/comdev/working-groups/META-INF/MANIFEST.MF
b/presentations/comdev/working-groups/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/comdev/working-groups/META-INF/MANIFEST.MF
+++ b/presentations/comdev/working-groups/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git
a/presentations/comdev/working-groups/WEB-INF/classes/org/apache/StringUtils.class
b/presentations/comdev/working-groups/WEB-INF/classes/org/apache/StringUtils.class
index ccaf419..8d36402 100644
Binary files
a/presentations/comdev/working-groups/WEB-INF/classes/org/apache/StringUtils.class
and
b/presentations/comdev/working-groups/WEB-INF/classes/org/apache/StringUtils.class
differ
diff --git a/presentations/druid/META-INF/MANIFEST.MF
b/presentations/druid/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/druid/META-INF/MANIFEST.MF
+++ b/presentations/druid/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/flink/META-INF/MANIFEST.MF
b/presentations/flink/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/flink/META-INF/MANIFEST.MF
+++ b/presentations/flink/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/hadoop/META-INF/MANIFEST.MF
b/presentations/hadoop/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/hadoop/META-INF/MANIFEST.MF
+++ b/presentations/hadoop/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/hive/META-INF/MANIFEST.MF
b/presentations/hive/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/hive/META-INF/MANIFEST.MF
+++ b/presentations/hive/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/ignite/META-INF/MANIFEST.MF
b/presentations/ignite/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/ignite/META-INF/MANIFEST.MF
+++ b/presentations/ignite/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/ignite/WEB-INF/classes/example/PutGetExample.class
b/presentations/ignite/WEB-INF/classes/example/PutGetExample.class
index eba451a..0fd102e 100644
Binary files a/presentations/ignite/WEB-INF/classes/example/PutGetExample.class
and b/presentations/ignite/WEB-INF/classes/example/PutGetExample.class differ
diff --git
a/presentations/ignite/WEB-INF/classes/example/SqlExample$Customer.class
b/presentations/ignite/WEB-INF/classes/example/SqlExample$Customer.class
index aa340f6..7ed38ac 100644
Binary files
a/presentations/ignite/WEB-INF/classes/example/SqlExample$Customer.class and
b/presentations/ignite/WEB-INF/classes/example/SqlExample$Customer.class differ
diff --git a/presentations/ignite/WEB-INF/classes/example/SqlExample.class
b/presentations/ignite/WEB-INF/classes/example/SqlExample.class
index 839078d..0750807 100644
Binary files a/presentations/ignite/WEB-INF/classes/example/SqlExample.class
and b/presentations/ignite/WEB-INF/classes/example/SqlExample.class differ
diff --git a/presentations/ignite/WEB-INF/classes/example/StartClientNode.class
b/presentations/ignite/WEB-INF/classes/example/StartClientNode.class
index fdfa6d5..95aaa69 100644
Binary files
a/presentations/ignite/WEB-INF/classes/example/StartClientNode.class and
b/presentations/ignite/WEB-INF/classes/example/StartClientNode.class differ
diff --git a/presentations/ignite/WEB-INF/classes/example/StartServerNode.class
b/presentations/ignite/WEB-INF/classes/example/StartServerNode.class
index 99dab47..37a79a0 100644
Binary files
a/presentations/ignite/WEB-INF/classes/example/StartServerNode.class and
b/presentations/ignite/WEB-INF/classes/example/StartServerNode.class differ
diff --git a/presentations/incubator/incubator-releases/META-INF/MANIFEST.MF
b/presentations/incubator/incubator-releases/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/incubator/incubator-releases/META-INF/MANIFEST.MF
+++ b/presentations/incubator/incubator-releases/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git
a/presentations/incubator/navigating-asf-incubation/META-INF/MANIFEST.MF
b/presentations/incubator/navigating-asf-incubation/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/incubator/navigating-asf-incubation/META-INF/MANIFEST.MF
+++ b/presentations/incubator/navigating-asf-incubation/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/incubator/release-checklist/META-INF/MANIFEST.MF
b/presentations/incubator/release-checklist/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/incubator/release-checklist/META-INF/MANIFEST.MF
+++ b/presentations/incubator/release-checklist/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/mynewt/META-INF/MANIFEST.MF
b/presentations/mynewt/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/mynewt/META-INF/MANIFEST.MF
+++ b/presentations/mynewt/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git
a/presentations/plc4x/revolutionizing-iiot-with-plc4x/META-INF/MANIFEST.MF
b/presentations/plc4x/revolutionizing-iiot-with-plc4x/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/plc4x/revolutionizing-iiot-with-plc4x/META-INF/MANIFEST.MF
+++ b/presentations/plc4x/revolutionizing-iiot-with-plc4x/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/pulsar/META-INF/MANIFEST.MF
b/presentations/pulsar/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/pulsar/META-INF/MANIFEST.MF
+++ b/presentations/pulsar/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/samza/META-INF/MANIFEST.MF
b/presentations/samza/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/samza/META-INF/MANIFEST.MF
+++ b/presentations/samza/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/spark/basics/META-INF/MANIFEST.MF
b/presentations/spark/basics/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/spark/basics/META-INF/MANIFEST.MF
+++ b/presentations/spark/basics/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git
a/presentations/training/demo/.asciidoctor/diagram/actdiag-test.png.cache
b/presentations/training/demo/.asciidoctor/diagram/actdiag-test.png.cache
new file mode 100644
index 0000000..0478be4
--- /dev/null
+++ b/presentations/training/demo/.asciidoctor/diagram/actdiag-test.png.cache
@@ -0,0 +1 @@
+{"checksum":"actdiag-md5-4ce96105dd0def82cf8e2ff45002dc97","options":{"font_path":null},"width":448,"height":360}
\ No newline at end of file
diff --git
a/presentations/training/demo/.asciidoctor/diagram/erd-test.svg.cache
b/presentations/training/demo/.asciidoctor/diagram/erd-test.svg.cache
new file mode 100644
index 0000000..15a82c6
--- /dev/null
+++ b/presentations/training/demo/.asciidoctor/diagram/erd-test.svg.cache
@@ -0,0 +1 @@
+{"checksum":"erd-md5-b0037da5e744e859a2a845cba067c881","options":{},"width":469.49,"height":176.89000000000001}
\ No newline at end of file
diff --git
a/presentations/training/demo/.asciidoctor/diagram/svgbob-circuit-diagram-test.svg.cache
b/presentations/training/demo/.asciidoctor/diagram/svgbob-circuit-diagram-test.svg.cache
new file mode 100644
index 0000000..7fe9601
--- /dev/null
+++
b/presentations/training/demo/.asciidoctor/diagram/svgbob-circuit-diagram-test.svg.cache
@@ -0,0 +1 @@
+{"checksum":"svgbob-md5-57ba41c5c1d7da81a66f99fff2ae38ec","options":{"font_family":null,"font_size":null,"stroke_width":null,"scale":null},"width":592,"height":576}
\ No newline at end of file
diff --git
a/presentations/training/demo/.asciidoctor/diagram/svgbob-mindmap-test.svg.cache
b/presentations/training/demo/.asciidoctor/diagram/svgbob-mindmap-test.svg.cache
new file mode 100644
index 0000000..4b94789
--- /dev/null
+++
b/presentations/training/demo/.asciidoctor/diagram/svgbob-mindmap-test.svg.cache
@@ -0,0 +1 @@
+{"checksum":"svgbob-md5-789a6430f1ba3874b49a8d16ec3ee952","options":{"font_family":null,"font_size":null,"stroke_width":null,"scale":null},"width":544,"height":464}
\ No newline at end of file
diff --git
a/presentations/training/demo/.asciidoctor/diagram/syntrax-test.svg.cache
b/presentations/training/demo/.asciidoctor/diagram/syntrax-test.svg.cache
new file mode 100644
index 0000000..2c03790
--- /dev/null
+++ b/presentations/training/demo/.asciidoctor/diagram/syntrax-test.svg.cache
@@ -0,0 +1 @@
+{"checksum":"syntrax-md5-885b41dddc166cd18851cc396d03c4ad","options":{"heading":null,"scale":null,"transparent":null,"style":null},"width":628,"height":231}
\ No newline at end of file
diff --git a/presentations/training/demo/META-INF/MANIFEST.MF
b/presentations/training/demo/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/training/demo/META-INF/MANIFEST.MF
+++ b/presentations/training/demo/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/training/demo/WEB-INF/classes/test/StringUtils.class
b/presentations/training/demo/WEB-INF/classes/test/StringUtils.class
index e455a44..ed47dbd 100644
Binary files
a/presentations/training/demo/WEB-INF/classes/test/StringUtils.class and
b/presentations/training/demo/WEB-INF/classes/test/StringUtils.class differ
diff --git a/presentations/training/demo/images/actdiag-test.png
b/presentations/training/demo/images/actdiag-test.png
new file mode 100644
index 0000000..152a29e
Binary files /dev/null and
b/presentations/training/demo/images/actdiag-test.png differ
diff --git a/presentations/training/demo/images/asciidoctor-diagram-process.png
b/presentations/training/demo/images/asciidoctor-diagram-process.png
index 530220e..dc909e9 100644
Binary files
a/presentations/training/demo/images/asciidoctor-diagram-process.png and
b/presentations/training/demo/images/asciidoctor-diagram-process.png differ
diff --git a/presentations/training/demo/images/auth-protocol.png
b/presentations/training/demo/images/auth-protocol.png
index 8f8b0c7..c4aecb1 100644
Binary files a/presentations/training/demo/images/auth-protocol.png and
b/presentations/training/demo/images/auth-protocol.png differ
diff --git a/presentations/training/demo/images/dot-example.svg
b/presentations/training/demo/images/dot-example.svg
index 4589bee..2a9cdae 100644
--- a/presentations/training/demo/images/dot-example.svg
+++ b/presentations/training/demo/images/dot-example.svg
@@ -2,54 +2,54 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg height='260pt'
preserveAspectRatio='xMidYMid meet' viewBox='0.00 0.00 89.00 260.00'
width='89pt' xmlns:xlink='http://www.w3.org/1999/xlink'
xmlns='http://www.w3.org/2000/svg'>
<g class='graph' id='graph0' transform='scale(1 1) rotate(0) translate(4 256)'>
<title>g</title>
-<polygon fill='#ffffff' points='-4,4 -4,-256 85,-256 85,4 -4,4'
stroke='transparent'/>
+<polygon fill='white' points='-4,4 -4,-256 85,-256 85,4 -4,4'
stroke='transparent'/>
<g class='node' id='node1'>
<title>a</title>
-<ellipse cx='54' cy='-234' fill='none' rx='27' ry='18' stroke='#000000'/>
-<text fill='#000000' font-family='Times,serif' font-size='14.00'
text-anchor='middle' x='54' y='-230.3'>a</text>
+<ellipse cx='54' cy='-234' fill='none' rx='27' ry='18' stroke='black'/>
+<text font-family='Times,serif' font-size='14.00' text-anchor='middle' x='54'
y='-230.3'>a</text>
</g>
<g class='node' id='node2'>
<title>b</title>
-<ellipse cx='27' cy='-162' fill='none' rx='27' ry='18' stroke='#000000'/>
-<text fill='#000000' font-family='Times,serif' font-size='14.00'
text-anchor='middle' x='27' y='-158.3'>b</text>
+<ellipse cx='27' cy='-162' fill='none' rx='27' ry='18' stroke='black'/>
+<text font-family='Times,serif' font-size='14.00' text-anchor='middle' x='27'
y='-158.3'>b</text>
</g>
<g class='edge' id='edge1'>
<title>a->b</title>
-<path d='M47.3258,-216.2022C44.2524,-208.0064 40.5384,-198.1024
37.1305,-189.0145' fill='none' stroke='#000000'/>
-<polygon fill='#000000' points='40.3858,-187.7274 33.5974,-179.593
33.8315,-190.1853 40.3858,-187.7274' stroke='#000000'/>
+<path d='M47.6,-216.41C44.49,-208.34 40.67,-198.43 37.17,-189.35' fill='none'
stroke='black'/>
+<polygon fill='black' points='40.4,-188.03 33.54,-179.96 33.87,-190.55
40.4,-188.03' stroke='black'/>
</g>
<g class='node' id='node3'>
<title>c</title>
-<ellipse cx='27' cy='-90' fill='none' rx='27' ry='18' stroke='#000000'/>
-<text fill='#000000' font-family='Times,serif' font-size='14.00'
text-anchor='middle' x='27' y='-86.3'>c</text>
+<ellipse cx='27' cy='-90' fill='none' rx='27' ry='18' stroke='black'/>
+<text font-family='Times,serif' font-size='14.00' text-anchor='middle' x='27'
y='-86.3'>c</text>
</g>
<g class='edge' id='edge2'>
<title>b->c</title>
-<path d='M27,-143.8314C27,-136.131 27,-126.9743 27,-118.4166' fill='none'
stroke='#000000'/>
-<polygon fill='#000000' points='30.5001,-118.4132 27,-108.4133
23.5001,-118.4133 30.5001,-118.4132' stroke='#000000'/>
+<path d='M27,-143.7C27,-135.98 27,-126.71 27,-118.11' fill='none'
stroke='black'/>
+<polygon fill='black' points='30.5,-118.1 27,-108.1 23.5,-118.1 30.5,-118.1'
stroke='black'/>
</g>
<g class='node' id='node4'>
<title>d</title>
-<ellipse cx='54' cy='-18' fill='none' rx='27' ry='18' stroke='#000000'/>
-<text fill='#000000' font-family='Times,serif' font-size='14.00'
text-anchor='middle' x='54' y='-14.3'>d</text>
+<ellipse cx='54' cy='-18' fill='none' rx='27' ry='18' stroke='black'/>
+<text font-family='Times,serif' font-size='14.00' text-anchor='middle' x='54'
y='-14.3'>d</text>
</g>
<g class='edge' id='edge3'>
<title>c->d</title>
-<path d='M33.6742,-72.2022C36.7476,-64.0064 40.4616,-54.1024 43.8695,-45.0145'
fill='none' stroke='#000000'/>
-<polygon fill='#000000' points='47.1685,-46.1853 47.4026,-35.593
40.6142,-43.7274 47.1685,-46.1853' stroke='#000000'/>
+<path d='M33.4,-72.41C36.51,-64.34 40.33,-54.43 43.83,-45.35' fill='none'
stroke='black'/>
+<polygon fill='black' points='47.13,-46.55 47.46,-35.96 40.6,-44.03
47.13,-46.55' stroke='black'/>
</g>
<g class='edge' id='edge4'>
<title>d->a</title>
-<path d='M57.7474,-35.9069C59.7466,-46.3759 61.9966,-59.8759 63,-72
66.9591,-119.8364 66.9591,-132.1636 63,-180 62.2945,-188.5247 60.9727,-197.7297
59.5551,-206.083' fill='none' stroke='#000000'/>
-<polygon fill='#000000' points='56.0803,-205.6302 57.7474,-216.0931
62.9689,-206.8742 56.0803,-205.6302' stroke='#000000'/>
+<path d='M57.65,-36.09C59.68,-46.43 61.98,-59.91 63,-72 67.03,-119.83
67.03,-132.17 63,-180 62.28,-188.5 60.93,-197.69 59.49,-205.99' fill='none'
stroke='black'/>
+<polygon fill='black' points='56.03,-205.44 57.65,-215.91 62.91,-206.71
56.03,-205.44' stroke='black'/>
</g>
</g>
</svg>
diff --git a/presentations/training/demo/images/erd-test.svg
b/presentations/training/demo/images/erd-test.svg
new file mode 100644
index 0000000..b794489
--- /dev/null
+++ b/presentations/training/demo/images/erd-test.svg
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg height='133pt'
preserveAspectRatio='xMidYMid meet' viewBox='0.00 0.00 352.80 132.80'
width='353pt' xmlns:xlink='http://www.w3.org/1999/xlink'
xmlns='http://www.w3.org/2000/svg'>
+<g class='graph' id='graph0' transform='scale(1 1) rotate(0) translate(14.4
118.4)'>
+<title>%3</title>
+<polygon fill='white' points='-14.4,14.4 -14.4,-118.4 338.4,-118.4 338.4,14.4
-14.4,14.4' stroke='transparent'/>
+
+<g class='node' id='node1'>
+<title>Person</title>
+<path d='M12,-0.5C12,-0.5 132,-0.5 132,-0.5 138,-0.5 144,-6.5 144,-12.5
144,-12.5 144,-91.5 144,-91.5 144,-97.5 138,-103.5 132,-103.5 132,-103.5
12,-103.5 12,-103.5 6,-103.5 0,-97.5 0,-91.5 0,-91.5 0,-12.5 0,-12.5 0,-6.5
6,-0.5 12,-0.5' fill='none' stroke='black'/>
+<text font-family='Helvetica bold' font-size='14.00' font-weight='bold'
text-anchor='start' x='44.5' y='-88.8'>Person</text>
+<polyline fill='none' points='0,-80.5 144,-80.5 ' stroke='black'/>
+<text font-family='Times,serif' font-size='12.00' text-anchor='start' x='9'
y='-62.9'>*name</text>
+<text font-family='Times,serif' font-size='12.00' text-anchor='start' x='9'
y='-45.9'>height</text>
+<text font-family='Times,serif' font-size='12.00' text-anchor='start' x='9'
y='-28.9'>weight</text>
+<text font-family='Times,serif' font-size='12.00' text-anchor='start' x='9'
y='-11.9'>+birth_location_id</text>
+</g>
+
+<g class='node' id='node2'>
+<title>Location</title>
+<path d='M192,-0.5C192,-0.5 312,-0.5 312,-0.5 318,-0.5 324,-6.5 324,-12.5
324,-12.5 324,-91.5 324,-91.5 324,-97.5 318,-103.5 312,-103.5 312,-103.5
192,-103.5 192,-103.5 186,-103.5 180,-97.5 180,-91.5 180,-91.5 180,-12.5
180,-12.5 180,-6.5 186,-0.5 192,-0.5' fill='none' stroke='black'/>
+<text font-family='Helvetica bold' font-size='14.00' font-weight='bold'
text-anchor='start' x='218' y='-88.8'>Location</text>
+<polyline fill='none' points='180,-80.5 324,-80.5 ' stroke='black'/>
+<text font-family='Times,serif' font-size='12.00' text-anchor='start' x='189'
y='-62.9'>*id</text>
+<text font-family='Times,serif' font-size='12.00' text-anchor='start' x='189'
y='-45.9'>city</text>
+<text font-family='Times,serif' font-size='12.00' text-anchor='start' x='189'
y='-28.9'>state</text>
+<text font-family='Times,serif' font-size='12.00' text-anchor='start' x='189'
y='-11.9'>country</text>
+</g>
+
+<g class='edge' id='edge1'>
+<title>Person--Location</title>
+<path d='M153.33,-52C159.16,-52 165.05,-52 170.88,-52' fill='none'
stroke='black'/>
+<polygon fill='black' points='153.12,-52 144.12,-47.95 148.62,-52 144.12,-52
144.12,-52 144.12,-52 148.62,-52 144.12,-56.05 153.12,-52 153.12,-52'
stroke='black'/>
+<polyline fill='none' points='180,-52 175.5,-52 ' stroke='black'/>
+<polygon fill='black' points='174.6,-47.5 174.6,-56.5 172.8,-56.5 172.8,-47.5
174.6,-47.5' stroke='black'/>
+<polyline fill='none' points='175.5,-52 171,-52 ' stroke='black'/>
+<text font-family='Times,serif' font-size='12.00' text-anchor='start'
x='160.73' y='-39.36'>1</text>
+<text font-family='Times,serif' font-size='12.00' text-anchor='start'
x='146.38' y='-58.44'>0..N</text>
+</g>
+</g>
+</svg>
diff --git a/presentations/training/demo/images/nwdiag-test.png
b/presentations/training/demo/images/nwdiag-test.png
index 4e48434..3448a47 100644
Binary files a/presentations/training/demo/images/nwdiag-test.png and
b/presentations/training/demo/images/nwdiag-test.png differ
diff --git a/presentations/training/demo/images/svgbob-circuit-diagram-test.svg
b/presentations/training/demo/images/svgbob-circuit-diagram-test.svg
new file mode 100644
index 0000000..ae47538
--- /dev/null
+++ b/presentations/training/demo/images/svgbob-circuit-diagram-test.svg
@@ -0,0 +1,310 @@
+<svg class='svgbob' height='576' preserveAspectRatio='xMidYMid meet'
viewBox='0 0 592 576' width='592' xmlns='http://www.w3.org/2000/svg'>
+ <style>.svgbob line, .svgbob path, .svgbob circle, .svgbob rect, .svgbob
polygon {
+ stroke: black;
+ stroke-width: 2;
+ stroke-opacity: 1;
+ fill-opacity: 1;
+ stroke-linecap: round;
+ stroke-linejoin: miter;
+}
+
+.svgbob text {
+ white-space: pre;
+ fill: black;
+ font-family: Iosevka Fixed, monospace;
+ font-size: 14px;
+}
+
+.svgbob rect.backdrop {
+ stroke: none;
+ fill: white;
+}
+
+.svgbob .broken {
+ stroke-dasharray: 8;
+}
+
+.svgbob .filled {
+ fill: black;
+}
+
+.svgbob .bg_filled {
+ fill: white;
+ stroke-width: 1;
+}
+
+.svgbob .nofill {
+ fill: white;
+}
+
+.svgbob .end_marked_arrow {
+ marker-end: url(#arrow);
+}
+
+.svgbob .start_marked_arrow {
+ marker-start: url(#arrow);
+}
+
+.svgbob .end_marked_diamond {
+ marker-end: url(#diamond);
+}
+
+.svgbob .start_marked_diamond {
+ marker-start: url(#diamond);
+}
+
+.svgbob .end_marked_circle {
+ marker-end: url(#circle);
+}
+
+.svgbob .start_marked_circle {
+ marker-start: url(#circle);
+}
+
+.svgbob .end_marked_open_circle {
+ marker-end: url(#open_circle);
+}
+
+.svgbob .start_marked_open_circle {
+ marker-start: url(#open_circle);
+}
+
+.svgbob .end_marked_big_open_circle {
+ marker-end: url(#big_open_circle);
+}
+
+.svgbob .start_marked_big_open_circle {
+ marker-start: url(#big_open_circle);
+}
+
+</style>
+ <defs>
+ <marker id='arrow' markerHeight='7' markerWidth='7'
orient='auto-start-reverse' refX='4' refY='2' viewBox='-2 -2 8 8'>
+ <polygon points='0,0 0,4 4,2 0,0'/>
+ </marker>
+ <marker id='diamond' markerHeight='7' markerWidth='7'
orient='auto-start-reverse' refX='4' refY='2' viewBox='-2 -2 8 8'>
+ <polygon points='0,2 2,0 4,2 2,4 0,2'/>
+ </marker>
+ <marker id='circle' markerHeight='7' markerWidth='7'
orient='auto-start-reverse' refX='4' refY='4' viewBox='0 0 8 8'>
+ <circle class='filled' cx='4' cy='4' r='2'/>
+ </marker>
+ <marker id='open_circle' markerHeight='7' markerWidth='7'
orient='auto-start-reverse' refX='4' refY='4' viewBox='0 0 8 8'>
+ <circle class='bg_filled' cx='4' cy='4' r='2'/>
+ </marker>
+ <marker id='big_open_circle' markerHeight='7' markerWidth='7'
orient='auto-start-reverse' refX='4' refY='4' viewBox='0 0 8 8'>
+ <circle class='bg_filled' cx='4' cy='4' r='3'/>
+ </marker>
+ </defs>
+ <rect class='backdrop' height='576' width='592' x='0' y='0'/>
+ <text x='42' y='12'>+10</text>
+ <line class='solid' x1='64' x2='72' y1='8' y2='8'/>
+ <text x='74' y='12'>15V</text>
+ <text x='210' y='12'>0,047R</text>
+ <line class='solid end_marked_circle' x1='52' x2='52' y1='24' y2='24'/>
+ <line class='solid end_marked_open_circle' x1='56' x2='108' y1='24' y2='24'/>
+ <line class='solid' x1='108' x2='108' y1='28' y2='48'/>
+ <line class='solid end_marked_open_circle' x1='112' x2='164' y1='24'
y2='24'/>
+ <line class='solid end_marked_open_circle' x1='212' x2='228' y1='24'
y2='24'/>
+ <line class='solid end_marked_open_circle' x1='232' x2='252' y1='24'
y2='24'/>
+ <line class='solid end_marked_open_circle' x1='256' x2='332' y1='24'
y2='24'/>
+ <line class='solid end_marked_open_circle' x1='336' x2='372' y1='24'
y2='24'/>
+ <line class='solid' x1='96' x2='120' y1='56' y2='56'/>
+ <text x='50' y='76'>470uF</text>
+ <line class='solid' x1='108' x2='108' y1='64' y2='84'/>
+ <text x='122' y='76'>+</text>
+ <line class='solid end_marked_circle' x1='52' x2='52' y1='88' y2='88'/>
+ <line class='solid end_marked_open_circle' x1='56' x2='108' y1='88' y2='88'/>
+ <line class='solid' x1='108' x2='108' y1='92' y2='112'/>
+ <text x='194' y='108'>6</text>
+ <text x='234' y='108'>7</text>
+ <text x='258' y='108'>8</text>
+ <text x='98' y='124'>GND</text>
+ <text x='282' y='156'>1</text>
+ <line class='solid end_marked_open_circle' x1='276' x2='332' y1='168'
y2='168'/>
+ <text x='362' y='188'>`</text>
+ <polygon class='filled' points='368,180 376,184 368,188'/>
+ <line class='solid end_marked_open_circle' x1='372' x2='372' y1='192'
y2='216'/>
+ <text x='290' y='220'>220R</text>
+ <polygon class='filled' points='432,228 440,232 432,236'/>
+ <line class='solid end_marked_open_circle' x1='436' x2='436' y1='248'
y2='280'/>
+ <text x='458' y='268'>BYV29</text>
+ <line class='solid' x1='536' x2='544' y1='264' y2='264'/>
+ <text x='546' y='268'>12V6</text>
+ <line class='solid' x1='436' x2='436' y1='284' y2='304'/>
+ <polygon class='filled' points='472,276 464,280 472,284'/>
+ <line class='solid end_marked_open_circle' x1='472' x2='484' y1='280'
y2='280'/>
+ <line class='solid' x1='484' x2='484' y1='284' y2='404'/>
+ <line class='solid end_marked_open_circle' x1='488' x2='524' y1='280'
y2='280'/>
+ <line class='solid' x1='524' x2='524' y1='284' y2='320'/>
+ <line class='solid' x1='528' x2='548' y1='280' y2='280'/>
+ <text x='562' y='284'>OUT</text>
+ <text x='282' y='300'>2</text>
+ <line class='solid end_marked_open_circle' x1='276' x2='300' y1='312'
y2='312'/>
+ <text x='434' y='316'>C</text>
+ <line class='solid' x1='444' x2='444' y1='304' y2='352'/>
+ <text x='290' y='332'>GND</text>
+ <text x='434' y='332'>C</text>
+ <line class='solid' x1='512' x2='536' y1='328' y2='328'/>
+ <text x='282' y='348'>3</text>
+ <text x='338' y='348'>1nF</text>
+ <text x='434' y='348'>C</text>
+ <line class='solid' x1='436' x2='436' y1='352' y2='368'/>
+ <text x='426' y='380'>GND</text>
+ <text x='210' y='396'>5</text>
+ <text x='250' y='396'>4</text>
+ <line class='solid end_marked_open_circle' x1='264' x2='372' y1='408'
y2='408'/>
+ <line class='solid end_marked_open_circle' x1='376' x2='484' y1='408'
y2='408'/>
+ <line class='solid end_marked_open_circle' x1='308' x2='412' y1='440'
y2='440'/>
+ <text x='474' y='460'>1k0</text>
+ <text x='402' y='556'>GND</text>
+ <text x='298' y='108'>1k</text>
+ <text x='386' y='156'>BC</text>
+ <text x='386' y='172'>547</text>
+ <text x='458' y='220'>IRF9Z34</text>
+ <text x='194' y='252'>MC34063</text>
+ <text x='386' y='332'>30uH</text>
+ <text x='546' y='332'>470</text>
+ <line class='solid' x1='524' x2='524' y1='352' y2='368'/>
+ <text x='538' y='364'>+</text>
+ <text x='514' y='380'>GND</text>
+ <text x='434' y='492'>5k6</text>
+ <text x='466' y='492'>+</text>
+ <text x='482' y='492'>3k3</text>
+ <text x='434' y='508'>in</text>
+ <text x='458' y='508'>Serie</text>
+ <g>
+ <line class='solid' x1='180' x2='212' y1='16' y2='16'/>
+ <line class='solid' x1='168' x2='180' y1='24' y2='24'/>
+ <line class='solid' x1='180' x2='180' y1='16' y2='32'/>
+ <line class='solid' x1='180' x2='212' y1='32' y2='32'/>
+ <line class='solid' x1='212' x2='212' y1='16' y2='32'/>
+ </g>
+ <g>
+ <line class='solid' x1='164' x2='164' y1='28' y2='84'/>
+ <path class='nofill' d='M 164,84 A 4,4 0,0,0 168,88'/>
+ <line class='solid' x1='168' x2='184' y1='88' y2='88'/>
+ <path class='nofill' d='M 184,88 A 4,4 0,0,1 188,92'/>
+ <line class='solid' x1='188' x2='188' y1='92' y2='120'/>
+ <line class='solid' x1='228' x2='228' y1='28' y2='120'/>
+ <line class='solid' x1='252' x2='252' y1='28' y2='56'/>
+ <path class='nofill' d='M 248,56 A 4,4 0,0,0 244,60'/>
+ <line class='solid' x1='244' x2='244' y1='60' y2='84'/>
+ <line class='solid' x1='248' x2='256' y1='56' y2='56'/>
+ <path class='nofill' d='M 256,56 A 4,4 0,0,1 260,60'/>
+ <line class='solid' x1='260' x2='260' y1='60' y2='84'/>
+ <path class='nofill' d='M 244,84 A 4,4 0,0,0 248,88'/>
+ <line class='solid' x1='248' x2='256' y1='88' y2='88'/>
+ <line class='solid' x1='252' x2='252' y1='88' y2='120'/>
+ <path class='nofill' d='M 260,84 A 4,4 0,0,1 256,88'/>
+ <path class='nofill' d='M 176,120 A 4,4 0,0,0 172,124'/>
+ <line class='solid' x1='172' x2='172' y1='124' y2='372'/>
+ <line class='solid' x1='176' x2='272' y1='120' y2='120'/>
+ <path class='nofill' d='M 272,120 A 4,4 0,0,1 276,124'/>
+ <line class='solid' x1='276' x2='276' y1='124' y2='372'/>
+ <line class='solid' x1='276' x2='340' y1='360' y2='360'/>
+ <line class='solid' x1='340' x2='340' y1='352' y2='368'/>
+ <path class='nofill' d='M 172,372 A 4,4 0,0,0 176,376'/>
+ <line class='solid' x1='176' x2='272' y1='376' y2='376'/>
+ <line class='solid' x1='220' x2='220' y1='376' y2='436'/>
+ <line class='solid' x1='260' x2='260' y1='376' y2='404'/>
+ <path class='nofill' d='M 276,372 A 4,4 0,0,1 272,376'/>
+ <path class='nofill' d='M 260,404 A 4,4 0,0,0 264,408'/>
+ <path class='nofill' d='M 220,436 A 4,4 0,0,0 224,440'/>
+ <line class='solid' x1='224' x2='276' y1='440' y2='440'/>
+ <line class='solid' x1='280' x2='272' y1='432' y2='448'/>
+ <line class='solid' x1='280' x2='288' y1='432' y2='448'/>
+ <line class='solid' x1='296' x2='288' y1='432' y2='448'/>
+ <line class='solid' x1='296' x2='304' y1='432' y2='448'/>
+ <line class='solid' x1='312' x2='304' y1='432' y2='448'/>
+ </g>
+ <g>
+ <line class='solid' x1='332' x2='332' y1='28' y2='88'/>
+ <path class='nofill' d='M 328,88 A 4,4 0,0,0 324,92'/>
+ <line class='solid' x1='324' x2='324' y1='92' y2='132'/>
+ <line class='solid' x1='328' x2='336' y1='88' y2='88'/>
+ <path class='nofill' d='M 336,88 A 4,4 0,0,1 340,92'/>
+ <line class='solid' x1='340' x2='340' y1='92' y2='132'/>
+ <path class='nofill' d='M 324,132 A 4,4 0,0,0 328,136'/>
+ <line class='solid' x1='328' x2='336' y1='136' y2='136'/>
+ <line class='solid' x1='332' x2='332' y1='136' y2='164'/>
+ <path class='nofill' d='M 340,132 A 4,4 0,0,1 336,136'/>
+ </g>
+ <g>
+ <line class='solid' x1='372' x2='372' y1='28' y2='136'/>
+ <line class='solid' x1='372' x2='356' y1='136' y2='168'/>
+ <line class='solid' x1='356' x2='356' y1='144' y2='192'/>
+ <line class='solid' x1='336' x2='356' y1='168' y2='168'/>
+ </g>
+ <g>
+ <line class='solid' x1='376' x2='432' y1='24' y2='24'/>
+ <path class='nofill' d='M 432,24 A 4,4 0,0,1 436,28'/>
+ <line class='solid' x1='436' x2='436' y1='28' y2='72'/>
+ <path class='nofill' d='M 432,72 A 4,4 0,0,0 428,76'/>
+ <line class='solid' x1='428' x2='428' y1='76' y2='84'/>
+ <line class='solid' x1='432' x2='440' y1='72' y2='72'/>
+ <path class='nofill' d='M 440,72 A 4,4 0,0,1 444,76'/>
+ <line class='solid' x1='444' x2='444' y1='76' y2='84'/>
+ <path class='nofill' d='M 428,84 A 4,4 0,0,0 432,88'/>
+ <line class='solid' x1='432' x2='440' y1='88' y2='88'/>
+ <path class='nofill' d='M 444,84 A 4,4 0,0,1 440,88'/>
+ </g>
+ <g>
+ <line class='solid' x1='436' x2='436' y1='96' y2='216'/>
+ <line class='solid' x1='420' x2='420' y1='208' y2='256'/>
+ <line class='solid' x1='420' x2='436' y1='216' y2='216'/>
+ <line class='solid' x1='420' x2='432' y1='232' y2='232'/>
+ <line class='solid' x1='420' x2='436' y1='248' y2='248'/>
+ </g>
+ <g>
+ <line class='solid' x1='332' x2='332' y1='172' y2='200'/>
+ <path class='nofill' d='M 328,200 A 4,4 0,0,0 324,204'/>
+ <line class='solid' x1='324' x2='324' y1='204' y2='244'/>
+ <line class='solid' x1='328' x2='336' y1='200' y2='200'/>
+ <path class='nofill' d='M 336,200 A 4,4 0,0,1 340,204'/>
+ <line class='solid' x1='340' x2='340' y1='204' y2='244'/>
+ <path class='nofill' d='M 324,244 A 4,4 0,0,0 328,248'/>
+ <line class='solid' x1='328' x2='336' y1='248' y2='248'/>
+ <line class='solid' x1='332' x2='332' y1='248' y2='276'/>
+ <path class='nofill' d='M 340,244 A 4,4 0,0,1 336,248'/>
+ <path class='nofill' d='M 332,276 A 4,4 0,0,0 336,280'/>
+ <line class='solid' x1='336' x2='368' y1='280' y2='280'/>
+ <line class='solid' x1='372' x2='372' y1='220' y2='276'/>
+ <path class='nofill' d='M 372,276 A 4,4 0,0,1 368,280'/>
+ </g>
+ <g>
+ <line class='solid' x1='376' x2='412' y1='216' y2='216'/>
+ <line class='solid' x1='412' x2='412' y1='208' y2='256'/>
+ </g>
+ <g>
+ <line class='solid' x1='440' x2='460' y1='280' y2='280'/>
+ <line class='solid' x1='460' x2='460' y1='272' y2='288'/>
+ </g>
+ <g>
+ <line class='solid' x1='348' x2='348' y1='352' y2='368'/>
+ <line class='solid' x1='348' x2='368' y1='360' y2='360'/>
+ <path class='nofill' d='M 368,360 A 4,4 0,0,1 372,364'/>
+ <line class='solid' x1='372' x2='372' y1='364' y2='404'/>
+ </g>
+ <g>
+ <line class='solid' x1='484' x2='484' y1='412' y2='436'/>
+ <line class='solid' x1='436' x2='468' y1='432' y2='432'/>
+ <line class='solid' x1='416' x2='436' y1='440' y2='440'/>
+ <line class='solid' x1='436' x2='436' y1='432' y2='448'/>
+ <line class='solid' x1='436' x2='468' y1='448' y2='448'/>
+ <line class='solid' x1='468' x2='468' y1='432' y2='448'/>
+ <line class='solid' x1='468' x2='480' y1='440' y2='440'/>
+ <path class='nofill' d='M 484,436 A 4,4 0,0,1 480,440'/>
+ </g>
+ <g>
+ <line class='solid' x1='412' x2='412' y1='444' y2='472'/>
+ <path class='nofill' d='M 408,472 A 4,4 0,0,0 404,476'/>
+ <line class='solid' x1='404' x2='404' y1='476' y2='516'/>
+ <line class='solid' x1='408' x2='416' y1='472' y2='472'/>
+ <path class='nofill' d='M 416,472 A 4,4 0,0,1 420,476'/>
+ <line class='solid' x1='420' x2='420' y1='476' y2='516'/>
+ <path class='nofill' d='M 404,516 A 4,4 0,0,0 408,520'/>
+ <line class='solid' x1='408' x2='416' y1='520' y2='520'/>
+ <line class='solid' x1='412' x2='412' y1='520' y2='544'/>
+ <path class='nofill' d='M 420,516 A 4,4 0,0,1 416,520'/>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/presentations/training/demo/images/svgbob-mindmap-test.svg
b/presentations/training/demo/images/svgbob-mindmap-test.svg
new file mode 100644
index 0000000..64499d5
--- /dev/null
+++ b/presentations/training/demo/images/svgbob-mindmap-test.svg
@@ -0,0 +1,252 @@
+<svg class='svgbob' height='464' preserveAspectRatio='xMidYMid meet'
viewBox='0 0 544 464' width='544' xmlns='http://www.w3.org/2000/svg'>
+ <style>.svgbob line, .svgbob path, .svgbob circle, .svgbob rect, .svgbob
polygon {
+ stroke: black;
+ stroke-width: 2;
+ stroke-opacity: 1;
+ fill-opacity: 1;
+ stroke-linecap: round;
+ stroke-linejoin: miter;
+}
+
+.svgbob text {
+ white-space: pre;
+ fill: black;
+ font-family: Iosevka Fixed, monospace;
+ font-size: 14px;
+}
+
+.svgbob rect.backdrop {
+ stroke: none;
+ fill: white;
+}
+
+.svgbob .broken {
+ stroke-dasharray: 8;
+}
+
+.svgbob .filled {
+ fill: black;
+}
+
+.svgbob .bg_filled {
+ fill: white;
+ stroke-width: 1;
+}
+
+.svgbob .nofill {
+ fill: white;
+}
+
+.svgbob .end_marked_arrow {
+ marker-end: url(#arrow);
+}
+
+.svgbob .start_marked_arrow {
+ marker-start: url(#arrow);
+}
+
+.svgbob .end_marked_diamond {
+ marker-end: url(#diamond);
+}
+
+.svgbob .start_marked_diamond {
+ marker-start: url(#diamond);
+}
+
+.svgbob .end_marked_circle {
+ marker-end: url(#circle);
+}
+
+.svgbob .start_marked_circle {
+ marker-start: url(#circle);
+}
+
+.svgbob .end_marked_open_circle {
+ marker-end: url(#open_circle);
+}
+
+.svgbob .start_marked_open_circle {
+ marker-start: url(#open_circle);
+}
+
+.svgbob .end_marked_big_open_circle {
+ marker-end: url(#big_open_circle);
+}
+
+.svgbob .start_marked_big_open_circle {
+ marker-start: url(#big_open_circle);
+}
+
+</style>
+ <defs>
+ <marker id='arrow' markerHeight='7' markerWidth='7'
orient='auto-start-reverse' refX='4' refY='2' viewBox='-2 -2 8 8'>
+ <polygon points='0,0 0,4 4,2 0,0'/>
+ </marker>
+ <marker id='diamond' markerHeight='7' markerWidth='7'
orient='auto-start-reverse' refX='4' refY='2' viewBox='-2 -2 8 8'>
+ <polygon points='0,2 2,0 4,2 2,4 0,2'/>
+ </marker>
+ <marker id='circle' markerHeight='7' markerWidth='7'
orient='auto-start-reverse' refX='4' refY='4' viewBox='0 0 8 8'>
+ <circle class='filled' cx='4' cy='4' r='2'/>
+ </marker>
+ <marker id='open_circle' markerHeight='7' markerWidth='7'
orient='auto-start-reverse' refX='4' refY='4' viewBox='0 0 8 8'>
+ <circle class='bg_filled' cx='4' cy='4' r='2'/>
+ </marker>
+ <marker id='big_open_circle' markerHeight='7' markerWidth='7'
orient='auto-start-reverse' refX='4' refY='4' viewBox='0 0 8 8'>
+ <circle class='bg_filled' cx='4' cy='4' r='3'/>
+ </marker>
+ </defs>
+ <rect class='backdrop' height='464' width='544' x='0' y='0'/>
+ <line class='solid end_marked_open_circle' x1='354' x2='284' y1='12'
y2='152'/>
+ <polygon class='filled' points='376,4 384,8 376,12'/>
+ <polygon class='filled' points='376,36 384,40 376,44'/>
+ <line class='solid end_marked_circle' x1='156' x2='156' y1='56' y2='56'/>
+ <line class='solid end_marked_open_circle' x1='222' x2='268' y1='60'
y2='152'/>
+ <polygon class='filled' points='376,116 384,120 376,124'/>
+ <line class='solid end_marked_open_circle' x1='312' x2='300' y1='168'
y2='168'/>
+ <line class='solid end_marked_circle' x1='360' x2='396' y1='184' y2='184'/>
+ <line class='solid' x1='392' x2='424' y1='184' y2='184'/>
+ <polygon class='filled' points='424,180 432,184 424,188'/>
+ <line class='solid end_marked_open_circle' x1='302' x2='300' y1='204'
y2='200'/>
+ <line class='solid end_marked_open_circle' x1='250' x2='252' y1='220'
y2='216'/>
+ <line class='solid end_marked_open_circle' x1='278' x2='276' y1='220'
y2='216'/>
+ <line class='solid end_marked_open_circle' x1='294' x2='292' y1='220'
y2='216'/>
+ <polygon class='filled' points='384,260 392,264 384,268'/>
+ <polygon class='filled' points='424,292 432,296 424,300'/>
+ <polygon class='filled' points='177,324 170,332 170,321'/>
+ <polygon class='filled' points='392,324 400,328 392,332'/>
+ <polygon class='filled' points='177,356 170,364 170,353'/>
+ <text x='106' y='380'>Worklaod</text>
+ <polygon class='filled' points='376,372 384,376 376,380'/>
+ <polygon class='filled' points='384,372 392,376 384,380'/>
+ <polygon class='filled' points='177,388 170,396 170,385'/>
+ <polygon class='filled' points='177,420 170,428 170,417'/>
+ <text x='402' y='12'>Alpha</text>
+ <text x='402' y='44'>Initial</text>
+ <polygon class='filled' points='448,68 456,72 448,76'/>
+ <polygon class='filled' points='456,100 464,104 456,108'/>
+ <text x='466' y='44'>Release</text>
+ <text x='82' y='60'>Planning</text>
+ <text x='466' y='76'>Patch</text>
+ <text x='514' y='76'>1</text>
+ <text x='50' y='92'>Initial</text>
+ <text x='114' y='92'>research</text>
+ <line class='solid end_marked_circle' x1='134' x2='132' y1='108' y2='104'/>
+ <polygon class='filled' points='224,180 232,184 224,188'/>
+ <text x='482' y='108'>Patch</text>
+ <text x='530' y='108'>2</text>
+ <text x='394' y='124'>Beta</text>
+ <text x='450' y='188'>.</text>
+ <text x='466' y='188'>Release</text>
+ <text x='530' y='188'>.</text>
+ <text x='410' y='268'>Push</text>
+ <text x='450' y='268'>backs</text>
+ <text x='442' y='300'>Setbacks</text>
+ <text x='410' y='332'>Reception</text>
+ <text x='130' y='348'>Team</text>
+ <text x='402' y='380'>Career</text>
+ <text x='458' y='380'>change</text>
+ <text x='138' y='412'>PTO</text>
+ <text x='138' y='444'>Bug</text>
+ <g>
+ <path class='nofill' d='M 360,8 A 8,8 0,0,0 354,12'/>
+ <line class='solid' x1='360' x2='376' y1='8' y2='8'/>
+ </g>
+ <g>
+ <path class='nofill' d='M 344,40 A 8,8 0,0,0 338,44'/>
+ <line class='solid' x1='344' x2='376' y1='40' y2='40'/>
+ </g>
+ <g>
+ <line class='solid' x1='160' x2='216' y1='56' y2='56'/>
+ <path class='nofill' d='M 216,56 A 8,8 0,0,1 222,60'/>
+ </g>
+ <g>
+ <path class='nofill' d='M 304,120 A 8,8 0,0,0 298,124'/>
+ <line class='solid' x1='304' x2='376' y1='120' y2='120'/>
+ </g>
+ <g>
+ <path class='nofill' d='M 256,168 A 8,8 0,0,0 250,172'/>
+ <line class='solid' x1='250' x2='248' y1='172' y2='176'/>
+ <line class='solid' x1='256' x2='280' y1='168' y2='168'/>
+ <path class='nofill' d='M 280,168 A 8,8 0,0,1 286,172'/>
+ <line class='solid' x1='286' x2='288' y1='172' y2='176'/>
+ <path class='nofill' d='M 248,176 A 16,16 0,0,0 248,192'/>
+ <path class='nofill' d='M 288,176 A 16,16 0,0,1 288,192'/>
+ <line class='solid' x1='248' x2='250' y1='192' y2='196'/>
+ <path class='nofill' d='M 250,196 A 8,8 0,0,0 256,200'/>
+ <line class='solid' x1='256' x2='280' y1='200' y2='200'/>
+ <line class='solid' x1='288' x2='286' y1='192' y2='196'/>
+ <path class='nofill' d='M 286,196 A 8,8 0,0,1 280,200'/>
+ </g>
+ <g>
+ <line class='solid' x1='312' x2='320' y1='168' y2='168'/>
+ <line class='solid' x1='320' x2='328' y1='168' y2='176'/>
+ <line class='solid' x1='328' x2='352' y1='176' y2='176'/>
+ <line class='solid' x1='352' x2='360' y1='176' y2='184'/>
+ </g>
+ <g>
+ <line class='solid' x1='304' x2='330' y1='208' y2='260'/>
+ <path class='nofill' d='M 330,260 A 8,8 0,0,0 336,264'/>
+ <line class='solid' x1='336' x2='384' y1='264' y2='264'/>
+ <line class='solid' x1='372' x2='386' y1='264' y2='292'/>
+ <path class='nofill' d='M 386,292 A 8,8 0,0,0 392,296'/>
+ <line class='solid' x1='392' x2='424' y1='296' y2='296'/>
+ </g>
+ <g>
+ <line class='solid' x1='248' x2='238' y1='224' y2='244'/>
+ <path class='nofill' d='M 216,248 A 8,8 0,0,0 210,252'/>
+ <line class='solid' x1='210' x2='174' y1='252' y2='324'/>
+ <line class='solid' x1='216' x2='232' y1='248' y2='248'/>
+ <path class='nofill' d='M 238,244 A 8,8 0,0,1 232,248'/>
+ </g>
+ <g>
+ <line class='solid' x1='280' x2='344' y1='224' y2='352'/>
+ <line class='solid' x1='344' x2='354' y1='352' y2='372'/>
+ <path class='nofill' d='M 354,372 A 8,8 0,0,0 360,376'/>
+ <line class='solid' x1='360' x2='376' y1='376' y2='376'/>
+ </g>
+ <g>
+ <line class='solid' x1='296' x2='346' y1='224' y2='324'/>
+ <path class='nofill' d='M 346,324 A 8,8 0,0,0 352,328'/>
+ <line class='solid' x1='352' x2='392' y1='328' y2='328'/>
+ </g>
+ <g>
+ <line class='solid' x1='196' x2='196' y1='284' y2='308'/>
+ <path class='nofill' d='M 196,308 A 16,16 0,0,1 194,316'/>
+ <line class='solid' x1='194' x2='174' y1='316' y2='356'/>
+ </g>
+ <g>
+ <line class='solid' x1='196' x2='196' y1='316' y2='340'/>
+ <path class='nofill' d='M 196,340 A 16,16 0,0,1 194,348'/>
+ <line class='solid' x1='194' x2='174' y1='348' y2='388'/>
+ </g>
+ <g>
+ <line class='solid' x1='196' x2='196' y1='348' y2='372'/>
+ <path class='nofill' d='M 196,372 A 16,16 0,0,1 194,380'/>
+ <line class='solid' x1='194' x2='174' y1='380' y2='420'/>
+ </g>
+ <g>
+ <line class='solid' x1='408' x2='418' y1='48' y2='68'/>
+ <path class='nofill' d='M 418,68 A 8,8 0,0,0 424,72'/>
+ <line class='solid' x1='424' x2='448' y1='72' y2='72'/>
+ </g>
+ <g>
+ <line class='solid' x1='424' x2='434' y1='80' y2='100'/>
+ <path class='nofill' d='M 434,100 A 8,8 0,0,0 440,104'/>
+ <line class='solid' x1='440' x2='456' y1='104' y2='104'/>
+ </g>
+ <g>
+ <line class='solid' x1='136' x2='170' y1='112' y2='180'/>
+ <path class='nofill' d='M 170,180 A 8,8 0,0,0 176,184'/>
+ <line class='solid' x1='176' x2='224' y1='184' y2='184'/>
+ </g>
+ <g>
+ <line class='solid' x1='464' x2='520' y1='160' y2='160'/>
+ <line class='solid' x1='464' x2='456' y1='160' y2='176'/>
+ <line class='solid' x1='520' x2='528' y1='160' y2='176'/>
+ </g>
+ <g>
+ <line class='solid' x1='456' x2='464' y1='192' y2='208'/>
+ <line class='solid' x1='464' x2='520' y1='208' y2='208'/>
+ <line class='solid' x1='528' x2='520' y1='192' y2='208'/>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/presentations/training/demo/images/syntrax-test.svg
b/presentations/training/demo/images/syntrax-test.svg
new file mode 100644
index 0000000..9aca2f0
--- /dev/null
+++ b/presentations/training/demo/images/syntrax-test.svg
@@ -0,0 +1,168 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+
+<svg height='231' preserveAspectRatio='xMidYMid meet' xml:space='preserve'
version='1.1' viewBox='0 0 628 231' width='628'
xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg'>
+<style type='text/css'>
+<![CDATA[
+.title_font {fill:#000000; text-anchor:middle;
+ font-family:Sans; font-size:22pt; font-weight:bold; font-style:normal;}
+.bubble_font {fill:#000000; text-anchor:middle;
+ font-family:Sans; font-size:14pt; font-weight:bold; font-style:normal;}
+.box_font {fill:#000000; text-anchor:middle;
+ font-family:Times; font-size:14pt; font-weight:normal; font-style:italic;}
+.token_font {fill:#000000; text-anchor:middle;
+ font-family:Sans; font-size:16pt; font-weight:bold; font-style:normal;}
+.label {fill:#000;
+ text-anchor:middle;
+ font-size:16pt; font-weight:bold; font-family:Sans;}
+.link {fill: #0D47A1;}
+.link:hover {fill: #0D47A1; text-decoration:underline;}
+.link:visited {fill: #4A148C;}
+]]>
+</style>
+<defs>
+ <marker id='arrow' markerHeight='4' markerUnits='strokeWidth'
markerWidth='5' orient='auto' refX='2.5' refY='2'>
+ <path d='M0,0 L0.5,2 L0,4 L4.5,2 z' fill='#000000'/>
+ </marker>
+</defs>
+<rect fill='white' height='100%' width='100%'/><circle cx='76.5' cy='43.5'
fill='#000000' fill-opacity='0.4980392156862745' r='15.0' stroke='none'/>
+<path d='M181.0,37.0 A14.0,14.0 0 0,1 181.0,9.0 H186.0 A14.0,14.0 0 0,1
186.0,37.0 z' fill='#000000' fill-opacity='0.4980392156862745' stroke='none'/>
+<path d='M181.0,71.5 A14.0,14.0 0 0,1 181.0,43.5 H207.0 A14.0,14.0 0 0,1
207.0,71.5 z' fill='#000000' fill-opacity='0.4980392156862745' stroke='none'/>
+<path d='M271.0,95.5 A14.0,14.0 0 0,1 271.0,67.5 H297.0 A14.0,14.0 0 0,1
297.0,95.5 z' fill='#000000' fill-opacity='0.4980392156862745' stroke='none'/>
+<circle cx='414.0' cy='43.5' fill='#000000' fill-opacity='0.4980392156862745'
r='15.0' stroke='none'/>
+<path d='M479.0,57.5 A14.0,14.0 0 0,1 479.0,29.5 H505.0 A14.0,14.0 0 0,1
505.0,57.5 z' fill='#000000' fill-opacity='0.4980392156862745' stroke='none'/>
+<path d='M309.0,170.0 A14.0,14.0 0 0,1 309.0,142.0 H314.0 A14.0,14.0 0 0,1
314.0,170.0 z' fill='#000000' fill-opacity='0.4980392156862745' stroke='none'/>
+<path d='M309.0,204.5 A14.0,14.0 0 0,1 309.0,176.5 H314.0 A14.0,14.0 0 0,1
314.0,204.5 z' fill='#000000' fill-opacity='0.4980392156862745' stroke='none'/>
+<path d='M418.0,191.5 A15.0,15.0 0 0,1 418.0,161.5 H428.0 A15.0,15.0 0 0,1
428.0,191.5 z' fill='#000000' fill-opacity='0.4980392156862745' stroke='none'/>
+<circle cx='418.5' cy='213.0' fill='#000000' fill-opacity='0.4980392156862745'
r='15.0' stroke='none'/>
+<path d='M521.0,170.0 A14.0,14.0 0 0,1 521.0,142.0 H547.0 A14.0,14.0 0 0,1
547.0,170.0 z' fill='#000000' fill-opacity='0.4980392156862745' stroke='none'/>
+<circle cx='9.0' cy='19.0' fill='#FFFFFF' r='3.0' stroke='#000000'
stroke-width='2'/>
+<line stroke='#000000' stroke-width='2' x1='72.0' x2='73.0' y1='19.0'
y2='19.0'/>
+<circle cx='73.5' cy='40.5' fill='#B3E5FC' r='15.0' stroke='#000000'
stroke-width='2'/>
+<text class='token_font' x='73.5' y='47.5'>-</text>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='29.0'
x2='68.0' y1='19.0' y2='19.0'/>
+<line stroke='#000000' stroke-width='2' x1='73.0' x2='119.0' y1='19.0'
y2='19.0'/>
+<path d='M38.0,28.0 A9.0,9.0 0 0,0 29.0,19.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='47.0'
x2='53.0' y1='39.5' y2='39.5'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='90.0'
x2='96.0' y1='39.5' y2='39.5'/>
+<path d='M38.0,30.5 A9.0,9.0 0 0,0 47.0,39.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M100.0,39.5 A9.0,9.0 0 0,0 109.0,30.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M118.0,19.0 A9.0,9.0 0 0,0 109.0,28.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<line stroke='#000000' stroke-width='2' x1='38.0' x2='38.0' y1='30.5'
y2='28.0'/>
+<line stroke='#000000' stroke-width='2' x1='109.0' x2='109.0' y1='30.5'
y2='28.0'/>
+<path d='M178.0,34.0 A14.0,14.0 0 0,1 178.0,6.0 H183.0 A14.0,14.0 0 0,1
183.0,34.0 z' fill='#B3E5FC' stroke='#000000' stroke-width='2'/>
+<text class='bubble_font' x='180.5' y='26.0'>0</text>
+<path d='M178.0,68.5 A14.0,14.0 0 0,1 178.0,40.5 H204.0 A14.0,14.0 0 0,1
204.0,68.5 z' fill='#B3E5FC' stroke='#000000' stroke-width='2'/>
+<text class='bubble_font' x='191.0' y='60.5'>1-9</text>
+<line stroke='#000000' stroke-width='2' x1='279.5' x2='280.5' y1='53.5'
y2='53.5'/>
+<path d='M268.0,92.5 A14.0,14.0 0 0,1 268.0,64.5 H294.0 A14.0,14.0 0 0,1
294.0,92.5 z' fill='#B3E5FC' stroke='#000000' stroke-width='2'/>
+<text class='bubble_font' x='281.0' y='84.5'>0-9</text>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='253.0'
x2='275.5' y1='53.5' y2='53.5'/>
+<line stroke='#000000' stroke-width='2' x1='280.5' x2='309.0' y1='53.5'
y2='53.5'/>
+<line stroke='#000000' stroke-width='2' x1='236.0' x2='253.0' y1='53.5'
y2='53.5'/>
+<path d='M253.0,53.5 A12.0,12.0 0 0,0 253.0,77.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M309.0,77.5 A12.0,12.0 0 0,0 309.0,53.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<line stroke='#000000' stroke-width='2' x1='309.0' x2='318.0' y1='53.5'
y2='53.5'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='218.0'
x2='232.0' y1='53.5' y2='53.5'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='135.0'
x2='159.0' y1='19.0' y2='19.0'/>
+<line stroke='#000000' stroke-width='2' x1='198.0' x2='351.0' y1='19.0'
y2='19.0'/>
+<path d='M144.0,28.0 A9.0,9.0 0 0,0 135.0,19.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='153.0'
x2='159.0' y1='53.5' y2='53.5'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='318.0'
x2='328.0' y1='53.5' y2='53.5'/>
+<path d='M144.0,44.5 A9.0,9.0 0 0,0 153.0,53.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M332.0,53.5 A9.0,9.0 0 0,0 341.0,44.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M350.0,19.0 A9.0,9.0 0 0,0 341.0,28.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<line stroke='#000000' stroke-width='2' x1='144.0' x2='144.0' y1='44.5'
y2='28.0'/>
+<line stroke='#000000' stroke-width='2' x1='341.0' x2='341.0' y1='44.5'
y2='28.0'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='117.0'
x2='131.0' y1='19.0' y2='19.0'/>
+<line stroke='#000000' stroke-width='2' x1='460.375' x2='461.375' y1='19.0'
y2='19.0'/>
+<circle cx='411.0' cy='40.5' fill='#B3E5FC' r='15.0' stroke='#000000'
stroke-width='2'/>
+<text class='token_font' x='411.0' y='47.5'>.</text>
+<path d='M476.0,54.5 A14.0,14.0 0 0,1 476.0,26.5 H502.0 A14.0,14.0 0 0,1
502.0,54.5 z' fill='#B3E5FC' stroke='#000000' stroke-width='2'/>
+<text class='bubble_font' x='489.0' y='46.5'>0-9</text>
+<line stroke='#000000' stroke-width='2' x1='487.5' x2='488.5' y1='61.0'
y2='61.0'/>
+<line stroke='#000000' stroke-width='2' x1='461.0' x2='487.5' y1='61.0'
y2='61.0'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='517.0'
x2='492.5' y1='61.0' y2='61.0'/>
+<line stroke='#000000' stroke-width='2' x1='444.0' x2='461.0' y1='39.5'
y2='39.5'/>
+<path d='M461.0,39.5 A10.75,10.75 0 0,0 461.0,61.0' fill='none'
stroke='#000000' stroke-width='2'/>
+<path d='M517.0,61.0 A10.75,10.75 0 0,0 517.0,39.5' fill='none'
stroke='#000000' stroke-width='2'/>
+<line stroke='#000000' stroke-width='2' x1='517.0' x2='526.0' y1='39.5'
y2='39.5'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='426.0'
x2='440.0' y1='39.5' y2='39.5'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='367.0'
x2='456.375' y1='19.0' y2='19.0'/>
+<line stroke='#000000' stroke-width='2' x1='461.375' x2='557.75' y1='19.0'
y2='19.0'/>
+<path d='M376.0,28.0 A9.0,9.0 0 0,0 367.0,19.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='385.0'
x2='391.0' y1='39.5' y2='39.5'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='526.0'
x2='534.75' y1='39.5' y2='39.5'/>
+<path d='M376.0,30.5 A9.0,9.0 0 0,0 385.0,39.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M538.75,39.5 A9.0,9.0 0 0,0 547.75,30.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M556.75,19.0 A9.0,9.0 0 0,0 547.75,28.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<line stroke='#000000' stroke-width='2' x1='376.0' x2='376.0' y1='30.5'
y2='28.0'/>
+<line stroke='#000000' stroke-width='2' x1='547.75' x2='547.75' y1='30.5'
y2='28.0'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='349.0'
x2='363.0' y1='19.0' y2='19.0'/>
+<line stroke='#000000' stroke-width='2' x1='415.875' x2='416.875' y1='132.5'
y2='132.5'/>
+<path d='M306.0,167.0 A14.0,14.0 0 0,1 306.0,139.0 H311.0 A14.0,14.0 0 0,1
311.0,167.0 z' fill='#B3E5FC' stroke='#000000' stroke-width='2'/>
+<text class='bubble_font' x='308.5' y='159.0'>e</text>
+<path d='M306.0,201.5 A14.0,14.0 0 0,1 306.0,173.5 H311.0 A14.0,14.0 0 0,1
311.0,201.5 z' fill='#B3E5FC' stroke='#000000' stroke-width='2'/>
+<text class='bubble_font' x='308.5' y='193.5'>E</text>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='263.0'
x2='287.0' y1='152.0' y2='152.0'/>
+<line stroke='#000000' stroke-width='2' x1='326.0' x2='355.0' y1='152.0'
y2='152.0'/>
+<path d='M272.0,161.0 A9.0,9.0 0 0,0 263.0,152.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='281.0'
x2='287.0' y1='186.5' y2='186.5'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='326.0'
x2='332.0' y1='186.5' y2='186.5'/>
+<path d='M272.0,177.5 A9.0,9.0 0 0,0 281.0,186.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M336.0,186.5 A9.0,9.0 0 0,0 345.0,177.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M354.0,152.0 A9.0,9.0 0 0,0 345.0,161.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<line stroke='#000000' stroke-width='2' x1='272.0' x2='272.0' y1='177.5'
y2='161.0'/>
+<line stroke='#000000' stroke-width='2' x1='345.0' x2='345.0' y1='177.5'
y2='161.0'/>
+<line stroke='#000000' stroke-width='2' x1='418.5' x2='419.5' y1='152.0'
y2='152.0'/>
+<path d='M415.0,188.5 A15.0,15.0 0 0,1 415.0,158.5 H425.0 A15.0,15.0 0 0,1
425.0,188.5 z' fill='#B3E5FC' stroke='#000000' stroke-width='2'/>
+<text class='token_font' x='420.0' y='180.5'>+</text>
+<circle cx='415.5' cy='210.0' fill='#B3E5FC' r='15.0' stroke='#000000'
stroke-width='2'/>
+<text class='token_font' x='415.5' y='217.0'>-</text>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='371.0'
x2='414.5' y1='152.0' y2='152.0'/>
+<line stroke='#000000' stroke-width='2' x1='419.5' x2='470.0' y1='152.0'
y2='152.0'/>
+<path d='M380.0,161.0 A9.0,9.0 0 0,0 371.0,152.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='389.0'
x2='395.0' y1='172.5' y2='172.5'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='441.0'
x2='447.0' y1='172.5' y2='172.5'/>
+<path d='M380.0,163.5 A9.0,9.0 0 0,0 389.0,172.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M451.0,172.5 A9.0,9.0 0 0,0 460.0,163.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='389.0'
x2='395.0' y1='209.0' y2='209.0'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='432.0'
x2='447.0' y1='209.0' y2='209.0'/>
+<path d='M380.0,200.0 A9.0,9.0 0 0,0 389.0,209.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M451.0,209.0 A9.0,9.0 0 0,0 460.0,200.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M469.0,152.0 A9.0,9.0 0 0,0 460.0,161.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<line stroke='#000000' stroke-width='2' x1='380.0' x2='380.0' y1='200.0'
y2='161.0'/>
+<line stroke='#000000' stroke-width='2' x1='460.0' x2='460.0' y1='200.0'
y2='161.0'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='353.0'
x2='367.0' y1='152.0' y2='152.0'/>
+<path d='M518.0,167.0 A14.0,14.0 0 0,1 518.0,139.0 H544.0 A14.0,14.0 0 0,1
544.0,167.0 z' fill='#B3E5FC' stroke='#000000' stroke-width='2'/>
+<text class='bubble_font' x='531.0' y='159.0'>0-9</text>
+<line stroke='#000000' stroke-width='2' x1='529.5' x2='530.5' y1='173.5'
y2='173.5'/>
+<line stroke='#000000' stroke-width='2' x1='503.0' x2='529.5' y1='173.5'
y2='173.5'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='559.0'
x2='534.5' y1='173.5' y2='173.5'/>
+<line stroke='#000000' stroke-width='2' x1='486.0' x2='503.0' y1='152.0'
y2='152.0'/>
+<path d='M503.0,152.0 A10.75,10.75 0 0,0 503.0,173.5' fill='none'
stroke='#000000' stroke-width='2'/>
+<path d='M559.0,173.5 A10.75,10.75 0 0,0 559.0,152.0' fill='none'
stroke='#000000' stroke-width='2'/>
+<line stroke='#000000' stroke-width='2' x1='559.0' x2='568.0' y1='152.0'
y2='152.0'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='468.0'
x2='482.0' y1='152.0' y2='152.0'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='235.0'
x2='411.875' y1='132.5' y2='132.5'/>
+<line stroke='#000000' stroke-width='2' x1='416.875' x2='600.75' y1='132.5'
y2='132.5'/>
+<path d='M244.0,141.5 A9.0,9.0 0 0,0 235.0,132.5' fill='none' stroke='#000000'
stroke-width='2'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='253.0'
x2='259.0' y1='152.0' y2='152.0'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='568.0'
x2='577.75' y1='152.0' y2='152.0'/>
+<path d='M244.0,143.0 A9.0,9.0 0 0,0 253.0,152.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<path d='M581.75,152.0 A9.0,9.0 0 0,0 590.75,143.0' fill='none'
stroke='#000000' stroke-width='2'/>
+<path d='M599.75,132.5 A9.0,9.0 0 0,0 590.75,141.5' fill='none'
stroke='#000000' stroke-width='2'/>
+<line stroke='#000000' stroke-width='2' x1='244.0' x2='244.0' y1='143.0'
y2='141.5'/>
+<line stroke='#000000' stroke-width='2' x1='590.75' x2='590.75' y1='143.0'
y2='141.5'/>
+<line stroke='#000000' stroke-width='2' x1='556.75' x2='574.75' y1='19.0'
y2='19.0'/>
+<path d='M583.75,28.0 A9.0,9.0 0 0,0 574.75,19.0' fill='none' stroke='#000000'
stroke-width='2'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='583.75'
x2='583.75' y1='28.0' y2='61.75'/>
+<line stroke='#000000' stroke-width='2' x1='583.75' x2='583.75' y1='65.75'
y2='103.5'/>
+<path d='M574.75,112.5 A9.0,9.0 0 0,0 583.75,103.5' fill='none'
stroke='#000000' stroke-width='2'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='574.75'
x2='399.875' y1='112.5' y2='112.50000000000003'/>
+<line stroke='#000000' stroke-width='2' x1='395.875' x2='217.0' y1='112.5'
y2='112.5'/>
+<path d='M217.0,112.5 A10.0,10.0 0 0,0 217.0,132.5' fill='none'
stroke='#000000' stroke-width='2'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='217.0'
x2='231.0' y1='132.5' y2='132.5'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='11.0'
x2='25.0' y1='19.0' y2='19.0'/>
+<circle cx='619.75' cy='132.5' fill='#FFFFFF' r='3.0' stroke='#000000'
stroke-width='2'/>
+<line marker-end='url(#arrow)' stroke='#000000' stroke-width='2' x1='598.75'
x2='612.75' y1='132.5' y2='132.5'/>
+</svg>
\ No newline at end of file
diff --git a/presentations/training/demo/index.html
b/presentations/training/demo/index.html
index e508bd8..2abc711 100644
--- a/presentations/training/demo/index.html
+++ b/presentations/training/demo/index.html
@@ -424,7 +424,7 @@ Neat huh?</p></div></aside></div></section>
<section id="blank-screen"><h2>Blank screen</h2><div
class="slide-content"><div class="paragraph"><p>You can press
<code><strong>b</strong></code> or <code><strong>.</strong></code> to blank
your current screen.</p></div>
<div class="paragraph"><p>Hit it again to bring it
back.</p></div></div></section>
<section id="overview"><h2>Overview</h2><div class="slide-content"><div
class="paragraph"><p>Press the <code><strong>esc</strong></code> key to get an
overview of your slides.</p></div></div></section>
-<section><section id="attributes"><h2>Attributes</h2><div
class="slide-content"><div class="paragraph"><p>Press the down arrow key to see
the next sub-slide.</p></div></div></section><section
id="attributes-part-1"><h2>Attributes Part 1</h2><div
class="slide-content"><div class="dlist"><div
class="title">Built-in</div><dl><dt
class="hdlist1">asciidoctor-version</dt><dd><p>2.0.23</p></dd><dt
class="hdlist1">safe-mode-name</dt><dd><p>unsafe</p></dd><dt
class="hdlist1">docdir</dt><dd><p>/ho [...]
+<section><section id="attributes"><h2>Attributes</h2><div
class="slide-content"><div class="paragraph"><p>Press the down arrow key to see
the next sub-slide.</p></div></div></section><section
id="attributes-part-1"><h2>Attributes Part 1</h2><div
class="slide-content"><div class="dlist"><div
class="title">Built-in</div><dl><dt
class="hdlist1">asciidoctor-version</dt><dd><p>2.0.23</p></dd><dt
class="hdlist1">safe-mode-name</dt><dd><p>unsafe</p></dd><dt
class="hdlist1">docdir</dt><dd><p>/ws [...]
<section id="including-documents-from-subdir"><h2>Including documents from
subdir</h2><div class="slide-content"><div class="paragraph"><div
class="title">include::subdir/_b.adoc[]</div><p>content from
<em>src/docs/asciidoc/subdir/_b.adoc</em>.</p></div>
<div class="exampleblock"><div class="title">Example 1.
include::_c.adoc[]</div><div class="content"><div class="paragraph"><p>content
from
<em>src/docs/asciidoc/subdir/_c.adoc</em>.</p></div></div></div></div></section>
<section id="images"><h2>Images</h2><div class="slide-content"><div
class="imageblock thumb"><img src="images/logo-apache.png" alt="logo
apache"></div></div></section>
@@ -440,44 +440,46 @@ Neat huh?</p></div></aside></div></section>
<div class="ulist
east"><ul><li><p>Blah</p></li><li><p>Blah</p></li><li><p>Blah</p></li><li><p>Blah</p></li><li><p>Blah</p></li></ul></div></div></section>
<section id="fontawesome-icons"><h2>Fontawesome Icons</h2><div
class="slide-content"><div class="ulist"><ul><li><p><span class="icon green"><i
class="fa fa-check"></i></span></p></li><li><p><span class="icon"><i class="fa
fa-wrench"></i></span></p></li><li><p><span class="icon orange"><i class="fa
fa-beer"></i></span></p></li></ul></div>
<aside class="notes"><div class="ulist"><ul><li><p>Find icons here: <a
href="https://fontawesome.com/v4.7.0/icons/"
class="bare">https://fontawesome.com/v4.7.0/icons/</a></p></li><li><p>Color
icons by defining css styles in apache.css and referencing them with
"role"</p></li></ul></div></aside></div></section>
-<section><section id="diagrams"><h2>Diagrams</h2><div
class="slide-content"><div class="paragraph"><p>Press the down arrow key to see
the different types of diagrams</p></div></div></section><section
id="ditaa-diagram"><h2>Ditaa Diagram</h2><div class="slide-content"><div
class="imageblock"><img src="images/asciidoctor-diagram-process.png"
alt="asciidoctor diagram process"></div></div></section><section
id="plantuml-diagram"><h2>PlantUML Diagram</h2><div class="slide-content"><div
class= [...]
-{
- write -> convert -> image
+<section><section id="diagrams"><h2>Diagrams</h2><div
class="slide-content"><div class="paragraph"><p>Press the down arrow key to see
the different types of diagrams</p></div></div></section><section
id="ditaa-diagram"><h2>Ditaa Diagram</h2><div class="slide-content"><div
class="imageblock"><img src="images/asciidoctor-diagram-process.png"
alt="asciidoctor diagram process"></div></div></section><section
id="plantuml-diagram"><h2>PlantUML Diagram</h2><div class="slide-content"><div
class= [...]
+convert: unable to read font `Impact' @ error/annotate.c/RenderFreetype/1396.
+convert: no images defined `/tmp/meme20250830-1-jlmxk7.png' @
error/convert.c/ConvertImageCommand/3229.</pre></div></div></div></section><section
id="entity-relation-diagram"><h2>Entity Relation Diagram</h2><div
class="slide-content"><div class="imageblock"><img src="images/erd-test.svg"
alt="erd test"></div>
+<aside class="notes"></aside></div></section><section
id="mermaid-flowchart"><h2>Mermaid: Flowchart</h2><div
class="slide-content"><div class="listingblock"><div
class="content"><pre>Failed to generate image: mmdc failed:
+Error: Failed to launch the browser process!
+/root/.cache/puppeteer/chrome/linux-1108766/chrome-linux/chrome: error while
loading shared libraries: libnss3.so: cannot open shared object file: No such
file or directory
+
+
+TROUBLESHOOTING: https://pptr.dev/troubleshooting
+
+ at Interface.onClose
(file:///root/.nvm/versions/node/v22.18.0/lib/node_modules/@mermaid-js/mermaid-cli/node_modules/@puppeteer/browsers/lib/esm/launch.js:253:24)
+ at Interface.emit (node:events:530:35)
+ at Interface.close (node:internal/readline/interface:534:10)
+ at Socket.onend (node:internal/readline/interface:260:10)
+ at Socket.emit (node:events:530:35)
+ at endReadableNT (node:internal/streams/readable:1698:12)
+ at process.processTicksAndRejections
(node:internal/process/task_queues:90:21)
+
- lane user {
- label = "User"
- write [label = "Writing reST"];
- image [label = "Get diagram IMAGE"];
- }
- lane actdiag {
- convert [label = "Convert reST to Image"];
- }
-}</pre></div></div></div></section><section id="nwdiag-diagram"><h2>Nwdiag
Diagram</h2><div class="slide-content"><div class="imageblock"><img
src="images/nwdiag-test.png" alt="nwdiag test"></div></div></section><section
id="rackdiag-diagram"><h2>Rackdiag Diagram</h2><div class="slide-content"><div
class="imageblock"><img src="images/rackdiag-test.png" alt="rackdiag
test"></div></div></section><section id="packetdiag-diagram"><h2>Packetdiag
Diagram</h2><div class="slide-content"><div cla [...]
-[Person]
-*name
-height
-weight
-+birth_location_id
-
-[Location]
-*id
-city
-state
-country
-
-# Cardinality Syntax
-# 0 or 1 ?
-# exactly 1 1
-# 0 or more *
-# 1 or more +
-Person *--1 Location</pre></div></div>
-<aside class="notes"></aside></div></section><section
id="mermaid-flowchart"><h2>Mermaid: Flowchart</h2><div
class="slide-content"><div class="listingblock"><div
class="content"><pre>Failed to generate image: Could not find the 'mmdc'
executable in PATH; add it to the PATH or specify its location using the 'mmdc'
document attribute
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;</pre></div></div>
-<aside class="notes"></aside></div></section><section
id="mermaid-sequence-diagram"><h2>Mermaid: Sequence Diagram</h2><div
class="slide-content"><div class="listingblock"><div
class="content"><pre>Failed to generate image: Could not find the 'mmdc'
executable in PATH; add it to the PATH or specify its location using the 'mmdc'
document attribute
+<aside class="notes"></aside></div></section><section
id="mermaid-sequence-diagram"><h2>Mermaid: Sequence Diagram</h2><div
class="slide-content"><div class="listingblock"><div
class="content"><pre>Failed to generate image: mmdc failed:
+Error: Failed to launch the browser process!
+/root/.cache/puppeteer/chrome/linux-1108766/chrome-linux/chrome: error while
loading shared libraries: libnss3.so: cannot open shared object file: No such
file or directory
+
+
+TROUBLESHOOTING: https://pptr.dev/troubleshooting
+
+ at Interface.onClose
(file:///root/.nvm/versions/node/v22.18.0/lib/node_modules/@mermaid-js/mermaid-cli/node_modules/@puppeteer/browsers/lib/esm/launch.js:253:24)
+ at Interface.emit (node:events:530:35)
+ at Interface.close (node:internal/readline/interface:534:10)
+ at Socket.onend (node:internal/readline/interface:260:10)
+ at Socket.emit (node:events:530:35)
+ at endReadableNT (node:internal/streams/readable:1698:12)
+ at process.processTicksAndRejections
(node:internal/process/task_queues:90:21)
+
+
sequenceDiagram
participant Alice
participant Bob
@@ -488,7 +490,22 @@ sequenceDiagram
Note right of John: Rational thoughts <br/>prevail...
John-->Alice: Great!
John->Bob: How about you?
- Bob-->John: Jolly good!</pre></div></div></div></section><section
id="mermaid-gant-diagram"><h2>Mermaid: Gant Diagram</h2><div
class="slide-content"><div class="listingblock"><div
class="content"><pre>Failed to generate image: Could not find the 'mmdc'
executable in PATH; add it to the PATH or specify its location using the 'mmdc'
document attribute
+ Bob-->John: Jolly good!</pre></div></div></div></section><section
id="mermaid-gant-diagram"><h2>Mermaid: Gant Diagram</h2><div
class="slide-content"><div class="listingblock"><div
class="content"><pre>Failed to generate image: mmdc failed:
+Error: Failed to launch the browser process!
+/root/.cache/puppeteer/chrome/linux-1108766/chrome-linux/chrome: error while
loading shared libraries: libnss3.so: cannot open shared object file: No such
file or directory
+
+
+TROUBLESHOOTING: https://pptr.dev/troubleshooting
+
+ at Interface.onClose
(file:///root/.nvm/versions/node/v22.18.0/lib/node_modules/@mermaid-js/mermaid-cli/node_modules/@puppeteer/browsers/lib/esm/launch.js:253:24)
+ at Interface.emit (node:events:530:35)
+ at Interface.close (node:internal/readline/interface:534:10)
+ at Socket.onend (node:internal/readline/interface:260:10)
+ at Socket.emit (node:events:530:35)
+ at endReadableNT (node:internal/streams/readable:1698:12)
+ at process.processTicksAndRejections
(node:internal/process/task_queues:90:21)
+
+
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
@@ -503,76 +520,7 @@ gantt
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
- Add to mermaid
:1d</pre></div></div></div></section><section id="svgbob-mindmap"><h2>SVGBob:
Mindmap</h2><div class="slide-content"><div class="listingblock"><div
class="content"><pre>Failed to generate image: Could not find the 'svgbob',
'svgbob_cli' executable in PATH; add it to the PATH or specify its location
using the 'svgbob' document attribute
- .--> Alpha
- /
- .----> Initial Release
- Planning *-------. / \
- \ / '---> Patch 1
- Initial research \ / \
- * \ / '--> Patch 2
- \ \ .---------> Beta
- \ \ /
- \ o o _______
- \ .---. o--.___ / \
- '------> ( ) '----*---> . Release .
- `---' o \_______/
- o o o \
- / \ \ \
- .--' \ \ \
- / \ \ '----+-> Push backs
- . \ \ \
- /| \ \ '----> Setbacks
- / . \ \
- V /| \ '-----> Reception
- Team / . \
- v /| \
- Worklaod / . '-->> Career change
- V /
- PTO /
- V
- Bug</pre></div></div></div></section><section
id="svgbob-circuit-diagram"><h2>SVGBob: Circuit Diagram</h2><div
class="slide-content"><div class="listingblock"><div
class="content"><pre>Failed to generate image: Could not find the 'svgbob',
'svgbob_cli' executable in PATH; add it to the PATH or specify its location
using the 'svgbob' document attribute
- +10-15V ___0,047R
- *------o------o-|___|-o--o---------o----o-------.
- | | | | | | |
- --- | | .+. | | |
- 470uF | + | | | | | | .+.
- *------o '--. | '+' .+. | '-'
- | |6 |7 |8 1k | | | |
- GND .-+----+--+--. | | | |
- | | '+' | |
- | |1 | |/ BC |
- | +------o--+ 547 |
- | | | |`> |
- | | ,+. | |
- | | 220R| | o----||-+ IRF9Z34
- | | | | | |+->
- | MC34063 | `+' | ||-+
- | | | | | BYV29 -12V6
- | | '----' o--|<-o----o--X OUT
- | |2 | | |
- | |--o C| | |
- | | GND 30uH C| | --- 470
- | |3 1nF C| |
- | |-------||--. | | | +
- '-----+----+-' | GND | GND
- 5| 4| | |
- | '-------------o-------------o
- | ___ |
- '------/\/\/------------o--|___|-'
- | 1k0
- .+.
- | | 5k6 + 3k3
- | | in Serie
- '+'
- |
-
GND</pre></div></div></div></section><section id="syntrax"><h2>Syntrax</h2><div
class="slide-content"><div class="listingblock"><div
class="content"><pre>Failed to generate image: Could not find the 'syntrax'
executable in PATH; add it to the PATH or specify its location using the
'syntrax' document attribute
-indentstack(10,
- line(opt('-'), choice('0', line('1-9', loop(None, '0-9'))),
- opt('.', loop('0-9', None))),
-
- line(opt(choice('e', 'E'), choice(None, '+', '-'), loop('0-9', None)))
-)</pre></div></div></div></section><section id="vega"><h2>Vega</h2><div
class="slide-content"><div class="listingblock"><div
class="content"><pre>Failed to generate image: Could not find the 'vg2svg'
executable in PATH; add it to the PATH or specify its location using the
'vg2svg' document attribute
+ Add to mermaid
:1d</pre></div></div></div></section><section id="svgbob-mindmap"><h2>SVGBob:
Mindmap</h2><div class="slide-content"><div class="imageblock"><img
src="images/svgbob-mindmap-test.svg" alt="svgbob mindmap
test"></div></div></section><section id="svgbob-circuit-diagram"><h2>SVGBob:
Circuit Diagram</h2><div class="slide-content"><div class="imageblock"><img
src="images/svgbob-circuit-diagram-test.svg" alt="svgbob circuit diagram
test"></div></div>< [...]
{
"$schema": "https://vega.github.io/schema/vega/v5.json",
"width": 1000,
diff --git a/presentations/training/presentation/META-INF/MANIFEST.MF
b/presentations/training/presentation/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/training/presentation/META-INF/MANIFEST.MF
+++ b/presentations/training/presentation/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21
diff --git a/presentations/zookeeper/META-INF/MANIFEST.MF
b/presentations/zookeeper/META-INF/MANIFEST.MF
index 14829d1..a01ba16 100644
--- a/presentations/zookeeper/META-INF/MANIFEST.MF
+++ b/presentations/zookeeper/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
-Build-Jdk-Spec: 11
+Build-Jdk-Spec: 21